www.fabiankeil.de/blog-surrogat/2021/01/02/zfs-mirror-volumen-verdoppelt.html
Ich experimentiere derzeit mit simplesnap, einem Programm um ZFS-Datasets auf andere Hosts zu übertragen.
Auf dem VM-Host, in der virtuellen Maschine und auf den Systemen, von denen Backups erzeugt werden sollen läuft wenig überraschend ElectroBSD.
Als Backup-System habe ich eine virtuelle Maschine mit bhyve eingerichtet und ein 1-Terabyte-großes sparse ZFS-Volume als Datenspeicher verwendet.
Der ZFS-Pool auf dem Host hatte allerdings nicht genug Platz:
[fk@elektrobier3 ~]$ zpool list dpool NAME SIZE ALLOC FREE CKPOINT EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT dpool 880G 686G 194G - - 60% 77% 1.00x ONLINE - [fk@elektrobier3 ~]$ zfs list dpool NAME USED AVAIL REFER MOUNTPOINT dpool 727G 125G 96K /dpool [fk@elektrobier3 ~]$ zpool status -v dpool pool: dpool state: ONLINE scan: scrub repaired 0 in 0 days 08:55:47 with 0 errors on Sat Nov 16 00:37:28 2019 config: NAME STATE READ WRITE CKSUM dpool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 gpt/dpool-ada0.eli ONLINE 0 0 0 gpt/dpool-ada3.eli ONLINE 0 0 0 gpt/dpool-ada2.eli ONLINE 0 0 0 gpt/dpool-ada1.eli ONLINE 0 0 0 errors: No known data errors
Um die Kapazität zu erhöhen habe ich die Redundanz des Pools verkleinert.
[fk@elektrobier3 ~]$ sudo zpool detach dpool gpt/dpool-ada3.eli [fk@elektrobier3 ~]$ sudo zpool detach dpool gpt/dpool-ada2.eli [fk@elektrobier3 ~]$ zpool status -v dpool pool: dpool state: ONLINE scan: scrub repaired 0 in 0 days 08:55:47 with 0 errors on Sat Nov 16 00:37:28 2019 config: NAME STATE READ WRITE CKSUM dpool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 gpt/dpool-ada0.eli ONLINE 0 0 0 gpt/dpool-ada1.eli ONLINE 0 0 0 errors: No known data errors [fk@elektrobier3 ~]$ sudo zpool add -n dpool mirror gpt/dpool-ada2.eli gpt/dpool-ada3.eli would update 'dpool' to the following configuration: dpool mirror gpt/dpool-ada0.eli gpt/dpool-ada1.eli mirror gpt/dpool-ada2.eli gpt/dpool-ada3.eli [fk@elektrobier3 ~]$ sudo zpool add dpool mirror gpt/dpool-ada2.eli gpt/dpool-ada3.eli [fk@elektrobier3 ~]$ zpool status -v dpool pool: dpool state: ONLINE scan: scrub repaired 0 in 0 days 08:55:47 with 0 errors on Sat Nov 16 00:37:28 2019 config: NAME STATE READ WRITE CKSUM dpool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 gpt/dpool-ada0.eli ONLINE 0 0 0 gpt/dpool-ada1.eli ONLINE 0 0 0 mirror-1 ONLINE 0 0 0 gpt/dpool-ada2.eli ONLINE 0 0 0 gpt/dpool-ada3.eli ONLINE 0 0 0 errors: No known data errors
Wenn jetzt zwei Platten gleichzeitig ausfallen sollten und zum gleichen Spiegel-vdev gehören ist der Pool kaputt.
Um das Backup-Volume komplett zu füllen reicht die Pool-Kapazität immer noch nicht aus, aber für die weiteren Experimente sollte es reichen.
[fk@elektrobier3 ~]$ zpool list dpool NAME SIZE ALLOC FREE CKPOINT EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT dpool 1.72T 686G 1.05T - - 30% 38% 1.00x ONLINE - [fk@elektrobier3 ~]$ zfs list dpool/usr/bhyve/backup/disk0 NAME USED AVAIL REFER MOUNTPOINT dpool/usr/bhyve/backup/disk0 13.9G 977G 13.6G - [fk@elektrobier3 ~]$ zfs get volsize dpool/usr/bhyve/backup/disk0 NAME PROPERTY VALUE SOURCE dpool/usr/bhyve/backup/disk0 volsize 1T local