Quiero construir un servidor de archivos/NAS mientras uso btrfs para proteger los datos (de bitrot), pero me gustaría usar mi servidor KVM/QEMU existente (debian con btrfs raid1) y crear una máquina virtual para este propósito.
Si creo la VM y almaceno los datos en un sistema de archivos ext4, ¿la suma de verificación btrfs en el servidor host detectaría corrupción de datos en la VM?
--------------------
| KVM server |
| btrfs - raid1 |
| ----------- |
| | VM-ext4 | |
| ----------- |
|------------------|
Si la respuesta anterior es no, ¿tendría que crear la VM con btrfs como sistema de archivos también?
En este caso, para mantener la función de "autocuración" de btrfs, tendría que crear al menos 2 discos virtuales para tener btrfs en raid1.
---------------------
| KVM server |
| btrfs - raid1 |
| ------------ |
| | VM-btrfs | |
| | 2 x vda | |
| ------------ |
|-------------------|
Pero de esta manera estaría desperdiciando mucho espacio... raid1 en el servidor host más raid1 en VM.
¿O quizás la mejor solución sea implementar el servidor de archivos directamente en el servidor host (aunque preferiría mantener cierta separación entre estas dos funciones)?
actualización 1
Aunque tengo preferencia por btrfs, mi pregunta principal es sobre la utilidad de btrfs/zfs para detectar y corregir daños silenciosos en discos de VM. ¿Cómo pueden estos sistemas de archivos distinguir la corrupción silenciosa de las escrituras normales en el disco virtual?
actualización 2
Después de buscar en Google un poco más sólo pude encontrar más información sobre esto.pregunta de serverfault.
Según algunos de los comentarios, el sistema invitado virtual también estaría en riesgo a menos que se implementara un sistema de archivos más complejo (probablemente un sistema de archivos invitado raid1 dentro de un sistema de archivos host raid1).
Entonces mi idea ahora es esta:
- configurar el servidor de archivos en el servidor host kvm
- mantenga los datos críticos seguros en el servidor de archivos (que ya usa btrfs) y compártalos con las máquinas virtuales a través de NFS
- deshabilite COW para la carpeta de imagen de disco de VM
- crear instantáneas de kvm de las máquinas virtuales y hacer una copia de seguridad de sus archivos de configuración en los recursos compartidos NFS
¿Es esta una solución razonable o me estoy olvidando de algún detalle importante?
Respuesta1
Me baso principalmente en esopublicación de falla del servidor pero intentaré responderme a mí mismo.
Si creo la VM y almaceno los datos en un sistema de archivos ext4, ¿la suma de verificación btrfs en el servidor host detectaría corrupción de datos en la VM?
No. Por lo que deduje, no hay forma de que el sistema host pueda detectar daños en los datos en el sistema de archivos de la VM.
Si la respuesta anterior es no, ¿tendría que crear la VM con btrfs como sistema de archivos también?
Sí.
¿O quizás la mejor solución sea implementar el servidor de archivos directamente en el servidor host (aunque preferiría mantener cierta separación entre estas dos funciones)?
En mi caso la solución será:
- configurar el servidor de archivos en el servidor host kvm
- mantenga los datos críticos seguros en el servidor de archivos (que ya usa btrfs) y compártalos con las máquinas virtuales a través de NFS
- deshabilite COW para la carpeta de imagen de disco de VM
- crear instantáneas de kvm de las máquinas virtuales y hacer una copia de seguridad de sus archivos de configuración en los recursos compartidos NFS


