Qual é o objetivo dos discos rígidos reportarem seu tamanho físico de setor?

12

Eu tenho um SSD que pode ser configurado para relatar seu tamanho de setor físico a um sistema operacional de duas maneiras diferentes:

Opção 1: Lógica = 512 bytes, Físico = 512 bytes

Opção 2: Lógica = 512 bytes, Físico = 4096 bytes (4K)

Qual o benefício que um sistema operacional ganha ao estar ciente do tamanho do setor físico de 4K, considerando:

  • O SO deve falar com a unidade em setores de 512 bytes, independentemente

  • Todos os sistemas operacionais modernos se alinham a 4K e utilizam 4K ou múltiplos de 4K I / O, independentemente

A configuração parece inútil, porque os sistemas operacionais modernos já estão otimizados para as unidades do setor de 4K. Os sistemas operacionais modernos não precisam "perguntar" a um disco se seus setores são 512b ou 4K, porque o sistema operacional faz tudo de uma maneira amigável com 4K por padrão.

Por exemplo, o Windows 7 alinha as partições a 1 MB (um múltiplo de 4K), o tamanho do cluster NTFS é 4K ou vários deles, e toda a E / S é feita em 4K ou várias delas. O Windows não dá a mínima para o disco rígido que você tem, ele aplicará o comportamento acima em todos casos.

De qualquer forma ... meu SSD tem essa configuração de "tamanho de setor físico" e por isso deve estar lá por algum bom motivo ... é a razão para isso que estou procurando.

BTW, pelo que vale a pena, a unidade é um Intel SSD DC S3510 . da unidade folha de dados diz isto (página 27):

By using SCT command 0xD801 with State=0, Option=1, ID Word 106 can be changed from 0x6003 to 0x4000 (4KB physical sector size to 512B physical sector size support change).

    
por misha256 06.10.2015 / 02:08

7 respostas

14

A emulação de 512 bytes destina-se a compatibilidade com sistemas mais antigos. No entanto, gravações envolvendo apenas parte de um setor 4K físico podem causar desempenho reduzido, porque o setor precisa ser lido e modificado antes de poder ser realmente gravado.

Quando um sistema operacional herdado tenta gravar em um disco de formato avançado, problemas de desempenho podem surgir porque os setores lógicos gravados podem não corresponder aos setores físicos.

  • Quando apenas parte de um setor físico de 4K é lida, os dados são simplesmente lidos do setor físico e não há redução no desempenho. No entanto, quando o sistema tenta gravar em parte de um setor físico (por exemplo, um setor de 512 bytes emulado em vez de todo o setor físico), o disco rígido precisa ler todo o setor físico, modificar o parte alterada na memória interna do disco rígido, e escrevê-lo de volta para os pratos. Isso é chamado de read-modify-write ( RMW ), uma operação que requer uma rotação extra do disco e, portanto, reduz o desempenho. A Seagate explica isso da seguinte forma :

[...] the hard drive must first read the entire 4K sector containing the targeted location of the host write request, merge the existing data with the new data and then rewrite the entire 4K sector:

Read-modify-write cycle

In this instance, the hard drive must perform extra mechanical steps in the form of reading a 4K sector, modifying the contents and then writing the data. This process is called a read-modify-write cycle, which is undesirable because it has a negative impact on hard drive performance.

