Banyak filesystem yang umum digunakan seperti FAT, NTFS, ext2 / 3/4 tidak menjamin integritas data file (misalnya dengan checksum) ... ini ditambah dengan ancaman nyata dari sedikit busuk dapat menyebabkan situasi di mana Anda berada ... Data dikembalikan dari hard disk tanpa kesalahan, tetapi tidak benar.
Ada halaman wiki yang berguna yang membandingkan fitur sistem file sini - untuk kasus penggunaan Anda, kami tertarik pada " Checksum Data "kolom" Kemampuan File " meja, sini .
Pada saat penulisan, daftar filesystem yang memeriksa data (dan Anda mungkin memiliki akses) adalah: ZFS, Brtfs, ReFS.
Menggunakan sistem file yang lebih modern seperti ini memungkinkan ketahanan yang lebih baik terhadap bit-rot. Saya tidak dapat mengomentari yang lain, tetapi gunakan ZFS secara ekstensif sendiri, jadi di situlah sisa jawaban saya akan fokus (khususnya pada jaminan data, mengabaikan banyak fitur berguna lainnya).
Single Disk / Stripe
Menggunakan ZFS dengan a single disk
atau striped
pool (banyak disk tanpa disk paritas khusus) memberi Anda ketenangan pikiran bahwa jika data dikembalikan, itu benar. Jika data tidak dapat dibaca dengan benar, maka Anda akan melihat kesalahan . Ini dicapai dengan menyimpan checksum dari data serta data itu sendiri.
Perhatikan, bahwa bahkan dengan kolam seperti itu, ZFS copies
properti dapat membantu dengan hanya memastikan integritas data - namun menyediakan tidak manfaat sehubungan dengan kegagalan perangkat, jadi saya akan menyarankan agar tidak digunakan.
copies=1 | 2 | 3
Controls the number of copies of data stored for this dataset. These copies are in
addition to any redundancy provided by the pool, for example, mirroring or RAID-Z.
The copies are stored on different disks, if possible. The space used by multiple
copies is charged to the associated file and dataset, changing the used property
and counting against quotas and reservations.
Mirror atau RAIDZ
Menggunakan ZFS dengan a mirror
, atau raidz1
atau raidz2
pool (1 atau 2 disk paritas) meningkatkan kemampuan di atas untuk mendeteksi kesalahan, dan memungkinkan sistem file untuk mencoba secara otomatis menyembuhkan data yang rusak. Jika pembacaan gagal (karena checksum tidak cocok), maka permintaan baca akan dikirim ke salah satu mirror atau disk paritas. Dalam kejadian yang sangat tidak mungkin bahwa semua sumber memiliki checksum buruk, Anda akan melihat kesalahan, seperti di atas. Tetapi dalam kasus khusus mirror atau parity disk akan berhasil dibaca, data yang benar akan dikembalikan kepada Anda, dan data yang rusak akan ditulis lagi.
Sayangnya saya saat ini tidak mengetahui produk NAS konsumen yang menyediakan dukungan ZFS atau Btrfs, tetapi jika Anda menjalankan ini pada PC, maka distribusi seperti FreeNAS (Menggunakan ZFS) mungkin sangat menarik bagi Anda.
Anda tentu saja dapat menghitung checksum untuk semua file seperti yang Anda sebutkan, tetapi ini menimbulkan masalah ketika mencoba untuk mempertahankan dan memverifikasi checksum.