Во-первых, я знаю, что эта тема легко становится субъективной, но я стараюсь этого избегать, так как в море плохих ответов должен быть хотя бы один хороший ответ, который трудно найти.
На первый взгляд мой вопрос кажется простым; Как вы храните диски виртуальных машин на жестких дисках, следя за тем, чтобы целостность данных не была нарушена, а производительность не была ужасной.
Но на самом деле это сложнее, чем кажется;
Значит, это мат? У вас не может быть полной целостности данных, кроме упрощенных настроек RAID, которые имеют другие проблемы, такие как отверстия для записи (RAID5) и, как правило, очень плохая обработка испорченный файлы, где неясно, какая из двух копий является правильной. Проблемы, которых можно избежать с помощью систем более высокого уровня, которые проверяют контрольную сумму и целостность файлов перед их возвратом в операционную систему или пользователю.
Единственный вариант, о котором я могу думать, - это использовать BTRFS / ZFS внутри виртуальных машин, а не на хосте, и планировать моментальные снимки и резервное копирование соответствующим образом на каждой машине, хотя это намного сложнее, чем делать это на хосте.
Кто-нибудь знает другой способ достичь моей цели?
Давайте начнем с простого свидетельства: функции большей отказоустойчивости и целостности обычно приводят к снижению производительности. Отсюда мы можем сделать еще несколько соображений:
ZFS имеет намного лучшую производительность, чем BTRFS при использовании в качестве файловой системы для поддержки ВМ, по крайней мере, на хостах RHEL / CentOS. Хотя это правда, что на чисто механическом жестком диске он остается медленнее, чем более традиционные файловые системы, использование даже относительно небольшого SSD в качестве устройства SLOG заметно увеличит его производительность. Другими словами, виртуальные машины на ZFS - вполне разумный вариант использования;
даже при использовании традиционных файловых систем без полной контрольной суммы данных, таких как XFS и EXT4, вероятность повреждения данных в работоспособной системе очень мала. Рейтинги BER / UBER / URE часто приводятся вне контекста и без учета регулярных чисток;
аппаратные карты RAID5 / 6 с кешем, защищенным от потери мощности являются невосприимчивый написать отверстие. Более того, RAID6 также может использоваться как форма контрольной суммы данных (примечание: это зависит от конкретного контроллера / реализации). Поэтому разумным решением является массив RAID6 с кешем обратной записи подходящего размера;
наконец, как было предложено, вы можете использовать ZFS внутри ВМ. Для такой настройки я бы экспортировал необработанные тома LVM для гостей, форматируя контейнер данных как ZFS. Однако я бы сделал снимки самих томов LVM, а не внутри отдельных гостевых виртуальных машин. Для лучшей производительности я бы использовал RAID10 на хосте (в качестве основы для LVM)