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


10

지금부터 문제없이 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표시 하지 않습니다 .

어떤 아이디어?

답변:


10

과 같은 특정 설정의 현재 값을 보려면 명령 대신 명령 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에 더 구체적으로 관련 될 수있는 많은 게시물을 보여준다.


1
이제 그것은 내가 대답을 부르고 것입니다. zdb"ZFS <something>"을 검색하면 일반적으로 나타나는 Sun 페이지 중 하나에 언급되지 않은 것 같습니다. ZFS로 전환하기 전에, 그것이 제게 옳은지, 어떻게 설치하고 구성 할 수 있는지 연구하는 데 엄청난 시간을 투자했지만 결코 우연히 만난 적이 없습니다 zdb. 또한 "또한 참조"섹션을 포함하여 힌트 도 제공하지 man zpool않습니다 man zfs. 고마워요!
Binarus

1
흥미로운 관찰입니다. ZFS가 릴리스되었을 때 Sun에서 근무했으며 나중에 ZFS와 많은 작업을 수행 한 다른 회사 zdb의 경우에는 자연 스러워 보입니다. 나는이 시점에서 그것이 흑 마술이라는 것을 몰랐다. :) Open-ZFS는 IllumOS / OmniOS / OpenSolaris / FreeBSD / Linux / 컨소시엄으로, 타사 이외의 ZFS 환경 전체를 밀접하게 조정하려는 다른 개발자들입니다. 그들의 Wiki는 꽤 좋고 참고 자료를 포함하여 많은 정보를 가지고있다 zdb. 참조 : open-zfs.org/w/…
Tim Kennedy

1
Linux의 ZFS에는 ZFS 매뉴얼 페이지가있어 상당히 좋습니다. 내가 볼 수있는 한, 그것들은 솔라리스 특산품을 뺀 솔라리스와 동일합니다. 그리고 무엇을 추측하십시오 : 내 Linux 시스템에서 man zdb당신이 기대하는 것을 수행합니다 :-) 그래서 어떻게 든 문서화되었지만 거의 어디에 언급되어 있지 않으므로 아무도 타이핑 할 생각을하지 않습니다 man zdb. 블로그 게시물에서 당신은 "[...]을 연결했지만 문서화되지 않은 것으로 생각합니다. 내가 아는 두 사람 만이 공개적으로 이야기 할 용기가있었습니다 ...] :-)
Binarus
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.