|
|
www.lissyara.su
—> статьи
—> FreeBSD
—> Мелочи
—> LACP и VLAN
Настройка LACP и VLAN во FreeBSD 7.0
Автор: s@sh@.
Как всегда, в жизни людям чего-то не хватает.В основном это денег и счастья, и я этому не исключение :). Но иногда приходят моменты, когда еще не хватает хорошего настроения от качественно, или хотя бы красиво проделанной работы. Возникла на днях задачка - организовать файл-сервер для бекапов на фряхе, да еще и прикрутить к нему сторедж на 10 терабайт.Все, как бы, не совсем страшно, если бы не одно но... Сторедж при правильной настройке может давать до 200 Мбайт\с на чтение или запись(Fiber Channel это хорошо). Так или иначе нужно эту возможность использовать по максимуму. Но даже при гигабитном соединении такой нагрузки не получишь. Зато по двум гигабитным карточкам можно такое устроить. Почему нужна такая нагрузка? По тому что бекапы будут литься отовсюду в сети приблизительно в один момент времени, а это, мягко говоря, много! Какое можно найти решение? Когда-то помню приходилось строить link aggregation на двух HP свичах, там протоколов было много для этих целей, но мне почему-то понравился такой себе LACP (Link aggregation control protocol). Ну на теперешней работе таких свичиков больше нету(или вообще нету), зато есть другие - cisco catalyst 6509. Попарсив google на тему присутствия организации такой штуки на FreeBSD и Сisco, напоролся на статейку HandBook/NetworkAggregation. Если вкратце, в статье описывается процес добавления пары-тройки команд на циске и во фряхе, в результате чего сервер с двумя интерфейсами балансирует нагрузку одновременно по обеим интерфейсам и на прием, и на передачу трафика, да еще и обеспечивает Fault tolerance. Ну с циской как-бы все понятно, а вот с фряхой понятно быть перестало сразу. Ввод
команды
netflow1# ifconfig lagg0 create
| позитивного результата не дал, как и
netflow1# man lagg
No manual entry for lagg
| Недолго покопавшись в инете, выяснилось, что данная функция будет поддерживаться в 7-й версии FreeBSD. Дело было вечером, делать было нечего... Функцию опробовать надо, заодно и на CURRENT версию посмотреть можно. Обновляем сорцы до CURRENT-а, компилим и ставим мир и ядро. Выполнение этой процедуры очень хорошо описано в http://www.lissyara.su/?id=1072, http://www.lissyara.su/?id=1161,
http://www.lissyara.su/?id=1270.
От себя добавлю некоторую инфу:
# это файлик /usr/local/etc/supfile
*default host=cvsup3.ua.FreeBSD.org #мне от сюда легче тянуть исходники
*default base=/var/db
*default prefix=/usr
*default release=cvs
#*default tag=. # а это чтоб CURRENT стянуть ()
#по прозьбе трудящих закоментил предыдущую строку
#т.к. сейчас такой тег более актуален.
*default tag=RELENG_7
*default delete use-rel-suffix
*default compress
## Main Source Tree.
src-all # тянем только исходники
|
Далее просто:
netflow1# cvsup -g -L 2 /usr/local/etc/supfile
| После недолгих бульканий cvsup'а были скачаны исходники. По статейке билдим мир и ядришко. Здесь у меня возникли проблемы. Я со старта покаментил все ненужные мне опции в конфигфайле ядра, и оно компилиться не захотело, хотя мир скомпилился с первого раза. Проблемка была в коментированнии неких неприветных строчек
cpu I486_CPU
cpu I586_CPU
options INET6 # IPv6 communications protocols
| Хотя способ решения был другим, я сначала скомпилил и проставил мир и ядро GENERIC, а опосля уже на новой Фряхе забубенил свое ядро /usr/src/sys/i386/conf/MK .
cpu I486_CPU
cpu I586_CPU
cpu I686_CPU
ident MK
makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols
options SCHED_4BSD # 4BSD scheduler
options PREEMPTION # Enable kernel thread preemption
options INET # InterNETworking
options INET6 # IPv6 communications protocols
options SCTP # Stream Control Transmission Protocol
options FFS # Berkeley Fast Filesystem
options SOFTUPDATES # Enable FFS soft updates support
options UFS_ACL # Support for access control lists
options UFS_DIRHASH # Improve performance on big directories
options UFS_GJOURNAL # Enable gjournal-based UFS journaling
options MD_ROOT # MD is a potential root device
options NFSCLIENT # Network Filesystem Client
options NFSSERVER # Network Filesystem Server
options NFS_ROOT # NFS usable as /, requires NFSCLIENT
options MSDOSFS # MSDOS Filesystem
options CD9660 # ISO 9660 Filesystem
options PROCFS # Process filesystem (requires PSEUDOFS)
options PSEUDOFS # Pseudo-filesystem framework
options GEOM_PART_GPT # GUID Partition Tables.
options GEOM_LABEL # Provides labelization
options COMPAT_43TTY # BSD 4.3 TTY compat [KEEP THIS!]
options COMPAT_FREEBSD4 # Compatible with FreeBSD4
options COMPAT_FREEBSD5 # Compatible with FreeBSD5
options COMPAT_FREEBSD6 # Compatible with FreeBSD6
options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI
options KTRACE # ktrace(1) support
options SYSVSHM # SYSV-style shared memory
options SYSVMSG # SYSV-style message queues
options SYSVSEM # SYSV-style semaphores
options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions
options KBD_INSTALL_CDEV # install a CDEV entry in /dev
options ADAPTIVE_GIANT # Giant mutex is adaptive.
options STOP_NMI # Stop CPUS using NMI instead of IPI
options AUDIT # Security event auditing
# To make an SMP kernel, the next two lines are needed
options SMP # Symmetric MultiProcessor Kernel -
# вот это уже
# по дефолту ставят в ядро
device apic # I/O APIC
device lagg #вот это та самая строка, с помощью
#которой и должен заработать LACP
# CPU frequency control
device cpufreq
# Bus support.
device pci
# Floppy drives
device fdc
# ATA and ATAPI devices
device ata
device atadisk # ATA disk drives
device ataraid # ATA RAID drives
device atapicd # ATAPI CDROM drives
device atapifd # ATAPI floppy drives
device atapist # ATAPI tape drives
options ATA_STATIC_ID # Static device numbering
# SCSI Controllers
device ahb # EISA AHA1742 family
device ahc # AHA2940 and onboard AIC7xxx devices
options AHC_REG_PRETTY_PRINT # Print register bitfields in debug
# output. Adds ~128k to driver.
device ahd # AHA39320/29320 and onboard AIC79xx devices
options AHD_REG_PRETTY_PRINT # Print register bitfields in debug
# output. Adds ~215k to driver.
device isp # Qlogic family - а по этим девайсом подключем массив
device ispfw # Firmware for QLogic HBAs- normally a module
device mpt # LSI-Logic MPT-Fusion
device aha # Adaptec 154x SCSI adapters
device aic # Adaptec 15[012]x SCSI adapters, AIC-6[23]60.
# SCSI peripherals
device scbus # SCSI bus (required for SCSI)
device ch # SCSI media changers
device da # Direct Access (disks)
device sa # Sequential Access (tape etc)
device cd # CD
device pass # Passthrough device (direct SCSI access)
device ses # SCSI Environmental Services (and SAF-TE)
device iir # Intel Integrated RAID
# RAID controllers
device aac # Adaptec FSA RAID
device mfi # LSI MegaRAID SAS
# atkbdc0 controls both the keyboard and the PS/2 mouse
device atkbdc # AT keyboard controller
device atkbd # AT keyboard
device psm # PS/2 mouse
device kbdmux # keyboard multiplexer
device vga # VGA video card driver
device splash # Splash screen and screen saver support
# syscons is the default console driver, resembling an SCO console
device sc
device agp # support several AGP chipsets
# Power management support (see NOTES for more options)
# Add suspend/resume support for the i8254.
device pmtimer
# Serial (COM) ports
device sio # 8250, 16[45]50 based serial ports
device uart # Generic UART driver
# Parallel port
device ppc
device ppbus # Parallel port bus (required)
device lpt # Printer
device plip # TCP/IP over parallel
device ppi # Parallel port interface device
# PCI Ethernet NICs.
device em # Intel PRO/1000 adapter Gigabit Ethernet Card
device ixgb # Intel PRO/10GbE Ethernet Card
# Pseudo devices.
device loop # Network loopback
device random # Entropy device
device ether # Ethernet support
device sl # Kernel SLIP
device ppp # Kernel PPP
device tun # Packet tunnel.
device pty # Pseudo-ttys (telnet etc)
device md # Memory "disks"
device gif # IPv6 and IPv4 tunneling
device faith # IPv6-to-IPv4 relaying (translation)
device firmware # firmware assist module
# The `bpf' device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
# Note that 'bpf' is required for DHCP.
device bpf # Berkeley packet filter
# USB support
device uhci # UHCI PCI->USB interface
device ohci # OHCI PCI->USB interface
device ehci # EHCI PCI->USB interface (USB 2.0)
device usb # USB Bus (required)
device ugen # Generic
device uhid # "Human Interface Devices"
device ukbd # Keyboard
device ulpt # Printer
device umass # Disks/Mass storage - Requires scbus and da
device ums # Mouse
| Сильно не бейте за весь файлик конфигурации ядра, этот файлик у меня точно скомпилился под CURRENT-ом, вот я его и решил выложить для примера.
Из него повыбрасывал всякие дебаги, так как оно мне ничего не раскажет интересного, но на продуктивность системы может нехило повлиять.Ну и повыбрасывал поддержку девайсов, которы у меня нет и быть не может(сервак то блейдовый). Ну и типа для компиля заюзал опцию -j8.
netflow1# make -j8 buildworld && make -j8 buildkernel KERNCONF=MK
| На двух ксеонах все скомпилилось достаточно быстро. При инсталляции мира и ядра особых проблем не возникло, так как система, которую апдейтил, была почти без софта. Поэтому анализ вывода mergemaster особо не проводился и на все вопросы автоматом жал "i".
По завершению сего процесса получаем
netflow1# uname -v
FreeBSD 7.0-CURRENT #8: Mon Oct 1 11:43:02 EEST 2007
root@netflow1.intellecom.ua:/usr/obj/usr/src/sys/MK
netflow1#
| Ну а теперь поработаем клавиатурой
netflow1# ifconfig em0 up
netflow1# ifconfig em1 up
netflow1# ifconfig lagg0 create
netflow1# ifconfig lagg0 up laggproto lacp laggport em0 laggport em1
netflow1# ifconfig lagg0 10.10.10.18 netmask 255.255.255.0
netflow1# route add -net 0.0.0.0 10.10.10.1 0.0.0.0
| Выглядит не совсем красиво, но причесывать будем позже.
Идем на циску и к каждому нужному интерфейсу прописываем:
urk-5(config)#interface GigabitEthernet2/2
urk-5(config-if)#description krv/dev-3
urk-5(config-if)#switchport
urk-5(config-if)#switchport access vlan 10
urk-5(config-if)#channel-protocol lacp
urk-5(config-if)#channel-group 23 mode active
urk-5(config-if)#interface GigabitEthernet2/16
urk-5(config-if)#description krv:/dev-3
urk-5(config-if)#switchpot
urk-5(config-if)#switchport access vlan 10
urk-5(config-if)#channel-protocol lacp
urk-5(config-if)#channel-group 23 mode active
ukr-5(config-if)#int po23
ukr-5(config-if)#no shutdown
ukr-5(config-if)#end
| Значит пояснения: Наш сервак включен в свич двумя сетевыми карточками, одна в порт GigabiEthernet2/2, другая в GigabiEthernet2/16. Соответственно на циске их и конфигурим. switchport access vlan 10 "добавляет" порт в 10 влан в access режиме. Далее добавляем оба порта в channel-group 23, устанавливаем активный режим и протокол агрегации портов. При этих дествиях создается интерфейс с полныйм названием Port-channel 23.Все параметры, которые будут изменены относительно него автоматически применяются ко всем портам из группы. По умолчанию, при создании, данный интерфес пребывает в состоянии shutdown, т.е. отключен,поэтому и нужна предпоследняя команда.Далее ждём пару мин и посмотри че получилось
ukr-5#sh int po23
Port-channel23 is up, line protocol is up (connected)
Hardware is EtherChannel, address is 000d.ed4e.6fbb (bia 000d.ed4e.6fbb)
MTU 1500 bytes, BW 1000000 Kbit, DLY 10 usec,
reliability 255/255, txload 1/255, rxload 1/255
Encapsulation ARPA, loopback not set
Keepalive set (10 sec)
Full-duplex, 1000Mb/s
input flow-control is off, output flow-control is on
Members in this channel: Gi2/2
ARP type: ARPA, ARP Timeout 04:00:00
Last input never, output never, output hang never
Last clearing of "show interface" counters never
Input queue: 0/2000/0/0 (size/max/drops/flushes); Total output drops: 0
Queueing strategy: fifo
Output queue: 0/40 (size/max)
5 minute input rate 0 bits/sec, 0 packets/sec
5 minute output rate 0 bits/sec, 0 packets/sec
7158113 packets input, 6796184799 bytes, 0 no buffer
Received 2003 broadcasts (1430 multicasts)
0 runts, 0 giants, 0 throttles
0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored
0 watchdog, 0 multicast, 0 pause input
0 input packets with dribble condition detected
16746229 packets output, 22947297446 bytes, 0 underruns
0 output errors, 0 collisions, 9 interface resets
0 babbles, 0 late collision, 0 deferred
0 lost carrier, 0 no carrier, 0 PAUSE output
0 output buffer failures, 0 output buffers swapped out
| Ну а во FreeBSD получаем что-то такое:
netflow1# ifconfig -a
em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWCSUM>
ether 00:14:22:b1:e3:06
media: Ethernet autoselect (1000baseSX <full-duplex>)
status: active
lagg: laggdev lagg0
em1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWCSUM>
ether 00:14:22:b1:e3:06
media: Ethernet autoselect (1000baseSX <full-duplex>)
status: active
lagg: laggdev lagg0
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
inet6 ::1 prefixlen 128
inet 127.0.0.1 netmask 0xff000000
lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWCSUM>
ether 00:14:22:b1:e3:06
inet 10.10.10.18 netmask 0xffffff00 broadcast 10.10.10.255
media: Ethernet autoselect
status: active
laggproto lacp
laggport: em1 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
laggport: em0 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
netflow1#
| Проведем некоторое тестирование. Я на двух консолях выполнил такой себе пинг:
netflow1# ping -i 0.2 -s 10000 10.10.10.1
| А что из этого получилось смотрел systat'ом
/0 /1 /2 /3 /4 /5 /6 /7 /8 /9 /10
Load Average
Interface Traffic Peak Total
lagg0 in 150.083 KB/s 225.318 KB/s 30.898 MB
out 150.146 KB/s 225.372 KB/s 34.340 MB
lo0 in 0.000 KB/s 0.000 KB/s 4.604 KB
out 0.000 KB/s 0.000 KB/s 4.604 KB
em1 in 150.083 KB/s 225.343 KB/s 30.908 MB
out 0.000 KB/s 0.023 KB/s 15.137 KB
em0 in 0.000 KB/s 0.066 KB/s 22.844 KB
out 150.171 KB/s 225.396 KB/s 34.355 MB
|
Как видим, пинг отсылается по одному физическому интерфейсу, а reply приходит на другой.
Но задача в практической постановке не совсем полная. Реально вся сетка разграничена кучей VLAN'ов и в каждом из них есть сервера и важные хосты, которые нужно бекапить. Так сложилось в жизни, что свитчинг работает быстрее роутинга, особенно если маршруты к соседнему порту в другом VLAN'е лежат через десяток маршрутизаторов в пяти офисах :)). Как одно из решений, нужные интерфейсы на свиче можно перевести в транковый режим и "прокинуть" туда все необходимые VLAN'ы. Как тогда быть с системой под FreeBSD, ведь ей нужно видеть все виланы? Решение простое, нужно создать виртуальные интерфейсы для каждого VLAN'а, и назначить каждому из них адрес и маршрут из соотведствующей подсети. Для примера, нам нужно из системы видеть 10 и 17 VLAN'ы. Соответственно конфигурим свитч:
urk-5(config)#int po23
urk-5(config-if)# no switchport access vlan 10
urk-5(config-if)# switchport mode trunk
urk-5(config-if)# switchport trunk encapsulation dot1q
urk-5(config-if)# switchport trunk allowed vlan 10,17
urk-5(config-if)#end
| Здесь мы удалили Port-Channel23 из 10-го VLAN'а, и перевели его в транковый режим, позволив "пробрасывать" 10 и 17 виланы. Полная конфига на свиче выглядит так:
urk-5# sh run int po23
!
interface Port-channel23
switchport
switchport trunk encapsulation dot1q
switchport trunk allowed vlan 10,17
switchport mode trunk
no ip address
end
urk-5#sh run int g2/2
Building configuration...
Current configuration : 238 bytes
!
interface GigabitEthernet2/2
description krv:dev-3
switchport
switchport trunk allowed vlan 10,17
switchport mode trunk
no ip address
channel-protocol lacp
channel-group 23 mode active
end
urk-5#sh run int g2/16
Building configuration...
Current configuration : 239 bytes
!
interface GigabitEthernet2/16
description krv:dev-3
switchport
switchport trunk allowed vlan 10,17
switchport mode trunk
no ip address
channel-protocol lacp
channel-group 23 mode active
end
ukr-a05#
| Ну а теперь возьмемся за нашу FreeBSD.
Чтоб не мучатся каждый раз с созданием lagg-интерфейса, причешем всю эту кашку в
/etc/rc.conf, но для этого нам еще нужны два скрипта: /etc/rc.d/mklagg:
#!/bin/sh
#
# PROVIDE: mkvlan
# BEFORE: netif
# KEYWORD: nojail
. /etc/rc.subr
. /etc/network.subr
name="mklagg"
rcvar=`set_rcvar`
start_cmd="mklagg_start"
stop_cmd="mklagg_stop"
mklagg_start()
{
ifconfig em0 up
ifconfig em1 up
echo -n "creating link aggregated interfaces... "
set | grep "ifconfig_lagg[0-9]*=" | while read ln ; do
ifn=`expr "${ln}" : "ifconfig_\(lagg[0-9]*\)=.*"`
echo -n "${ifn} "
ifconfig $ifn create
done
echo
}
mklagg_stop()
{
}
load_rc_config $name
run_rc_command "$1"
| и /etc/rc.d/mkvlan:
#!/bin/sh
#
# PROVIDE: mkvlan
# BEFORE: netif
# KEYWORD: nojail
. /etc/rc.subr
. /etc/network.subr
name="mkvlan"
rcvar=`set_rcvar`
start_cmd="mkvlan_start"
stop_cmd="mkvlan_stop"
mkvlan_start()
{
echo -n "creating vlan interfaces... "
set | grep "ifconfig_vlan[0-9]*=" | while read ln ; do
ifn=`expr "${ln}" : "ifconfig_\(vlan[0-9]*\)=.*"`
echo -n "${ifn} "
ifconfig $ifn create
done
echo
}
mkvlan_stop()
{
}
load_rc_config $name
run_rc_command "$1"
| Файлы практически идентичны, и можно было бы их обьединить, но лучше пусть живут отдельно.
Эти скрипты используются в /etc/rc.conf при старте системы для создания lagg- и vlan-интерфейсов. Далее все просто:
mklagg_enable="YES" #это наш скрипт для создания lagg-интерфейсов
mkvlan_enable="YES" #а это vlan
hostname="netflow1.intellecom.ua"
cloned_interface="lagg0" # создаем lagg0
ifconfig_lagg0="laggproto lacp laggport em0 laggport em1 " # и определяем для него
# физицеские интерфейсы em0 и em1
cloned_interface="vlan17" # создаем два vlan-интерфейса
cloned_interface="vlan10" # для 10 и 17
ifconfig_vlan10="inet 10.10.10.18 netmask 255.255.255.0 vlan 10 vlandev lagg0"
# назначаем адреса, маски VLAN'ы и интерфейс, через
# который будут работать вланы
ifconfig_vlan17="inet 10.10.17.18 netmask 255.255.255.0 vlan 17 vlandev lagg0"
# вместо lagg0 мог бы быть em0 или em1
static_routes="static1 static2"
route_static1="-net 10.10.17.0 -netmask 255.255.255.0 -gateway 10.10.17.1"
route_static2="-net 10.10.10.0 -netmask 255.255.255.0 -gateway 10.10.10.1"
# устанавливаем маршруты в каждую из подсетей
defaultrouter="10.10.10.1" # и по ходу шлюз по умолчанию
linux_enable="YES"
sshd_enable="YES"
| После, для гарантии, перезагружаемся. Далее посмотрим, что у нас получилось.
Для наглядного тестированния, нужно нагрузить интерфесый из каждого VLAN'а. Я сделал следующим образом, установил nfs-сервер и подмонтировал по сети с устройств из соотведстующих VLAN'ов зашаренную папку. Потом просто копируя файлы, наблюдал systat'ом статитику на интерфейсах.
netflow1# ifconfig
em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWCSUM>
ether 00:14:22:b1:e3:06
inet6 fe80::214:22ff:feb1:e306%em0 prefixlen 64 scopeid 0x1
media: Ethernet autoselect (1000baseSX <full-duplex>)
status: active
lagg: laggdev lagg0
em1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWCSUM>
ether 00:14:22:b1:e3:06
inet6 fe80::214:22ff:feb1:e307%em1 prefixlen 64 scopeid 0x2
media: Ethernet autoselect (1000baseSX <full-duplex>)
status: active
lagg: laggdev lagg0
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
inet6 ::1 prefixlen 128
inet 127.0.0.1 netmask 0xff000000
lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWCSUM>
ether 00:14:22:b1:e3:06
media: Ethernet autoselect
status: active
laggproto lacp
laggport: em1 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
laggport: em0 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
vlan10: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 00:14:22:b1:e3:06
inet 10.10.10.18 netmask 0xffffff00 broadcast 10.10.10.255
media: Ethernet autoselect
status: active
vlan: 10 parent interface: lagg0
vlan17: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 00:14:22:b1:e3:06
inet 10.10.17.18 netmask 0xffffff00 broadcast 10.10.17.255
media: Ethernet autoselect
status: active
vlan: 17 parent interface: lagg0
netflow1#
| У нас получилось два виртуальных интрефейса для VLAN'ов 10 і 17, и один виртуальный интерфейс, выполняющий агрегацию. Ниже приведена статистика нагрузки при одновременном копировании с двух хостов, примонтированных по nfs.
/0 /1 /2 /3 /4 /5 /6 /7 /8 /9 /10
Load Average ||
Interface Traffic Peak Total
vlan17 in 16.040 MB/s 27.128 MB/s 3.475 GB
out 296.854 KB/s 503.104 KB/s 1.849 GB
vlan10 in 15.150 MB/s 17.765 MB/s 1.751 GB
out 280.022 KB/s 328.352 KB/s 2.191 GB
lagg0 in 31.279 MB/s 33.397 MB/s 1.280 GB
out 591.862 KB/s 631.911 KB/s 62.236 MB
lo0 in 0.000 KB/s 0.000 KB/s 103.969 KB
out 0.000 KB/s 0.000 KB/s 103.969 KB
em1 in 31.279 MB/s 33.397 MB/s 1.255 GB
out 295.836 KB/s 318.546 KB/s 2.035 GB
em0 in 0.023 KB/s 0.234 KB/s 35.756 MB
out 296.025 KB/s 315.969 KB/s 2.035 GB
| Это производилось копирование с устройств на наш тестируемый хост. Как видим, ситуация не совсем понятная,
все работает, но балансировка трафика на вход не проводиться. Попробуем скопировать с нашего устройства на удаленные.
/0 /1 /2 /3 /4 /5 /6 /7 /8 /9 /10
Load Average |
Interface Traffic Peak Total
vlan17 in 198.756 KB/s 27.128 MB/s 351.315 MB
out 8.186 MB/s 8.908 MB/s 2.366 GB
vlan10 in 147.494 KB/s 18.929 MB/s 806.246 MB
out 6.075 MB/s 10.464 MB/s 2.695 GB
lagg0 in 353.114 KB/s 36.143 MB/s 1.251 GB
out 14.301 MB/s 16.422 MB/s 1.095 GB
lo0 in 0.000 KB/s 0.000 KB/s 103.969 KB
out 0.000 KB/s 0.000 KB/s 103.969 KB
em1 in 353.154 KB/s 36.143 MB/s 1.226 GB
out 7.153 MB/s 8.211 MB/s 2.552 GB
em0 in 0.000 KB/s 0.982 KB/s 35.781 MB
out 7.147 MB/s 8.210 MB/s 2.552 GB
| Воот оно!! Получается свитч не производит балансировку нагрузки на вход агрегированный портов, но производит балансировку при выходном трафике. О причинах такой деятельности мне, пока что, приходиться догадываться и нужно будет провести еще ряд тестов. Но о сути настройки системы для такого типа задач я попытался здесь рассказать.
P.S. Остались нераскрытыми для меня два вопроса, первый - как такое сделать под 6.2; как заставить свич балансировать нагрузку на вход?
Пока что все!
размещено: 2007-10-29,
последнее обновление: 2007-10-29,
автор: s@sh@
|
|
|
|
2014-07-27, lissyara
gmirror
Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9
Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту
Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis
Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS
Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT
В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat
Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp
Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration
Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster
HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS
История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire
Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
2011-01-28, Капитан
Температура в серверной
Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
2011-01-21, m4rkell
Syslog server
Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
2011-01-07, lissyara
Canon/gphotofs
Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
2010-12-13, Al
IPSec
Описание принципов работы IPSEC и способов аутентификации.
2010-12-07, manefesto
FreeBSD on flash
Было принято решении переехать на USB Flash и установить минимальный джентельменский набор для работы своего роутера. Делаем =)
2010-12-05, Fomalhaut
root ZFS, GPT
Инструкция по установке FreeBSD с использованием в качестве таблицы разделов GPT и в качестве основной файловой системы - ZFS
2010-09-05, Cancer
Настройка аудиоплеера на ximp3
Цели: Простенький аудиоплеер, для того что бы тетя продавец в магазине утром пришла нажала на кнопку Power и заиграла в зале музыка, так же был доступ по сети, общая шара куда можно заливать музыку, к
2010-08-31, Cancer
Установка и настройка OpenVPN
На днях появилась задача - объединить головной офис и 3 филиала в одну сеть через интернет посредством OpenVPN, чтобы люди могли подключаться через RDP к базам 1С на серверах.
2010-08-25, manefesto
freebsd lvm
Использование linux_lvm для работы с LVM разделами из-под FreeBSD. Проблемы которые возники при монтирование lvm раздела
2010-04-30, gonzo111
proftpd file auth"a
Proftpd - квоты и авторизация из файлов, без использования базы данных и/или системных пользователей
2010-04-22, lissyara
tw_cli
Пошаговая инструкция по восстановлению RAID на контроллере 3ware, из которого выпал один диск. Настройка мониторинга состояния рейда и отчётов о его состоянии на email.
2010-04-14, fox
MySQL Master+Master
MySQL (Master Master) and (Master Slave) Как настроить репликацию…
2010-03-09, terminus
DNS zones
Краткий ликбез про управление DNS зонами. Примеры проведения делегирования прямых и обратных DNS зон.
2010-03-09, aspera
Squid+AD (group access)
Настройка прокси сервера SQUID с автроризацией пользователей в AD. Разделение пользователей на группы
2010-03-02, BlackCat
Шлюз: Часть 4
Настройка дополнительных сервисов: синхронизация времени (OpenNTPD), клиент DynDNS.org.
2010-03-01, BlackCat
Шлюз: Часть 3
Настройка DHCP и DNS серверов для работы внутри частной сети, c поддержкой внутренних (частных зон) DNS, а так же интеграция DHCP и DNS сервисов.
2010-03-01, BlackCat
Шлюз: Часть 2
Конфигурация МСЭ pf для проброса портов с изменением порта назначения и без, а так же поддержки активного режима FTP и ограничения максимального размера сегмента
2010-03-01, BlackCat
Шлюз: Часть 1
Быстрая настройка шлюза/маршрутизатора с установлением PPPoE-соединения, поддержкой NAT и DNS-forwarding.
2010-02-23, Morty
darkstat
Простая считалка траффика, со встроенным веб-сервером. Очень маленькая, может делать отчеты трафика по хостам, портам, протоколам, а также строить графики
2010-01-23, gonzo111
squid+sams+sqstat
Пилим squid и sams - примеры конфигов с объяснениями. Установка SqStat.
2009-12-19, schizoid
mpd5 + radius + ng_car + Abills
Настройка pppoe-сервера с биллинговой системой Abills и шейпером ng_car
2009-11-16, lissyara
UFS->ZFS
Удалённая миграция с UFS на ZFS. Загрузка с раздела zfs. Настройка для работы с малым количеством памяти под архитектурой i386.
2009-11-13, gx_ua
fusefs-ntfs
Установка, настройка и использование fusefs-ntfs, драйвер NTFS, предназанченного для монтирования NTFS разделов под FreeBSD
2009-11-12, Morty
LiveCD
Создание собственного LiveCD с необходимыми вам изменениями, автоматизирование данного процесса, а так же вариант скоростной сборки СД.
2009-09-27, lissyara
Samba как PDC
Контроллер домена - аналог M$ NT4 домена под самбой, без использования LDAP и прочей хиромантии. Просто и быстро =)
2009-08-30, terminus
ipfw nat
Подробное руководство по ipfw nat, сложные случаи конфигурации.
2009-08-24, levantuev
HotSpot
Установка Hotspot системы в общественное заведение.
2009-08-18, lissyara
diskless
Создание бездисковых терминалов под управлением FreeBSD - с загрузкой по сети. Используются для старта rdesktop и подключения к виндовому серверу терминалов.
2009-07-29, BAV_Lug
Видеонаблюдение
Настройка бюджетного варианта видеонаблюдения на удаленном объекте
2009-07-22, Cancer
OpenLDAP адресная книга
Настройка и создание адресной книги на базе OpenLDAP + phpLDAPadmin
2009-06-30, SergeySL
AimSniff
Руководство по созданию системы мониторинга ICQ-переписки на базе AimSniff, использующей базу данных MySQL для хранения и Web-интерфейс WAS (Web Aim Sniff) для просмотра перехваченных сообщений
2009-06-25, atrium
Управление правами доступа
Полномочия пользователей и файлов, принадлежащих им, формирует концепцию ОС UNIX.
2009-06-16, DNK
Exim+PgSQL
Установка почтовой системы exim+pgsql на FreeBSD 7.1
2009-05-30, mvalery
HDD(mbr) -> HDD(gpt)
Как разбить диск размером более 2TB на разделы, сделать загрузочным, а затем перенести на него информацию с рабочей системы — донора.
2009-05-22, Cancer
SendXMPP
Отправка сообщений на Джаббер сервер по средствам SendXMPP
2009-05-11, Raven2000
Network UPS Tools
Network UPS Tools представляет собой набор программ, которые обеспечивают общий
интерфейс для мониторинга и администрирование UPS оборудования.
2009-04-29, m0ps
IPSEC over GRE with RIP
Пример IPSEC over GRE и динамическим роутингом (RIP), с ADSL в качестве последней мили на оборудовании Cisco.
2009-04-24, WhiteBear777
qemu network
Появилась необходимость поставить на БСД эмулятор(qemu) и настроить в качестве гостевой ОС Windows XP, предоставив ей выход в локалку и в сеть internet...
2009-04-22, vp
freebsd + huawei 162 gsm modem
В статье описывается простой способ подключения модема huawei 162 к freebsd + первичная настройка smstools
2009-04-12, mvalery
Мониторинг RAID
Мониторинг из командной строки RAID компаний AMCC 3ware, HighPoint, Dell (Perc 5/i и PERC 6/i) и LSI (MegaRAID SAS 8408E и SAS1078)
2009-04-09, texnotronic
RAID1 via LAN
Функциональности DRBD во FreeBSD можно добиться примонтировав блочное устройство по сети при помощи GEOM Gate (ggate) и добавив его в зеркало с локальным диском средствами gmirror.
2009-04-03, Raven2000
Оптимизация хоста для CMS
В последнее время на старый и не очень быстрый ПК (Celeron 800 RAM 256) мною было навешано с десяток сайтов и некоторые были из серии тяжелых CMS. И так нам дано FreeBSD 7.1 и ~10 сайтов/CMS.
2009-04-01, atrium
VSFTPD + AD && MySQL
Настройка самого безопасного сервера FTP - vsftpd.
2009-03-31, Dron
Peoplenet + C-motech (3G)
Описание подключения к сети Peoplenet посредством 3G модема С-motech CCu-650U на FreeBSD
2009-03-25, lissyara
mod_auth_external
mod_auth_external - авторизация пользователей в apache c помощью внешней программы - например, системных пользователей.
2009-03-24, gx_ua
Lightsquid
Частично lightsquid может заменить sams: быстрая и простая инсталляция, быстрый парсер, cgi скрипт для динамической генерации отчета, нет привязки к БД, различные графические отчеты, мультиязычный инт
2009-03-18, LHC
Установка Zabbix-1.6
Установка и первоначальная настройка системы мониторинга Zabbix (версия 1.6)
2009-03-16, Cancer
Принт-Сервер Samba+LPD & AD
Простейшая настройка Принт-Сервера на FreeBSD используя Samba+LPD & AD
2009-03-04, Mad_caterpillar
ipsec_vpnc
Настройка VPN IPSec концентратора на FreeBSD 6.2 для клиента cisco с использованием ipsec-tools и авторизацией в активной директории
2009-02-18, Andy
Free-SA
Программа анализирует log файлы Squid'а и формирует по ним отчет.
2009-02-02, Cancer
Openfire Jabber Server
Установка Jabber сервера на примере Openfire
2009-01-28, Cancer
mpd5 + сжатие и шифрование
Установка VPN сервера mpd5 + сжатие и шифрование
|
Комментарии пользователей [30 шт.]