Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

ZFS beállítása

A ZFS a fájlrendszer, a Sun egyik nagy találmánya, amelyet 2005 elején dobtak be a nagy közösbe, az OpenSolaris részeként lett nyílt forrású CDDL licenc alatt. Miért a ZFS a fájlrendszer? Lássuk.

Note

A ZFS és az UFS összehasonlítása: ZFS bevetés közben

...

Finomhangolás

A ZFS támogatás nem igényel különösebb beállítást a rendszer részéről, de a /boot/loader.conf fájlba érdemes felvennünk az alábbi bejegyzéseket:

Code Block
title/boot/loader.conf

vm.kmem_size=1536M
vfs.zfs.arc_max=512M
vfs.zfs.prefetch_disable=1
vfs.zfs.txg.timeout=5

...

Code Block
title/etc/rc.conf

zfs_enable="YES"

Ezek után egy újraindítás célszerű, egyrészt rövidebb idő, mint beállítani a megfelelő paramétereket parancssorból, másrészt ellenőrzésképp érdemes megtenni.

...

ZFS kötetek és fájlrendszerek

A telepítéskor létrehoztunk egy /bpool (base pool) és egy /dpool (data pool) helyre csatolt fájlrendszert, ezeket csatoljuk le majd töröljük ki az /etc/fstab fájlból (előtte írjuk le az eszközök neveit, mert arra szükségünk lesz). Ezekből ZFS kötet (pool) lesz, a kötet a ZFS egyik alapegysége, egy ZFS kötethez bármikor hozzáadhatunk új eszközt, kivehetünk belőle eszközt, kijelölhetünk tartalék eszközt, ésatöbbi. A kötetek kezelésére a zpool parancs szolgál. A fentebb megejtett újraindítás után újra belépve létre kell hozni a megfelelő ZFS köteteket:

Code Block
titleParancssor

freebsd# zpool create bpool da0s2d
freebsd# zpool create dpool da0s2e
freebsd# zpool list
NAME                    SIZE    USED   AVAIL    CAP  HEALTH     ALTROOT
bpool                  7.94G    110K   7.94G     0%  ONLINE     -
dpool                   210G    110K    210G     0%  ONLINE     -
freebsd# zpool status
  pool: bpool
 state: ONLINE
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        bpool       ONLINE       0     0     0
          da0s2d    ONLINE       0     0     0

errors: No known data errors

  pool: dpool
 state: ONLINE
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        dpool       ONLINE       0     0     0
          da0s2e    ONLINE       0     0     0

errors: No known data errors

...

Code Block
titleParancssor

freebsd# zfs create bpool/tmp
freebsd# zfs create bpool/usr
freebsd# zfs create bpool/var
freebsd# zfs list
NAME        USED  AVAIL  REFER  MOUNTPOINT
bpool       182K  7.81G    21K  /bpool
bpool/tmp    18K  7.81G    18K  /bpool/tmp
bpool/usr    18K  7.81G    18K  /bpool/usr
bpool/var    18K  7.81G    18K  /bpool/var
dpool       105K   207G    18K  /dpool

...

Code Block
titleParancssor

# /etc/rc.d/hostid start
Setting hostuuid: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.
Setting hostid: 0xFFFFFFFF.
# /etc/rc.d/zfs start
# zfs list
NAME        USED  AVAIL  REFER  MOUNTPOINT
bpool       182K  7.81G    21K  /bpool
bpool/tmp    18K  7.81G    18K  /bpool/tmp
bpool/usr    18K  7.81G    18K  /bpool/usr
bpool/var    18K  7.81G    18K  /bpool/var
dpool       105K   207G    18K  /dpool

...

Code Block
titleParancssor

# cp -Rp /tmp/ /bpool/tmp/
# cp -Rp /usr/ /bpool/usr/
# cp -Rp /var/ /bpool/var/
# mount -u /
# mv /tmp /tmp.install
# mv /usr /usr.install
# mv /var /var.install
# zfs set mountpoint=/tmp bpool/tmp
# zfs set mountpoint=/usr bpool/usr
# zfs set mountpoint=/var bpool/var
# df -h
Filesystem              Size    Used   Avail Capacity  Mounted on
/dev/da0s2a             3.9G    377M    3.2G    10%    /
devfs                   1.0K    1.0K      0B   100%    /dev
bpool                   6.8G      0B    6.8G     0%    /bpool
dpool                   207G      0B    207G     0%    /dpool
bpool/tmp               6.8G      0B    6.8G     0%    /tmp
bpool/usr               7.0G    214M    6.8G     3%    /usr
bpool/var               6.9G     70M    6.8G     1%    /var
# exit

Az eredeti, de átnevezett könyvtárakat akár megtarthatjuk, ha van helyünk elég, de ZFS probléma esetén van még egy rescue rendszerünk, így nem annyira lényeges ezen könyvtárak tárolása, a rendszerfrissítések során úgyis eltávolodik az eredetileg telepített és a futó rendszer.

