저는 한동안 아무 문제 없이 ZFS를 사용해 왔습니다. 나는 아직도 그것에 대해 흥분하고 그것에 대한 많은 믿음을 가지고 있습니다. 그러나 때때로 새로운 질문이 떠오릅니다(특히 일부 문서를 읽은 후에는 질문 수가 줄어들기도 하지만 늘어나기도 합니다).
이번 경우에는 루트 풀에 새로운 vdev(미러)를 추가했기 때문에 zpool 매뉴얼( man zpool
)을 읽어보았습니다. 이 섹션의 끝부분에는 다음 zpool add
과 같이 명시되어 있습니다.
-o 속성=값
지정된 풀 속성을 설정합니다. 설정할 수 있는 유효한 속성 목록은 속성 섹션을 참조하세요. 현재 지원되는 유일한 속성은 ashift입니다. 일부 속성(그 중 비전환)은 이전 vdev에서 상속되지 않습니다. 이는 풀에 국한되지 않고 vdev에 따라 다릅니다.
이는 ashift
속성이 풀에 특정한 것이 아니라 vdev에 특정한 속성임을 의미합니다. 하지만 각 vdev의 속성(또는 다른 vdev 관련 속성)을 볼 수 있는 명령이나 옵션을 찾을 수 없습니다.
즉, 예를 들어 vdev ashift=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
. ㅏ빠른 구글또한 Linux의 ZFS와 보다 구체적으로 관련될 수 있는 여러 게시물도 공개되었습니다.