As partições de disco que não estão alinhadas a um limite 4K também podem prejudicar o desempenho.

  • Tradicionalmente, a primeira partição em um disco rígido inicia no setor 63. O Windows XP e sistemas operacionais mais antigos particionam discos dessa maneira. Versões mais recentes do Windows criarão partições em um limite de 1 MB, garantindo o alinhamento adequado aos setores físicos. Isso é chamado de Alinhamento 0 .

    • Esse número ímpar é um artefato do endereço do cabeçote de cilindros (CHS) usado em INT 13h , o legado BIOS API usado para acesso ao disco. Em sistemas legados e gerenciadores de inicialização que usavam a API INT 13h, todas as partições devem começar e terminar nos limites do cilindro. Mesmo depois que o endereçamento de bloco lógico (LBA) foi introduzido, valores falsos de CHS (que não correspondiam à geometria real do disco) foram usado para manter a compatibilidade com a API legada. Como o endereçamento CHS originalmente suportava um máximo de 63 setores por cilindro, a primeira partição começava no setor 63. Windows XP (antes do Service Pack 3) e versões anteriores do Windows não inicializará se o volume do sistema não estiver em um limite de cilindro
  • Como o LBA 63 não é um múltiplo de oito (oito setores legados de 512 bytes se encaixam em um setor 4K), um disco de formato avançado formatado da maneira antiga terá clusters (a menor unidade de dados do sistema de arquivos alocação, geralmente 4K em tamanho) que não estão alinhados aos setores físicos em um disco 4K, uma condição chamada Alinhamento 1 . Como resultado, uma operação de E / S que, de outra forma, envolve 4K de dados agora abrange dois setores que levam a uma operação de leitura-modificação-gravação que reduz o desempenho.

Embora as informações sobre o tamanho do setor físico sejam desnecessárias se o sistema operacional sempre grava dados em um limite 4K, essas informações ainda podem ser necessárias para aplicativos que executam E / S de baixo nível.

  • Quando uma unidade informa que seu tamanho de setor físico é 4K, o sistema operacional ou o aplicativo pode informar que ela é uma unidade de Formato Avançado e, portanto, deve evitar executar operações de E / S que não abrangem setores físicos completos. Uma unidade que reporta setores nativos de 512 bytes não impõe essa restrição. Enquanto os sistemas operacionais mais recentes geralmente tentam ler ou gravar dados em unidades 4K sempre que possível (tornando essas informações irrelevantes), os aplicativos que executam E / S de baixo nível podem precisar saber o tamanho físico do setor para que possam se ajustar adequadamente e evitar desalinhamentos ou gravações parciais do setor que causam ciclos de RMW lentos.

Seu SSD fornece a capacidade de alterar o tamanho do setor físico relatado porque é necessário para compatibilidade com determinadas matrizes de armazenamento.

  • Os datacenters costumam ter arrays de armazenamento que consistem em unidades legadas de 512n. Os drives 4K, mesmo aqueles que emulam setores de 512 bytes, podem não ser compatíveis com esses arrays, portanto, esse recurso é necessário para garantir a compatibilidade. Veja este tópico do fórum :

    We can't just stick a 4K drive in an array formatted with 512b disks. Many arrays (most notably ZFS based storage, which is increasingly popular as software defined storage makes waves) will not accept a replacement drive with a different physical sector format.

    Observe que um melhor desempenho será alcançado em sistemas modernos se a unidade estiver configurada para usar setores 4K.

por 06.10.2015 / 05:08
5

What benefit does an OS gain by being aware of the physical sector size when, regardless, the OS has to talk to the drive in 512-byte sectors.

O tamanho lógico é um tamanho mínimo para os dados transferir . Como este é um dispositivo de bloco, qualquer transferência de dados entre o computador host e a unidade será em múltiplos desse tamanho de bloco lógico.

O tamanho físico é um tamanho ideal para transferir dados e reflete o tamanho das operações read e write no controlador / nível de drive.

Quando o computador host solicita uma leitura de um setor lógico, o controlador / unidade executará uma operação de leitura do setor físico que contém o setor lógico.
Quando o tamanho do setor lógico é igual ao tamanho do setor físico, a operação é simples. Quando o tamanho do setor lógico é menor que o tamanho do setor físico, o setor lógico tem que ser extraído do setor físico pelo controlador para transferir para o computador host.

Quando o computador host solicita uma gravação de um setor lógico, o tamanho do setor físico é importante. Quando o tamanho do setor lógico é igual ao tamanho do setor físico, a operação de gravação é simples e pode prosseguir diretamente. A condição do conteúdo anterior do setor não afetará a operação de gravação.

