Penyiapan: dua drive fisik RAID 1 (mirror) akan diganti dengan dua drive yang lebih luas, kami akan melakukan penggantian "panas" langsung dari sistem operasi yang berjalan, tanpa perlu boot dari media boot eksternal. Panduan ini telah diuji pada distribusi Debian 6, 7, 8 baik 32 maupun 64 bit.
Kami berasumsi bahwa kedua drive dipartisi dengan partisi root dan swap dan kedua partisi ini membangun dua perangkat raid md0 dan md1:
- Partisi sda1 dan sdb1 yang membentuk volume md0 (root)
- Partisi sda2 dan sdb2 yang membentuk volume md1 (swap)
Pertama, lakukan backup semua data Anda, meskipun panduan telah diuji beberapa kali, nasib buruk masih ada ... Kami menyediakan (menurut saya, solusi terbaik) untuk penggantian, kami putuskan salah satu dari dua yang lama drive dengan mesin mati, lalu sambungkan satu drive sementara baru, lalu sinkronkan ulang, jadi kami akan tetap memiliki fungsi RAID dan satu drive (dengan RAID dalam mode terdegradasi) dan Anda masih dapat membuat ulang RAID yang berfungsi jika ada yang tidak berfungsi. Untuk melakukan ini cukup ketik perintah ini setelah mengganti drive penuh dengan yang kosong:
sfdisk -d /dev/hd source | sfdisk —force /dev/hd empty
mdadm —zero-superblock /dev/hd empty
mdadm —add /dev/md(raid) /dev/hd(empty)
Ulangi dua baris terakhir untuk setiap RAID/partisi pada sistem
(misalnya:
mdadm -add /dev/md0 /dev/sdb1
lalu
mdadm -add /dev/md1 /dev/sdb2
dll..
Dengan cara ini, kami memaksa tabel partisi dari drive sumber ke target kosong, lalu menambahkannya ke RAID.
Tentunya Anda harus menunggu hingga proses rekonstruksi selesai, yang dipantau oleh:
watch cat / pro / mdstat
(Dan tentu saja CTRL + C untuk keluar dari proses)
Matikan mesin pada saat ini, kami menambahkan dua disk baru, yang masing-masing menjadi sdc dan sdd, kemudian mulai server dan jalankan perintah:
fdisk -l
Hasilnya akan terlihat seperti ini:
Disk /dev/sda: ……MB , ………….Bytes
… heads, …sectors/track , ….. cylinders
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk: identifier : ………..
Device boot Start End Blocks Id System
/dev/sda2 970 1044 602437+ fd Linux raid autodetect
/dev/sda2 1 969 7783461 fd Linux raid autodetect
…...
/dev/sdb1 * 1 969 7783461 fd Linux raid autodetect
/dev/sdb2 970 1044 602437+ fd Linux raid autodetect
…...
Disk /dev/sdc: …Mb, …….Bytes
…...
Disk /dev/sdd: …Mb, …….Bytes
…...
Disk /dev/md0: …Mb, …….Bytes
…...
Disk /dev/md1: …Mb, …….Bytes
Sekarang, ketik:
fdisk /dev/sdc
kita membuat partisi baru dengan n perintah,
kami memilih p partisi utama,
kami memilih nomor partisi (1 ,2,3, dll ...),
kami memilih silinder awal (1 ),
kita pilih ukuran partisi primer dengan mengetikkan + simbol diikuti dengan ukuran dalam GB dan GB dari huruf (misalnya:+480GB )
kita membuatnya dapat di-boot dengan perintah a , memilih jumlah partisi yang sama.
kita ubah ID partisi di "fd " (Linux Raid Autodetect) dengan t , dan menulis sebagai kode Hex, cukup "fd "
Kemudian kita ulangi SEMUA perintah untuk partisi kedua (partisi tersebut akan menjadi swap).
Kami akan menyimpan perubahan dengan w.
Jelas, perhatikan ukuran partisi. Solusi terbaik adalah mengurangi ukuran swap saat ini dari total ruang kosong untuk membuat partisi yang berfungsi dengan ruang seluas mungkin.
Sekarang kita akan melakukan operasi yang sama persis pada drive SDD, pastikan untuk membuat partisi yang sama dengan ukuran yang sama seperti yang kita gunakan sebelumnya.
Pada titik ini kami melakukan pertukaran antara drive pertama "penuh" dan drive baru pertama, menambahkan yang terakhir sebagai cadangan ke RAID:
mdadm -add /dev/md0 /dev/sdc1
Kemudian kita harus memverifikasi situasi raid disk, seharusnya seperti ini:
md0: active raid 1 sdc1[S] sda1[2] sdb1[3]
………blocks super 1.2 [2/2] [UU]
Kemudian kami memasukkan drive asli:
mdadm -f /dev/md0 /dev/sda1
dan hapus dari RAID:
mdadm -r /dev/md0 /dev/sda1
Sekarang kami memverifikasi bahwa rekonstruksi dimulai secara otomatis dan menunggu hingga selesai dengan memantau lagi dengan:
watch cat /proc/mdstat
(Dan tentu saja CTRL + C untuk keluar dari proses)
Pada akhirnya kita menginstal bootloader (grub) pada drive baru (/ dev / sdc):
grub-install /dev/sdc
Proses yang sama hanya perlu diulang untuk setiap partisi sistem:
mdadm -add /dev/md0 /dev/sdd1
mdadm -f /dev/md0 /dev/sdb1
mdadm -r /dev/md0 /dev/sdb1
Dan kita tunggu lagi sampai rekonstruksi selesai:
watch cat /proc/mdstat
(Dan tentu saja CTRL + C untuk keluar dari proses)
Selanjutnya, lakukan prosedur yang sama untuk partisi swap pertama dari dua drive baru:
mdadm -add /dev/md1 /dev/sdc2
mdadm -f /dev/md0 /dev/sda2
mdadm -r /dev/md0 /dev/sda2
Tunggu lagi hingga rekonstruksi selesai:
watch cat /proc/mdstat
(Dan tentu saja CTRL + C untuk keluar dari proses)
Dan perjalanan terakhir:
mdadm -add /dev/md1 /dev/sdd2
mdadm -f /dev/md0 /dev/sdb2
mdadm -r /dev/md0 /dev/sdb2
Tunggu lagi hingga rekonstruksi selesai:
watch cat /proc/mdstat
(Dan tentu saja CTRL + C untuk keluar dari proses)
Pada titik ini instal ulang bootloader pada kedua drive:
grub-install /dev/sdc
grub-install /dev/sdd
Pada titik ini kita menemukan diri kita dengan drive lama dikeluarkan dari RAID, dan drive baru dipasang dan operasional. Tetapi dengan ruang yang dapat digunakan di bawah maksimum yang diizinkan oleh partisi
Kemudian kita lanjutkan dengan pembesaran partisi dan verifikasinya, seperti biasa untuk kedua volume:
mdadm —grow —raid-devices=2 /dev/md0
mdadm -A —scan
mdadm —grow /dev/md0 —size=max
mdadm —examine —scan
e2fsck -f /dev(md0
resize2fs /dev/md0
mdadm —grow —raid-devices=2 /dev/md1
mdadm -A —scan
mdadm —grow /dev/md1 —size=max
mdadm —examine —scan
e2fsck -f /dev/md1
resize2fs /dev/md1
Setelah selesai, matikan PC, putuskan tautan drive lama, dan nyalakan ulang mesin.
Bahkan jika restart berhasil, kami merekonstruksi grub untuk alasan keamanan karena peluncuran drive baru akan mengambil nama yang lama (sda dan sdb):
mv /boot/grub/device.map/boot/grub/device.map.old
grub-mkdevicemap
update-grub2 && grub-install /dev/sda && grub-install /dev/sdb
Jika Anda ingin benar-benar yakin bahwa penyetelan serangan baru berfungsi, matikan mesin, lepaskan salah satu drive baru dan mulai lagi. Itu harus dimulai tanpa masalah. Setelah itu, matikan lagi, sambungkan drive dan mulai. Anda dapat menggunakan perintah ini untuk memeriksa status serangan.
watch cat /proc/mdstat
(Dan tentu saja CTRL + C untuk keluar dari proses)
Kami menyelesaikan pekerjaan, kami merayakan .