Skip navigation
Deshifrator Hot Shot

IP-HASH vs LBT

Posted by Deshifrator May 23, 2011

Источник: frankdenneman.nl


Конфигурирование виртуального свича (vSwitch) и выбор политики для балансировки нагрузки (load-balancing policy) являются ключевыми моментами при проектировании виртуальной инфраструктуры. Выбор политики балансировки нагрузки может оказать большое влияние на производительность виртуальной машины и может ввести дополнительные требования для физической сети.


Все больше и больше компаний используют IP-hash для балансировки нагрузки. Главный аргумент - это то, что увеличивается пропускная способность и улучшается избыточность. И, даже если в организации активно используется распределенный свич (dvSwitch), большинство организаций по-прежнему использует IP-hash, при этом игнорируя новую политику балансировки нагрузки "Route based on physical NIC load", доступную в распределенных свичах dvSwitch.

Route based on physical NIC Load - это новая политика балансировки нагрузки (load-balancing policy), которая появилась в VMware vSphere 4.1 и доступна только для распределенных коммутаторов dvSwitch. Route based on physical NIC Load, известная также как Load Based Teaming (LBT), принимает во внимание сетевую  нагрузку, создаваемую виртуальной машиной во избежание затора (congestion); пытается  динамически перераспределить и сбалансировать нагрузку путем ремаппинга виртуального порта (virtual switch port) на другую, менее загруженную физическую сетевую карту.

ip-hash-3.png

В статье "IP-HASH VERSUS LBT", представленной в блоге frankdenneman.nl, детально описывается принцип работы IP-hash и LBT (Route based on physical NIC load), их различия, плюсы и минусы. Чуть ниже приведены рекомендации, взятые из выше приведенной статьи (мой свободный перевод):

При использовании на предприятии распределенных коммутаторов (dvSwitch), рекомендуется использовать Load-Based teaming (LBT), а не IP-hash. Для LBT не нужно каким-либо специальным образом конфигурировать физическую сеть, что снижает общий уровень сложности и, плюс к этому, LBT может приспосабливаться к колебаниям нагрузки (чего IP-hash просто не может).


P.S.

Deshifrator Hot Shot

BusyBox: Command Help

Posted by Deshifrator May 23, 2011

Как мы все знаем, в гипервизоре VMware ESXi нет Service Console. Вместо неё у ESXi есть другая, урезанная, консоль на основе BusyBox.

BusyBox is a software application that provides many standard Unix tools, much like the larger (but more capable) GNU Core Utilities. BusyBox is designed to be a small executable for use with the Linux kernel, which makes it ideal for use with embedded devices. (en.wikipedia.org)

Чуть ниже приведены команды (апплеты), которые доступны в оригинальном BusyBox:

