ZFS

Aus UUGRN
Version vom 3. Dezember 2009, 17:26 Uhr von SHL (Diskussion | Beiträge) (Update und Hinweis zum Workshop.)

Zu ZFS kann man extrem viel schreiben, und es wurde auch schon extrem viel geschrieben. :-) Ich beschraenke mir vorerst auf die praktische Anwendung.

Hinweis:

ZFS ist mittlerweile auf einigen Betriebssystemen verfügbar. Das feature set unterscheidet sich allerdings z.T. maßgeblich.
Für konkrete Anwendungen bitte immer die man-Pages des Betriebssystems konsultieren, z.B. für FreeBSD: zfs(8) und zpool(8)


ZFS im Einsatz

Hinweis:

ZFS befindet sich konstant in der Entwicklung. Es ist noch nicht 100%ig feature complete.
Alle dokumentierte Features sind allerdings in aktuellen Releases von Solaris oder OpenSolaris enthalten.


zfs-Kommando

Eine Uebersicht ueber alle ZFS-Datasets innerhalb eines ZPools

$ zfs list
NAME                                                  USED  AVAIL  REFER  MOUNTPOINT
rpool                                                14.9G  58.0G    77K  /rpool
rpool/ROOT                                           8.68G  58.0G    18K  legacy
rpool/ROOT/opensolaris                               66.7M  58.0G  2.26G  /
rpool/ROOT/opensolaris-1                             19.4M  58.0G  2.77G  /
rpool/ROOT/opensolaris-2                             8.59G  58.0G  6.46G  /
rpool/ROOT/opensolaris-working                         77K  58.0G  6.46G  /
rpool/dump                                           1.50G  58.0G  1.50G  -
rpool/export                                         3.04G  58.0G    21K  /export
rpool/export/home                                    3.04G  58.0G    22K  /export/home
rpool/export/home/public                               96K  58.0G    26K  /export/home/public
rpool/export/home/shl                                3.04G  58.0G  90.5M  /export/home/shl
rpool/export/home/shl/Documents                       209K  58.0G    24K  /export/home/shl/Documents
rpool/swap                                           1.50G  59.5G    16K  -
rpool/zones                                           151M  58.0G    22K  /zones
rpool/zones/template                                  150M  58.0G    22K  /zones/template
rpool/zones/template/ROOT                             150M  58.0G    19K  legacy
rpool/zones/template/ROOT/zbe                         150M  58.0G   149M  legacy

Erstellen eines neuen Datasets

$ pfexec zfs create rpool/example
$ pfexec zfs create -o compression=true rpool/compressed-example
$ pfexec zfs create -o compression=true mountpoint=/tmp/examplemount rpool/mount-example

Beim Erstellen eines Datasets muss nichts in die /etc/fstab eingetragen werden. Alle Einstellungen handelt ZFS automagisch.

Erstellung eines Snapshots

$ pfexec zfs snapshot rpool/example@`date`
$ pfexec zfs snapshot rpool/example@work-in-progress

Siehe auch: Time Slider

Loeschen eines Datasets

$ pfexec zfs destroy rpool/example

zpool-Kommando

Status eines Pools

$ zpool status
  pool: rpool
 state: ONLINE
 scrub: none requested
config:
 	NAME        STATE     READ WRITE CKSUM 
        rpool       ONLINE       0     0     0
          c4t0d0s0  ONLINE       0     0     0
errors: No known data errors

Export (= Unmount) eines Pools

$ pfexec zpool export datapool

Import (= Mount) eines Pools

$ pfexec zpool import datapool

Ein ZPool kann somit von einer Maschine zu einer anderen Uebertragen oder Verschoben werden. Einstellungen wie Mountpoints muessen nicht angepasst weden. Der ZPool datapool wird auf jeder Maschine - sofern nicht anders konfiguriert - als /datapool gemountet.

Erstellung eines ZPools mit 4 Platten (Raid 10)

$ pfexec zpool create examplepool mirror c1d0 c2d0 mirror c3d0 c4d0

Erstellung eines RAID-Z Verbunds

$ pfexec zpool create raidexample raidz c1t0d0 c2t0d0 c3t0d0 c4t0d0 c5t0d0

ZFS Properties

$ zfs get all rpool
NAME   PROPERTY                        VALUE                           SOURCE
rpool  type                            filesystem                      -
rpool  creation                        Sat Mar 21 13:13 2009           -
rpool  used                            14.9G                           -
rpool  available                       58.0G                           -
rpool  referenced                      77K                             -
rpool  compressratio                   1.12x                           -
rpool  mounted                         yes                             -
rpool  quota                           none                            default
rpool  reservation                     none                            default
rpool  recordsize                      128K                            default
rpool  mountpoint                      /rpool                          default
rpool  sharenfs                        off                             default
rpool  checksum                        on                              default
rpool  compression                     off                             default
rpool  atime                           on                              default
rpool  devices                         on                              default
rpool  exec                            on                              default
rpool  setuid                          on                              default
rpool  readonly                        off                             default
rpool  zoned                           off                             default
rpool  snapdir                         hidden                          default
rpool  aclmode                         groupmask                       default
rpool  aclinherit                      restricted                      default
rpool  canmount                        on                              default
rpool  shareiscsi                      off                             default
rpool  xattr                           on                              default
rpool  copies                          1                               default
rpool  version                         3                               -
rpool  utf8only                        off                             -
rpool  normalization                   none                            -
rpool  casesensitivity                 sensitive                       -
rpool  vscan                           off                             default
rpool  nbmand                          off                             default
rpool  sharesmb                        off                             default
rpool  refquota                        none                            default
rpool  refreservation                  none                            default
rpool  primarycache                    all                             default
rpool  secondarycache                  all                             default
rpool  usedbysnapshots                 264K                            -
rpool  usedbydataset                   77K                             -
rpool  usedbychildren                  14.9G                           -
rpool  usedbyrefreservation            0                               -
rpool  org.opensolaris.caiman:install  ready                           local
rpool  com.sun:auto-snapshot           true                            local 

Diese Liste stammt aus einer OpenSolaris 2008/11 Installation auf Stand snv109. Properties vererben sich innerhalb der Hierarchie!

Weblinks

siehe auch