Linux의 ZFS의 경우 장치(vdev) 특정 속성을 나열하는 방법은 무엇입니까?

Linux의 ZFS의 경우 장치(vdev) 특정 속성을 나열하는 방법은 무엇입니까?

저는 한동안 아무 문제 없이 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해당 명령을 사용해야 합니다 .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. ㅏ빠른 구글또한 Linux의 ZFS와 보다 구체적으로 관련될 수 있는 여러 게시물도 공개되었습니다.

관련 정보