День добрый.
Вопрос не только и не столько по линуксу, но надеюсь мне кто-нибудь поможет.
Дано: Linux сервер в качестве iSCSI таргета (SCST), свищЪ цыско 3750X, VMWare ESXi 5.0 в качестве инициатора iSCSI:
Схема простая (на деле инициаторов больше, но для простоты один):
[ LINUX ] <--- 4 x 1G bonding ---> [ Catalyst 3750-X ] <--- 4 x 1G bonding ---> [ ESXi ]
Со стороны инициатора iSCSI-таргет видится как раз через эти 4 адреса и настроен Multipath I/O для аггрегации каналов.
Проблема: ускорение работы iSCSI получаю только при записи на таргет, а при чтении выше 110MB/s никак получить не могу:
root@debian-service:/# dd of=/dev/sdb if=/dev/zero bs=16M count=1024
1024+0 records in
1024+0 records out
17179869184 bytes (17 GB) copied, 68.1552 s, 252 MB/s
root@debian-service:/# echo 3 > /proc/sys/vm/drop_caches
root@debian-service:/# dd if=/dev/sdb of=/dev/null bs=16M count=1024
1024+0 records in
1024+0 records out
17179869184 bytes (17 GB) copied, 156.66 s, 110 MB/s
При этом траффик равномерно распределяется между интерфейсами как на линуховом таргете, так и на цыске, которая разбрасывает пакеты в порты, к которым подключен ESXi:
stack.3750x#sh int gi1/0/16 | i packets output
3999028 packets output, 6024197158 bytes, 0 underruns
stack.3750x#sh int gi2/0/16 | i packets output
3999193 packets output, 6024212765 bytes, 0 underruns
stack.3750x#sh int gi1/0/10 | i packets output
4017750 packets output, 6038267108 bytes, 0 underruns
stack.3750x#sh int gi2/0/10 | i packets output
3999012 packets output, 6024197456 bytes, 0 underruns
Т.е. алгоритм балансировки вроде как работает, но почему-то в одном направлении всё-таки появляется затык в 1Гбит/cек.
Посоветуйте в какую сторону глядеть. На стороне таргета затыков нет, запись и чтение локально идут с одинаковой скоростью.