1

Я хочу создать файловый сервер /NAS, используя btrfs для защиты данных (от bitrot), но я бы хотел использовать свой существующий сервер 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 в обнаружении и исправлении тихого повреждения на дисках виртуальных машин. Как эти файловые системы могут отличить тихое повреждение от обычной записи на виртуальный диск?

обновление 2
Еще немного погуглив, я смог найти только дополнительную информацию по этому вопросу из serverfault.
Согласно некоторым комментариям, виртуальная гостевая система также будет подвержена риску, если не будет реализована более сложная файловая система (вероятно, гостевая файловая система raid1 внутри файловой системы хоста raid1).

Итак, моя идея сейчас заключается в следующем:

  • настроить файловый сервер на хост-сервере kvm
  • храните важные данные в безопасности на файловом сервере (который уже использует btrfs) и делитесь им с виртуальными машинами через NFS
  • отключить COW для папки образа диска виртуальной машины
  • создавать моментальные снимки kvm виртуальных машин и создавать резервные копии их файлов конфигурации на общих ресурсах NFS

Это разумное решение или я забыл некоторые важные детали?

1 ответ1

1

Я в основном опираюсь на этот пост сервера, но постараюсь ответить сам.

Если я создам виртуальную машину и сохраню данные в файловой системе ext4, будет ли контрольная сумма btrfs на хост-сервере обнаруживать повреждение данных на виртуальной машине?

Нет. Из того, что я понял, хост-система не может обнаружить повреждение данных в файловой системе виртуальной машины.

Если предыдущий ответ «нет», нужно ли мне создавать виртуальную машину с btrfs в качестве файловой системы?

Да.

Или, возможно, лучшее решение - внедрить файловый сервер непосредственно на хост-сервере (хотя я бы предпочел сохранить некоторое разделение между этими двумя ролями)?

В моем случае решение будет:

  • настроить файловый сервер на хост-сервере kvm
  • храните важные данные в безопасности на файловом сервере (который уже использует btrfs) и делитесь им с виртуальными машинами через NFS
  • отключить COW для папки образа диска виртуальной машины
  • создавать моментальные снимки kvm виртуальных машин и создавать резервные копии их файлов конфигурации на общих ресурсах NFS

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .