私はしばらくの間ZFSを問題なく使用しています。私はまだそれについて興奮しており、私はそれを非常に信頼しています。しかし、時々、新しい質問が頭に浮かびます(特に、ドキュメントを読んだ後、質問の数を減らすのではなく増やす場合があります)。
この場合、新しいvdev(ミラー)をルートプールに追加したので、zpoolのマニュアル(man zpool
)を読みました。セクションzpool add
の最後には、次のように記載されています。
-o property = value
指定されたプールプロパティを設定します。設定できる有効なプロパティのリストについては、「プロパティ」セクションを参照してください。現在サポートされている唯一のプロパティはシフトです。一部のプロパティ(それらの中でashift)は以前のvdevから継承されないことに注意してください。これらはプール固有ではなく、vdev固有です。
つまり、ashift
プロパティはプール固有ではなく、vdev固有です。しかし、vdevごとにそのプロパティ(または他のvdev固有のプロパティ)を表示できるコマンドやオプションを見つけることができませんでした。
言い換えると、たとえば、ashift=12
を持つ1つのvdevとashift=10
を持つ1つのvdevを含むプールがある場合、これをどのように確認できますか?
私がすでに試したこと:
root@cerberus:~# zpool list -v -o ashift rpool
ASHIFT
12
mirror 928G 583G 345G - 27% 62%
ata-ST31000524NS_9WK21HDM - - - - - -
ata-ST31000524NS_9WK21L15 - - - - - -
mirror 928G 74.4M 928G - 0% 0%
ata-ST31000524NS_9WK21FXE - - - - - -
ata-ST31000524NS_9WK21KC1 - - - - - -
root@cerberus:~# zpool get all rpool
NAME PROPERTY VALUE SOURCE
rpool size 1.81T -
rpool capacity 31% -
rpool altroot - default
rpool health ONLINE -
rpool guid 3899811533678330272 default
rpool version - default
rpool bootfs rpool/stretch local
rpool delegation on default
rpool autoreplace off default
rpool cachefile - default
rpool failmode wait default
rpool listsnapshots off default
rpool autoexpand off default
rpool dedupditto 0 default
rpool dedupratio 1.00x -
rpool free 1.24T -
rpool allocated 583G -
rpool readonly off -
rpool ashift 12 local
rpool comment - default
rpool expandsize - -
rpool freeing 0 default
rpool fragmentation 13% -
rpool leaked 0 default
rpool feature@async_destroy enabled local
rpool feature@empty_bpobj active local
rpool feature@lz4_compress active local
rpool feature@spacemap_histogram active local
rpool feature@enabled_txg active local
rpool feature@hole_birth active local
rpool feature@extensible_dataset enabled local
rpool feature@embedded_data active local
rpool feature@bookmarks enabled local
rpool feature@filesystem_limits enabled local
rpool feature@large_blocks enabled local
したがって、zpool list
もzpool get
も、vdev固有の方法でプロパティを表示しません。
何か案は?
ashift
などの特定の設定の現在の値を表示するには、zdb
コマンドの代わりにzpool
コマンドを使用する必要があります。
zdb
を引数なしで単独で実行すると、システムで見つかったpools
とそのvdevs
、およびvdevs
内のディスクのビューが表示されます。
root@pve1:/home/tim# zdb
pm1:
version: 5000
name: 'pm1'
state: 0
txg: 801772
pool_guid: 13783858310243843123
errata: 0
hostid: 2831164162
hostname: 'pve1'
vdev_children: 1
vdev_tree:
type: 'root'
id: 0
guid: 13783858310243843123
children[0]:
type: 'raidz'
id: 0
guid: 13677153442601001142
nparity: 2
metaslab_array: 34
metaslab_shift: 33
ashift: 9
asize: 1600296845312
is_log: 0
create_txg: 4
children[0]:
type: 'disk'
id: 0
guid: 4356695485691064080
path: '/dev/disk/by-id/ata-DENRSTE251M45-0400.C_A181B011241000542-part1'
whole_disk: 1
not_present: 1
DTL: 64
create_txg: 4
children[1]:
type: 'disk'
id: 1
guid: 14648277375932894482
path: '/dev/disk/by-id/ata-DENRSTE251M45-0400.C_A181B011241000521-part1'
whole_disk: 1
DTL: 82
create_txg: 4
children[2]:
type: 'disk'
id: 2
guid: 11362800770521042303
path: '/dev/disk/by-id/ata-DENRSTE251M45-0400.C_A181B011241000080-part1'
whole_disk: 1
DTL: 59
create_txg: 4
children[3]:
type: 'disk'
id: 3
guid: 10494331395233532833
path: '/dev/disk/by-id/ata-DENRSTE251M45-0400.C_A181B011241000517-part1'
whole_disk: 1
DTL: 58
create_txg: 4
features_for_read:
com.delphix:hole_birth
com.delphix:embedded_data
または、いくつかのコンテキストでのashift
の場合:
root@pve1:/home/tim# Sudo zdb | egrep 'ashift|vdev|type' | grep -v disk
vdev_children: 1
vdev_tree:
type: 'root'
type: 'raidz'
ashift: 9
これがzdb
に関する古いブログ投稿です は、起源と意図、およびzdb
から得られる情報について非常に有益です。 A quick google は、Linux上のZFSに特に関連する可能性のある多くの投稿も明らかにします。