El saldo de btrfs falla debido a un error de enospc

El saldo de btrfs falla debido a un error de enospc

[tomado de stackoverflow ya que pensé que probablemente era el lugar equivocado]

Actualmente estoy probando btrfs como posible reemplazo de mi NAS que ejecuta ZFS. Creé 4 dispositivos, de 20 GB cada uno, y creé un sistema de archivos btrfs usando la balance -dconvert=raid5opción. Luego comencé a llenar el FS usando archivos de 5GB (ahora tengo 9). Después de crear estos archivos (usando ddfrom dev/zero) comencé balance btrfs balance start. Después de un tiempo arroja el error error during balancing '.' - No space left on device. El syslog muestra este error: btrfs: 4 enospc errors during balance.

Ejecutar el saldo nuevamente con -dusage=0finalización exitosa (como se esperaba) pero balance -dusage=90o simplemente balancesin filtros no funciona. ¿Por qué me preocupo tanto por esto? Probé lo que sucede cuando se extrae un disco duro de un volumen raid5 btrfs para ver si no se producen daños en los datos. Después de quitar el disco duro quería agregar otro y eliminar el que fallaba. Este proceso también falló debido a errores de enospc.

Información adicional a continuación:

(el punto de montaje para el FS es /mnt/raid/)

linux:/mnt/raid # btrfs filesystem show
Label: 'test_raid5'  uuid: 8b137115-974e-4f91-a243-ec6239c34761
    Total devices 4 FS bytes used 45.06GiB
    devid    4 size 20.00GiB used 16.03GiB path /dev/sde
    devid    3 size 20.00GiB used 17.00GiB path /dev/sdd
    devid    2 size 20.00GiB used 17.00GiB path /dev/sdc
    devid    1 size 20.00GiB used 16.04GiB path /dev/sdb

Label: none  uuid: 69c33622-1c80-4dc3-9c01-24c27def730c
    Total devices 1 FS bytes used 1.04GiB
    devid    1 size 18.92GiB used 3.04GiB path /dev/sda2

linux:/mnt/raid # btrfs filesystem df /mnt/raid/
Data, RAID5: total=48.00GiB, used=45.01GiB
System, RAID1: total=32.00MiB, used=12.00KiB
System: total=4.00MiB, used=0.00
Metadata, RAID1: total=1.00GiB, used=53.69MiB


linux:/mnt/raid # btrfs version
Btrfs v0.20-rc1+20130701


linux:/mnt/raid # uname -a
Linux linux 3.11.6-4-default #1 SMP Wed Oct 30 18:04:56 UTC 2013 (e6d4a27) x86_64 x86_64 x86_64 GNU/Linux


linux:/mnt/raid # cat /etc/os-release
NAME=openSUSE
VERSION="13.1 (Bottle)"
VERSION_ID="13.1"
PRETTY_NAME="openSUSE 13.1 (Bottle) (x86_64)"
ID=opensuse
ANSI_COLOR="0;32"
CPE_NAME="cpe:/o:opensuse:opensuse:13.1"
BUG_REPORT_URL="https://bugs.opensuse.org"
HOME_URL="https://opensuse.org/"
ID_LIKE="suse"

No puedo creer que tenga que agregar aún más espacio a esto solo para poder reequilibrar mi volumen btrfs. ¿Alguna idea sobre esto?

Respuesta1

Decidí tomar el camino de btrfs en lugar de zfs para mi "NAS". Probé ambos antes, y debo admitir que encontré a ZFS mucho mejor documentado, realmente me sedujo su interfaz de línea de comandos, por lo que para mí ZFS fue la "mejor" opción.

Pero hubo un obstáculo: si tienes 3 discos duros de 2 TB para ZFS en RAID-5 y quieres aumentarlos a 4 discos duros de TB, eso no es fácil. Si agrupa ZFS como 3HDD y desea agregar un nuevo HDD, entonces necesita agregar 3 más: para un total de 6x 2TB. Y si tiene 6 HDD y desea aumentar su FS, necesita agregar 6 más, etc. Tuve el problema de que mi gabinete NAS no puede contener más de 4 discos y no puedo permitirme comprar todavía los 4 HDD. En este sentido, Btrfs es mucho más flexible.

Sin embargo, RAID-5/6 tenía muy mal soporte cuando comencé. Hice algunas pruebas como tú y terminé corrompiendo el sistema de archivos. ¡Hice esas mismas pruebas en RAID-1 y no hubo problemas! Así que decidí usar Btrfs en RAID-1 y, en lugar de usar Ubuntu LTS, siempre uso la última versión de Ubuntu para obtener el último paquete Kernel y btrfs-tools (estoy usando Ubuntu 15.04 y me estoy preparando para cambiar). a 15.10). Probablemente (después de las pruebas) finalmente pasaré a RAID-5 una vez que se lance Ubuntu 16.04 y probablemente lo mantendré. He visto en registros de cambios recientes del kernel que la base del código para RAID-5/6 es mucho más madura.

Entonces a tu problema. Si quieres probar Btrfs especialmente en RAID-5 o 6,quédese con las distribuciones de Linux más actualizadas(por ejemplo, Arch Linux, la última versión de Ubuntu, Fedora, etc.). Puede que carezcan de la estabilidad de otras distribuciones, pero para Btrfs probablemente sean mucho más estables.

Una nota sobre su "caso de uso": su sistema de archivos Btrfs es bastante pequeño en comparación con el tamaño de los archivos que ingresa. Probablemente no refleje muy bien un escenario del mundo real. Debes crear archivos grandes (videos) y pequeños (fotos, documentos) e intentar llenar tu sistema de archivos hasta en un 80%. Una buena manera de probarlo es colocar muchos archivos en su sistema de archivos y luego ejecutar pruebas comparativas del sistema de archivos, no por la evaluación comparativa en sí, sino por el estrés que conllevan. Puedes usar elsuite de pruebas-phoronixpara esto (por ejemplo phoronix-test-suite benchmark pts/disk).

información relacionada