
Я хочу создать файловый сервер/NAS, используя BTRFS для защиты данных (от BitRoot), но я хотел бы использовать свой существующий сервер KVM/QEMU (Debian с BTRFS RAID1) и создать для этой цели виртуальную машину.
Если я создам виртуальную машину и сохраню данные в файловой системе ext4, сможет ли контрольная сумма btrfs на хост-сервере обнаружить повреждение данных на виртуальной машине?
--------------------
| KVM server |
| btrfs - raid1 |
| ----------- |
| | VM-ext4 | |
| ----------- |
|------------------|
Если предыдущий ответ «нет», придется ли мне создавать виртуальную машину с файловой системой btrfs?
В этом случае, чтобы сохранить функцию «самовосстановления» Btrfs, мне пришлось бы создать как минимум 2 виртуальных диска для Btrfs в raid1.
---------------------
| KVM server |
| btrfs - raid1 |
| ------------ |
| | VM-btrfs | |
| | 2 x vda | |
| ------------ |
|-------------------|
Но таким образом я бы потратил много места впустую... raid1 на хост-сервере плюс raid1 на виртуальной машине.
Или, возможно, лучшим решением будет реализовать файловый сервер непосредственно на хост-сервере (хотя я бы предпочел сохранить некоторое разделение между этими двумя ролями)?
обновление 1
Хотя я отдаю предпочтение btrfs, мой главный вопрос касается полезности btrfs/zfs для обнаружения и исправления скрытых повреждений на дисках VM. Как эти файловые системы могут отличить скрытые повреждения от обычных записей на виртуальном диске?
обновление 2
Погуглив еще немного, я смог найти только немного информации по этому поводувопрос от serverfault.
Согласно некоторым комментариям, виртуальная гостевая система также будет подвержена риску, если не будет реализована более сложная файловая система (вероятно, гостевая файловая система raid1 внутри файловой системы хоста raid1).
Итак, моя идея сейчас такова:
- настроить файловый сервер на сервере-хосте kvm
- хранить критически важные данные в безопасности на файловом сервере (который уже использует btrfs) и делиться ими с виртуальными машинами через NFS
- отключить COW для папки образа диска виртуальной машины
- создать моментальные снимки виртуальных машин kvm и сделать резервную копию их файлов конфигурации на общих ресурсах NFS
Это разумное решение или я забыл какую-то важную деталь?
решение1
Я в основном основываюсь на этомсообщение о сбое сервера но я попробую ответить сам.
Если я создам виртуальную машину и сохраню данные в файловой системе ext4, сможет ли контрольная сумма btrfs на хост-сервере обнаружить повреждение данных на виртуальной машине?
Нет. Насколько я понял, хост-система не может обнаружить повреждение данных в файловой системе виртуальной машины.
Если предыдущий ответ «нет», придется ли мне создавать виртуальную машину с файловой системой btrfs?
Да.
Или, возможно, лучшим решением будет реализовать файловый сервер непосредственно на хост-сервере (хотя я бы предпочел сохранить некоторое разделение между этими двумя ролями)?
В моем случае решение будет таким:
- настроить файловый сервер на сервере-хосте kvm
- хранить критически важные данные в безопасности на файловом сервере (который уже использует btrfs) и делиться ими с виртуальными машинами через NFS
- отключить COW для папки образа диска виртуальной машины
- создать моментальные снимки виртуальных машин kvm и сделать резервную копию их файлов конфигурации на общих ресурсах NFS