ด้วย ZFS บน Linux ฉันจะแสดงรายการคุณสมบัติเฉพาะของอุปกรณ์ (vdev) ได้อย่างไร


10

ฉันใช้ ZFS มาระยะหนึ่งแล้วโดยไม่มีปัญหา ฉันยังคงตื่นเต้นกับมันและฉันก็เชื่อมั่นอย่างสูง แต่บางครั้งคำถามใหม่ ๆ มาถึงใจของฉัน (โดยเฉพาะหลังจากอ่านเอกสารบางอย่างซึ่งบางครั้งจะเพิ่มจำนวนคำถามแทนที่จะลดลง)

ในกรณีนี้ฉันได้เพิ่ม vdev (มิรเรอร์) ใหม่ลงในรูทพูลและดังนั้นจึงได้อ่านคู่มือ zpool ( man zpool) ในตอนท้ายของส่วนzpool addมันระบุ:

-o property = value

ตั้งค่าคุณสมบัติพูลที่กำหนด ดูส่วน "คุณสมบัติ" สำหรับรายการคุณสมบัติที่ถูกต้องที่สามารถตั้งค่าได้ คุณสมบัติเฉพาะที่สนับสนุนในขณะนี้คือ ashift โปรดทราบว่าคุณสมบัติบางอย่าง (ในหมู่พวกเขา 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

ดังนั้นค่าzpool listมิได้zpool getแสดงสถานที่ให้บริการในลักษณะ vdev ที่เฉพาะเจาะจงใด ๆ

ความคิดใด ๆ

คำตอบ:


10

เพื่อดูค่าปัจจุบันของการตั้งค่าเฉพาะเช่นashiftคุณจะต้องใช้zdbคำสั่งแทนzpoolคำสั่ง

วิ่งzdbบนของตัวเองด้วยการขัดแย้งใดจะให้มุมมองของการใด ๆpoolsที่พบในระบบและของพวกเขาและดิสก์ภายในvdevsvdevs

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

นี่คือบล็อกโพสต์เกี่ยวกับเรื่องเก่าzdbzdbที่ยังคงให้ข้อมูลมากเกี่ยวกับต้นกำเนิดและความตั้งใจและข้อมูลที่ออกมาของ Google อย่างรวดเร็วนอกจากนี้ยังโพสต์เผยให้เห็นหลายอย่างที่อาจจะมีความเกี่ยวข้องโดยเฉพาะเพื่อ ZFS บน Linux


1
ตอนนี้นั่นคือสิ่งที่ฉันกำลังเรียกคำตอบ zdbดูเหมือนจะไม่ได้รับการกล่าวถึงในหน้าใดหน้าหนึ่งของ Sun ซึ่งมักจะปรากฏขึ้นหากคุณ google สำหรับ "ZFS <something>" ก่อนที่จะเปลี่ยน ZFS ผมได้ใส่จำนวนมากอย่างไม่น่าเชื่อของเวลาเข้ามาค้นคว้าถ้ามันเป็นสิ่งที่ถูกต้องสำหรับฉันและวิธีการที่ฉันสามารถติดตั้งและกำหนดค่า แต่ฉันไม่เคยเจอzdb; นอกจากนี้ค่าman zpoolมิได้man zfsมีคำแนะนำใด ๆ ไปรวมทั้ง "ดู" ส่วน ขอบคุณมาก!
Binarus

1
นั่นเป็นข้อสังเกตที่น่าสนใจ ฉันทำงานที่ Sun เมื่อ ZFS เปิดตัวและต่อมาสำหรับ บริษัท อื่นที่ทำงานกับ ZFS ได้มากฉันจึงzdbรู้สึกเป็นธรรมชาติ ฉันไม่ทราบว่ามันเป็นมนต์ดำ ณ จุดนี้ :) Open-ZFS เป็นกลุ่มของ IllumOS / OmniOS / OpenSolaris / FreeBSD / Linux / นักพัฒนาคนอื่น ๆ ที่พยายามที่จะทำให้แน่ใจว่าโลก ZFS ที่ไม่ใช่ Oracle ทั้งหมดนั้นอยู่ในแนวเดียวกัน Wiki ของพวกเขานั้นค่อนข้างดีและมีข้อมูลจำนวนมากรวมถึงการอ้างอิงถึงzdbดู: open-zfs.org/w/…
Tim Kennedy

1
ZFS บน Linux มีหน้าคน ZFS ซึ่งค่อนข้างดี เท่าที่ฉันเห็นพวกมันเหมือนกับโซลาริสลบโซลาริส และคาดเดาสิ่ง: บนระบบ Linux ของฉันman zdbไม่สิ่งที่คุณคาดหวัง :-) ดังนั้นจึงเป็นเอกสารอย่างใด man zdbแต่เนื่องจากเป็นที่กล่าวถึงเกือบไม่มีที่ไหนเลยไม่มีใครมาถึงความคิดที่จะประเภท จากโพสต์บล็อกที่คุณเชื่อมโยง: "[... ] แต่มันก็ค่อนข้างตั้งใจฉันคิดว่าไม่มีเอกสารอีกสองคนเท่านั้นที่ฉันรู้ว่ามีความกล้าหาญที่จะพูดคุยเกี่ยวกับมันสาธารณะ [... ]" :-)
Binarus
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.