GSmartControl dan alat baris perintah lainnya (seperti fdisk
, smartctl
, cat /sys/block/sd*/queue/hw_sector_size
, cat /sys/block/sd*/queue/physical_block_size
) saya telah menggunakan laporan yang sama untuk kedua disk saya:
Sector Size: 512 bytes logical/physical
Ini adalah instalasi default Ubuntu 18.10 (kemudian ditingkatkan menjadi 19.04). Namun, stat -f
perintah pada kedua disk melaporkan:
Block size: 4096 Fundamental block size: 4096
Kedua disk saya adalah SSD dan disk AFAIK SSD membutuhkan ukuran sektor 4K . Apakah ini OK atau saya melewatkan sesuatu? Apakah informasi yang dikembalikan oleh stat
(= 4K) memastikan bahwa OS akan selalu mengirim IO ke disk dalam kelipatan 4K dan blok ini tidak akan pernah melewati batas 4K (blok IO akan selalu disejajarkan dengan 4K)?
Harap perhatikan output berikut ( sdb2
adalah partisi root saya , sda
adalah /home
disk saya ):
# fdisk -l /dev/sd?
Disk /dev/sda: 465.8 GiB, 500107862016 bytes, 976773168 sectors
Disk model: SanDisk SDSSDH35
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/sdb: 238.5 GiB, 256060514304 bytes, 500118192 sectors
Disk model: ADATA SU800NS38
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: xxxx....
Device Start End Sectors Size Type
/dev/sdb1 2048 1050623 1048576 512M EFI System
/dev/sdb2 1050624 500117503 499066880 238G Linux filesystem
# df / /home
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sdb2 244568380 17799136 214276188 8% /
/dev/sda 479670976 129685112 325550152 29% /home
sumber
fdisk -l
untuk memeriksa masalah keberpihakan. Dan ternyata pekerjaan SSD sedikit berbeda, karena konstruksi fisik mereka, tetapi saya bukan ahli di bidang itu.Jawaban:
Di masa lalu, sektor 512 byte adalah norma untuk disk. Sistem yang digunakan untuk membaca / menulis sektor hanya satu sektor pada satu waktu, dan itu yang terbaik yang bisa dilakukan oleh hard drive lama.
Sekarang, dengan drive modern yang begitu padat, dan begitu cepat, dan begitu cerdas, sektor membaca / menulis hanya satu sektor pada suatu waktu yang benar-benar memperlambat total throughput.
Caranya adalah ... bagaimana Anda mempercepat throughput total, tetapi tetap mempertahankan kompatibilitas dengan subsistem disk lama / standar? Anda membuat ukuran blok 4096 yang terdiri dari delapan sektor fisik 512 byte. 4096 sekarang adalah transfer baca / tulis minimum ke / dari disk, tetapi dialihkan ke chuck 512 byte yang kompatibel ke OS.
Ini berarti bahwa walaupun sistem hanya membutuhkan satu sektor informasi 512 byte, drive tersebut membaca delapan sektor byte 512 untuk mendapatkannya. Namun, jika sistem membutuhkan tujuh sektor berikutnya, itu sudah membacanya, jadi tidak ada disk I / O yang perlu terjadi ... maka peningkatan kecepatan total throughput.
Sistem operasi modern sepenuhnya dapat memanfaatkan ukuran asli blok 4K dari drive modern.
sumber
parted
untuk menunjukkan ukuran sektor logis dan fisik.grub
masukkan kode tambahan ke dalam Mibibyte pertama untuk boot dalam mode BIOS. (Dalam GPT,grub
perlu partisi kecil denganbios_grub
tanda agar kode tersebut dapat boot dalam mode BIOS).Menurut Wikipedia "Format Lanjutan (AF) adalah format sektor disk apa pun yang digunakan untuk menyimpan data dalam disk drive yang melebihi 512, 520, atau 528 byte per sektor, seperti sektor 4.096 byte dari Advanced Format Drive (AFD)." Advanced Format (AF) adalah format disk yang secara asli menggunakan ukuran sektor 4.096 byte, bukan 512 byte. Untuk menjaga kompatibilitas dengan sistem lawas, disk AF mengemulasi ukuran sektor sebesar 512 byte.
Saya mendapat hasil yang sama seperti yang Anda dapatkan dengan menjalankan
stat -f
dansmartctl
menggunakan dua SSD. Kedua SSD secara otomatis dikenali oleh OS ketika mereka diinstal dan diperlukan konfigurasi nol, sehingga tampak bahwa data yang Anda dapatkan adalah pengaturan default untuk ukuran blok dan ukuran sektor.sumber
Perangkat keras lama dan Sistem Operasi menggunakan sektor 512 byte, sejak 2011 (hampir) semua perangkat keras penyimpanan memiliki 4096 (atau lebih besar ) sektor byte; tetapi beberapa perangkat keras mendukung emulasi sektor 512 byte untuk sistem lawas. Ada pengecualian, Samsung 840 EVO SSD memiliki blok ukuran 2048 KB .
Sebuah Kesalahan Mengoreksi Kode (ECC) dihitung untuk setiap 512 byte potongan, dan karena Anda bisa bayangkan, data yang ECC juga membutuhkan ruang penyimpanan. Tak perlu dikatakan bahwa satu sektor 4096 byte membutuhkan informasi ECC kurang dari delapan potongan 512 byte jika algoritma ECC tetap tidak berubah. Pada akhirnya, total kapasitas penyimpanan hard drive meningkat sebagai akibat lebih sedikit ECC data overhead.
Menggunakan sektor 4K masuk akal dari sudut pandang arsitektur, karena tokoh kunci lainnya (seperti halaman memori x86 dan banyak cluster sistem file) juga menggunakan ukuran 4 KB. Format Lanjutan memungkinkan untuk algoritma ECC yang lebih kuat, yang penting mengingat kapasitas yang terus meningkat. Pengendali menggunakan teknik tambahan di luar koreksi kesalahan melalui pemahaman tentang karakteristik kesalahan memori flash NAND dan perilaku beban kerja.
Advanced Format (AF) adalah format sektor disk apa pun yang digunakan untuk menyimpan data pada disk magnetik dalam hard disk drive (HDD) yang melebihi 512, 520, atau 528 byte per sektor, seperti 4096, 4112, 4160, dan 4224-byte ( 4 KB) sektor dari Advanced Format Drive (AFD). Sektor yang lebih besar memungkinkan integrasi algoritma koreksi kesalahan yang lebih kuat untuk menjaga integritas data pada kepadatan penyimpanan yang lebih tinggi.
Untuk disk SCSI (SAS) ukuran blok RAID lebih besar dari ukuran blok JBOD karena bidang integritas data standar SCSI T10 bersama dengan pemeriksaan blok buruk logis yang disimpan pada setiap blok dengan data. Adaptor SAS RAID mendukung blok disk yang didasarkan pada 512 Bytes data atau 4K Bytes data. Ukuran blok RAID untuk disk 512 adalah 528 Bytes per sektor dan ukuran blok RAID untuk disk 4K adalah 4224 byte per sektor.
Karena Anda menulis ke memori dan bukan ukuran sektor fisik disk pemintalan memiliki efek lebih kecil daripada memastikan bahwa partisi Anda selaras dengan ukuran blok hapus . Meski begitu yang terbaik adalah memiliki perangkat lunak dan perangkat keras terbaru, dan menggunakan ukuran sektor 4K.
Ukuran sektor yang lebih besar direkomendasikan oleh Intel - " Dapatkan Kinerja Optimal dengan Mengubah Ukuran Sektor Fisik SSD ".
sumber