Eu tenho um SSD que pode ser configurado para relatar o tamanho do setor físico para um sistema operacional de duas maneiras diferentes:
Opção 1: Lógico = 512 bytes, Físico = 512 bytes
Opção 2: Lógico = 512 bytes, Físico = 4096 bytes (4K)
Qual o benefício que um sistema operacional obtém ao estar ciente do tamanho do setor físico de 4K, considerando:
O sistema operacional deve conversar 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 E / S 4K, independentemente
A configuração parece inútil, porque os sistemas operacionais modernos já estão otimizados para unidades do setor de 4K. Os sistemas operacionais modernos não precisam "perguntar" a uma unidade se seus setores são 512b ou 4K, porque o sistema operacional faz tudo de uma maneira compatível com 4K por padrão.
Por exemplo, o Windows 7 alinha partições a 1 MB (um múltiplo de 4K), o tamanho do cluster NTFS é 4K ou múltiplo e todas as E / S são feitas em 4K ou múltiplas. O Windows não dá a mínima para o disco rígido que você possui, aplicará o comportamento acima em todos os casos.
Enfim ... meu SSD tem essa configuração de "tamanho do setor físico" e, portanto, deve estar lá por um bom motivo ... é o motivo disso que estou procurando.
BTW, para o que vale a pena, a unidade é um Intel SSD DC S3510 . A folha de dados da unidade diz o seguinte (página 27):
Usando o comando SCT 0xD801 com State = 0, Option = 1, o ID Word 106 pode ser alterado de 0x6003 para 0x4000 (o tamanho do setor físico de 4KB para o tamanho do setor físico de 512B é alterado).
fonte
Respostas:
A emulação de 512 bytes destina-se à compatibilidade com sistemas mais antigos. No entanto, gravações envolvendo apenas parte de um setor físico de 4K podem causar desempenho reduzido, pois o setor precisa ser lido e modificado antes de ser realmente gravado.
Quando um sistema operacional herdado tenta gravar em um disco de formato avançado, podem surgir problemas de desempenho porque os setores lógicos gravados podem não corresponder aos setores físicos.
Partições de disco que não estão alinhadas com um limite de 4K também podem causar desempenho degradado.
Tradicionalmente, a primeira partição do disco rígido começa no setor 63. Windows XP e sistemas operacionais mais antigos particionavam discos dessa maneira. As 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 Alinhamento 0 .
Como o LBA 63 não é um múltiplo de 8 (oito setores herdados 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 alocação de dados do sistema de arquivos, geralmente com tamanho 4K ) 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 envolve 4K de dados agora abrange dois setores, levando 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 de 4K, essas informações ainda podem ser necessárias para aplicativos que executam E / S de baixo nível.
Seu SSD oferece a capacidade de alterar o tamanho do setor físico relatado porque é necessário para compatibilidade com determinadas matrizes de armazenamento.
Os datacenters geralmente têm matrizes de armazenamento que consistem em unidades 512n herdadas. As unidades de 4K, mesmo aquelas que simulam setores de 512 bytes, podem não ser compatíveis com essas matrizes, portanto, esse recurso é necessário para garantir a compatibilidade. Veja este tópico do fórum :
Observe que será alcançado melhor desempenho em sistemas modernos se a unidade estiver configurada para usar setores de 4K.
fonte
O tamanho lógico é um tamanho mínimo para transferir dados. 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 é o tamanho ideal para transferir dados e reflete o tamanho das operações reais de leitura e gravação no nível do controlador / inversor.
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 deve ser extraído do setor físico pelo controlador para transferência 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á totalmente escrito.
Se a leitura não for bem-sucedida (mesmo após 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 com mais eficiência (e sem chance desnecessária de incompletude).
Sua contenção de "sem exceções" está incorreta.
O conjunto de comandos ATAPI, que foi introduzido no IDE HDD, sempre teve a capacidade de executar operações de leitura e gravação com um
sector count
parâmetro. 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 em vários setores (desde que os setores estivessem na mesma trilha).fonte
sector count
parâmetro do qual você fala ... até o antigo Windows XP lê / grava no tamanho de bloco de E / S de8
setores ou múltiplos deles. Já está totalmente otimizado! É por isso que o XP executa extremamente bem com SSDs, desde que a partição esteja alinhada. É extremamente amigável em 4K. Portanto, a pergunta ainda não foi respondida. O que mais um sistema operacional pode fazer sabendo o tamanho do setor físico é 4K. Lembre-se, o sistema operacional já está otimizado para E / S 4K.Se o sistema operacional souber o tamanho do setor físico subjacente, 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) costuma ser o limite máximo de velocidade do dispositivo, por isso é importante poder fazer o melhor uso dessa capacidade.
fonte
Existem duas maneiras diferentes de acessar um local dentro de uma unidade, uma é o esquema CHS e a outra é o esquema LBA.
CHS significa Cilindro, Cabeça, Setor e é o método de nível mais baixo para determinar onde ler ou gravar a partir do inversor. Você deve usar o cilindro x, a cabeça ye o setor z e ler ou gravar o conteúdo desse local para ou de um endereço na memória (um buffer). É derivado dos componentes físicos reais de um disco rígido (tradicional, oxidação em rotação), onde você tem cilindros físicos e cabeças de leitura. O setor é a menor unidade endereçável e era tradicionalmente fixado em 512 bytes.
O LBA é o endereçamento de bytes lógicos no qual a unidade lê e grava em um endereço do setor por seu deslocamento, por exemplo, leia o 123837 ° setor no disco ou grave-o no 123734 ° setor no disco (começando do zero).
O problema? Cada um desses valores tem alcance limitado. De fato, devido à gravidade do CHS, o LBA teve que ser introduzido. Para CHS, os valores possíveis para C (o cilindro) são 1023, enquanto H (cabeçotes) pode ter no máximo 255 e S (setor) pode subir até 63, o que significa que você pode ter no máximo 1024 cilindros x 255 cabeçotes x 64 setores x 512 bytes mapeados no formato CHS tradicional, oferecendo um total geral de menos de 8 GiB! Usando o CHS, simplesmente não é possível acessar um disco maior que 8 GiB!
Portanto, o LBA foi introduzido com um limite de 32 bits, fornecendo um limite de 2 ^ 32 x 512 bytes ou 2 TiB no tamanho do disco - esse é o motivo pelo qual um disco MBR não pode exceder 2TiB porque usa CHS e LBA para especificar tamanhos de partição, e nem suporta qualquer coisa acima de 2TiB.
Opções novas e melhores foram introduzidas, como o esquema de particionamento GPT, que estende o LBA para 64 bits, oferecendo muito mais do que você precisará em 2 ^ 64 x 512 bytes - mas há um problema: muito legado sistemas operacionais de hardware e legado e implementações de BIOS e drivers herdados não suportam UEFI ou GPT, e muitas pessoas gostariam de ter algo que possa ser atualizado com mais facilidade para ultrapassar o limite de 2TiB sem precisar reescrever a pilha inteira do princípio. E, finalmente, chegamos ao tamanho do setor 4096.
Veja, em todas as limitações discutidas acima, uma coisa foi uma suposição fixa: o tamanho do setor. Desde o primeiro dia, ele tem 512 bytes e permanece assim desde então. Porém, recentemente, os fabricantes de discos rígidos perceberam que há uma oportunidade de trabalhar um pouco de mágica: pegue o CHS tradicional 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 forneceremos os bytes 512 a 1023, mas os bytes 4096 a 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 outra 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 diz "ei, você, disco, escreva-me esses 512 bytes para compensar xxx", o disco usará 4096 bytes para armazenar esses 512 bytes (o restante são zeros ou dados indesejados, supondo que você não termine com memória insuficiente) porque não se comunicam em bytes, se comunicam em setores.
Portanto, os BIOS agora (às vezes) incluem 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 ressalva de que você não pode usá-lo para acessar mais de 2TiB do disco em um sistema MBR, exatamente como nos "bons e velhos tempos". Mas os sistemas operacionais modernos com reconhecimento de 4K podem tirar proveito de tudo isso para usar essa mágica para ler e escrever em pedaços de 4096 bytes e pronto!
(Uma vantagem adicional é que as coisas são muito mais rápidas porque, se você está lendo e escrevendo 4096 bytes de cada vez, são menos operações para ler ou gravar, digamos, 4GiB de dados.)
fonte
n
pedaços de 512 bytes. On
é um número que, a partir do Windows XP, NUNCA é inferior a 8 e sempre é múltiplo de 8. O que significa que todos os sistemas operacionais a partir do XP e acredito que todas as distribuições modernas do Linux também já estão otimizados para unidades 4K. A menor E / S é 4K e todos os outros tamanhos de E / S são múltiplos disso.512/4096 = SO responsável pelo alinhamento / otimização,
512/512 = Unidade responsável por isso
Consulte também: http://support.microsoft.com/en-us/kb/2510009
fonte
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 backup de uma pasta de compartilhamento do DFS Replication, nosso software de backup "Backup Exec" precisa fazer uma cópia de sombra da pasta DFS Replicated. O trabalho falhará se a pasta Replicação DFS estiver em uma unidade com setores 4K devido ao VSS não funcionar corretamente com setores 4K.
Jim
fonte
Físico significa o da própria unidade real, enquanto Lógico é o das divisões definidas dentro dela. Do PC Mag's Logical vs Physical:
Para explicar isso de forma digerível, imagine uma maçã com 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, sendo cada fatia a largura do seu dedo. Esse é o tamanho lógico ou o tamanho que o seu computador utilizará.
Vários motivos para isso são cálculos de capacidade de valor real e mapeamento e correção de erros, conforme explicado pela Wikipedia:
Assim como você não pode ter fatias da maçã sem a própria maçã, também não pode ter o Logical sem o servir físico como base.
fonte