Como posso verificar se os inodes de 64 bits são usados em um sistema de arquivos XFS existente?

2

Alguns dos meus usuários tiveram problemas com o software (no Scientific Linux) que não pode listar o conteúdo do diretório ao acessar um sistema de arquivos XFS montado com a opção "inode64". Então copiei os dados para um sistema de arquivos XFS recentemente criado sem essa opção.

Infelizmente durante o processo de troca dos sistemas de arquivos, inadvertidamente montei o novo sistema de arquivos brevemente com a opção inode64. Eu notei o erro rapidamente e desmontei-o, e verifiquei que não há arquivos com um tempo de modificação posterior ao erro.

Mas existe alguma forma que os inodes acima do limite de 32 bits possam ter sido criados sem que isso seja aparente nos tempos de modificação de arquivos, e existe alguma maneira de verificar isso? valor máximo de inode?

    
por Ben 19.09.2011 / 18:01

1 resposta

4

xfs_db pode ajudá-lo aqui, mas é preciso um pequeno cálculo.

[root@system]# xfs_info /s2b
meta-data=/dev/lxvm/ddn40_s2b    isize=512    agcount=150, agsize=52429056 blks
         =                       sectsz=512   attr=1, nfs4acl=0
data     =                       bsize=4096   blocks=7814070272, imaxpct=25

você tem 150 grupos de alocação numerados de 0 a 147, eles são 52429056 (4096b) blks (200 Gbytes) em tamanho.

NOTA: eu uso -r (somente leitura) no seguinte xfs_db . Você pode realmente atrapalhar seu sistema de arquivos se usar o xfs_db com a gravação ativada. Você também pode fazer algumas coisas úteis. Ative somente a gravação com xfs_db se você pretende gravar no sistema de arquivos. Escrever em um sistema de arquivos montado pode acabar em uma corrida com o SO.

Para cada seção de inode (agi) do grupo de alocação, imprima o número de inodes na seção:

[root@system]# for i in 'seq 0 149'
lou $ do
lou $ xfs_db -r -c "agi $i" -c "print count" /dev/lxvm/ddn40_s2b 
lou $ done
count = 1349120
count = 1326464
count = 1376768
count = 1256448
count = 1184512
count = 1244352
count = 1373376
count = 1303296
count = 0
... (remaining counts were zero)

assim, as primeiras sete seções (ou 1400 Gbytes) tinham inodes neles, dentro do inode32 limite. Este procedimento permite responder a sua pergunta. É bonito rápido também.

    
por 29.02.2012 / 23:23

Tags