Eu tenho um disco rígido de 4 TB com tamanho de setor físico de 4k (formato avançado) e o anexei a dois controladores host SATA (um interno e outro em um gabinete USB). No (mais antigo, em 2010), ele aparece com tamanho de setor lógico de 512B, mas relata que seus setores físicos são 4096 bytes. No recente gabinete USB, é relatado que possui 4096B de tamanho lógico e físico:
# internal host controller
sd 4:0:0:0: [sdd] 7814037168 512-byte logical blocks: (4.00 TB/3.63 TiB)
sd 4:0:0:0: [sdd] 4096-byte physical blocks
# USB enclosure
sd 18:0:0:0: [sdd] 976754646 4096-byte logical blocks: (4.00 TB/3.63 TiB)
O controlador "interno" mostra o comportamento que eu já havia visto anteriormente, que geralmente é chamado de "512e", em que o firmware da unidade emula o endereçamento LBA de 512 setores, embora não escreva fisicamente os setores dessa maneira. Os sistemas operacionais (e administradores) podem garantir que as partições estejam alinhadas, de modo que os comandos de gravação (pequenos) possam ser agrupados para que o disco possa sobrescrever setores completos em vez de voltar a gravar em parte de um setor físico, onde precisa ler o restante do conteúdo primeiro.
No entanto, ver o comportamento "nativo de 4k" em uma unidade (gabinete USB) era novo para mim e meu pensamento inicial era o gabinete emular o endereço 4096B em cima da emulação 512B emulada da unidade.
As únicas ocorrências disso que pude encontrar em uma Pesquisa na Web em que instalações de armazenamento USB registradas em setores lógicos de 4k. Eu presumo que eles emulam 4k sobre 512e, portanto, permitem tabelas de partição MBR para que unidades grandes possam ser usadas em dispositivos herdados / incorporados (Smart TVs e outras) que suportam apenas o armazenamento em massa USB MBR + FAT32.
Depois de entrar em contato com o fabricante , eles alegaram que a unidade está realmente operando no modo 4k não emulado (nativo), o controlador USB SATA também não está fazendo nenhuma emulação. Isso exigiria que o firmware da unidade detectasse se o controlador host suporta (deseja?) Endereçar tamanhos de setor de 4KB. Não pude encontrar nada sobre isso na documentação pública dos padrões SATA. Então eu pergunto:
- Alguém viu "blocos lógicos de 4096 bytes" em seu controlador SATA?
- As unidades realmente suportam ativar / desativar a emulação sob demanda? Se então,
- Como essa determinação funciona?
- Você pode substituí-lo na unidade por meio de uma bandeira?
- Você pode substituí-lo no controlador host por meio de um driver / sinalizador?
fonte
Respostas:
Vi algumas unidades SATA de 4Kn trabalhando no setor de validação de discos rígidos, mas não sabia que elas estavam sendo enviadas para os clientes, devido ao suporte limitado de hardware e software para eles e à falta de demanda dos clientes.
Existem dois mapeamentos concorrentes para tamanhos de setor físico vs. lógico. O recurso Setor Lógico Longo permite que um dispositivo tenha setores lógicos maiores que 512B (por exemplo, 4Kn), e o recurso Setor Físico Longo permite que um dispositivo tenha vários setores lógicos por setor físico (por exemplo, 512e), embora não sejam necessariamente mutuamente exclusivos. Se o fabricante alegar que a unidade é 4Kn, o controlador mais antigo pode fornecer uma camada de emulação, como ler-modificar-gravar, para aplicativos e hardware mais antigos, pois os sistemas mais antigos simplesmente não suportam o formato 4Kn.
O
sg_sat_identify
comando do pacote sg3_utils provavelmente fornecerá as informações necessárias (verifique as palavras 106-108 para obter informações sobre tamanho do setor físico / tamanho do setor lógico).Não parece que as unidades SATA possam suportar emulação sob demanda, por si só, mas se a unidade estiver realmente usando 512e, em vez de 4Kn, a otimização do desempenho será maximizada pelo driver (ou possivelmente pelo controlador USB SATA) que limita as leituras / gravações em Limites de 4K, por exemplo, com a transferência iniciada em um LBA onde os 3 bits inferiores são 0 e terminam em um LBA em que os 3 bits inferiores são 1:
Portanto, basicamente, não há "opção" que diga ao drive para iniciar ou parar a emulação. Do ponto de vista do usuário final, sua melhor aposta é provavelmente garantir que suas unidades estejam usando o melhor sistema de arquivos para o mapeamento usado pela unidade e garantir que esteja alinhado corretamente. O site a seguir fornece uma análise bastante boa dos sistemas de arquivos comuns e suas estatísticas sobre desempenho versus alinhamento de blocos em diferentes sistemas de arquivos: http://www.ibm.com/developerworks/library/l-linux-on-4kb-sector -disks / index.html
fonte