Le unità disco rigido attivano 512e (emulazione 512byte di settori 4k) secondo necessità in base al controller host?


13

Ho un disco rigido da 4 TB con dimensioni del settore fisico 4k (formato avanzato) e l'ho collegato a due controller host SATA (uno interno e uno in un contenitore USB). Nel (più vecchio, circa 2010) arriva come dimensione del settore logico 512B, ma segnala che i suoi settori fisici sono 4096 byte. Nel recente recinto USB, si dice che abbia dimensioni logiche e fisiche di 4096B:

# 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)

Il controller "interno" mostra un comportamento che avevo visto in precedenza, che di solito viene chiamato "512e" in cui il firmware dell'unità emula l'indirizzamento LBA a 512 settori anche se non scrive fisicamente settori in quel modo. I sistemi operativi (e gli amministratori) possono garantire che le partizioni siano allineate in modo tale che i (piccoli) comandi di scrittura possano essere raggruppati in modo che il disco possa sovrascrivere interi settori invece di ricorrere alla scrittura su parte di un settore fisico, dove deve leggere il resto di contenuto prima.

Tuttavia, vedere il comportamento "nativo 4k" su un'unità (enclosure USB) era una novità per me e il mio pensiero iniziale era che l'involucro emulasse 4096 B indirizzandosi sull'emulazione 512B emulata dell'unità.

Le uniche occorrenze di questo che ho potuto trovare con una ricerca Web in cui strutture di archiviazione USB registrate con settori logici 4K. Presumo che emulino 4k su 512e, quindi consentono tabelle di partizione MBR in modo che possano essere utilizzate unità di grandi dimensioni su dispositivi legacy / incorporati (Smart TV e cosa no) che supportano solo l'archiviazione di massa USB MBR + FAT32.

Dopo aver contattato il produttore , hanno affermato che l'unità sta effettivamente funzionando in modalità 4k non emulata (nativa), anche il controller USB SATA non sta emettendo alcuna emulazione. Ciò richiederebbe al firmware dell'unità di rilevare se il controller host supporta (desideri?) Indirizzandosi alle dimensioni del settore di 4KB. Non ho trovato nulla al riguardo nella documentazione pubblica degli standard SATA. Quindi chiedo:

  • Qualcuno ha visto "blocchi logici 4096 byte" sul proprio controller SATA?
  • Le unità supportano effettivamente l'abilitazione / disabilitazione dell'emulazione su richiesta? Se è così,
    • Come funziona questa determinazione?
    • Puoi sovrascriverlo sul disco tramite una bandiera?
    • Puoi sovrascriverlo sul controller host tramite un driver / flag?

Il logo sull'unità dice "AF" o "4Kn"?
Jamie Hanrahan,

Questa domanda ha davvero bisogno di una risposta moderna e di alta qualità.
Hashim,

Risposte:


2

Ho visto alcune unità SATA 4Kn funzionare nel settore della convalida del disco rigido, ma non sapevo che ne sarebbero state spedite ai clienti, a causa del supporto hardware e software limitato per loro e della mancanza della domanda dei clienti.

Esistono due mappature concorrenti per dimensioni di settore fisiche e logiche. La funzione Settore logico lungo consente a un dispositivo di avere settori logici più lunghi di 512 B (ad esempio 4Kn) e la funzione Settore fisico lungo consente a un dispositivo di avere settori logici multipli per settore fisico (ad esempio 512e), sebbene non si escludano necessariamente a vicenda. Se il produttore afferma che l'unità è 4Kn, il controller più vecchio potrebbe fornire un livello di emulazione, come lettura-modifica-scrittura, per applicazioni e hardware più vecchi, poiché i sistemi più vecchi semplicemente non supportano il formato 4Kn.

Il sg_sat_identifycomando dal pacchetto sg3_utils fornirà probabilmente le informazioni necessarie (controllare le parole 106-108 per informazioni sulla dimensione del settore fisico / dimensioni del settore logico).

Non sembra che le unità SATA possano supportare l'emulazione on-demand, di per sé, ma se l'unità utilizza effettivamente 512e, anziché 4Kn, l'ottimizzazione delle prestazioni è massimizzata dal driver (o eventualmente dal controller SATA USB) che limita le letture / scritture su Limiti 4K, ad es. Il trasferimento inizia su un LBA in cui i 3 bit inferiori sono 0 e termina su un LBA in cui i 3 bit inferiori sono 1:

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

Quindi, fondamentalmente, non esiste un "interruttore" che può dire all'unità di avviare o interrompere l'emulazione. Dal punto di vista dell'utente finale, la soluzione migliore è probabilmente assicurarsi che le unità utilizzino il miglior file system per qualsiasi mappatura utilizzata dall'unità e per assicurarsi che sia allineata correttamente. Il seguente sito fornisce un'analisi abbastanza buona dei file system comuni e delle loro statistiche sull'allineamento delle prestazioni rispetto ai blocchi su diversi file system: http://www.ibm.com/developerworks/library/l-linux-on-4kb-sector -disks / index.html

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.