Usando unidades de 4k com md / LVM / dm-crypt

8

Eu sei que tenho que alinhar minhas unidades de 4k por um múltiplo de 8 setores, mas e o md-RAID / LVM / dm-crypt? Como digo a essas camadas que minha unidade é de 4k? Se eles não respeitarem o tamanho do setor de 4k, o alinhamento da partição será inútil. Como alinhar camadas LVM / md / cripto? Obrigado.

Vincent
fonte
2
Eu estava pensando: "Hmm, 4 kilobytes parecem muito pequenos para uma unidade de disco". Talvez seja o novo 640k.
Tom O'Connor
@Tom. Muitos sistemas de arquivos usam um tamanho de bloco de 4 KB, portanto, setores maiores resultam em muita leitura, modificação e gravação que prejudicam o desempenho. Em segundo lugar, o impulso para setores maiores foi principalmente aumentar a eficiência da ECC, e há retornos decrescentes para torná-la ainda maior.
janneb
@janneb Você é Buzz Killington AICMFP
Tom O'Connor

Respostas:

4

Seja cuidadoso! As etiquetas gpt, necessárias para discos> 2 TiB, têm 39 setores (512 bytes) de comprimento. Portanto, se você criar sua primeira partição imediatamente após o rótulo, ela não estará no limite de 4KiB.

O GNU parted não faz isso por padrão, provavelmente porque muitos drives "Advanced Format" afirmam falsamente que seus setores físicos , não apenas os setores lógicos, ainda são apenas 512B.

Portanto, se você estiver usando o GNU parted, verifique se cada partição inicia em um LBA divisível por 8 (os LBAs permanecem 512B, então 8 * 512B = 4KiB). Os LBAs se originam em 0, então inicie a primeira partição em "40s".

Além disso, se você usar o GRUB, deixe espaço para sua segunda etapa de inicialização. Os rótulos do MS-DOS são 63 setores, com espaço não utilizado suficiente para o GRUB ocultar sua autoinicialização de segundo estágio, mas não há espaço não utilizado em um rótulo gpt. Portanto, faça uma pequena partição 1, defina seu sinalizador "bios_grub" e crie suas partições "reais" depois disso - certificando-se de que cada uma comece em um LBA múltiplo de 8.

Phil Karn
fonte
3

Consulte https://ata.wiki.kernel.org/index.php/ATA_4_KiB_sector_issues

A versão curta é que, se você tem uma distribuição recente, ela deve fazer automaticamente a coisa certa. Para distros mais antigos, é um pouco mais complicado.

Para o LVM, você deve investigar a --dataalignmentopção pvcreate, ou para distribuições ainda mais antigas -–metadatasize.

O MD, AFAIK, coloca seus próprios metadados no final das partições, portanto, ele deve sempre estar alinhado à partição subjacente.

Para mkfs, novamente o sistema de arquivos deve estar alinhado com a partição subjacente. Para alguns sistemas de arquivos, você pode adicionar opções de largura e tamanho de faixa, caso esteja executando em um dispositivo RAID, para que o sistema de arquivos possa tentar alinhar as coisas nos limites das faixas RAID.

janneb
fonte
1

O problema está principalmente no alinhamento da partição, começando com a estrutura do disco subjacente. para manter os discos de compatibilidade com versões anteriores 'mentem' para as bios / os que possuem setores de 512B, enquanto na verdade eles têm setores de 4096B no caso de discos rígidos modernos, setores de 32 a 64kB no caso de invasões / SSDs de descasque mais comuns.

partições desalinhadas prejudicarão seu desempenho. Eu fiz alguns benchmarks apenas em partições regulares na parte superior do disco - sem lvm e meus resultados medidos com bonnie ++ estavam sem alinhamento adequado:

Sequential Output Block: 29MB/s
Sequential Output Rewrite: 20MB/s

com alinhamento:

Sequential Output Block: 70MB/s
Sequential Output Rewrite: 37MB/s

verifique isso para alinhamento lvm.

pQd
fonte
0

A maioria das distribuições mais recentes é atualizada para saber sobre a coisa 4K até agora. Acabei de criar uma instalação md-RAID / LVM / XFS em um monte de unidades de 2 TB sem problemas. Não fez nada de especial.

Varanda
fonte
Eu não concordo ... claro - tudo funciona, mas as partições estão alinhadas a falta, o que prejudica o desempenho.
PQD
Bem, isso implora as perguntas. Eu tenho vários ataques diferentes usando unidades de 2 TB a 500 GB com um LVM em cima deles formatado com XFS. Então, como exatamente tudo funcionaria se todas as unidades não fossem 4k? Eu adoraria fazer benchmarks, mas meu servidor terra é mais lento que os drives, portanto, seria inútil.
Porch