Граждане, игрался тут давеча с софтварными iSCSI таргетами.
Инициатором была vSphere 5.1.a, конечно же.
ВМ был дан диск с этой iSCSI датасторы размером 10 гигабайт, Eager Zeroed. Для IOMeter подавался как RAW.
Сразу скажу, что в IOMeter тест гонялся один и тот же, на 4кб блоки, случайное чтение 75%, случайная запись 25%.
Итак, скорость исходного диска в IOPS (его базовая физическая скорость, померяная на машине, которая потом будет раздавать по iSCSI):
SSD RevoDrive 3 480 GB: 15.000 IOPS
ASR 5805Z + 8 SAS 600 10k RAID5EE (аналог RAID6 от Adaptec): 11.500 IOPS
Теперь раздаём через софтовый iSCSI м смотрим IOPS на виртуалке:
Microsoft iSCSI target 3.3 + SSD RevoDrive 3 480 GB = 2900 IOPS (раздаёт аппаратная мощная машинка)
StarWind iSCSI 6.0.522 + SSD RevoDrive 3 480 GB = 3500 IOPS (раздаёт аппаратная мощная машинка)
FreeNAS iSCSI 8.3 + VMDK на ASR 5805Z + 8 SAS 600 10k RAID5EE = 2400 IOPS (FreeNAS = мощная виртуальная машина)
Последний тест дал скорость последовательной записи в 500 мегабайт в секунду (запись 10ГБ)! (при параллельной работе 44 ВМ на этой датасторе).
Теперь вопрос: по какой причине ТАК СИЛЬНО падают IOPS в случае раздачи аппаратных мощностей по софтварному iSCSI? До кучи латенси больше аппаратного (исходного) раз в 10.
Загрузка CPU всех участников не превышает 10%, загрузка сети не превышает 30%. Свободной оперативки много.
Кто виноват? Протокол? Реализация? Чья сторона? Таргета или инициатора?
P.S. Попробовал раздать сторадж по NFS, IOPS чуть подросли:
FreeNAS NFS8.3 + VMDK на ASR 5805Z + 8 SAS 600 10k RAID5EE = 2600 IOPS
FreeNAS ISCSI 8.3 + VMDK на ASR 5805Z + 8 SAS 600 10k RAID5EE (диск как физикал RDM) = 2350 IOPS