mdadm
tampaknya tidak mendukung pertumbuhan array dari level 1 ke level 10.
Saya memiliki dua disk di RAID 1. Saya ingin menambahkan dua disk baru dan mengubah array menjadi array disk 10 RAID.
Strategi saya saat ini:
- Buat cadangan yang bagus.
- Buat 4 disk RAID 10 disk terdegradasi dengan dua disk yang hilang.
rsync
the RAID 1 array with the RAID 10 array.
satu disk dari array RAID 1.fail
and remove- Tambahkan disk yang tersedia ke array RAID 10 dan tunggu hingga sinkronisasi selesai.
- Hancurkan array RAID 1 dan tambahkan disk terakhir ke array RAID 10.
Masalahnya adalah kurangnya redundansi pada langkah 5.
Apakah ada cara yang lebih baik?
linux
software-raid
mdadm
Hans Malherbe
sumber
sumber
Jawaban:
Dengan linux softraid Anda dapat membuat array RAID 10 hanya dengan dua disk.
Nama perangkat yang digunakan di bawah:
md0
adalah array tipe / level RAID1 yang lama.md1
adalah array baru tipe / level RAID10.sda1
dansdb2
yang baru , partisi kosong (tanpa data).sda2
dansdc1
merupakan partisi lama (dengan data penting).Ganti nama agar sesuai dengan kasus penggunaan Anda. Gunakan misalnya
lsblk
untuk melihat tata letak Anda saat ini.0) Cadangan, Cadangan, Cadangan, Cadangan oh, dan CADANGAN
1) Buat array baru (4 perangkat: 2 ada, 2 hilang):
Perhatikan bahwa dalam contoh ini tata letak
sda1
memiliki rekanan yang hilang dansdb2
memiliki rekanan lain yang hilang. Data Anda pada saatmd1
ini tidak aman (efektifnya RAID0 sampai Anda menambahkan anggota yang hilang).Untuk melihat tata letak dan detail lain dari penggunaan array yang dibuat:
Catatan! Anda harus menyimpan tata letak array:
2) Format dan mount. The
/dev/md1
harus segera digunakan, tapi perlu diformat dan kemudian dipasang.3) Salin file. Gunakan misalnya rsync untuk menyalin data dari RAID 1 lama ke RAID 10. yang baru (ini hanya sebuah contoh perintah, bacalah halaman manual untuk rsync)
4) Gagal bagian pertama RAID1 lama (md0), dan tambahkan ke RAID10 baru (md1)
Catatan! Ini akan menghapus data dari
sda2
. Themd0
masih harus dapat digunakan tetapi hanya jika anggota raid lain adalah sepenuhnya operasional.Perhatikan juga bahwa ini akan memulai proses sinkronisasi / pemulihan
md1
. Untuk memeriksa status, gunakan salah satu dari perintah di bawah ini:Tunggu sampai pemulihan selesai.
5) Instal GRUB pada Array baru (Anggap Anda booting darinya). Beberapa CD cadangan / boot Linux berfungsi paling baik.
6) Boot pada array baru. JIKA BEKERJA DENGAN BENAR Hancurkan array lama dan tambahkan disk yang tersisa ke array baru.
TITIK TANPA PENGEMBALIAN
Pada titik ini Anda akan memusnahkan data pada anggota terakhir dari array md0 lama. Pastikan benar semuanya bekerja.
Dan lagi - tunggu sampai pemulihan aktif
md1
.7) Perbarui konfigurasi mdadm
Ingatlah untuk memperbarui
/etc/mdadm/mdadm.conf
(menghapus md0).Dan simpan config ke initramfs (tersedia setelah reboot)
sumber
Ikuti prosedur yang sama dengan Mark Turner tetapi ketika Anda membuat array serangan, sebutkan 2 disk yang hilang
Dan kemudian lanjutkan dengan langkah-langkah lain.
Singkatnya, buat RAID10 dengan total 4 disk (dari yang 2 hilang), sinkronisasi ulang, tambahkan dua disk lain setelah itu.
sumber
Baru saja selesai beralih dari LVM pada dua disk 2TB mdadm RAID 1 ke LVM pada empat disk RAID 10 (dua asli + dua disk baru).
Seperti @aditsu mencatat urutan drive penting ketika membuat array.
Kode di atas memberikan array yang dapat digunakan dengan dua disk yang hilang (tambahkan nomor partisi jika Anda tidak menggunakan seluruh disk). Segera setelah disk ketiga ditambahkan, disk akan mulai disinkronkan. Saya menambahkan disk keempat sebelum sinkronisasi selesai ketiga. Itu ditampilkan sebagai cadangan sampai disk ketiga selesai kemudian mulai disinkronkan.
Langkah-langkah untuk situasi saya:
Buat cadangan yang bagus.
Buat array RAID 10 disk 4 yang terdegradasi dengan dua disk yang hilang (kami akan memanggil disk yang hilang # 2 dan 4).
Katakan pada istri untuk tidak mengubah / menambahkan file yang dia pedulikan
Gagal dan hapus satu disk dari array RAID 1 (disk 4).
Pindahkan ekstensi fisik dari array RAID 1 ke array RAID 10 meninggalkan disk 2 kosong.
Bunuh array RAID 1 yang aktif, tambahkan disk yang sekarang kosong (disk 2) ke array RAID 10, dan tunggu sampai sinkronisasi selesai.
Tambahkan disk pertama yang dihapus dari RAID 1 (disk 4) ke array RAID 10.
Beri istri maju.
Pada langkah 7 saya pikir drive 1, 2, OR 4 dapat gagal (selama sinkronisasi disk 4) tanpa mematikan array. Jika drive 3 gagal, data pada array bersulang.
sumber
Saya telah memindahkan raid1 saya ke raid10 sekarang dan sementara halaman ini membantu saya tetapi ada beberapa hal yang hilang dalam jawaban di atas. Terutama tujuan saya adalah untuk menjaga waktu kelahiran ext4.
pengaturannya adalah:
seperti orang lain katakan sebelumnya: langkah nol harus menjadi cadangan dan selalu bisa terjadi kesalahan dalam proses yang menghasilkan dataloss ekstrim
CADANGAN
pengaturan serangan baru
buat razia baru
(Saya menemukan bahwa tata letak itu penting .. ke-2 dan ke-4 tampaknya merupakan duplikat dalam serangan 'dekat' default)
migrasi
sekarang mendapatkan data lebih dari ... saya pertama kali mencoba menggunakan rsync yang berhasil tetapi gagal untuk menjaga waktu lahir ... gunakan dd untuk mengkloning dari serangan lama ke yang baru
TUNGGU ITU
Anda dapat memeriksa dengan mengirim USR1 ke proses itu
memperbaiki raid
gparted adalah alat yang hebat: Anda menyuruhnya untuk memeriksa & memperbaiki partisi dan mengubah ukurannya ke ukuran penuh dari disk itu hanya dengan beberapa mouseclicks;)
atur uuid baru ke partisi itu dan perbarui fstab Anda dengannya (ubah uuid)
simpan seranganmu di conf
dan hapus yang lama
menghancurkan yang lama
gagal yang pertama dan tambahkan ke serangan baru
kemudian buat gpt di perangkat itu dan atur partisi kosong baru
TUNGGU ITU
Anda dapat memeriksa
hentikan yang kedua
lalu buat gpt di perangkat terakhir itu dan atur lagi partisi kosong
TUNGGU ITU lagi
sumber
Saya melakukannya dengan LVM. Konfigurasi awal: - sda2, sdb2 - dan dibuat raid1 md1 di atas. sda1 dan sdb1 digunakan untuk raid1 kedua untuk / partisi boot. - md1 adalah pv dalam ruang grup volume, dengan beberapa lvm ada di dalamnya.
Saya telah menambahkan disk sdc dan sdd dan membuat partisi di sana seperti pada sda / sdb.
Begitu:
membuat md10 sebagai:
mdadm --create / dev / md10 --level raid10 --raid-devices = 4 / dev / sdc2 hilang / dev / sdd2
memperpanjang vg di atasnya:
pvcreate / dev / md10 vgextend space / dev / md10
memindahkan volume dari md1 ke md10:
pvmove -v / dev / md1 / dev / md10
(tunggu sampai selesai) 4. kurangi grup volume:
hentikan array md1:
mdadm -S / dev / md1
tambahkan disk dari md1 lama ke md10:
mdadm -a / dev / md10 / dev / sda2 / dev / sdb2
perbarui konfigurasi di /etc/mdadm/mdadm.conf:
mdadm -E --scan >> / dev / mdadm / mdadm.conf
(dan hapus md1 tua di sana)
Semuanya dilakukan pada sistem live, dengan volume aktif yang digunakan untuk kvm;)
sumber