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 rpool | rpoolから引き継いだ値 |
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導入コンサルティングサービス