ZFS en una sola partición mezclada con otras particiones

ZFS en una sola partición mezclada con otras particiones

Trabajo para un proveedor de dispositivos médicos. Tenemos en una sola máquina algunas particiones que son SquashFS (para archivos del sistema operativo, dos particiones del sistema operativo, squashfs de solo lectura), algunas particiones de arranque (3x FAT32) y una partición de DATOS (120 Gb, rw, ext4).

La cuestión es que, al ser un dispositivo utilizado en hospitales, a veces lo desconectan y en algunas ocasiones tenemos problemas aleatorios que parecen estar relacionados con la corrupción de datos en la partición de DATOS. La cuestión es que el software médico registra muchas cosas, así que supongo que a veces se produce una escritura y tal vez la máquina se apaga por completo y de alguna manera parece corromper los archivos adyacentes.

De todos modos, pensé que quizás podría ayudar cambiar ext4 en la partición de datos a un FS de copia en escritura como ZFS. Sin embargo, una cosa es... ¿ZFS requiere que todo el disco sea ZFS (lo de zpool), o podemos hacer que una partición ZFS coexista en el mismo disco con otras particiones con un FS diferente?

¡Gracias!

Respuesta1

No es necesario formatear un disco completo como ZFS. Se puede construir un zpool a partir de cualquier combinación de discos y particiones completos.

Si comparte un miembro ZFS con otras particiones en el mismo disco, debe tener en cuenta que el rendimiento de entrada/salida (E/S) también se comparte.

En la configuración más simple, puede tener un zpool formado por un vdev que sea solo una partición o un dispositivo. Tengo una computadora formateada así:

root@craptop [~]# zpool status -P
  pool: rpool
 state: ONLINE
  scan: scrub repaired 0B in 00:00:30 with 0 errors on Sun Nov 14 00:24:31 2021
config:

        NAME                                                                 STATE     READ WRITE CKSUM
        rpool                                                                ONLINE       0     0     0
          /dev/disk/by-id/ata-LITEONIT_LSS-24L6G_S45N8470Z1ZNDW089292-part4  ONLINE       0     0     0

errors: No known data errors

El miembro ZFS es una partición bajo /dev/sda:

root@craptop [~]# blkid /dev/sda4
/dev/sda4: LABEL="rpool" UUID="3735190874680832032" UUID_SUB="15024274719792138025" TYPE="zfs_member" PARTUUID="a9a5ae01-90cd-4945-a9dd-fbccbfbfc075"
root@craptop [~]# lsblk -p
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
/dev/sda      8:0    0  22.4G  0 disk 
├─/dev/sda1   8:1    0  1000K  0 part 
├─/dev/sda2   8:2    0   512M  0 part /boot/efi
├─/dev/sda3   8:3    0     1G  0 part /boot
└─/dev/sda4   8:4    0  20.9G  0 part 
/dev/sdb      8:16   0 931.5G  0 disk 
├─/dev/sdb1   8:17   0  1000M  0 part 
├─/dev/sdb2   8:18   0   260M  0 part 
├─/dev/sdb3   8:19   0  1000M  0 part 
├─/dev/sdb4   8:20   0   128M  0 part 
├─/dev/sdb5   8:21   0   884G  0 part 
├─/dev/sdb6   8:22   0  25.2G  0 part 
└─/dev/sdb7   8:23   0    20G  0 part 
/dev/sdc      8:32   1  58.6G  0 disk 
└─/dev/sdc1   8:33   1    58G  0 part

Sin un vdev redundante o de paridad (mirror, raidz, raidz2, draid, etc.), ZFS puede detectar daños silenciosos en los datos, pero no puede corregirlos porque la única copia de los datos es mala.

Debería considerar crear un zpool con uno o más vdevs redundantes.

Aquí hay otra de mis computadoras conRAID 1vdevs equivalentes conocidos como mirrors:

root@box1 [~]# zpool status -P
  pool: fastpool
 state: ONLINE
  scan: scrub repaired 0B in 00:04:39 with 0 errors on Sun Nov 14 00:28:40 2021
config:

        NAME                STATE     READ WRITE CKSUM
        fastpool            ONLINE       0     0     0
          mirror-0          ONLINE       0     0     0
            /dev/nvme0n1p3  ONLINE       0     0     0
            /dev/nvme1n1p3  ONLINE       0     0     0

errors: No known data errors

  pool: slowpool
 state: ONLINE
  scan: scrub repaired 0B in 05:45:50 with 0 errors on Sun Nov 14 06:09:52 2021
config:

        NAME              STATE     READ WRITE CKSUM
        slowpool          ONLINE       0     0     0
          mirror-0        ONLINE       0     0     0
            /dev/sda1     ONLINE       0     0     0
            /dev/sdb1     ONLINE       0     0     0
        logs
          /dev/nvme0n1p5  ONLINE       0     0     0
          /dev/nvme1n1p5  ONLINE       0     0     0
        cache
          /dev/nvme0n1p4  ONLINE       0     0     0
          /dev/nvme1n1p4  ONLINE       0     0     0

errors: No known data errors

Empezando

Lectura adicional

información relacionada