Pertama-tama: bagi mereka yang masih percaya pada "RAID0 tidak memiliki cadangan panas". Itu bisa memiliki cadangan manual, dilakukan oleh manusia, yang memahami level RAID dan mdadm. mdadm adalah perangkat lunak RAID, sehingga bisa melakukan banyak hal menarik.
Kredit untuk Zoredache untuk gagasan itu!
Jadi situasinya:
- Anda memiliki array RAID0 dua disk
- Anda ingin mengganti salah satunya tanpa downtime array
Jika downtime dapat diterima, Anda selalu dapat membuat salinan dari disk dengan dd dan memasang kembali array, mdadm akan melakukan OK.
Solusi: gunakan RAID4 sebagai solusi perantara
RAID0 -> RAID4 -> RAID0
Jadi, jika Anda tidak ingat RAID4, itu sederhana. Ini memiliki blok paritas, tetapi tidak seperti RAID5 tidak didistribusikan melintasi array, tetapi berada pada SATU disk. Itulah intinya, ini penting dan ini adalah alasan RAID5 tidak akan berfungsi.
Yang Anda perlukan: dua disk lagi dengan ukuran yang sama, seperti disk yang ingin Anda ganti.
Lingkungan Hidup:
- Ubuntu 14.04 Thusty Thar
- mdadm - v3.2.5 - 18 Mei 2012
- / dev / sdb - mulai dengan itu, akan menggantinya
- / dev / sdc - mulai dengan itu
- / dev / sdd - akan digunakan sementara
- / dev / sde - akan digunakan sebagai ganti sdb
Panduan mdadm hot-spare RAID0 terbaik;)
sudo mdadm -C /dev/md0 -l 0 -n 2 /dev/sd[bc]
md0 : active raid0 sdc[1] sdb[0]
2096128 blocks super 1.2 512k chunks
Kami telah membuat array raid0, itu terlihat manis.
sudo md5sum /dev/md0
b422ba644a3c83cdf28adfa94cb658f3 /dev/md0
Ini adalah titik pemeriksaan kami - jika bahkan satu bit akan berbeda dalam hasil /dev/md0
- kami telah gagal.
sudo mdadm /dev/md0 --grow --level=4
md0 : active raid4 sdc[1] sdb[0]
2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [UU_]
Jadi, kami telah mengembangkan array kami menjadi RAID4. Kami belum menambahkan paritas disk, jadi mari kita lakukan. Tumbuh akan instan - tidak ada yang bisa menghitung ulang atau menghitung ulang.
sudo mdadm /dev/md0 -a /dev/sdd
md0 : active raid4 sdd[3] sdc[1] sdb[0]
2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [UU_]
[===>.................] recovery = 19.7% (207784/1048064) finish=0.2min speed=51946K/sec
Kami telah menambahkan sdd
sebagai disk paritas. Ini penting untuk diingat - urutan disk di baris pertama tidak disinkronkan dengan gambar di baris kedua! [UU_]
sdd
ditampilkan terlebih dahulu, tetapi sebenarnya itu yang terakhir, dan tidak memegang data, tetapi paritas.
sudo mdadm /dev/md0 -f /dev/sdb
md0 : active raid4 sdd[3] sdc[1] sdb[0](F)
2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [_UU]
Kami telah membuat disk sdb kami salah, untuk menghapusnya di langkah berikutnya.
sudo mdadm --detail /dev/md0
State : clean, degraded
Number Major Minor RaidDevice State
0 0 0 0 removed
1 8 32 1 active sync /dev/sdc
3 8 48 2 active sync /dev/sdd
0 8 16 - faulty spare /dev/sdb
Detail menunjukkan kepada kita penghapusan disk pertama dan di sini kita dapat melihat urutan sebenarnya dari disk dalam array. Sangat penting untuk melacak disk dengan paritas, kita tidak harus membiarkannya dalam array ketika kembali ke RAID0.
sudo mdadm /dev/md0 -r /dev/sdb
md0 : active raid4 sdd[3] sdc[1]
2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [_UU]
sdb
sepenuhnya dihapus, bisa diambil.
sudo mdadm /dev/md0 -a /dev/sde
md0 : active raid4 sde[4] sdd[3] sdc[1]
2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [_UU]
[==>..................] recovery = 14.8% (156648/1048064) finish=0.2min speed=52216K/sec
Kami telah menambahkan pengganti disk sdb kami. Dan di sini kita mulai: sekarang data sdb sedang dipulihkan menggunakan paritas. Sweeeeet.
md0 : active raid4 sde[4] sdd[3] sdc[1]
2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/3] [UUU]
Selesai Saat ini kami benar-benar aman - semua data dari sdb dipulihkan, dan sekarang kami harus menghapus sdd (ingat, ini memiliki paritas).
sudo mdadm /dev/md0 -f /dev/sdd
md0 : active raid4 sde[4] sdd[3](F) sdc[1]
2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [UU_]
Membuat sdd salah.
sudo mdadm /dev/md0 -r /dev/sdd
md0 : active raid4 sde[4] sdc[1]
2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [UU_]
Dihapus sdd dari array kami. Kami siap menjadi RAID0 lagi.
sudo mdadm /dev/md0 --grow --level=0 --backup-file=backup
md0 : active raid4 sde[4] sdc[1]
2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [UU_]
[=>...................] reshape = 7.0% (73728/1048064) finish=1.5min speed=10532K/sec
Aaaaaaand bang!
md0 : active raid0 sde[4] sdc[1]
2096128 blocks super 1.2 512k chunks
Selesai Mari kita lihat checksum MD5.
sudo md5sum /dev/md0
b422ba644a3c83cdf28adfa94cb658f3 /dev/md0
Ada pertanyaan lagi? Jadi RAID0 bisa memiliki cadangan panas. Ini disebut "pengguna";)