O alinhamento da partição para SSD apaga o tamanho do bloco sem sentido?

6

Muitas pessoas parecem ter a ideia ( 1 , 2 , 3 , 4 , 5 ) que alinhar o início de suas partições SSD em um múltiplo do tamanho do bloco de exclusão de SSD é de alguma forma benéfico. Eu não vejo o benefício; considere o seguinte particionamento (por favor, suspenda sua descrença sobre os blocos de apagamento de 16K; eles provavelmente serão muito maiores na prática, assim como as partições):

Partitions:      [    1   ]              [        2        ]
Logical blocks:  [ 4K ][ 4K ][ 4K ][ 4K ][ 4K ][ 4K ][ 4K ][ 4K ]
Physical blocks: [ 4K ][ 4K ][ 4K ][ 4K ][ 4K ][ 4K ][ 4K ][ 4K ]
Erase blocks:    [          16K         ][          16K         ]

Agora, se o bloco lógico K correspondesse ao bloco físico K para qualquer K (por exemplo, se não houvesse nivelamento de desgaste feito pelo SSD controlador), então pode haver algum mérito teórico para isso. Suponha, por exemplo, que a partição 2 na figura acima inicie um bloco lógico / físico anteriormente. Então, qualquer gravação no início da partição 2 causará o apagamento do primeiro bloco de apagamento, assim como qualquer gravação na partição 1, o que causará desgaste adicional ao bloco de exclusão específico.

Com o nivelamento de desgaste, no entanto, não há correspondência definida entre blocos lógicos e físicos (por exemplo, o bloco lógico K pode corresponder a um bloco físico arbitrário L ), então o alinhamento do bloco de apagamento deve ser completamente sem sentido. O alinhamento ao tamanho do bloco deve ser suficiente, para que as páginas (para troca) e os bloqueios do sistema de arquivos (para dados) gravados na partição não ocupem mais blocos no SSD do que o necessário.

Perguntas relacionadas:

por Witiko 23.08.2017 / 10:35

2 respostas

4

Esta questão é muito difícil, especialmente em vista do fato de que a tecnologia SSD está em constante evolução, e especialmente desde que os sistemas operacionais modernos constantemente melhorando seu manuseio de SSD.

Além disso, não tenho certeza de que o seu problema esteja relacionado ao uso do Nivelamento de desgaste. Ele deve estar com otimizações de SSD projetadas para evitar o apagamento de blocos.

Primeiramente, vamos definir nossos termos:

  • Um SSD block ou Erase block é a unidade que o SSD pode apagar em uma operação atômica, que geralmente pode ir até 4MB bytes (mas 128KB ou 256KB são mais comuns). Um SSD não pode gravar em um bloco sem apagá-lo primeiro.
  • Uma SSD página é a menor unidade atômica que o software SSD pode rastrear. Um bloco geralmente contém várias páginas, geralmente de até 4KB de tamanho. O SSD mantém um mapeamento por página de onde o SO acha que está localizado no disco (o SSD escreve páginas onde quer que preferir, embora o sistema operacional pense em termos de um disco sequencial).
  • Um setor é o menor elemento que o sistema operacional considera um disco rígido pode escrever em uma operação. O sistema operacional também vai pensar em termos de cilindros de disco e faixas, mesmo que não se apliquem ao SSD. O SO normalmente informará o SSD quando um setor se tornar livre ( TRIM ). O firmware Smart SSD normalmente anuncia ao SO seu tamanho de página como o tamanho do setor, sempre que possível.

É claro que o firmware do SSD prefere sempre escrever para blocos vazios, como eles já estão apagados. Caso contrário, para adicionar uma página a um bloco que contenha os dados exigirão a sequência de bloco de leitura / armazenamento de página / bloco de exclusão / bloco de gravação.

A aplicação excessivamente liberal dos itens acima fará com que as páginas sejam dispersas por toda parte o SSD e a maioria dos blocos ficam parcialmente vazios, então o SSD pode acabar em breve de blocos vazios. Para evitar isso, o SSD fará continuamente Coleta de lixo em segundo plano, consolidando parcialmente a escrita blocos e garantindo blocos vazios suficientes estão disponíveis. Esta operação pode ser assim:

