31Jul
Kita semua khawatir tentang menjaga agar data dan file kita tetap aman dan utuh, tapi apakah mungkin data menjadi rusak dan diakses oleh pengguna tanpa pemberitahuan atau peringatan apapun tentang masalahnya? Today's SuperUser Q & Sebuah posting memiliki jawaban atas pertanyaan pembaca yang cemas.
Pertanyaan Hari Ini &Sesi jawaban datang kepada kami atas izin SuperUser - subdivisi dari Stack Exchange, pengelompokan berbasis komunitas dari Q & A situs web. Foto
milik generalising( Flickr).
Pertanyaan
Pembaca superuser topo morto ingin mengetahui apakah data pada hard drive dapat terdegradasi dan diakses tanpa peringatan tentang kerusakan:
Mungkinkah degradasi fisik hard drive dapat menyebabkan bit "flip" dalam isi file.tanpa sistem operasi yang memperhatikan perubahan dan memberitahukan pengguna tentang hal itu saat membaca file? Misalnya, bisakah "p"( biner 01110000) dalam file teks ASCII berubah menjadi "q"( biner 01110001), lalu ketika pengguna membuka file, mereka melihat "q" tanpa menyadari bahwa ada kegagalan?
Saya tertarik dengan jawaban yang berkaitan dengan FAT, NTFS, atau ReFS( jika membuat perbedaan).Saya ingin tahu apakah sistem operasi melindungi pengguna dari ini, atau jika kami harus memeriksa data kami untuk varians antar salinan dari waktu ke waktu.
Bisakah data hard drive terdegradasi dan diakses tanpa peringatan tentang kerusakan?
Jawaban Kontributor
Kontributor Guntram Blohm memiliki jawabannya untuk kita:
Ya, ada yang disebut bit rot. Tapi tidak, itu tidak akan mempengaruhi pengguna tanpa disadari. Ketika hard drive menulis sebuah sektor ke piring-piring, tidak hanya menulis bit dengan cara yang sama seperti yang tersimpan di RAM, ia menggunakan pengkodean untuk memastikan tidak ada urutan bit yang sama yang terlalu panjang. Ini juga menambahkan kode ECC yang memungkinkannya memperbaiki kesalahan yang mempengaruhi beberapa bit dan mendeteksi kesalahan yang mempengaruhi lebih dari beberapa bit.
Ketika hard drive membaca sektor ini, ia akan memeriksa kode ECC ini dan memperbaiki data jika perlu( dan jika mungkin).Apa yang terjadi selanjutnya tergantung dari keadaan dan firmware harddisk yang dipengaruhi oleh penunjukan drive.
- Jika suatu sektor dapat dibaca dan tidak memiliki masalah kode ECC, maka sistem tersebut akan diteruskan ke sistem operasi.
- Jika suatu sektor dapat diperbaiki dengan mudah, versi yang diperbaiki dapat ditulis ke disk, baca kembali, kemudian diverifikasi untuk menentukan apakah kesalahan itu salah satu yang acak( yaitu sinar kosmik, dll.) Atau jika ada kesalahan sistematis dengan media.
- Jika hard drive menentukan bahwa ada kesalahan dengan media, ini akan mengalokasikan kembali sektor ini.
- Jika sebuah sektor tidak dapat dibaca atau dikoreksi setelah beberapa usaha baca( pada hard drive yang ditujukan sebagai hard drive RAID), maka hard drive akan menyerah, mengalokasikan kembali sektor ini, dan memberi tahu pengendali bahwa adamasalah. Ini bergantung pada pengendali RAID untuk merekonstruksi sektor ini dari anggota RAID lainnya dan menuliskannya kembali ke hard drive yang gagal, yang kemudian menyimpannya di sektor yang dapat dialokasikan( semoga tidak bermasalah).
- Jika sebuah sektor tidak dapat dibaca atau diperbaiki pada hard drive desktop, maka hard drive akan mencoba lebih banyak untuk membacanya. Bergantung pada kualitas hard drive, ini mungkin melibatkan reposisi kepala, memeriksa apakah ada bit yang membalik saat dibaca berulang kali, memeriksa bit mana yang paling lemah, dan beberapa hal lainnya. Jika salah satu upaya ini berhasil, hard drive akan mengalokasikan kembali sektor ini dan mengembalikan data yang diperbaiki.
Ini adalah salah satu perbedaan utama antara hard drive yang dijual sebagai hard drive "desktop", "NAS / RAID", atau "video surveillance".Sebuah hard drive RAID hanya bisa menyerah dengan cepat dan membuat controller memperbaiki sektor ini untuk menghindari latency pada sisi pengguna. Hard drive desktop akan terus mencoba lagi dan lagi karena pengguna menunggu beberapa detik mungkin lebih baik daripada memberi tahu mereka bahwa data hilang. Dan sebuah video hard drive menilai kecepatan data konstan lebih banyak daripada pemulihan kesalahan karena bingkai yang rusak biasanya tidak diperhatikan.
Bagaimanapun, hard drive akan tahu jika ada sedikit membusuk, biasanya akan pulih darinya, dan jika tidak bisa, ia akan memberi tahu pengontrol yang pada gilirannya akan memberi tahu pengemudi yang kemudian akan memberi tahu sistem operasi. Lalu, terserah pada sistem operasi untuk mempresentasikan kesalahan tersebut kepada pengguna dan bertindak atasnya. Inilah sebabnya mengapa cybernard mengatakan:
- Saya tidak pernah menyaksikan kesalahan sedikit pun, tapi saya telah melihat banyak hard drive di mana seluruh sektor telah gagal.
Hard drive akan mengetahui apakah ada yang salah dengan suatu sektor, namun tidak akan tahu bit mana yang gagal. Bit tunggal yang telah gagal akan selalu tertangkap oleh ECC.
Harap dicatat bahwa sistem chkdsk dan file yang secara otomatis memperbaiki diri tidak menangani perbaikan data dalam file. Ini ditargetkan pada korupsi di dalam struktur sistem file itu sendiri, seperti perbedaan ukuran file antara entri direktori dan jumlah blok yang dialokasikan. Fitur penyembuhan diri dari NTFS akan mendeteksi kerusakan struktural dan mencegahnya mempengaruhi data Anda lebih jauh, namun tidak akan memperbaiki data yang sudah rusak.
Tentu saja, ada alasan lain mengapa data bisa menjadi rusak. Sebagai contoh, RAM yang buruk pada controller dapat mengubah data sebelum bahkan dikirim ke hard drive. Dalam hal ini, tidak ada mekanisme pada hard drive yang akan mendeteksi atau memperbaiki data, dan ini mungkin salah satu alasan mengapa struktur sistem file rusak. Alasan lain termasuk bug perangkat lunak, pemadaman saat menulis ke hard drive( walaupun ini ditangani oleh journal sistem file), atau driver sistem berkas yang buruk( driver NTFS di Linux gagal dibaca hanya untuk waktu yang lama karena NTFS telah direkayasa terbalik,tidak didokumentasikan, dan pengembang tidak mempercayai kode mereka sendiri).
- Saya pernah skenario ini sekali di mana aplikasi akan menyimpan semua file ke dua server yang berbeda di dua pusat data yang berbeda untuk menyimpan salinan data dari pekerjaan yang tersedia dalam segala situasi. Setelah beberapa bulan, kami melihat bahwa sekitar 0,1 persen dari semua file yang disalin tidak sesuai dengan jumlah cek MD5 yang tersimpan dalam database. Ternyata kabel serat yang salah antara server dan SAN.
Alasan lain mengapa beberapa sistem file, seperti ZFS, menyimpan informasi jumlah cek tambahan untuk mendeteksi kesalahan. Mereka dirancang untuk melindungi Anda dari lebih banyak hal yang bisa salah daripada hanya sedikit membusuk.
Punya sesuatu untuk ditambahkan ke penjelasan? Terdengar dalam komentar. Ingin membaca lebih banyak jawaban dari pengguna Stack Exchange tech-savvy lainnya? Simak thread diskusi selengkapnya disini.