O que significa “alinhar” partições?


Respostas:


15

Alinhar a partição significa alinhá-la para corresponder à estrutura de bloco subjacente verdadeira.

Há muito tempo, os discos rígidos usam blocos de 512 bytes. Como isso ocorre há muito tempo, agora é quase impossível alterar o tamanho do bloco. Muito software precisaria ser corrigido.

Em um SSD, o tamanho real do bloco pode ser 128 KB. Em uma matriz RAID, pode ser de 64 KB. Em uma unidade de formato avançado, serão 4 KB.

Para compatibilidade com versões anteriores, a unidade continua trabalhando com blocos de 512 bytes. Mas, por razões de desempenho, seu sistema deve saber realmente o tamanho real do bloco.

Um dos ajustes de desempenho mais fáceis de fazer é alinhar a partição da unidade com o tamanho real do bloco, para que, quando o sistema operacional escreva 4 KB ou 64 KB ou 128 KB, grave um bloco inteiro.

Se a partição não estivesse alinhada, o resultado seria gravar 512 bytes no primeiro bloco e 4K - 512 bytes no segundo bloco, forçando o disco / SSD / RAID a executar dois ciclos de leitura-modificação-gravação em vez de uma gravação.



@AnkurTank: Não, a questão parece bem abordada.
Zan Lynx

Obrigado por sua atenção, só resta saber como confirmar se as partições estão alinhadas. Porque para mim, o parted ainda está reclamando que as partições não estão alinhadas. Além disso, tentei usar outra ferramenta, por exemplo, o gdisk, mas não consigo compilar o gdisk para. Então, pensei se você tem alguma sugestão sobre como verificar se isso ajudará.
AnkurTank

3

Partições são sequências de blocos e, por convenção de longa data, um bloco tem 512 bytes.

Portanto, uma partição pode iniciar em qualquer múltiplo de 512 bytes dentro de um disco, "visto" como uma sequência muito longa de bytes.

O hardware de disco subjacente, no entanto, que originalmente tinha o mesmo tamanho de setor de 512 bytes, agora usa um tamanho maior para eficiência. Digamos que seja 4096 bytes.

Por motivos de compatibilidade, o firmware entre o sistema operacional e o hardware ainda "fala em setores". Então você pergunta ao primeiro setor e o hardware recupera o primeiro bloco (4096 bytes), e o firmware extrai e entrega a fatia apropriada. Você pergunta ao segundo bloco e o bloco provavelmente é recuperado do cache.

Até agora, a incompatibilidade de tamanho do setor não tem contras.

Mas o sistema operacional também emprega blocos (geralmente chamados de clusters ) para eficiência, e os alinha à partição. Portanto, um cluster de 4 setores será composto pelos setores 5, 6, 7 e 8.

Quando o sistema operacional solicita o cluster de sistema de arquivos nº 2, o firmware recebe os setores lógicos 5, 6, 7 e 8. Se todos estiverem no mesmo bloco de disco , o disco deverá executar UMA leitura.

Mas se a partição iniciar no setor "errado", o primeiro cluster no sistema de arquivos acabará, por exemplo, simplificando nos setores 2, 3, 4 e 5. E eles poderão estar na metade do primeiro bloco de disco (1 -2-3-4), metade do segundo (5-6-7-8).

Agora você precisa de uma leitura extra . Para proporções de SO: disco de 1: 1, é o mesmo que dobrar as leituras. Se a proporção de SO / disco for 2: 1, um cluster tiver dois blocos de disco de hardware, você precisará de 2 + 1 = 3 leituras, uma penalidade de 50%:

OS   |--- cluster  12 ---|--- cluster  13 ---|--- cluster  14...
     |                   |                   |
HDD  --|----|----|----|-a--|--b-|-c--|-d--|-e--|----|---        BAD
     |                   |                   |
HDD  |----|----|----|----|-a--|--b-|-c--|-d--|----|----|---     GOOD

Acima, um cluster possui 4 blocos de hardware (proporção 4: 1) de 2 setores cada. Alinhar em setores "pares" significa que, para ler um cluster, essas 8 leituras de setor são convertidas em 4 leituras de bloco. Alinhar em setores ímpares significa que as mesmas 8 leituras de setor exigem 4 + 1 = 5 leituras de bloco, uma penalidade de desempenho de 25% (você adiciona uma leitura a cada quatro).