[

Acoletadelixointroduzoutrofator- Escrever amplificação - o que significa que um sistema operacional escrito no SSD pode precisar de mais de uma gravação física no SSD.

Como um bloco de SSD só pode ser apagado e gravado um certo número de vezes antes morre, Use o nivelamento é projetado para distribuir bloco escreve uniformemente através do SSD, então nenhum bloco é escrito muito mais do que outros.

A questão do alinhamento de partições

Do acima, parece o mecanismo que permite ao SSD mapear páginas para qualquer local físico, mantendo-se onde quer que o sistema operacional pense estar armazenado, anula a necessidade de alinhamento da partição. Como a página não está escrita onde o sistema operacional acha que está escrito, não há mais importância para onde o SO acha que escreve os dados.

No entanto, isso ignora o fato de que o próprio SO tenta otimizar acessos ao disco. Para o disco rígido clássico, ele tentará minimizar a cabeça movimentos, alocando os dados de acordo com diferentes faixas. Firmware inteligente SSD deve manipular o cilindro fictício e faixas informações que ele reporta ao SO para que o tamanho da trilha seja igual tamanho do bloco e tamanho da página serão iguais ao tamanho do setor.

Quando a visualização do sistema operacional do SSD está um pouco mais alinhada com a realidade, as otimizações feitas pelo SO podem evitar a necessidade de o SSD mapear páginas e evitar a coleta de lixo, o que reduzirá a amplificação de gravação e aumentar a vida útil do SSD.

Deve-se notar que muita fragmentação de SSD (significando muito mapeamento de páginas) aumenta a quantidade de trabalho feito pelo SSD. O artigo de 2009 Análise de desempenho de longo prazo dos SSDs principais da Intel indicou que se a unidade for abusada por muito tempo com uma mistura de gravações pequenas e grandes, ela poderá entrar em um estado em que a degradação de desempenho é permanente e que, com o uso de Nivelamento de desgaste, essa condição pode se estender a mais da unidade. Essa condição é a razão pela qual muitos proprietários de SSD vêem o desempenho degradar ao longo do tempo.

Meu conselho final é alinhar as partições para respeitar o layout dos blocos de apagamento. O SO assumirá que uma partição está bem alinhada em relação ao disco, e as decisões tomadas por ele sobre a colocação de arquivos podem ser mais inteligentemente feito. Como sempre, idiossincrasias individuais do driver do sistema operacional O firmware SSD pode invalidar essas preocupações, mas é melhor agir com segurança.

    
por 02.09.2017 / 15:01
3

Is partition alignment to SSD erase block size pointless?

Com base no parecer abaixo citado de 2008, parece que o alinhamento de partições para bloquear limites de tamanho depende dos algoritmos de marca, modelo e controle de chips dentro de qualquer dispositivo SSD.

Para os dispositivos SSD de geração mais antiga que não usam tecnologia e algoritmos inteligentes, isso pode ser mais importante, mas você deve verificar o manual técnico do fabricante do SSD.

Aligning Filesystems to an SSD’s Erase Block Size

Aligning your file system on an erase block boundary is critical on first generation SSD’s, but the Intel X25-M is supposed to have smarter algorithms that allow it to reduce the effect of write-amplification. The details are a little bit vague, but presumably there is a mapping table which maps sectors (at some internal sector size — we don’t know for sure whether it’s 512 bytes or some larger size) to individual erase blocks.

Avance um pouco para 2014 e, com base no conselho abaixo, parece que as leituras / gravações estão alinhadas no tamanho da página e que os apagamentos são feitos no SSD ociosos de que isso não importa e não faz sentido.

Really still need EBS (Erase Block Size) for partitioning a SSD?

Reads/writes are aligned on page size, and erases happen in the background when the SSD is idle. As such, erase block size does not matter. Page size matters, but it's always small so just do MiB-alignment. The filesystem will break it down to something around 4k anyway. It's not possible to align to 1536KiB, not with hundreds of small files in a filesystem. Even if you were to put your partitions on 1536KiB boundaries and set your filesystem up with a 1536KiB raid stride, you would not notice any difference. Reads/writes are done on page level, and redistributed anyway by a flash translation layer. So no matter how much you try to align from the outside, the SSD will mangle it to its own purposes anyway, so what's the point?

Conclusão

Acho que o nivelamento de desgaste é um desses [mais inteligentes] algoritmos SSD mais recentes da postagem de 2008 mencionada, e agora que isso - e outros SSDs e tecnologias de particionamento modernos correlacionados - é mais comum com dispositivos SSD que implicariam que tais alinhamentos seriam mais provavelmente inúteis.

Acho que algumas conversas na Internet sobre esse tópico podem estar corretas em alguns casos, com base na tecnologia SSD a que se referem esses textos, etc. e, assim, o conteúdo pode simplesmente não ser aplicável a outros, dependendo do que eles usam.

Tudo se resume a compreender as especificações, recursos, funções, etc. de seu (s) dispositivo (s) SSD e quaisquer ferramentas de particionamento usadas no momento em que essas operações são executadas para garantir a configuração ideal em seu ambiente. operação inútil para executar.

Mais recursos

por 01.09.2017 / 17:21