Czy dyski twarde włączają 512e (emulacja 512 bajtów sektorów 4k) w zależności od potrzeb w zależności od kontrolera hosta?

13

Mam dysk twardy 4 TB, który ma rozmiar sektora fizycznego 4k (Advanced Format) i podłączyłem go do dwóch kontrolerów hosta SATA (jeden wewnętrzny i jeden w obudowie USB). Na (starszym, około 2010 r.) Wielkość logicznego sektora wynosi 512B, ale liczba sektorów fizycznych wynosi 4096 bajtów. W najnowszej obudowie USB podano, że ma logiczny i fizyczny rozmiar 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)

„Wewnętrzny” kontroler pokazuje zachowanie, które wcześniej widziałem, które zwykle nazywa się „512e”, gdzie oprogramowanie układowe napędu emuluje adresowanie LBA 512 sektorów, nawet jeśli nie zapisuje sektorów w ten sposób. Systemy operacyjne (i administratorzy) mogą zapewnić, że partycje są wyrównane w taki sposób, że (małe) komendy zapisu mogą być zgrupowane, dzięki czemu dysk może zastąpić pełne sektory zamiast wracać do zapisu do części sektora fizycznego, gdzie musi przeczytać resztę treści w pierwszej kolejności.

Jednak obserwowanie zachowania „4k native” na dysku (obudowa USB) było dla mnie czymś nowym i początkowo myślałem, że obudowa emuluje adresowanie 4096B na emulacji 512B napędu.

Jedyne przypadki, które udało mi się znaleźć za pomocą wyszukiwarki internetowej, w których urządzenia pamięci USB zarejestrowały się w sektorach logicznych 4k. Zakładam, że emulują 4k ponad 512e, więc pozwalają na tablice partycji MBR, dzięki czemu duże dyski mogą być używane na starszych urządzeniach / urządzeniach (Smart TV i co nie), które obsługują tylko pamięć masową USB MBR + FAT32.

Po skontaktowaniu się z producentem twierdzili, że dysk faktycznie działa w nieemulowanym (natywnym) trybie 4k, kontroler USB SATA również nie wykonuje żadnej emulacji. Wymagałoby to oprogramowania układowego napędu do wykrycia, czy kontroler hosta obsługuje (pożąda?) Adresowanie sektorów o wielkości 4KB. Nie znalazłem nic na ten temat w publicznej dokumentacji standardów SATA. Więc pytam:

  • Czy ktoś widział „4096 bajtowe bloki logiczne” na swoim kontrolerze SATA?
  • Czy dyski rzeczywiście obsługują włączanie / wyłączanie emulacji na żądanie? W takim razie,
    • Jak działa to określenie?
    • Czy możesz to zmienić na dysku za pomocą flagi?
    • Czy można to zmienić na kontrolerze hosta za pomocą sterownika / flagi?
Nathan Summers
źródło
Czy logo na dysku mówi „AF” lub „4Kn”?
Jamie Hanrahan
To pytanie naprawdę potrzebuje wysokiej jakości, nowoczesnej odpowiedzi.
Hashim

Odpowiedzi:

2

Widziałem kilka dysków SATA 4Kn pracujących w branży walidacji dysków twardych, ale nie wiedziałem, że wysyłają je do klientów z powodu ograniczonej obsługi sprzętu i oprogramowania oraz braku zapotrzebowania klientów.

Istnieją dwa konkurujące odwzorowania dla wielkości sektora fizycznego i logicznego. Funkcja długiego sektora logicznego pozwala urządzeniu mieć sektory logiczne dłuższe niż 512B (np. 4Kn), a funkcja długiego sektora fizycznego pozwala urządzeniu mieć wiele sektorów logicznych na sektor fizyczny (np. 512e), chociaż niekoniecznie wykluczają się one wzajemnie. Jeśli producent twierdzi, że dysk to 4Kn, starszy kontroler może zapewnić warstwę emulacji, taką jak odczyt-modyfikacja-zapis, dla starszych aplikacji i sprzętu, ponieważ starsze systemy po prostu nie obsługują formatu 4Kn.

sg_sat_identifyKomenda z pakietu sg3_utils prawdopodobnie daje Ci potrzebują informacji (sprawdź słów 106-108 o fizyczny rozmiar sektora / logiczny informacyjnego rozmiar sektora).

Nie wygląda to na to, że dyski SATA mogą same obsługiwać emulację na żądanie, ale jeśli dysk rzeczywiście używa 512e, zamiast 4Kn, optymalizacja wydajności jest zmaksymalizowana przez sterownik (lub ewentualnie kontroler USB SATA) ograniczający odczyt / zapis do Granice 4K, np. Mające początek transferu na LBA, gdzie 3 niższe bity wynoszą 0, i kończą się na LBA, gdzie 3 niższe bity to 1:

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

Zasadniczo więc nie ma „przełącznika”, który mógłby nakazać napędowi rozpoczęcie lub zatrzymanie emulacji. Z punktu widzenia użytkownika końcowego najlepszym rozwiązaniem jest prawdopodobnie upewnienie się, że dyski używają najlepszego systemu plików do dowolnego mapowania dysku i upewnienie się, że jest prawidłowo wyrównany. Poniższa witryna zawiera całkiem niezły podział popularnych systemów plików i ich statystyki dotyczące wydajności w porównaniu do wyrównania bloków w różnych systemach plików: http://www.ibm.com/developerworks/library/l-linux-on-4kb-sector -disks / index.html

Adam Naber
źródło