Se você tiver um disco desalinhado com proporção de 4: 1, o alinhamento o tornará 20% mais rápido (você salva uma leitura a cada 5).

Para tornar uma partição "alinhada", mova / defina seu deslocamento do início do disco para o múltiplo apropriado de setores 512b ou (dependendo da ferramenta), você pode inserir uma pequena partição no início do disco, com um tamanho que a próxima partição inicie exatamente em um limite do setor de disco. Neste segundo caso, enquanto em teoria você precisa no máximo de setores N-1, ou seja, muito poucos kilobytes, na prática você provavelmente precisará desperdiçar algumas centenas de kilobytes, possivelmente megabytes inteiros, para extrair o máximo desempenho da sua disco rígido de vários gigabytes.

(Você provavelmente pode recuperar esse espaço e muito mais, escolhendo adequadamente o tamanho do cluster do SO ).


11
As leituras não são tão ruins, sim, você precisa ler um pouco de dados extras, mas ler três blocos contíguos não custa significativamente mais tempo do que ler dois. O problema real é a gravação, para escrever uma seção menor que o tamanho do bloco subjacente, é necessário ler os dados, aguardar que o disco gire uma revolução completa e depois reescrevê-lo.
plugwash

11
Além disso, não há necessidade de criar partições extras, não há regra de que todo o espaço em um disco precise ser particionado.
plugwash

2

As unidades quase sempre são divididas em setores lógicos de 512 bytes, outros tamanhos são possíveis, mas raramente são usados ​​devido a problemas de compatibilidade. Nos discos rígidos mais antigos, esses eram setores separados que podiam ser gravados individualmente.

Até meados dos anos 2000, as partições eram tradicionalmente alinhadas às fronteiras dos "cilindros". Por razões históricas, um "cilindro" era normalmente de 63 setores. O setor 0 contém o setor de inicialização e a tabela de partição. Os setores posteriores do cilindro 0 às vezes continuavam com informações adicionais para o carregador de inicialização. A primeira partição normalmente começou no início do cilindro 1.

A maioria dos sistemas de arquivos agrupa setores em blocos maiores (às vezes chamados de "clusters"). Estes são geralmente de tamanho 4KiB.

Em algum momento, os fornecedores de unidades relançaram que seria mais eficiente se eles também usassem setores físicos em 4K, mas por motivos de compatibilidade mantiveram o tamanho do setor lógico em 512 bytes. Se o host lê ou grava todo o setor físico de uma só vez, as coisas são rápidas. Se a parte de leitura for muito rápida, a unidade pode simplesmente descartar os dados indesejados. No entanto, se o host gravar apenas parte de um setor físico, a unidade deverá ler o setor físico, combinar os dados lidos com os dados do host e, em seguida, reescrever o setor modificado. Isso significa esperar que a unidade gire na posição duas vezes e não uma vez.

Isso funciona bem se os clusters de 4K do sistema de arquivos estiverem alinhados aos setores físicos de 4K da unidade. Infelizmente, a maneira tradicional de particionar unidades significa que a primeira partição é basicamente garantida como desalinhada e as partições posteriores tiveram apenas 1 em 8 chances de serem alinhadas. Os fornecedores de unidades de formato avançado, portanto, tiveram que usar ferramentas para ajudar as pessoas a realinhar suas parições.

Considerações semelhantes podem ser aplicadas com matrizes de ataque e SSDs. Embora uma faixa de invasão seja provavelmente muito maior que um único cluster de sistema de arquivos, alguns sistemas de arquivos podem ter regiões ou similares alinhadas na potência de dois limites.

A prática normal atual é alinhar as partições aos limites de 1MiB, que é uma potência grande o suficiente para dois para ser um múltiplo de todos os tamanhos de bloco comuns.



0

Não sei se isso é útil, mas meu entendimento era que o alinhamento da partição ocorre quando você alinha uma determinada partição com uma unidade de faixa RAID subjacente.

Aparentemente, o desempenho pode ser ruim quando você usa um RAID baseado em hardware ou baseado em software; poderão surgir problemas se o local inicial da partição não estiver alinhado com um limite da unidade de distribuição na partição do disco criada no RAID.

Dependendo da fatoração para a criação de clusters de volume, um cluster de volume pode ser criado sobre um limite de unidade de distribuição em vez de próximo ao limite da unidade de distribuição. Esse comportamento pode causar uma partição desalinhada .

Eu posso estar longe e isso não tem nada a ver com RAID;)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.