Bagaimana pemindaian membaca / menulis permukaan penuh oleh 'badblocks' berbeda dari tes mandiri SMART Extended ?
Sepertinya keduanya adalah pemindaian permukaan penuh, jadi mengapa perlu badblocks -vws
3 hari untuk menguji drive 1TB, sementara SMART melakukannya dalam 2 1/2 jam (setidaknya itulah perkiraan waktu yang diberikan smartmon kepada saya)?
hard-drive
bad-blocks
Robert S. Barnes
sumber
sumber
badblocks
sudahkah Anda mempertimbangkan menggunakan params "blok terakhir" "blok pertama" dan melakukan tes sedikit per hari?Jawaban:
Tes permukaan SMART hampir dipastikan merupakan lintasan baca tunggal, dan tentunya tidak merusak,. Seperti yang telah ditunjukkan itu juga internal ke drive; dengan kemungkinan pengecualian untuk data kontrol minor, tidak ada data yang diteruskan ke atau dari host selama pengujian.
Di sisi lain,
badblocks -w
buat empat melewati drive, masing-masing dengan satu tulis dan satu baca. Itu saja menyumbang perbedaan 8x dalam waktu yang diambil untuk tes, ditambah rotasi latensi. Karena perangkat lunak ini berjalan pada host, semua data harus dikocok melalui antarmuka disk ke RAM dan ditangani oleh perangkat lunak (badblocks, dalam kasus kami).Jika kita mengambil latency rotasi kasus terburuk 1 × (disk perlu membuat satu revolusi penuh setelah menulis data untuk membacanya kembali, yang cukup banyak apa yang akan Anda lihat jika Anda suka badblock pertama-tama mengisi keseluruhan disk dan kemudian membacanya kembali, daripada melakukan I / O satu trek fisik pada waktu yang dengan LBA hampir tidak mungkin), kita berakhir dengan kasus terburuk (1 + 1) × 8 × = 16 × selama diperlukan untuk selesaikan operasi. 16 × 2.5j = 40j, yang tentu saja sesuai dengan angka Anda dan masih mengasumsikan kita hanya berurusan dengan penyimpanan data pada drive dan itu terjadi secepat drive dapat mempertahankan I / O berurutan.
sumber
Tes pendek dan panjang SMART hanya melakukan pembacaan (terlokalisasi) dari sektor-sektor tersebut; itu juga tidak merusak data. Data yang dibaca hanya ditransfer ke controller on-board, bukan ke PC host. Antarmuka SATA pada dasarnya idle selama pengujian, dan lampu aktivitas HDD pada PC tidak boleh menyala.
badblocks -vws
meminta sektor tulis lalu membaca & memverifikasi operasi. Setiap penulisan dan baca menambah revolusi disk per operasi plus waktu untuk transfer data melalui antarmuka SATA plus pemrosesan PC host. Lampu aktivitas HDD harus menyala sebagian besar waktu.sumber
https://wiki.archlinux.org/index.php/badblocks#Comparisons_with_Other_Programs
Jadi, gunakan tes menyeluruh destruktif badblock jika memungkinkan.
Sunting: Secara destruktif yang saya maksudkan adalah banyak hard drive modern memiliki beban kerja 180TB / y, artinya pada 12TB hd, Anda akan mengambil 96TB beban kerja, jika Anda menjalankan set penuh tes badblocks hanya untuk mengujinya. Itu mungkin 48TB jika dengan beban kerja mereka hanya berarti menulis, yang mungkin terjadi, tetapi tidak didokumentasikan dengan baik.
sumber