RAID-1 dan penghapusan drive biasa (menggunakan RAID-1 sebagai ukuran cadangan)

2

Menggunakan partisi RAID-1 dari 2 mdadm (satu di HDD internal laptop, satu di HDD eksternal) ide yang bagus.

Saya ingin sistem berfungsi sebagai RAID-1 jika kedua drive ada, berfungsi sebagai volume reguler (degradad RAID-1) jika HDD eksternal dicabut dan dengan cepat melakukan sinkronisasi ulang ketika saya pasang HDD eksternal lagi.

Pertanyaan:

  1. Apakah itu ide yang bagus?
  2. Akankah bitmap maksud menulis cukup untuk tugas ini atau saya perlu yang lain?
  3. Haruskah saya mempertimbangkan untuk melakukannya di tingkat filesystem (3b. Jika ya, bagaimana?).

Persyaratan dasar adalah:

  1. Sinkronisasi ulang cepat ketika saya menambahkan kembali drive eksternal (asalkan saya belum mengubah partisi itu).
  2. Kurang lebih data yang konsisten pada drive yang dihapus jika saya menghapusnya tidak selama operasi penulisan / sinkronisasi ulang.

Jika saya menghapus drive selama resync saya berharap data menjadi agak tidak konsisten, tetapi mengharapkan penyelesaian resync cepat ketika saya menambahkannya lagi. Misalnya saya ingin drive yang tersisa untuk melacak apa yang diubah (mungkin ada banyak perubahan) dan menyinkronkan kembali hanya bagian-bagian yang membutuhkannya.

Vi.
sumber
2
ingat bahwa RAID ≠ cadangan.
Tupai
@thepurplepixel Ini adalah sesuatu di antara RAID dan cadangan.
Vi.
Baru saja selesai menunggu "Status Rebuild: X% selesai", mencabut drive, menancapkannya lagi, mengeluarkan "mdadm / dev / md0 --add / dev / sdb5" dan lagi 0% dan membangun kembali sepenuhnya. Apa itu "--bitmap internal"? Mengapa membangun kembali dari awal?
Vi.
@ Vi Mencoba lagi, sepertinya membangun kembali dengan cerdas menggunakan karya bitmap ...
Vi.
1
@ Vi Bagaimana RAID 1 "di suatu tempat di tengah"?
Dave M

Jawaban:

1

Saya akan mengatakan bahwa ini bukan ide yang baik. Yang paling Anda lindungi adalah masalah drive fisik / listrik, dan Anda hanya memiliki satu salinan cadangan yang sangat rentan saat disegarkan.

Jika terjadi kesalahan pada drive lain, atau dengan mesin Anda secara umum, selama sinkronisasi ulang Anda bisa dibiarkan dengan drive utama tidak berfungsi dan drive "bakcup" ​​memiliki sistem file yang diperbarui sebagian (yaitu berpotensi sangat korup). Ini adalah salah satu alasan mengapa sebagian besar solusi cadangan menyertakan beberapa cadangan (alasan utama lainnya adalah Anda dapat memiliki setidaknya satu cadangan offline (dan lebih baik di luar kantor) saat memperbarui yang lain), tetapi diperburuk oleh kenyataan bahwa RAID resync adalah tidak akan sadar filesystem sehingga tidak akan dapat melakukan apa pun untuk memastikan sebagian resync meninggalkan filesystem mendekati keadaan yang konsisten (misalnya mungkin menyinkronkan data tertulis sebelum blok jurnal terkait dan sebagainya).

