データセットの作成

本章では,作成したプール上に,利用しやすい単位であるデータセットを作成する手順を説明する.

Oracle Solaris ZFS 管理ガイド "ファイルシステムの管理"

http://docs.oracle.com/cd/E19253-01/819-6260/gavwq/index.html

データセットはディレクトリのような階層構造として扱われ,プールを作成した時点で自動的に用意される,プールと同じ名前のデータセットの下に作成していくことになる.

データセットは zfs create コマンドを利用して作成する. 例えば pool0/dataset0 というデータセットを作成するには次のようなコマンドを実行するのである.

$ sudo zfs create pool0/dataset0

データストアの確認

存在するデータストアは zfs list コマンドで確認できる.

$ sudo zfs list
NAME             USED  AVAIL  REFER  MOUNTPOINT
pool0            235K  57.2G  50.0K  /pool0
pool0/dataset0  48.3K  57.2G  48.3K  /pool0/dataset0

データストアの名前,USED (スナップショットを含んだ全利用サイズ),AVAIL (残りサイズ),REFER (参照可能サイズ),およびマウントポイントが確認できることがわかる.

プロパティの指定

zfs create コマンドでは,データストアに対するプロパティの設定が可能だ.以下に一例を挙げる. このほかにも様々なオプションが存在するため,公式のドキュメントも参照されたい.

Oracle Solaris ZFS 管理ガイド "ZFS のプロパティーの紹介"

http://docs.oracle.com/cd/E19253-01/819-6260/gazss/index.html

  • 圧縮
  • 重複排除
  • マウントポイント
  • Unicodeの正規化 (作成時のみ指定可能)
  • ケースセンシティブ (大文字小文字の区別)
  • 読み取り専用

これらは,-o オプションから設定できます.

圧縮

テキストファイルが多い領域などで威力を発揮するであろう.

ZFS on Linux 0.6.3 では圧縮フォーマットに,lzjb,gzip,gzip-N,zle,lz4が指定できた.(Nは1から9までの圧縮率)

$ sudo zfs create -o compression=gzip pool0/gzip

重複排除

前述の理由により,推奨しない.扱うデータサイズが少ない場合や,要求されるメモリ容量を満たすスペックであり,どうしても必要な場合に限って有効にしてほしい.

$ sudo zfs create -o dedup=on pool0/dedup

マウントポイント

標準ではデータセット名がそのままマウントポイントになるが,必要に応じてデータセット毎にマウントポイントを変更することができる.

$ sudo zfs create -o mountpoint=/mnt/rename pool0/rename

Unicodeの正規化

Unicodeでは一つの文字を複数の要素で表現する方法と,単一の文字で表現する方法と,同じ文字でも幾つかの扱い方が存在する. これをある一つの方法に統一することをUnicodeの正規化という.

異なるOSで利用する場合には,この違いが問題になることがあるため,formD を指定して有効にすることを推奨する.

$ sudo zfs create -o normalization=formD pool0/formD

ケースセンシティブ

ファイル名の大文字小文字を,区別する (sensitive),区別しない (insensitive),あるいは混在可能 (mixed)が指定可能である.デフォルトでは,sensitiveが指定されている.

$ sudo zfs create -o casesensitivity=insensitive pool0/insensitive

読み取り専用

バックアップ用途のためなど,読み取り専用にすることも可能である.

$ sudo zfs create -o readonly=on pool0/insensitive

データセットのプロパティの確認と変更

zfs getコマンドにより,データセットのプロパティを確認することができる.

圧縮率 (compressratio) のような読み取り専用のプロパティ等も確認することができる.

$ sudo zfs get all pool0/gzip
NAME        PROPERTY              VALUE                  SOURCE
pool0/gzip  type                  filesystem             -
pool0/gzip  creation              Mon Dec 29  0:45 2014  -
pool0/gzip  used                  48.3K                  -
pool0/gzip  available             57.1G                  -
pool0/gzip  referenced            48.3K                  -
pool0/gzip  compressratio         1.00x                  -
pool0/gzip  mounted               yes                    -
pool0/gzip  quota                 none                   default
pool0/gzip  reservation           none                   default
pool0/gzip  recordsize            128K                   default
pool0/gzip  mountpoint            /pool0/gzip            default
pool0/gzip  sharenfs              off                    default
pool0/gzip  checksum              on                     default
pool0/gzip  compression           gzip                   local
pool0/gzip  atime                 on                     default
pool0/gzip  devices               on                     default
pool0/gzip  exec                  on                     default
pool0/gzip  setuid                on                     default
pool0/gzip  readonly              off                    default
pool0/gzip  zoned                 off                    default
pool0/gzip  snapdir               hidden                 default
pool0/gzip  aclinherit            restricted             default
pool0/gzip  canmount              on                     default
pool0/gzip  xattr                 on                     default
pool0/gzip  copies                1                      default
pool0/gzip  version               5                      -
pool0/gzip  utf8only              off                    -
pool0/gzip  normalization         none                   -
pool0/gzip  casesensitivity       sensitive              -
pool0/gzip  vscan                 off                    default
pool0/gzip  nbmand                off                    default
pool0/gzip  sharesmb              off                    default
pool0/gzip  refquota              none                   default
pool0/gzip  refreservation        none                   default
pool0/gzip  primarycache          all                    default
pool0/gzip  secondarycache        all                    default
pool0/gzip  usedbysnapshots       0                      -
pool0/gzip  usedbydataset         48.3K                  -
pool0/gzip  usedbychildren        0                      -
pool0/gzip  usedbyrefreservation  0                      -
pool0/gzip  logbias               latency                default
pool0/gzip  dedup                 off                    default
pool0/gzip  mlslabel              none                   default
pool0/gzip  sync                  standard               default
pool0/gzip  refcompressratio      1.00x                  -
pool0/gzip  written               48.3K                  -
pool0/gzip  logicalused           15K                    -
pool0/gzip  logicalreferenced     15K                    -
pool0/gzip  snapdev               hidden                 default
pool0/gzip  acltype               off                    default
pool0/gzip  context               none                   default
pool0/gzip  fscontext             none                   default
pool0/gzip  defcontext            none                   default
pool0/gzip  rootcontext           none                   default
pool0/gzip  relatime              off                    default

また,変更可能なプロパティは zfs set コマンドで変更することができる.

例えば圧縮オプションは作成後にも変更が可能であり.変更後のファイル操作に適用される.

$ sudo zfs set compression=gzip-9 pool0/gzip
$ sudo zfs get compression pool0/gzip
NAME        PROPERTY     VALUE     SOURCE
pool0/gzip  compression  gzip-9    local

ブロックデバイスの作成

ZFSではファイルシステムだけではなく,ブロックデバイスも作成可能である. ブロックデバイスの場合には -V オプションにてサイズを指定する.

$ sudo zfs create -V 5g pool0/block

このようにすると,ファイルシステムとしてマウントされず,代わりに,/dev/zvol/pool0/block にて参照可能なブロックデバイスが作成される.

ブロックデバイスにすることにより,例えばiSCSIターゲットのボリュームや,KVMの仮想マシンのイメージにZFSを利用することができるのだ.

ブロックデバイスであっても後述のスナップショットに関する機能が利用できるため,便利な場面もあるだろう.

results matching ""

    No results matching ""