As unidades de disco rígido ativam 512e (emulação de 512 bytes de setores 4k) conforme necessário, dependendo do controlador host?

13

Eu tenho um disco rígido de 4 TB que tem 4k de tamanho de setor físico (Advanced Format) e eu o conectei a dois controladores de host SATA (um interno e um em um compartimento USB). No (mais velho, cerca de 2010) surge como 512B tamanho do setor lógico, mas relata seus setores físicos são 4096 bytes. No recente compartimento USB, é relatado como tendo 4096B de tamanho físico e lógico:

# 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 havia visto anteriormente, que geralmente é chamado de "512e", no qual o firmware da unidade emula o endereçamento LBA do setor 512, embora ele não grave setores dessa maneira. Sistemas operacionais (e admins) podem garantir que as partições estejam alinhadas de forma que os comandos (pequenos) de gravação possam ser agrupados de forma que o disco possa sobrescrever setores inteiros em vez de voltar a escrever para parte de um setor físico, onde precisa ler o restante de conteúdo primeiro.

No entanto, ver o comportamento "4k native" em uma unidade (compartimento USB) era novidade para mim e meu pensamento inicial foi que o gabinete está emulando o endereço 4096B na emulação da emulação 512B da unidade.

As únicas ocorrências deste que eu poderia encontrar com uma pesquisa na Web, onde as instalações de armazenamento USB que registrou com 4k setores lógicos. Eu presumo que eles emulem 4k sobre 512e, então permita tabelas de partição MBR para que drives grandes possam ser usados em dispositivos legados / embarcados (Smart TVs e quais não) que suportam apenas armazenamento em massa usb MBR + FAT32.

Depois de entrar em contato com o fabricante , eles alegaram que drive está realmente operando em modo 4k (nativo) não emulado, o controlador SATA USB também não está fazendo nenhuma emulação. Isso exigiria que o firmware da unidade detectasse se o controlador host oferece suporte (deseja?) Ao endereçamento de tamanhos de setor de 4KB. Não consegui 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 / flag?
por Nathan Summers 21.02.2014 / 12:02

1 resposta

2

Eu vi alguns drives SATA 4Kn trabalhando na indústria de validação de disco rígido, mas eu não sabia que eles estavam enviando para os clientes, devido ao suporte limitado de hardware e software para eles e à falta de demanda do cliente.

Existem dois mapeamentos concorrentes para tamanhos de setor físico versus setor lógico. O recurso Long Logical Sector permite que um dispositivo tenha setores lógicos maiores que 512B (por exemplo, 4Kn) e o recurso Long Physical Sector 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 o drive é 4Kn, o controlador mais antigo pode fornecer uma camada de emulação, como read-modify-write, para aplicativos e hardware mais antigos, já que os sistemas mais antigos simplesmente não suportam o formato 4Kn.

O comando sg_sat_identify do pacote sg3_utils provavelmente fornecerá as informações necessárias (verifique as palavras 106-108 para 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, mas se a unidade estiver realmente usando 512e, em vez de 4Kn, a otimização de desempenho é maximizada pelo driver (ou, possivelmente, controlador SATA USB), limitando as leituras / escreve para limites de 4K, por exemplo ter o início da transferência em um LBA onde os 3 bits inferiores são 0 e terminam em um LBA onde os 3 bits inferiores são 1:

start_lba & 0x3 == 0
end_lba & 0x3 == 1

Então, basicamente, não há "switch" que possa dizer ao drive para iniciar ou parar a emulação. Do ponto de vista do usuário final, sua melhor aposta é provavelmente certificar-se de que suas unidades estejam usando o melhor sistema de arquivos para qualquer mapeamento usado por sua unidade e para garantir que ela esteja alinhada corretamente. O site a seguir apresenta um bom detalhamento dos sistemas de arquivos comuns e suas estatísticas sobre desempenho versus alinhamento de blocos em diferentes sistemas de arquivos: link

    
por 30.10.2014 / 02:18