[, [[, acpid, addgroup, adduser, adjtimex, ar, arp, arping, ash,
awk, basename, beep, blkid, brctl, bunzip2, bzcat, bzip2, cal, cat,
catv, chat, chattr, chgrp, chmod, chown, chpasswd, chpst, chroot,
chrt, chvt, cksum, clear, cmp, comm, cp, cpio, crond, crontab,
cryptpw, cut, date, dc, dd, deallocvt, delgroup, deluser, depmod,
devmem, df, dhcprelay, diff, dirname, dmesg, dnsd, dnsdomainname,
dos2unix, dpkg, du, dumpkmap, dumpleases, echo, ed, egrep, eject,
env, envdir, envuidgid, expand, expr, fakeidentd, false, fbset,
fbsplash, fdflush, fdformat, fdisk, fgrep, find, findfs, flash_lock,
flash_unlock, fold, free, freeramdisk, fsck, fsck.minix, fsync,
ftpd, ftpget, ftpput, fuser, getopt, getty, grep, gunzip, gzip, hd,
hdparm, head, hexdump, hostid, hostname, httpd, hush, hwclock, id,
ifconfig, ifdown, ifenslave, ifplugd, ifup, inetd, init, inotifyd,
insmod, install, ionice, ip, ipaddr, ipcalc, ipcrm, ipcs, iplink,
iproute, iprule, iptunnel, kbd_mode, kill, killall, killall5, klogd,
last, length, less, linux32, linux64, linuxrc, ln, loadfont,
loadkmap, logger, login, logname, logread, losetup, lpd, lpq, lpr,
ls, lsattr, lsmod, lzmacat, lzop, lzopcat, makemime, man, md5sum,
mdev, mesg, microcom, mkdir, mkdosfs, mkfifo, mkfs.minix, mkfs.vfat,
mknod, mkpasswd, mkswap, mktemp, modprobe, more, mount, mountpoint,
mt, mv, nameif, nc, netstat, nice, nmeter, nohup, nslookup, od,
openvt, passwd, patch, pgrep, pidof, ping, ping6, pipe_progress,
pivot_root, pkill, popmaildir, printenv, printf, ps, pscan, pwd,
raidautorun, rdate, rdev, readlink, readprofile, realpath,
reformime, renice, reset, resize, rm, rmdir, rmmod, route, rpm,
rpm2cpio, rtcwake, run-parts, runlevel, runsv, runsvdir, rx, script,
scriptreplay, sed, sendmail, seq, setarch, setconsole, setfont,
setkeycodes, setlogcons, setsid, setuidgid, sh, sha1sum, sha256sum,
sha512sum, showkey, slattach, sleep, softlimit, sort, split,
start-stop-daemon, stat, strings, stty, su, sulogin, sum, sv,
svlogd, swapoff, swapon, switch_root, sync, sysctl, syslogd, tac,
tail, tar, taskset, tcpsvd, tee, telnet, telnetd, test, tftp, tftpd,
time, timeout, top, touch, tr, traceroute, true, tty, ttysize,
udhcpc, udhcpd, udpsvd, umount, uname, uncompress, unexpand, uniq,
unix2dos, unlzma, unlzop, unzip, uptime, usleep, uudecode, uuencode,
vconfig, vi, vlock, volname, watch, watchdog, wc, wget, which, who,
whoami, xargs, yes, zcat, zcip

Но не все выше приведенные команды (апплеты) будут выполняться в VMware ESXi. Дело в том, что в ESXi присутствует более урезанная версия BusyBox. Ниже приведен список апплетов, которые доступны в ESXi редакции BusyBox:

[, [[, addgroup, adduser, ash, awk, basename, cat, chgrp, chmod,
chown, chroot, chvt, cksum, clear, cp, crond, cut, date, dd, 
delgroup, deluser, df, diff, dirname, du, echo, egrep, eject, env, 
expr, false, fdisk, fgrep, find, ftpget, ftpput, getty, grep, 
groupadd, groupdel, groups, gunzip, gzip, halt, head, hexdump, 
hostname, id, inetd, init, kill, ln, loadkmap, lockfile, logger, 
login, ls, md5sum, mkdir, mkfifo, mknod, mktemp, more, mount, mv, 
nohup, nslookup, od, passwd, poweroff, printf, readlink, reboot, 
reset, resize, rm, rmdir, sed, seq, setsid, sh, sha1sum, sleep, 
sort, stat, stty, su, sum, sync, syslogd, tail, tar, tee, test, 
time, touch, true, umount, uname, uniq, uptime, useradd, userdel,
usermod, usleep, vi, watch, wc, wget, which, whoami, xargs, zcat

Описание выше приведенных команд (всевозможных ключей и аргументов), можно посмотреть на официальном сайте проекта BusyBox в разделе Command Help.



P.S.

При написании данного поста понадобилось мне еще раз взглянуть на то, как организована справка в BusyBox. Для этого я решил выполнить в ESXi первую попавшуюся на глаза команду (из стандартного набора команд, приведенных чуть выше). Этой командой оказалась cksum. Еще раз повторю, что данную команду я выбрал совершенно случайно.

cksum — рассчитывает количество байт и контрольную сумму (CRC) в файле по стандарту ISO/IEC 8802-3:1989. (ru.wikipedia.org)

Так вот, чтобы увидеть справку по данной программе, я по привычке добавил ключ "-h" в конце команды и нажал Enter:

cksum.jpg

И вместо справки я опять получил Segmentation fault. Почему опять, да потому что совсем недавно я уже описывал другую ситуацию, при которой у меня так же выскакивала ошибка сегментации (Segmentation fault).



P.P.S.