Estou usando o ZFS há algum tempo, sem problemas. Ainda estou empolgado com isso e confio muito nele. Mas, de tempos em tempos, novas perguntas vêm à minha mente (em especial depois de ler alguma documentação, o que às vezes aumenta o número de perguntas em vez de reduzi-la).
Nesse caso, adicionei um novo vdev (um espelho) a um pool raiz e, portanto, li o manual do zpool ( man zpool
). No final da seção zpool add
, afirma:
-o propriedade = valor
Define as propriedades do pool especificadas. Consulte a seção "Propriedades" para obter uma lista de propriedades válidas que podem ser definidas. A única propriedade suportada no momento é ashift. Observe que algumas propriedades (entre elas o ashift) não são herdadas de um vdev anterior. Eles são específicos do vdev, não do pool.
Isso significa que a ashift
propriedade não é específica do pool, mas específica do vdev. Mas não consegui encontrar nenhum comando ou opção que me permitisse visualizar essa propriedade (ou qualquer outra propriedade específica do vdev) por vdev.
Em outras palavras, por exemplo, se eu tenho um pool que contém um vdev com ashift=12
e um vdev com ashift=10
, como posso verificar isso?
O que eu já tentei:
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
Portanto, zpool list
nem zpool get
mostra nenhuma propriedade de uma maneira específica do vdev.
Alguma ideia?
zdb
não parece ser mencionado em uma das páginas da Sun, que geralmente aparecem se você procurar "ZFS <something>" no Google. Antes de mudar para o ZFS, dediquei muito tempo a pesquisar se é a coisa certa para mim e como eu poderia instalar e configurá-lo, mas nunca me deparei com issozdb
; além disso,man zpool
nemman zfs
tem nenhuma dica, incluindo a seção "VER TAMBÉM". Muito obrigado!zdb
parece natural. Eu não percebi que era magia negra neste momento. :) O Open-ZFS é um consórcio do IllumOS / OmniOS / OpenSolaris / FreeBSD / Linux / outros desenvolvedores que estão tentando garantir que todo o mundo não-Oracle ZFS permaneça alinhado. O Wiki deles é muito bom e possui muitas informações, incluindo algumas referências azdb
: Veja: open-zfs.org/w/…man zdb
faz o que você esperaria :-) Portanto, está documentado de alguma forma, mas, como é mencionado em quase nenhum lugar, ninguém chega à ideia de digitarman zdb
. Da postagem do blog que você vinculou: "[...] mas, de certa forma, penso intencionalmente, não documentado. Apenas duas outras pessoas que conheço tiveram a coragem de falar sobre isso publicamente [...]" :-)