Linux에서 ZFS를 사용하면 장치 (vdev) 관련 속성을 어떻게 나열합니까?

지금부터 문제없이 ZFS를 사용하고 있습니다. 나는 아직도 그것에 대해 흥분하고 그것을 매우 신뢰합니다. 그러나 때때로 새로운 질문이 떠 오릅니다 (특히 일부 문서를 읽은 후에는 때때로 질문을 줄이는 대신 질문 수가 증가 함).

이 경우 루트 풀에 새 vdev (미러)를 추가 했으므로 zpool 매뉴얼 ( man zpool)을 읽었습니다 . 섹션의 끝에 다음과 같이 표시 zpool add됩니다.

-o 속성 = 값

주어진 풀 속성을 설정합니다. 설정할 수있는 유효한 속성 목록은 “속성”섹션을 참조하십시오. 현재 지원되는 유일한 속성은 교대입니다. 일부 속성 (이동 중)은 이전 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표시 하지 않습니다 .

어떤 아이디어?



답변

과 같은 특정 설정의 현재 값을 보려면 명령 대신 명령 ashift을 사용해야합니다 .zdbzpool

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. 빠른 구글은 리눅스에 ZFS에 더 구체적으로 관련 될 수있는 많은 게시물을 보여준다.