Quando o tamanho do setor lógico é menor que o tamanho do setor físico, o controlador deve primeiro executar uma operação de leitura do setor físico que contém o setor lógico.
Se a leitura for bem-sucedida, o setor lógico será inserido no setor físico e o setor físico será gravado inteiramente. Se a leitura não for bem sucedida (mesmo depois de novas tentativas), a operação de gravação não poderá ser concluída.

Se o SO executar as operações de leitura e gravação com o tamanho do setor físico (utilizando as operações multissetoriais disponíveis no conjunto de comandos ATAPI), as operações de gravação serão executadas de maneira mais eficiente (e sem uma chance desnecessária de incompletude) .

The LOGICAL sector size entirely defines how an OS can talk to a drive. No exceptions. What use is it knowing the physical sector size, when you're only allowed to communicate in logical sector size?

Sua contenção de "sem exceções" está incorreta.
O conjunto de comandos ATAPI, introduzido com o IDE HDD, sempre teve a capacidade de executar operações de leitura e gravação com um parâmetro sector count . Isso é apenas uma extensão das interfaces de controlador de disco e disquete existentes que também eram capazes de operações de leitura / gravação multissetorial (desde que os setores estivessem na mesma faixa).

    
por 06.10.2015 / 03:48
3

Se o sistema operacional conhecer o tamanho do setor físico subjacente, ele poderá otimizar suas consultas para exigir o menor número possível de operações físicas. Particularmente com SSDs, o limite de operação física (limite de IOPS de 4KB) geralmente é o limite máximo de velocidade do dispositivo, portanto, é importante fazer o melhor uso dessa capacidade.

    
por 06.10.2015 / 03:29
1

Existem duas maneiras diferentes de acessar uma localização dentro de uma unidade, uma é o esquema CHS e a outra é o esquema LBA.

CHS significa Cylinder, Head, Sector e é o método de mais baixo nível para determinar onde ler ou gravar a partir da unidade. Você diz para usar o cilindro x, a cabeça y e o setor z e ler ou gravar o conteúdo desse local para ou de um endereço na memória (um buffer). Ele é derivado dos componentes físicos reais de um disco rígido (ferrugem tradicional), onde você tem cilindros físicos e cabeças de leitura. O setor é a menor unidade endereçável e foi tradicionalmente fixado em 512 bytes.

O LBA é um endereçamento de bytes lógicos em que o drive lê e grava em um endereço de setor por seu offset, por exemplo, lê o 123837o setor no disco ou grava isso no 123734th setor no disco (começando do zero). / p>

O problema? Cada um desses valores é limitado no intervalo. De fato, devido à gravidade da CHS, o LBA teve que ser introduzido. Para CHS, os valores possíveis para C (o cilindro) são 1023, enquanto H (cabeças) podem ser 255 no máximo, e S (setor) pode ir até 63, significando que você pode ter no máximo 1024 cilindros x 255 cabeças x 64 setores x 512 bytes mapeados no formato tradicional CHS, dando-lhe um total de menos de 8 GiB! Usando o CHS, simplesmente não é possível acessar um disco maior que 8 GiB!

Então o LBA foi introduzido com um limite de 32 bits dando 2 ^ 32 x 512 bytes ou 2 TiB limite no tamanho do disco - este é o motivo pelo qual um disco MBR não pode exceder 2TiB porque usa CHS e LBA para especificar tamanhos de partição, e nenhum deles pode suportar nada além de 2TiB.

Opções mais recentes e melhores foram introduzidas, como o esquema de particionamento GPT, que amplia o LBA para 64 bits, dando a você muito mais do que você precisará em 2 ^ 64 x 512 bytes - mas

Veja, ao longo de todas as limitações discutidas acima, uma coisa tem sido uma suposição fixa: o tamanho do setor. Desde o primeiro dia, ele tem 512 bytes e permaneceu assim desde então. Mas recentemente, os fabricantes de discos rígidos perceberam que há uma oportunidade de trabalhar um pouco de mágica: pegue o tradicional CHS ou o LBA de 32 bits e simplesmente substitua o tamanho do setor por 4096 (4k) em vez de 512 bytes. Quando um sistema operacional diz "me dê o segundo setor no disco" solicitando o LBA 1 (porque o LBA 0 é o primeiro), não daremos a ele bytes 512 - 1023, mas sim bytes 4096 - 8191.

