badblocks vs. SMART Extended Self Test

14

Bagaimana pemindaian membaca / menulis permukaan penuh oleh 'badblocks' berbeda dari tes mandiri SMART Extended ?

Sepertinya keduanya adalah pemindaian permukaan penuh, jadi mengapa perlu badblocks -vws3 hari untuk menguji drive 1TB, sementara SMART melakukannya dalam 2 1/2 jam (setidaknya itulah perkiraan waktu yang diberikan smartmon kepada saya)?

Robert S. Barnes
sumber
lebih lengkap, badblockssudahkah Anda mempertimbangkan menggunakan params "blok terakhir" "blok pertama" dan melakukan tes sedikit per hari?
Aquarius Power

Jawaban:

12

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 -wbuat 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.

sebuah CVn
sumber
5

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 -vwsmeminta 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.

serbuk gergaji
sumber
0

https://wiki.archlinux.org/index.php/badblocks#Comparisons_with_Other_Programs

Yang menjadi peringatan di sini adalah bahwa beberapa program pengujian pabrikan tidak mencetak hasil pengujian penuh dan membiarkan sejumlah bad sector mengatakan hanya jika mereka lulus atau tidak. Program pabrikan, bagaimanapun, umumnya lebih cepat daripada badblock kadang-kadang cukup.

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.

Ray Foss
sumber