Як ZFS в Linux, як перерахувати специфічні властивості пристрою (vdev)?


10

Я використовую 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

Отже, zpool listні zpool getпоказувати будь-яку властивість в vdev конкретно.

Будь-які ідеї?

Відповіді:


10

Для того, щоб переглянути поточне значення конкретного параметра типу ashift, вам потрібно буде використовувати zdbкоманду замість zpoolкоманди.

Запуск 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. Швидкий Google також показує багато повідомлень , які можуть бути більш конкретно відношення до ZFS на Linux.


1
Тепер , що це те , що я називаю відповідь. zdbЗдається, не згадується на одній із сторінок Sun, яка зазвичай з’являється, якщо ви перейдете на Google для "ZFS <щось>". Перш ніж перейти на ZFS, я вклав неймовірно багато часу на дослідження, чи це для мене правильна річ, і як я міг би її встановити та налаштувати, але я ніколи не натрапляв на неї zdb; окрім того, ні на це man zpoolне man zfsмають жодних натяків, включаючи розділ "ДИВІТЬСЯ ТАКОЖ". Дуже дякую!
Бінарус

1
Це цікаве спостереження. Я працював у Sun, коли ZFS був випущений, а пізніше для інших компаній, які багато працювали з ZFS, так zdbздається мені природним. Я не розумів, що це чорна магія на даний момент. :) Open-ZFS - це консорціум IllumOS / OmniOS / OpenSolaris / FreeBSD / Linux / інших розробників, які намагаються переконатися, що весь світ, що не належить Oracle ZFS, залишається в тісному співвідношенні. Їх Wiki досить хороший і має багато інформації, включаючи деякі посилання на zdb, Дивіться: open-zfs.org/w/…
Tim Kennedy

1
ZFS в Linux має досить хороші сторінки ZFS. Наскільки я міг бачити, вони такі ж, як і у Solaris, за вирахуванням спеціальностей Solaris. І вгадайте, що: На моїх системах Linux man zdbробить те, що ви очікували :-) Так це документально зафіксовано, але так як це майже ніде не згадується, ніхто не приходить до думки вводити текст man zdb. З публікації в блозі, яку ви пов’язали: "[...], але це, дещо навмисно, я думаю, недокументований. Тільки двоє інших, які я знаю, мали сміливість говорити про це публічно [...]" :-)
Бінарус
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.