Otagowano: ZFS

Zettabyte File System

Automatyczne usuwanie i tworzenie nowych snapshotów

Oto kolejny jednowierszowiec do usuwania starych i tworzenia nowych snapshotów. Już bez rozwodzenia się po co, jak i dlaczego tak. Można dopisać do crona.


# for a in `zfs list -t snapshot -H -o name`; do
    zfs destroy $a && zfs snapshot `echo $a|sed "s/@.*//"`@`date +%Y%m%d`;
done

Uwaga: Tworzony jest tylko jeden snapshot i tylko dla tych filesystemów, dla których były już utworzone wcześniej snapshoty, które zostaną najpierw usunięte.

Usuwanie starych i tworzenie nowych snapshotów ZFS

Niedawno pisałem o masowym tworzeniu snapshotów ZFS. Tam robiłem to rekursywnie dla całej puli używając zpool list -H i przekierowując wyjście do zfs snapshot -r. Tym razem zrobimy to inaczej.

Jeśli mamy stare snapshoty to możemy je wyświetlić poleceniem:


# zfs list -t snapshot
NAME                                   USED  AVAIL  REFER  MOUNTPOINT
dappserv@20101130                         0      -  28.0K  -
dappserv@20110107                         0      -  28.0K  -
dappserv/etc@20101130                 61.3K      -   382K  -
dappserv/etc@20110107                     0      -   382K  -
dappserv/var@20101130                  170M      -  2.03G  -
dappserv/var@20110107                 1.07M      -  2.15G  -
...

Jak zamienić w kontenerze dataset na lofs

Ponieważ konfiguruję system pocztowy, potrzebuję wyeksportować filesystem ZFS przez NFS do innego noda, gdzie postfix poprzez delivera będzie zapisywał wiadomości do skrzynek. Jak widać w tym zapisie sesji, skonfigurowałem całą zpoole „studmail” jako dataset ZFS dla kontenera st1. Niestety w prosty sposób nie da się współdzielić systemu plików ZFS przez NFS w kontenerze (non-global):

root@st1:~# zfs list
NAME                         USED  AVAIL  REFER  MOUNTPOINT
studmail                     301M  1.78T  28.0K  none
studmail/etc                4.52M  1.78T  4.19M  /data/etc
studmail/studmail            480K  1.78T   417K  /data/studmail
studmail/var                 296M  1.78T   294M  /data/var

root@st1:~# zfs set sharenfs=rw=@192.168.X.X/32,anon=0 studmail/studmail
cannot set property for 'studmail/studmail': 'sharenfs' cannot be set in a non-global zone