Web更新

UbuntuでZFSを使ってみよう 第19回 ZFSのプロパティを見てみよう(1)


前回は、ZFSのファイル共有について説明しました。今回は、ZFSに設定できる各種プロパティについて説明します。


ZFSのプロパティとは


前回のZFSファイル共有でも使用しましたが、ZFSプロパティアはZFSファイルシステムに固有の設定です。ZFSプロパティは、zfs getで値を取得、zfs setで値を設定します。

プロパティの継承


ZFSプロパティは、親のファイルシステムから値を継承します。あるZFSファイルシステムのプロパティに、任意の値を設定することで、そのファイルシステム以下の値は設定した値が継承されます。zfs get all rpool/ROOTを実行すると、すべてのプロパティが以下のように表示されます。

$ zfs get all rpool/ROOT
NAME        PROPERTY              VALUE                    SOURCE
rpool/ROOT  type                  filesystem               -
rpool/ROOT  creation              木  4月 15 17:42 2021  -
rpool/ROOT  used                  15.6G                    -
rpool/ROOT  available             798G                     -
rpool/ROOT  referenced            96K                      -
rpool/ROOT  compressratio         1.70x                    -
rpool/ROOT  mounted               no                       -
rpool/ROOT  quota                 none                     default
rpool/ROOT  reservation           none                     default
rpool/ROOT  recordsize            128K                     default
rpool/ROOT  mountpoint            none                     local
rpool/ROOT  sharenfs              off                      default
rpool/ROOT  checksum              on                       default
rpool/ROOT  compression           lz4                      inherited from rpool
  (略)


SOURCE行で、VALUEがどこをベースにしているか分かります。

SOURCE説明
ファイルシステム固有の値
defaultデフォルト値
inherited from rpoolrpoolから引き継いだ値
localファイルシステムに設定された値

プロパティの種類


プロパティには、ネイティブプロパティとユーザ定義プロパティの2種類があります。ネイティブプロパティは、ZFS内部の統計情報を表示したり、ZFSの動作を制御できます。ネイティブプロパティは、特に断りのない限りすべてのデータセットで使用できます。

ユーザープロパティはZFSの動作には影響しませんが、データセットにコメントを付けるために使用できます。

プロパティの値


数字を表示するプロパティの場合、人間が読める形式(k, KB, M, GからZ(Zeta)まで)の接尾語を指定できます。例えば、1536MB,、1.5g、1.50GBはすべて同じ値を指します。

数値以外のプロパティは小文字で書く必要があります。しかしプロパティmountpoint/sharenfs/shraresmb は、大文字小文字を指定でき、区別されます。


読み取り専用のZFS ネイティブプロパティ(1)


ZFSネイティブプロパティの中で、読み取り専用の情報について説明します。

available


available は、そのファイルシステムが使用可能な物理容量を表します。プロパティの対象は、プロパティが設定されたデータセット以下、すべての子データセットです。この値は、所属するZFSプールのサイズ、クォータ、予約、プール内の他データセットによって計算されます。avail という別名を使用できます。

$ zfs get available rpool/ROOT
NAME        PROPERTY   VALUE  SOURCE
rpool/ROOT  available  798G   -

compressratio


compressrasioは、データセットの子データセット以下を含むファイル圧縮率を、倍列で表したものです。このプロパティは子データセット以下の圧縮率を含みます。データセットがスナップショットの場合、スナップショット取得時の圧縮率を表示します。データセットがクローンの場合、元のスナップショットと共有されている領域を含みません。

# cloneの作成
$ sudo zfs clone -o mountpoint=legacy rpool/USERDATA/user1@snapshot rpool/USERDATA/user1__2 
# ファイルシステム、スナップショット、クローンの比較 
$ zfs get compressratio rpool/USERDATA/user1 \
  rpool/USERDATA/user1@snapshot \
  rpool/USERDATA/user1__2
NAME                           PROPERTY       VALUE  SOURCE
rpool/USERDATA/user1           compressratio  1.90x  -
rpool/USERDATA/user1@snapshot  compressratio  1.86x  -
rpool/USERDATA/user1__2        compressratio  1.00x  -

createtxg


createtxg は、データセットが作成されたトランザクショングループ(txg)です。このプロパティは、増分バックアップ・リストアを行う場合の、スナップショットのリストを指定するのに使用されます。

creation


creationは、データセットが作成された日時です。

clones/origin


clonesは、対象がスナップショットの場合、cloneされたデータセットのコンマ区切りリストです。スナップショット以外の場合は、値が設定されません。originはclonesの逆で、対象がクローンの場合、その作成元のスナップショットを表示します。クローン以外の場合は、値が設定されません。

# cloneをもう一つ作成
$ sudo zfs clone -o mountpoint=legacy rpool/USERDATA/user1@snapshot rpool/USERDATA/user1__3
# ファイルシステム、スナップショット、クローンのclones/originを表示
$ zfs get clones,origin rpool/USERDATA/user1 \
  rpool/USERDATA/user1@snapshot \
  rpool/USERDATA/user1__2 rpool/USERDATA/user1__3
NAME                           PROPERTY  VALUE                                            SOURCE
rpool/USERDATA/user1           clones    -                                                -
rpool/USERDATA/user1           origin    -                                                -
rpool/USERDATA/user1@snapshot  clones    rpool/USERDATA/user1__3,rpool/USERDATA/user1__2  -
rpool/USERDATA/user1@snapshot  origin    -                                                -
rpool/USERDATA/user1__2        clones    -                                                -
rpool/USERDATA/user1__2        origin    rpool/USERDATA/user1@snapshot                    -
rpool/USERDATA/user1__3        clones    -                                                -
rpool/USERDATA/user1__3        origin    rpool/USERDATA/user1@snapshot                    -



終わりに


今回はZFSのプロパティについて説明しました。次回も、ZFSのプロパティについて説明します。次回をお楽しみに。



さて、このコラムを掲載いただいているデジタル・ヒュージ・テクノロジー社は老舗のOSSインテグレーターです。特にLinuxは強く、OSSを活用した業務システムの実績も多いです。興味がある方は以下のページもご覧ください。
DHT OSS導入コンサルティングサービス

関連記事一覧