De repente, nosso limite de 2TiB é atualizado para 2 ^ 32 x 4096 bytes, ou 16 TiB, sem ter que abandonar o MBR, mudar para UEFI ou GPT, ou qualquer coisa!

O único problema é que, se o sistema operacional não estiver ciente de que este é um disco mágico que usa 4096 setores em vez de setores de 512 bytes, haverá uma incompatibilidade. Cada vez que o sistema operacional disser "ei, você, disco, me escreva esses 512 bytes para compensar xxx" o disco usará 4096 bytes para armazenar esses 512 bytes (sendo o restante zeros ou lixo eletrônico, supondo você não acaba com um estouro de memória) porque eles não se comunicam em bytes, eles se comunicam em setores.

So BIOSes now (sometimes) inclui uma opção para permitir que você especifique manualmente que um tamanho de setor de 512 bytes deve ser usado em vez do tamanho de setor nativo de 4096 bytes que os discos mais novos estão usando - com a advertência de que você não pode usá-lo acesse mais de 2TiB do disco em um sistema MBR, como nos "bons e velhos tempos". Mas os sistemas operacionais modernos que possuem reconhecimento 4k podem aproveitar tudo isso para usar essa mágica para ler e escrever em blocos de 4096 bytes e voilà!

(Uma vantagem adicional é que as coisas são muito mais rápidas, porque se você estiver lendo e escrevendo 4096 bytes por vez, são menos operações para ler ou escrever, digamos, 4GiB de dados.)

    
por 06.10.2015 / 02:42
0

512/4096 = SO responsável pelo alinhamento / otimização,

512/512 = Drive responsável por isso

Veja também: link

    
por 27.08.2016 / 08:26
0

Só queria que você soubesse de uma situação em que os setores de 4K são um problema para os sistemas operacionais modernos.

O gravador VSS da Microsoft (Shadow Copy) não funciona bem com setores 4K. Para fazer o backup de uma pasta de compartilhamento da Replicação DFS, nosso software de backup "Backup Exec" precisa fazer uma cópia de sombra da pasta Replicada do DFS. O trabalho falhará se a pasta Replicação DFS estiver em uma unidade com setores 4K devido ao fato de o VSS não funcionar corretamente com setores 4K.

Jim

    
por 22.08.2017 / 19:21
-3

Físico significa o próprio drive, enquanto o Logical é o das divisões definidas dentro dele. De Lógica e física do PC Mag:

In a Windows PC, a single physical hard drive is drive 0; however, it may be partitioned into several logical drives, such as C:, D: and E:.

Para explicar isso de uma forma digerível, imagine uma maçã que é a largura da sua mão. Esse é o tamanho físico real da maçã. Naturalmente, uma maçã inteira não cabe na sua boca, então você decide dividi-la em fatias iguais, cada fatia sendo a largura do seu dedo. Este é o tamanho lógico ou tamanho que o seu computador irá utilizar.

Várias razões para isso são cálculos de capacidade de valor real e mapeamento e correção de erros, conforme explicado por Wikipedia:

Typical hard disk drives attempt to "remap" the data in a physical sector that is failing to a spare physical sector provided by the drive's "spare sector pool" (also called "reserve pool"),[41] while relying on the ECC to recover stored data while the amount of errors in a bad sector is still low enough. The S.M.A.R.T (Self-Monitoring, Analysis and Reporting Technology) feature counts the total number of errors in the entire HDD fixed by ECC (although not on all hard drives as the related S.M.A.R.T attributes "Hardware ECC Recovered" and "Soft ECC Correction" are not consistently supported), and the total number of performed sector remappings, as the occurrence of many such errors may predict an HDD failure.

Assim como você não pode ter fatias da maçã sem a própria maçã, você não pode ter a Lógica sem a base física.

    
por 06.10.2015 / 02:42