Bisakah Data pada Hard Drive Memburuk Tanpa Peringatan Tentang Kerusakan?
Kita semua khawatir tentang menjaga data dan file kita tetap aman dan utuh, tetapi apakah mungkin data menjadi rusak dan diakses oleh pengguna tanpa pemberitahuan atau peringatan apa pun tentang masalah tersebut? Posting Q&A SuperUser hari ini memiliki jawaban untuk pertanyaan pembaca yang khawatir.
Sesi Tanya Jawab hari ini datang kepada kami berkat SuperUser-subdivisi Stack Exchange, pengelompokan situs web Q&A berbasis komunitas.
Foto milik generalisasi (Flickr).
Pertanyaan
SuperUser reader topo morto ingin tahu apakah data pada hard drive dapat menurun dan diakses tanpa peringatan tentang kerusakan:
Mungkinkah degradasi fisik hard drive dapat menyebabkan bit untuk "membalik" isi file tanpa sistem operasi memperhatikan perubahan dan memberi tahu pengguna tentang hal itu ketika membaca file? Misalnya, bisakah "p" (biner 01110000) dalam file teks ASCII berubah menjadi "q" (biner 01110001), maka ketika pengguna membuka file, mereka melihat "q" tanpa sadar bahwa telah terjadi kegagalan.?
Saya tertarik pada jawaban yang berkaitan dengan FAT, NTFS, atau ReFS (jika ada bedanya). Saya ingin tahu apakah sistem operasi melindungi pengguna dari ini, atau apakah kami harus memeriksa data kami untuk perbedaan antar salinan dari waktu ke waktu.
Dapatkah data pada hard drive menurun dan diakses tanpa peringatan tentang kerusakan?
Jawabannya
Kontributor SuperUser Guntram Blohm memiliki jawaban untuk kita:
Ya, ada sesuatu yang disebut bit busuk. Tapi tidak, itu tidak akan memengaruhi pengguna tanpa disadari.
Ketika hard drive menulis sektor ke piring-piring, itu tidak hanya menulis bit dengan cara yang sama bahwa mereka disimpan dalam RAM, ia menggunakan pengkodean untuk memastikan tidak ada urutan bit yang sama yang terlalu panjang. Itu juga menambahkan kode ECC yang memungkinkannya untuk memperbaiki kesalahan yang mempengaruhi beberapa bit dan mendeteksi kesalahan yang mempengaruhi lebih dari beberapa bit.
Ketika hard drive membaca sektor ini, ia memeriksa kode ECC ini dan memperbaiki data jika perlu (dan jika mungkin). Apa yang terjadi selanjutnya tergantung pada keadaan dan firmware dari hard drive, yang dipengaruhi oleh penunjukan drive.
- Jika suatu sektor dapat dibaca dan tidak memiliki masalah kode ECC, maka ia diteruskan ke sistem operasi.
- Jika suatu sektor dapat diperbaiki dengan mudah, versi yang diperbaiki dapat ditulis ke disk, dibaca kembali, lalu diverifikasi untuk menentukan apakah kesalahannya adalah acak (mis. Sinar kosmik, dll.) Atau jika ada kesalahan sistematis dengan media..
- Jika hard drive menentukan bahwa ada kesalahan dengan media, itu akan merealokasi sektor tersebut.
- Jika suatu sektor tidak dapat dibaca atau diperbaiki setelah beberapa upaya membaca (pada hard drive yang ditunjuk sebagai hard drive RAID), maka hard drive akan menyerah, realokasi sektor tersebut, dan memberi tahu pengontrol bahwa ada masalah. . Ia bergantung pada pengontrol RAID untuk merekonstruksi sektor ini dari anggota RAID lainnya dan menulisnya kembali ke hard drive yang gagal, yang kemudian menyimpannya di sektor yang dialokasikan kembali (yang diharapkan tidak memiliki masalah).
- Jika suatu sektor tidak dapat dibaca atau diperbaiki pada hard drive desktop, maka hard drive akan melakukan lebih banyak upaya untuk membacanya. Bergantung pada kualitas hard drive, ini mungkin melibatkan reposisi kepala, memeriksa untuk melihat apakah ada bit yang flip ketika dibaca berulang kali, memeriksa bit mana yang paling lemah, dan beberapa hal lainnya. Jika salah satu dari upaya ini berhasil, hard drive akan merealokasi sektor dan menulis kembali data yang diperbaiki.
Ini adalah salah satu perbedaan utama antara hard drive yang dijual sebagai hard drive "desktop", "NAS / RAID", atau "video surveillance". Hard drive RAID bisa menyerah dengan cepat dan membuat pengontrol memperbaiki sektor ini untuk menghindari latensi di sisi pengguna. Hard disk desktop akan terus mencoba berulang kali karena meminta pengguna menunggu beberapa detik mungkin lebih baik daripada memberi tahu mereka bahwa data hilang. Dan hard drive video menilai kecepatan data konstan lebih dari pemulihan kesalahan karena bingkai yang rusak biasanya tidak akan diperhatikan.
Bagaimanapun, hard drive akan tahu jika ada bit busuk, biasanya akan pulih dari itu, dan jika tidak bisa, itu akan memberi tahu controller yang pada gilirannya akan memberi tahu pengemudi yang kemudian akan memberitahu sistem operasi. Kemudian, tergantung pada sistem operasi untuk menyajikan kesalahan kepada pengguna dan menindaklanjutinya. Inilah sebabnya mengapa cybernard berkata:
- Saya tidak pernah menyaksikan sedikit pun kesalahan sendiri, tetapi saya telah melihat banyak hard drive di mana seluruh sektor gagal.
Hard drive akan tahu jika ada sesuatu yang salah dengan suatu sektor, tetapi tidak akan tahu bit mana yang gagal. Satu bit yang gagal akan selalu ditangkap oleh ECC.
Harap dicatat bahwa chkdsk dan sistem file yang secara otomatis memperbaiki sendiri tidak membahas perbaikan data dalam file. Ini ditargetkan pada korupsi dalam struktur sistem file itu sendiri, seperti perbedaan dalam ukuran file antara entri direktori dan jumlah blok yang dialokasikan. Fitur self-healing NTFS akan mendeteksi kerusakan struktural dan mencegahnya mempengaruhi data Anda lebih lanjut, tetapi tidak akan memperbaiki data apa pun yang sudah rusak.
Tentu saja ada alasan lain mengapa data menjadi rusak. Sebagai contoh, RAM buruk pada pengontrol dapat mengubah data sebelum dikirim ke hard drive. Dalam hal ini, tidak ada mekanisme pada hard drive akan mendeteksi atau memperbaiki data, dan ini mungkin menjadi salah satu alasan mengapa struktur sistem file rusak. Alasan lain termasuk bug perangkat lunak, pemadaman saat menulis ke hard drive (meskipun ini diatasi dengan penjurnalan sistem file), atau driver sistem file yang buruk (driver NTFS di Linux secara default hanya-baca untuk waktu yang lama sejak NTFS direkayasa balik, tidak didokumentasikan, dan pengembang tidak mempercayai kode mereka sendiri).
- Saya pernah mengalami skenario ini di mana aplikasi akan menyimpan semua file-nya ke dua server yang berbeda di dua pusat data yang berbeda untuk menjaga salinan data yang berfungsi tetap tersedia dalam semua keadaan. Setelah beberapa bulan, kami perhatikan bahwa sekitar 0,1 persen dari semua file yang disalin tidak cocok dengan jumlah cek MD5 yang disimpan oleh aplikasi dalam database-nya. Ternyata kabel serat rusak antara server dan SAN.
Alasan-alasan lain inilah yang menyebabkan beberapa sistem file, seperti ZFS, menyimpan informasi jumlah pemeriksaan tambahan untuk mendeteksi kesalahan. Mereka dirancang untuk melindungi Anda dari lebih banyak hal yang bisa salah daripada hanya sedikit busuk.
Punya sesuatu untuk ditambahkan ke penjelasan? Berbunyi dalam komentar. Ingin membaca lebih banyak jawaban dari pengguna Stack Exchange yang mengerti teknologi lainnya? Lihat utas diskusi lengkap di sini.