LoginSignup
3

More than 5 years have passed since last update.

ZFS on Linux を設定する(2) - ファイルシステムの作成

Last updated at Posted at 2015-11-11

続き

ファイルシステムを作成する

zfs createコマンドでファイルシステムを作成します。
前回作ったtankという名称のストレージプールに、homeという名称のファイルシステムを作成します。

$ sudo zfs create tank/home
$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        94G  1.5G   92G   2% /
(略)
tank            1.3T  128K  1.3T   1% /tank
tank/home       1.3T  128K  1.3T   1% /tank/home

一瞬で作成され、そのままマウントもされます。

ファイルシステムのプロパティを変更する

ファイルシステムには様々なプロパティがあり、プロパティを設定することで動作を変更することができます。zfs get allコマンドでプロパティの一覧を見てみましょう。

$ sudo zfs get all tank/home
NAME       PROPERTY              VALUE                  SOURCE
tank/home  type                  filesystem             -
tank/home  creation              Wed Nov 11  0:38 2015  -
tank/home  used                  140K                   -
tank/home  available             1.28T                  -
tank/home  referenced            140K                   -
tank/home  compressratio         1.00x                  -
tank/home  mounted               yes                    -
tank/home  quota                 none                   default
tank/home  reservation           none                   default
tank/home  recordsize            128K                   default
tank/home  mountpoint            /tank/home             default
tank/home  sharenfs              off                    default
tank/home  checksum              on                     default
tank/home  compression           off                    default
tank/home  atime                 on                     default
tank/home  devices               on                     default
tank/home  exec                  on                     default
tank/home  setuid                on                     default
tank/home  readonly              off                    default
tank/home  zoned                 off                    default
tank/home  snapdir               hidden                 default
tank/home  aclinherit            restricted             default
tank/home  canmount              on                     default
tank/home  xattr                 on                     default
tank/home  copies                1                      default
tank/home  version               5                      -
tank/home  utf8only              off                    -
tank/home  normalization         none                   -
tank/home  casesensitivity       sensitive              -
tank/home  vscan                 off                    default
tank/home  nbmand                off                    default
tank/home  sharesmb              off                    default
tank/home  refquota              none                   default
tank/home  refreservation        none                   default
tank/home  primarycache          all                    default
tank/home  secondarycache        all                    default
tank/home  usedbysnapshots       0                      -
tank/home  usedbydataset         140K                   -
tank/home  usedbychildren        0                      -
tank/home  usedbyrefreservation  0                      -
tank/home  logbias               latency                default
tank/home  dedup                 off                    default
tank/home  mlslabel              none                   default
tank/home  sync                  standard               default
tank/home  refcompressratio      1.00x                  -
tank/home  written               140K                   -
tank/home  logicalused           40K                    -
tank/home  logicalreferenced     40K                    -
tank/home  filesystem_limit      none                   default
tank/home  snapshot_limit        none                   default
tank/home  filesystem_count      none                   default
tank/home  snapshot_count        none                   default
tank/home  snapdev               hidden                 default
tank/home  acltype               off                    default
tank/home  context               none                   default
tank/home  fscontext             none                   default
tank/home  defcontext            none                   default
tank/home  rootcontext           none                   default
tank/home  relatime              off                    default
tank/home  redundant_metadata    all                    default
tank/home  overlay               off                    default

mountpointプロパティを設定して、tank/home を /home としてマウントしてみます。まずは既存の/homeにあるファイルをtank/homeへコピーします。

$ sudo cp -a /home/* /tank/home/

次に mountpointプロパティを設定すると /homeの中身がカラじゃないと警告が出ますが、設定自体は成功します。

$ sudo zfs set mountpoint=/home tank/home
cannot mount '/home': directory is not empty
property may be set but unable to remount filesystem
$ sudo zfs get mountpoint tank/home
NAME       PROPERTY    VALUE       SOURCE
tank/home  mountpoint  /home       local

この状態でサーバ再起動すると、tank/home が /home にマウントされます。

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        94G  1.5G   92G   2% /
(略)
tank            1.3T  128K  1.3T   1% /tank
tank/home       1.3T  128K  1.3T   1% /home

ちなみに mountpoint=legacy と設定すると、mountコマンドや/etc/fstabでマウントする 従来の方式になります。

ついでにあと2つプロパティを設定します。

$ sudo zfs set atime=off  tank/home
$ sudo zfs set compression=on tank/home

atimeプロパティは マウントオプションでお馴染みのアレです。
compressionプロパティをonにすると、これ以降 tank/home に作成されるデータがzip圧縮されるようになります。onにした時点で存在するデータは圧縮されないとのこと。1

各プロパティの解説は本家のドキュメントが詳しいです。

続く


  1. なので本当は cp -a /home/* /tank/home/ を実行する前に compression=onにしたほうがよかったです 

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3