Jika Anda mem-RAID seluruh sistem Anda dengan cara ini maka hit kinerja penulisan maksud-niat juga bisa sangat signifikan (lihat posting seperti http://blog.ganneff.de/blog/2008/01/30/write-intent-bitmaps -considere.html ), meskipun jika Anda hanya me-RAID sistem file yang tidak melihat banyak aktivitas tulis, ini mungkin bukan masalah bagi Anda.

Jika Anda menggunakan teknik ini, pastikan Anda menjalankan syncsebelum mengeluarkan drive secara paksa.

Sudahkah Anda mempertimbangkan untuk menggunakan rsync untuk memperbarui sistem file cadangan? Ini akan lebih lambat dalam solusi Anda yang terbaik (karena pemindaian penuh ukuran dan tanggal file diperlukan bahkan jika tidak ada yang berubah, yang bisa signifikan jika sistem file berisi banyak file) tetapi biasanya cukup cepat dan tentunya akan lebih cepat daripada sinkronisasi ulang penuh di mana driver RAID untuk memutuskan ini diperlukan.

David Spillett
sumber
"Jika Anda RAIDIN seluruh sistem Anda dengan cara ini" -> Tidak, itu hanya satu volume, kebanyakan dengan repositori telanjang dan data yang saya tidak ingin kehilangan. Ini bukan partisi root. "Yaitu berpotensi sangat korup" -> Saya telah terbiasa bahwa "--rebuild-tree" menyelamatkan bahkan dari korupsi sedang (misalnya, melanjutkan dari hibernasi setelah pemasangan eksternal dengan jurnal replaying). Haruskah saya berharap akan kehilangan sebagian besar data baru (yang sedang disinkronkan pada saat itu). "Anda dapat memiliki setidaknya satu cadangan offline" -> Mungkin itu akan menjadi arsip DVD langka biasa, seperti yang saya buat sebelumnya.
Vi.
0

Sepertinya ide array RAID-1 eksternal_HDD bekerja.

Array mulai terdegradasi dan melacak perubahan menggunakan bitmap write-intent.

Ketika saya menghubungkan HDD eksternal saya, udevskrip saya mendeteksi bahwa salah satu partisi sesuai dengan array saya dan menambahkannya. Ini menyinkronkan (langsung jika tidak ada perubahan) dan kemudian bertindak sebagai mempercepat untuk akses baca.

Ketika saya melepaskan HDD eksternal saya (termasuk penghapusan tiba-tiba), udevskrip lain mencatat bahwa drive dihapus dan array menjadi terdegradasi lagi.

Namun ada penurunan kinerja penulisan yang nyata, tetapi itu dapat diterima untuk penggunaan ini.

Keuntungan lainnya adalah saya dapat memformat partisi itu untuk sementara waktu untuk penggunaan lain dan kemudian membawanya kembali ke array (dengan pembangunan kembali penuh).

Vi.
sumber
0

Satu masalah yang saya lihat dalam hal ini, bahwa sistem file pada HDD eksternal yang dihapus mungkin berada dalam keadaan yang tidak dapat dipasang, meskipun sistem file modern dengan penjurnalan dll mengurangi risiko ini.

Tetapi jika Anda menggunakan mdadm, saya dapat berasumsi Anda menggunakan beberapa rasa Linux dan akan merekomendasikan menggunakan rsync sebagai gantinya. Ini akan lebih cepat karena hanya file yang diubah yang akan disalin dan itu juga akan memungkinkan Anda untuk memiliki skrip yang membuat folder dengan tanggal saat ini di HDD eksternal dan kemudian membuat cadangan penuh hard drive internal Anda di bawahnya tetapi menghubungkan file dengan cadangan sebelumnya, sehingga hanya menggunakan ruang untuk data baru. Dengan begitu Anda dapat dengan mudah memulihkan file yang mungkin telah dihapus pada HDD internal.

Raynet
sumber
Dapatkah saya menjalankan rsync dalam beberapa mode berkelanjutan untuk membuatnya melacak perubahan dan memperbarui salinan cadangan? (Saya juga memikirkan beberapa filesystem FUSE yang akan mengingat perubahan dan mendorongnya ke salinan.) Apakah varian rsync Anda menangani pemulihan (tanpa menghapus dan membangun kembali sepenuhnya) setelah melepaskan drive di tengah sinkronisasi? Dan saya pikir membaca dari drive kedua dan mempercepat beberapa hal (copy pekerjaan pada drive internal, git repositori dibaca dari drive eksternal) dalam beberapa kasus.
Vi.
Ada aplikasi yang melacak setiap modifikasi pada drive sumber dan kemudian segera mensinkronkannya ke drive target. Anda dapat menghapus drive selama rsync berjalan, ini hanya akan menyebabkan file yang saat ini disalin sebagian disalin, menjalankan rsync lagi hanya akan melanjutkan di mana ia tinggalkan. Rsync tidak akan memberi Anda kecepatan membaca, tetapi kecuali jika Anda menggunakan eSata untuk drive eksternal, kecepatan baca akan menjadi sangat marjinal dan kecepatan menulis akan dibatasi oleh lambatnya drive.
Raynet