Saya memiliki satu disk yang ingin saya buat mirrornya; sebut saja disk ini sda
. Saya baru saja membeli disk berukuran identik lainnya, yang dapat kita sebut sdb
. sda
dan sdb
memiliki satu partisi yang dipanggil sda1
dan sdb1
masing - masing.
Saat membuat serangan, saya tidak ingin menghapus sda
pembersihan saya dan mulai lagi, saya hanya ingin mulai mirroring dengan sdb
. Cara berpikir saya adalah:
mdadm --create --verbose /dev/md0 --level=mirror --raid-devices=1 /dev/sda1
... untuk membuat array tanpa sdb
disk, kemudian jalankan sesuatu seperti (Saya sedang memikirkan perintah berikut dengan keras, karena saya tidak yakin bagaimana mencapai langkah ini)
mdadm /dev/md0 --add /dev/sdb1
Catatan sdb1
diasumsikan diformat mirip dengansda1
Apakah ini mungkin?
--add
, dan Anda harus berhati-hati, tetapi tidak terlalu rumit. Lihat Bagaimana cara mengatur mirroring disk di Ubuntu? (Saya tidak bisa mengajukan pertanyaan itu sebagai duplikat karena aturan baru.)Jawaban:
Jawaban sederhana untuk pertanyaan dalam judul adalah "Ya". Tetapi apa yang benar-benar ingin Anda lakukan adalah langkah selanjutnya, yaitu membuat data yang ada dicerminkan.
Dimungkinkan untuk mengonversi disk yang ada, tetapi berisiko, seperti disebutkan, karena lokasi metadata. Jauh lebih baik untuk membuat cermin kosong (rusak) dengan disk baru dan menyalin data yang ada ke dalamnya. Kemudian, jika tidak berhasil, Anda cukup boot kembali ke sumber asli yang tidak dicerminkan.
Pertama, inisialisasi
/dev/sdb1
sebagai yang baru/dev/md0
dengan drive yang hilang dan inisialisasi sistem file (saya anggap ext3, tetapi pilihan ada di tangan Anda)Sekarang,
/dev/sda1
kemungkinan besar sistem file root Anda (/
) jadi untuk keselamatan Anda harus melakukan langkah selanjutnya dari live CD, disk penyelamatan atau sistem bootable lainnya yang dapat mengakses keduanya/dev/sda1
dan/dev/md0
meskipun saya telah berhasil melakukan ini dengan beralih ke mode pengguna tunggal.Salin seluruh konten sistem file
/dev/sda1
ke/dev/md0
. Sebagai contoh:Edit
/etc/fstab
atau pastikan bahwa pada boot berikutnya,/dev/md0
sudah terpasang bukan/dev/sda1
. Sistem Anda mungkin diatur untuk boot dari/dev/sda1
dan parameter boot mungkin menentukan ini sebagai perangkat root, jadi ketika me-reboot Anda harus secara manual mengubah ini sehingga root adalah/dev/md0
(dengan asumsi/dev/sda1
root). Setelah reboot, periksa bahwa/dev/md0
sekarang sudah terpasang (df
) dan itu sedang berjalan sebagai cermin terdegradasi (cat /proc/mdstat
). Tambahkan/dev/sda1
ke array:Karena pembangunan kembali akan menimpa
/dev/sda1
, versi metadata yang Anda gunakan tidak relevan. Seperti biasa ketika membuat perubahan besar, buat cadangan penuh (jika mungkin) atau setidaknya pastikan bahwa apa pun yang tidak dapat dibuat kembali aman.Anda perlu membuat ulang konfigurasi boot untuk digunakan
/dev/md0
sebagai root (jika/dev/sda1
sudah root) dan mungkin perlu dibuat ulangmdadm.conf
untuk memastikan/dev/md0
selalu dimulai.sumber
cp
untuk menyalin sistem file, Anda akan kehilangan beberapa hal seperti tautan keras, atribut tambahan ... Gunakantar
ataursync
dengan opsi yang tepat. Saat mem-boot Live CD, berhati-hatilah karena pemetaan pengguna-uid berbeda (lihat opsi --numeric-pemilik tar / rsync). Lihat juga clone2fs untuk kloning sistem file extx.cp
menangani link pelestarian (-d), mode, kepemilikan, dan cap waktu (-p), melakukannya secara rekursif (-R) dan tetap menggunakan satu sistem file (-x), tapi saya pikir Anda mungkin benar tentang tautan keras dan diperluas atribut.rsync -aH --delete /mnt/olddisk/ /mnt/newarray/
adalah pilihan yang bagus. Tambahkan-vih --progress
jika Anda ingin benar-benar melihat apa yang dilakukannya.Tentu, Anda dapat membuatnya dengan menetapkan bahwa disk kedua saat ini
missing
:sumber
Kamu bisa melakukannya. Anda perlu sedikit berhati-hati, tetapi ini tidak berbahaya ¹ jika Anda sangat berhati-hati untuk tidak salah ketik dan tidak meninggalkan gotcha dalam pengaturan.
Saya sangat merekomendasikan untuk tidak melakukan manipulasi pada sistem live. Mungkin saja dalam beberapa kasus tetapi membutuhkan perawatan ekstra. Boot dari liveCD / liveUSB seperti Parted atau SystemRescueCD .
Pertama, Anda perlu mengecilkan volume sedikit, untuk memberikan ruang bagi metadata mdraid (superblok). Ada beberapa format metadata , Anda harus menggunakan salah satu yang menempatkan metadata di akhir disk. (Dalam beberapa pengaturan, Anda mungkin memiliki cukup ruang untuk meletakkan superblok di awal, tapi itu lebih rumit dan rawan risiko jadi saya membahasnya.)
Anda harus memastikan bahwa 128kB terakhir dari perangkat blok tidak digunakan, untuk memberikan ruang bagi superblock. Jadi, Anda harus menyusutkan sistem file
/dev/sda1
. Jika ini adalah filesystem ext2 / ext3 / ext4, dapatkan ukuran filesystem saat initune2fs /dev/sda1
, kemudian jalankan diresize2fs /dev/sda1 NNN
mana NNN adalah ukuran minus 128kB. Anda dapat melakukan ini dengan Berpisah sebagai gantinya. Jika Anda perlu mengecilkan sistem file extN, Anda harus melepasnya terlebih dahulu; sistem file btrfs dapat menyusut langsung.Setelah Anda memastikan bahwa 128kB terakhir dari perangkat blok gratis, panggil
mdadm --create
untuk membuat volume RAID-1. Ini tidak menyentuh bagian volume apa pun selain dari superblok. Awalnya, volume akan memiliki komponen tunggal: semua yang lain ditetapkan sebagai gagal. Anda harus lulus--level=1
(atau setara-n 1
) (pendekatan ini hanya berfungsi untuk RAID-1) dan--metadata=0.9
atau--metadata=1.0
(format superblok default 1.2 menempatkan superblock dekat bagian awal perangkat, yang dapat menimpa data). Argumen untuk--raid-devices
(-n
) adalah jumlah komponen (termasuk yang hilang) dalam volume RAID.Anda sekarang dapat mengaktifkan array dan menambahkan komponen lain.
Catatan tentang bootloader: Grub2 memahami Linux RAID-1 dan dapat mem-boot darinya. Bootloader seperti Grub1 yang tidak mengerti RAID membaca secara transparan dari volume mirror, tetapi sistem Anda tidak akan boot jika drive bootloader gagal dibaca. Jika volume RAID ada di partisi, pastikan untuk menginstal sektor boot Grub di kedua drive.
¹ Pastikan memiliki cadangan. “Tidak berbahaya” berarti “Anda mungkin tidak akan membutuhkannya”, bukan “mempertaruhkan data Anda”.
Mem-posting ulang dan sedikit diadaptasi dari Cara mengatur mirroring disk (RAID-1)
sumber