Pull to refresh

Comments 11

> Как наиболее доступные и распространенные, мы решили взять локальные хранилища данных LVM,
Если у вас ~10 ВМ, то может быть. А если ~300? Однозначно нет. На больших инсталляциях используется iSCSI или NFS, что позволяет мигрировать диски не останавливая ВМ.

А вы побывали вариант с xfs вместо ext4? Ограничение в 16TB делает ext4 непригодным для хранилища.
Ограничение в 16Tb в частности для RHEL6 скорее условное (и больше связано с тем, что RedHat не гарантирует полной стабильности при таком подходе) и ОС отлично грузится и будет работать даже на диске в 30Tb, но вот стандартный mkfs.ext4 файловую систему создать не сможет, нужно использовать более новую его версию, например, собранную из исходного кода.
В статье рассматриваются локальные хранилища, которые находятся на вычислительных узлах. И на одном узле обычно не поднимают 300 виртуальных машин. Выгоднее использовать серверы, на которых около 100 виртуальных машин, но при этом таких узлов много. Ваш вариант с xfs относится к сетевым хранилищам, которые в данной статье не рассматриваются. У нас есть мысль сравнить сетевые хранилища, но под это необходимо дорогое и специфическое оборудование, которого для тестов у нас пока нет.
XFS это сетевое хранилище?
Вы бы хоть Google вначале спросили.
Вы меня не так поняли. Я говорил о том, что нет смысла использовать xfs на локальных хранилища.
От чего сделаны такие выводы?
Пожалуй, я не прав. Наши админы уже где-то на 100 нодах используют xfs.
Хорошо что наши админы хабр не читают. Это заявление озадачило бы их.
Не пробовали, но скорость работы у xfs, скорее всего, будет такая-же как и у ext4.
Если скорость на виртуалке выше скорости железа, значит где-то writeback есть. Это плохо.

А вы не пробовали измерять производительность файловой системы, размещенной на этом устройстве (например с помощью 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, но большой разницы не заметил)

Sign up to leave a comment.