2024. április 26., péntek

Gyorskeresés

Útvonal

Cikkek » Számtech rovat

OpenZFS a mindennapokra

Az otthon tárolt adatmennyiség növekedése miatt szükségessé válhat saját NAS, melyhez kiváló a ZFS fájlrendszer.

[ ÚJ TESZT ]

Napi használat

Megnéztük a történelmet, az alapokat, a problémákat, akkor most már dolgozzunk egy kicsit a ZFS-sel.

Nézzük meg, milyen lemezek érhetőek el:

$ ls /dev/disk/by-id/
ata-HGST_HTS541075A9E680_JA13021H0J6BRK
ata-SAMSUNG_HN-M750MBB_S2R9J9DBA00197
ata-ST34311A_5BF1Y1ZK
ata-ST34311A_5BF1Y1ZK-part1
ata-WDC_WD7502ABYS-18A6B0_WD-WMAU00120759
ata-WDC_WD7502ABYS-18A6B0_WD-WMAU00124488
ata-WDC_WD7502ABYS-18A6B0_WD-WMAU00124851
wwn-0x5000cca764c75de1
wwn-0x50014ee0569e89cc
wwn-0x50014ee0569e9763
wwn-0x50014ee0abf466d9
wwn-0x50024e92064919a6

Hozzunk létre egy 5 lemezből álló tömböt, ahol egy diszk hibájára felkészülünk:

$ sudo zpool create -o ashift=12 vd-Rocinante raidz1 \
/dev/disk/by-id/ata-SAMSUNG_HN-M750MBB_S2R9J9DBA00197 \
/dev/disk/by-id/ata-HGST_HTS541075A9E680_JA13021H0J6BRK \
/dev/disk/by-id/ata-WDC_WD7502ABYS-18A6B0_WD-WMAU00120759 \
/dev/disk/by-id/ata-WDC_WD7502ABYS-18A6B0_WD-WMAU00124488 \
/dev/disk/by-id/ata-WDC_WD7502ABYS-18A6B0_WD-WMAU00124851

Nézzük meg, mi jött létre, vagyis ezt én már használom:

$ zpool list
NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
vd-Rocinante 3,41T 3,12T 298G - 41% 91% 1.00x ONLINE -

Illetve a ZFS hello world-je:

$ zpool status
pool: vd-Rocinante
state: ONLINE
scan: scrub repaired 0B in 1h21m with 0 errors on Sat Oct 11 14:13:05 2019
config:

NAME STATE READ WRITE CKSUM
vd-Rocinante ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
ata-SAMSUNG_HN-M750MBB_S2R9J9DBA00197 ONLINE 0 0 0
ata-WDC_WD7502ABYS-18A6B0_WD-WMAU00124851 ONLINE 0 0 0
ata-HGST_HTS541075A9E680_JA13021H0J6BRK ONLINE 0 0 0
ata-WDC_WD7502ABYS-18A6B0_WD-WMAU00120759 ONLINE 0 0 0
ata-WDC_WD7502ABYS-18A6B0_WD-WMAU00124488 ONLINE 0 0 0

errors: No known data errors

Még mielőtt létrehoznánk az al-fájlrendszereket, állítsunk be pár dolgot:

$ sudo zfs set compression=lz4 vd-Rocinante
$ sudo zfs set checksum=edonr vd-Rocinante

Hozzunk létre pár fájlrendszert:

$ sudo zfs create create -o mountpoint=/var/lib/lxc vd-Rocinante/lxc
$ sudo zfs create create -o mountpoint=/srv/backup vd-Rocinante/backup
$ sudo zfs create create -o mountpoint=/srv/backup/deep vd-Rocinante/backup/deep
$ sudo zfs create create vd-Rocinante/test

Majd ezeken is állítsunk be pár dolgot:

$ sudo zfs set recordsize=16K vd-Rocinante/lxc
$ sudo zfs set recordsize=1M vd-Rocinante/backup
$ sudo zfs set compression=gzip9 vd-Rocinante/backup/deep

Nézzük meg, mi jött létre (persze nálam már használatban van):

$ zfs list
NAME USED AVAIL REFER MOUNTPOINT
vd-Rocinante 2,49T 151G 28,8K /vd-Rocinante
vd-Rocinante/lxc 2,05G 151G 1,45G /var/lib/lxc
vd-Rocinante/backup 2,49T 151G 1,24T /srv/backup
vd-Rocinante/backup/deep 1,27T 151G 1,27T /srv/backup/deep
vd-Rocinante/test 280M 151G 280M /srv/test

Nézzünk rá a tömörítésre, az egész tömbbel kapcsolatban:

$ zfs get compression,compressratio vd-Rocinante
NAME PROPERTY VALUE SOURCE
vd-Rocinante compression lz4 local
vd-Rocinante compressratio 1.40x -

De akkor már mindent kérjünk le:

$ zfs get all
NAME PROPERTY VALUE SOURCE
vd-Rocinante/test type filesystem -
vd-Rocinante/test creation h okt 11 14:21 2019 -
vd-Rocinante/test used 280M -
vd-Rocinante/test available 151G -
vd-Rocinante/test referenced 280M -
vd-Rocinante/test compressratio 6.52x -
vd-Rocinante/test mounted yes -
vd-Rocinante/test quota none default

Hozzunk létre pár pillanatképet, és játsszunk vele:

$ sudo zfs snapshot vd-Rocinante/test@manual_20190911
$ sudo zfs snapshot vd-Rocinante/test@manual_now
$ sudo zfs destroy vd-Rocinante/test@manual_20190911
$ sudo zfs rollback vd-Rocinante/test@manual_now

Duplázzuk meg azt, hogy a fájlokat hány blokkon tárolja egy adott fájlrendszeren (ez nem helyettesíti a raidet!)

sudo zfs set copies=2 vd-Rocinante/test

És végül, hogy nyugodtan aludjunk, állítsunk be egy ellenőrzést minden hónapra:
$ sudo nano /etc/cron.monthly/zfs-scub

#!/bin/sh
/sbin/zpool scrub vd-Rocinante

$ sudo chmod +x /etc/cron.monthly/zfs-scrub

Ez pedig végigolvassa az adatokat, és ellenőrzi, hogy megfelel-e a checksum-nak. Nagy és telepakolt zpool esetén érdemes ezt finomhangolni.

A cikk még nem ért véget, kérlek, lapozz!

Azóta történt

Előzmények

Hirdetés

Copyright © 2000-2024 PROHARDVER Informatikai Kft.