Comments 11
Если у вас ~10 ВМ, то может быть. А если ~300? Однозначно нет. На больших инсталляциях используется iSCSI или NFS, что позволяет мигрировать диски не останавливая ВМ.
А вы побывали вариант с xfs вместо ext4? Ограничение в 16TB делает ext4 непригодным для хранилища.
А вы не пробовали измерять производительность файловой системы, размещенной на этом устройстве (например с помощью sysbench)? Возможно я чего-то не понимаю, но у меня при экспериментах с пробрасыванием LVM-тома в виртуалку с virtio получалось следующее:
- если мерить с помощью fio непосредственно производительность блочного устройства, то все как в статье — производительность на хосте и внутри виртуалки совпадает
- если мерить с помощью sysbench производительность файловой системы (ext4) созданной на этом устройстве, то производительность в виртуалке проседает в 2-3 раза по сравнению с хостом
- устройство реально одно и то же, просто по очереди монтировал либо на хосте, либо в виртуалке
- тут я подумал — наверное где-то по дороге генерятся лишние IOPS, но если посмотреть на вывод iostat во время теста изнутри виртуалки, то IOPS и bandwidth в гостевой системе и на хосте совпадают, но они существенно ниже, чем когда тест идет непосредственно на хосте
- зато во время теста изнутри виртуалки видно довольно большой (~30%) iowait, в это же время на хосте iowait почти нулевой, зато есть заметная нагрузка на проц (~20% system)
В какой-то момент я подумал на слабый проц (Celeron N3160), но на ноуте с Core i7 ситуация практически та же. И вот вопрос — откуда может быть такая просадка при работе с реальной файловой системой, и можно ли с этим что-то сделать, или это вообще нормальная ситуация? Но тогда почему синтетический тест непосредственно блочного устройства показывает практически нативную производительность?
UPD Ну и разумеется параметры у устройства io='native' cache='none' (пробовал еще directsync, но большой разницы не заметил)
VMmanager: Сравнение производительности локальных хранилищ