blockdev reportam blocos diferentes se montados

1

Eu tenho um proliant rodando o Red Hat 7, com dois discos de dados com raid 1 (raid de hardware).

Eu criei o arquivo sytem usando este comando:

mkfs.xfs /dev/sdb

O tamanho padrão do bloco para xfs é 4096.

Então blockdev --report dispay this:

RO    RA   SSZ   BSZ  1er sect.          Taille   Périphérique
rw  8192   512  4096          0    600093712384   /dev/sdb

Tudo bem.

Se eu montar a unidade, blockdev --report dispay this:

RO    RA   SSZ   BSZ  1er sect.          Taille   Périphérique
rw  8192   512  512          0    600093712384   /dev/sdb

Portanto, o tamanho do bloco parece ser 512 em vez de 4096 após a montagem.

Eu não consigo descobrir o porquê. Eu tenho um banco de dados tu colocar nesta unidade e eu preciso de um tamanho de bloco 4096. Qualquer ideia ? O tamanho do bloco é 512 ou 4096?

    
por user354432 13.05.2016 / 15:46

4 respostas

2

Quando houver uma partição montada, o tamanho do bloco será definido para refletir o tamanho do bloco da partição. Caso contrário, exibirá o tamanho de bloco padrão do dispositivo real.

O que é mais confuso no seu caso é que você não tem partições, o que teria tornado a situação mais aparente.

    
por 13.05.2016 / 16:34
0

Não faço ideia porque é, mas fiz o seguinte:

$ mkfs -t xfs -f /dev/sdb
meta-data=/dev/sdb               isize=512    agcount=21, agsize=268435455 
blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=5370675200, imaxpct=5
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=521728, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
$ blockdev --report /dev/sdb 
RO    RA   SSZ   BSZ   StartSec            Size   Device
rw   256   512  4096          0  21998285619200   /dev/sdb
$ mount /scratch/
$ blockdev --report /dev/sdb 
RO    RA   SSZ   BSZ   StartSec            Size   Device
rw   256   512   512          0  21998285619200   /dev/sdb

Nenhuma surpresa. O mesmo que você. ( BSZ vai para 512 quando montado) Então, eu tentei o parâmetro -s :

$ mkfs -t xfs -f -s size=4096 /dev/sdb -L cta5.scratch
meta-data=/dev/sdb               isize=512    agcount=21, agsize=268435455 
blks
         =                       sectsz=4096  attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=5370675200, imaxpct=5
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=521728, version=2
         =                       sectsz=4096  sunit=1 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
$ blockdev --report /dev/sdb 
RO    RA   SSZ   BSZ   StartSec            Size   Device
rw   256   512  4096          0  21998285619200   /dev/sdb
$ mount /scratch/
$ blockdev --report /dev/sdb 
RO    RA   SSZ   BSZ   StartSec            Size   Device
rw   256   512  4096          0  21998285619200   /dev/sdb

O sectsz foi alterado na resposta do comando mkfs . E Hooray! Ele fica em 4k BSZ. O que quer que isso signifique…

Isso está em um sistema de arquivos RAID0 de 10 × 2TB. E meu sistema operacional é um derivado do RHEL7 também.

    
por 02.08.2018 / 15:30
0

Resposta curta: no momento da montagem, o XFS define o "tamanho do bloco" do dispositivo de bloco como "tamanho do setor" mostrado na saída mkfs.xfs ou xfs_info. Alterar o tamanho do setor do formato no mkfs time resultará em um dispositivo de bloco diferente "tamanho do bloco" quando montado.

Resposta mais longa: O XFS define o tamanho do bloco do dispositivo de bloco no momento da montagem para o tamanho "setor" interno, que é a menor granularidade de E / S que será executada. Ele faz isso hoje por meio de uma chamada set_blocksize() em xfs_setsize_buftarg() .

Na pergunta original acima, o sistema de arquivos tem um tamanho de bloco de 4k, mas um tamanho de setor de 512 bytes; Isso significa que as atualizações de metadados ainda podem ser feitas em IOs de 512 bytes e, portanto, o XFS define o dispositivo de bloco "tamanho de bloco" como 512.

Se você usar o parâmetro -s sectsize para mkfs.xfs, isso alterará a menor unidade de E / S para o tamanho especificado e o XFS também definirá o "tamanho de bloco" do dispositivo de bloco para esse mesmo valor no momento da montagem.

Nota: O tamanho do setor selecionado não deve ser maior que o IO atômico máximo que a unidade pode executar, porque o XFS espera que uma gravação do tamanho do setor seja completamente gravada ou falhe, sem gravações parciais entre elas. Em geral, o mkfs.xfs consultará o dispositivo para o tamanho de setor apropriado e escolherá os padrões corretos.

    
por 06.08.2018 / 23:43
-1

Isso provavelmente é porque a partição foi criada com um tamanho de setor pequeno. tente isso:

mkfs.xfs -s size=4096 -b size=4096 -f /dev/sdb1

(certifique-se de fazer backup dos dados primeiro) e depois monte o fs.

    
por 21.03.2017 / 08:39

Tags