Với ZFS trên Linux, làm cách nào để liệt kê các thuộc tính cụ thể của thiết bị (vdev)?


9

Tôi đang sử dụng ZFS một thời gian mà không gặp vấn đề gì. Tôi vẫn còn hào hứng với nó, và tôi rất tin tưởng nó. Nhưng thỉnh thoảng, những câu hỏi mới xuất hiện trong đầu tôi (đặc biệt là sau khi đọc một số tài liệu, đôi khi làm tăng số lượng câu hỏi thay vì giảm nó).

Trong trường hợp này, tôi đã thêm một vdev (gương) mới vào nhóm gốc và do đó đã đọc hướng dẫn zpool ( man zpool). Ở cuối phần zpool add, nó ghi:

-o tài sản = giá trị

Đặt thuộc tính nhóm đã cho. Xem phần "Thuộc tính" để biết danh sách các thuộc tính hợp lệ có thể được đặt. Tài sản duy nhất được hỗ trợ tại thời điểm này là ashift. Xin lưu ý rằng một số thuộc tính (trong số đó là ashift) không được kế thừa từ một vdev trước đó. Họ là vdev cụ thể, không cụ thể hồ bơi.

Điều đó có nghĩa là ashifttài sản không phải là nhóm cụ thể, nhưng cụ thể là vdev. Nhưng tôi không thể tìm thấy bất kỳ lệnh hoặc tùy chọn nào cho phép tôi xem thuộc tính đó (hoặc bất kỳ thuộc tính cụ thể nào khác của vdev) trên mỗi vdev.

Nói cách khác, ví dụ, nếu tôi có một nhóm chứa một vdev với ashift=12và một vdev với ashift=10, làm thế nào tôi có thể xác minh điều này?

Những gì tôi đã thử:

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

Vì vậy, zpool listcũng không zpool gethiển thị bất kỳ tài sản theo cách cụ thể vdev.

Có ý kiến ​​gì không?

Câu trả lời:


9

Để xem giá trị hiện tại của một cài đặt cụ thể như thế nào ashift, bạn sẽ cần sử dụng zdblệnh thay vì zpoollệnh.

Tự chạy zdbmà không có đối số sẽ cung cấp cho bạn chế độ xem bất kỳ poolstìm thấy nào trên hệ thống, và các vdevsổ đĩa của chúng trong 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

hoặc, chỉ ashiftvới một số bối cảnh:

root@pve1:/home/tim#  sudo zdb | egrep 'ashift|vdev|type' | grep -v disk
    vdev_children: 1
    vdev_tree:
        type: 'root'
            type: 'raidz'
            ashift: 9

Đây là một bài viết blog cũ vềzdb điều đó vẫn còn rất nhiều thông tin về nguồn gốc và ý định, và thông tin đi ra zdb. Một google nhanh cũng cho thấy nhiều bài viết có thể được cụ thể phù hợp hơn với ZFS trên Linux.


1
Bây giờ đó là những gì tôi đang gọi một câu trả lời. zdbdường như không được đề cập trên một trong những trang của Sun thường xuất hiện nếu bạn google cho "ZFS <Something>". Trước khi chuyển sang ZFS, tôi đã dành rất nhiều thời gian để nghiên cứu xem đó có phải là điều phù hợp với tôi không, và làm thế nào tôi có thể cài đặt và định cấu hình nó, nhưng tôi chưa bao giờ vấp ngã zdb; Hơn nữa, không phải man zpoolvà cũng không man zfscó bất kỳ gợi ý với nó, trong đó có "xin xem thêm" phần. Cảm ơn rất nhiều!
Binarus

1
Đó là một quan sát thú vị. Tôi đã làm việc tại Sun khi ZFS được phát hành, và sau đó cho các công ty khác đã làm việc rất nhiều với ZFS, vì vậy zdbcó vẻ như đó là điều tự nhiên đối với tôi. Tôi đã không nhận ra đó là ma thuật đen vào thời điểm này. :) Open-ZFS là một tập đoàn của IllumOS / OmniOS / OpenSolaris / FreeBSD / Linux / một nhà phát triển khác đang cố gắng đảm bảo toàn bộ thế giới ZFS không phải của Oracle luôn được liên kết chặt chẽ. Wiki của họ khá tốt và có nhiều thông tin, bao gồm một số tài liệu tham khảo zdb, Xem: open-zfs.org/w/ Kẻ
Tim Kennedy

1
ZFS trên Linux có các trang man ZFS khá tốt. Theo như tôi có thể thấy, chúng giống như của Solaris, trừ đi các đặc sản của Solaris. Hãy đoán xem: Trên các hệ thống Linux của tôi, hãy man zdblàm những gì bạn mong đợi :-) Vì vậy, nó được ghi lại bằng cách nào đó, nhưng vì nó được đề cập gần như không có, nên không ai có ý tưởng để gõ man zdb. Từ bài đăng trên blog mà bạn đã liên kết: "[...] nhưng tôi nghĩ, phần nào là cố ý, không có giấy tờ. Chỉ có hai người khác mà tôi biết đã có can đảm để nói về nó một cách công khai [...]" :-)
Binarus
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.