私はしばらく問題なくZFSを使用してきました。私はまだそれについて興奮しており、それに対する多くの信念を持っています。しかし、時々新しい質問が浮かび上がります(特にいくつかの文書を読んだ後は、質問の数が減りますが、増えます)。
今回はルートプールに新しいvdev(ミラー)を追加したので、zpoolマニュアル(man zpool
)を読んでみました。このセクションの最後には、次のようzpool add
に指定されています。
-o属性=値
指定されたプール属性を設定します。設定できる有効なプロパティのリストについては、プロパティセクションを参照してください。現在サポートされている唯一のプロパティはashiftです。一部の属性(そのうち非切り替え)は、以前のvdevから継承されません。これはプールに限定されず、vdevによって異なります。
これはashift
、属性がプール固有ではなくvdev固有の属性であることを意味します。ただし、各vdevの属性(または他のvdev関連の属性)を表示するためのコマンドまたはオプションは見つかりません。
つまり、たとえば、vdevashift=12
とvdevを含むプールがある場合はashift=10
どうすればよいですか?
私が試したこと:
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
したがって、vdev固有の方法zpool list
でzpool get
は属性は表示されません。
どんなアイデアがありますか?
答え1
たとえば、特定の設定の現在の値を表示するには、コマンドの代わりに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
。 ㅏクイックGoogleまた、LinuxのZFSとより具体的に関連する可能性があるいくつかの記事も公開されています。