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
- Configurar un grupo de almacenamiento ZFSpor Adén Padilla
man 7 zpoolconcepts
Lectura adicional
- ZFS 101: comprensión del almacenamiento y el rendimiento de ZFSpor Jim Salter
- ZFS: debes usar mirror vdevs, no RAIDZ.por Jim Salter