Apakah hard disk drive menyalakan 512e (emulasi 512byte sektor 4k) sesuai kebutuhan tergantung pada pengontrol host?

13

Saya memiliki hard disk 4 TB yang memiliki ukuran sektor fisik 4k (Format Lanjutan) dan saya memasangnya pada dua pengontrol host SATA (satu internal dan satu di kandang USB). Pada (lebih tua, sekitar 2010) muncul sebagai ukuran sektor logis 512B, tetapi melaporkan sektor fisik 4096 byte. Dalam kandang USB baru-baru ini, dilaporkan memiliki ukuran 4096B logis dan fisik:

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

Kontroler "internal" menunjukkan perilaku yang sebelumnya saya lihat, yang biasanya disebut "512e" di mana firmware drive mengemulasi pengalamatan 512 sektor LBA meskipun secara fisik tidak menulis sektor seperti itu. Sistem operasi (dan admin) dapat memastikan bahwa partisi disejajarkan sedemikian rupa sehingga (kecil) perintah tulis dapat dikelompokkan sehingga disk dapat menimpa sektor penuh alih-alih kembali menulis ke bagian sektor fisik, di mana ia perlu membaca sisanya. konten terlebih dahulu.

Namun, melihat perilaku "4k asli" pada drive (enklosur USB) adalah hal baru bagi saya dan pemikiran awal saya adalah enklosur tersebut meniru 4096B yang menangani di atas emulasi 512B drive yang ditiru.

Satu-satunya kejadian ini yang bisa saya temukan dengan Pencarian Web di mana fasilitas penyimpanan USB yang terdaftar dengan sektor logis 4k. Saya kira mereka meniru 4k lebih dari 512e sehingga memungkinkan untuk tabel partisi MBR sehingga drive besar dapat digunakan pada perangkat legacy / embeeded (Smart TV dan apa yang tidak) yang hanya mendukung MBR + FAT32 usb mass storage.

Setelah menghubungi pabrikan , mereka mengklaim drive sebenarnya beroperasi dalam mode 4k non-emulasi, pengontrol USB SATA juga tidak melakukan emulasi sama sekali. Ini akan memerlukan firmware drive untuk mendeteksi apakah pengontrol host mendukung (menginginkan?) Mengatasi ukuran sektor 4KB. Saya tidak dapat menemukan apa pun tentang ini di dokumentasi publik standar SATA. Jadi saya bertanya:

  • Adakah yang melihat "blok logis 4096-byte" pada pengontrol SATA mereka?
  • Apakah drive benar-benar mendukung mengaktifkan / menonaktifkan emulasi sesuai permintaan? Jika begitu,
    • Bagaimana tekad ini bekerja?
    • Bisakah Anda menimpanya di drive melalui bendera?
    • Bisakah Anda menimpanya pada pengontrol host melalui driver / flag?
Nathan Summers
sumber
Apakah logo pada drive mengatakan "AF" atau "4Kn"?
Jamie Hanrahan
Pertanyaan ini benar-benar membutuhkan jawaban modern berkualitas tinggi.
Hashim

Jawaban:

2

Saya telah melihat beberapa drive SATA 4Kn bekerja di industri validasi hard drive, tetapi saya tidak tahu mereka mengirimkannya kepada pelanggan, karena keterbatasan perangkat keras dan perangkat lunak untuk mereka dan kurangnya permintaan pelanggan.

Ada dua pemetaan bersaing untuk ukuran sektor fisik vs logis. Fitur Long Logical Sector memungkinkan perangkat memiliki sektor logis lebih panjang dari 512B (mis. 4Kn), dan fitur Sektor Fisik Panjang memungkinkan perangkat memiliki beberapa sektor logis per sektor fisik (mis. 512e), meskipun keduanya tidak harus saling eksklusif. Jika pabrikan mengklaim drive tersebut 4Kn, controller yang lebih lama dapat memberikan lapisan emulasi, seperti baca-modifikasi-tulis, untuk aplikasi dan perangkat keras yang lebih lama, karena sistem yang lebih tua tidak mendukung format 4Kn.

The sg_sat_identifyperintah dari paket sg3_utils mungkin akan memberikan informasi yang Anda perlu (cek kata 106-108 untuk ukuran sektor fisik / informasi ukuran sektor logis).

Itu tidak terlihat seperti drive SATA dapat mendukung emulasi on-demand, per se, tetapi jika drive memang menggunakan 512e, bukannya 4Kn, optimalisasi kinerja dimaksimalkan oleh driver (atau mungkin pengontrol USB SATA) membatasi membaca / menulis untuk Batas 4K, misalnya memiliki transfer yang dimulai pada LBA di mana 3 bit yang lebih rendah adalah 0, dan berakhir pada LBA di mana 3 bit yang lebih rendah adalah 1:

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

Jadi, pada dasarnya, tidak ada "saklar" yang dapat memberi tahu drive untuk memulai atau menghentikan emulasi. Dari perspektif pengguna akhir, taruhan terbaik Anda mungkin untuk memastikan drive Anda menggunakan sistem file terbaik untuk pemetaan mana pun yang menggunakan drive Anda dan untuk memastikan drive itu selaras dengan benar. Situs berikut memberikan perincian yang cukup baik dari sistem file umum dan statistiknya pada kinerja vs. penyelarasan blok pada sistem file yang berbeda: http://www.ibm.com/developerworks/library/l-linux-on-4kb-sector -disks / index.html

Adam Naber
sumber