...

A ZFS előnyei röviden

Nos, kicsit fésüljük meg a ZFS fájlrendszeren lévő könyvtárakat, első körben hozzunk létre egy snapshot-ot, amely a telepítéskori állapotot tartalmazza:

Code Block
titleParancssor

freebsd# zfs snapshot bpool/usr@install
freebsd# zfs snapshot bpool/var@install
freebsd# zfs snapshot bpool/tmp@install
freebsd# zfs list
NAME                USED  AVAIL  REFER  MOUNTPOINT
bpool               214M  7.60G    18K  /bpool
bpool/tmp            23K  7.60G    23K  /tmp
bpool/tmp@install      0      -    23K  -
bpool/usr           214M  7.60G   214M  /usr
bpool/usr@install      0      -   214M  -
bpool/var           262K  7.60G   244K  /var
bpool/var@install    17K      -   244K  -
dpool               105K   207G    18K  /dpool

...

Code Block
titleParancssor

freebsd# zfs clone bpool/usr@install bpool/usr_at_install
freebsd# df -h
Filesystem              Size    Used   Avail Capacity  Mounted on
[...]
bpool/usr_at_install    7.8G    214M    7.6G     3%    /bpool/usr_at_install
freebsd# zfs list
NAME                   USED  AVAIL  REFER  MOUNTPOINT
bpool                  214M  7.60G    19K  /bpool
bpool/tmp               23K  7.60G    23K  /tmp
bpool/tmp@install         0      -    23K  -
bpool/usr              214M  7.60G   214M  /usr
bpool/usr@install       38K      -   214M  -
bpool/usr_at_install      0  7.60G   214M  /bpool/usr_at_install
bpool/var              278K  7.60G   244K  /var
bpool/var@install     33.5K      -   244K  -
dpool                  105K   207G    18K  /dpool

...

Code Block
titleParancssor

freebsd# zfs create bpool/usr/ports
freebsd# zfs set compression=gzip-9 bpool/usr/ports

...

Code Block
titleParancssor

freebsd# rm -R /usr/src
freebsd# zfs create bpool/usr/src
freebsd# zfs set compression=gzip-9 bpool/usr/src

...

Code Block
titleParancssor

freebsd# rm -R /usr/local
freebsd# zfs create bpool/usr/local
freebsd# cp -Rp /bpool/usr_at_install/local/ /usr/local/
freebsd# zfs create bpool/usr/obj

...

Code Block
titleParancssor

# zfs list
NAME                USED  AVAIL  REFER  MOUNTPOINT
[...]
bpool/usr          1.61G  2.24G   442M  /usr
bpool/usr@install   848M      -  1.26G  -
bpool/usr/local    78.9M  2.24G  78.9M  /usr/local
bpool/usr/obj        18K  2.24G    18K  /usr/obj
bpool/usr/ports     133M  2.24G   133M  /usr/ports
bpool/usr/src       151M  2.24G   151M  /usr/src
[...]
# df -h
Filesystem           Size    Used   Avail Capacity  Mounted on
[...]
bpool/usr            2.7G    442M    2.2G    16%    /usr
bpool/usr/local      2.3G     79M    2.2G     3%    /usr/local
bpool/usr/obj        2.2G      0B    2.2G     0%    /usr/obj
bpool/usr/ports      2.4G    133M    2.2G     5%    /usr/ports
bpool/usr/src        2.4G    151M    2.2G     6%    /usr/src
[...]

...

Code Block
titleParancssor

# zfs destroy bpool/usr@install
cannot destroy 'bpool/usr@install': snapshot has dependent clones
use '-R' to destroy the following datasets:
bpool/usr_at_install
# zfs destroy bpool/usr_at_install
# zfs destroy bpool/usr@install
# zfs snapshot bpool/usr@install
# zfs list
NAME                USED  AVAIL  REFER  MOUNTPOINT
bpool               808M  3.12G    18K  /bpool
bpool/tmp            45K  3.12G    23K  /tmp
bpool/tmp@install    22K      -    23K  -
bpool/usr           805M  3.12G   442M  /usr
bpool/usr@install      0      -   442M  -
bpool/usr/local    78.9M  3.12G  78.9M  /usr/local
bpool/usr/obj        18K  3.12G    18K  /usr/obj
bpool/usr/ports     133M  3.12G   133M  /usr/ports
bpool/usr/src       151M  3.12G   151M  /usr/src
bpool/var          1.39M  3.12G  1.22M  /var
bpool/var@install   172K      -   265K  -
dpool               105K  1.95G    18K  /dpool

Rögtön több helyünk lett... (smile)

Előző fejezet Tartalomjegyzék Következő fejezet

Auth Gábor auth.gabor@javaforum.hu