Ada beberapa informasi tersedia tentang perubahan bentuk dalam array RAID tapi saya sedikit gugup dan ingin konfirmasi:
Masalah: Saya memiliki 2 500GB drive sebagai perangkat lunak raid 5 (mdadm). Saya ingin membebaskan salah satu dari dua drive karena RAID-redundansi adalah untuk para pengecut ... Bisakah saya
mdadm --grow --array-size=1
diikuti oleh a
mdadm --grow --raid-disks 1
?
Ini sepertinya terlalu sederhana. Bagaimana saya menentukan drive mana yang dibebaskan? Sebagian alasan untuk manuver ini adalah karena saya tidak memiliki ruang tambahan untuk menjalankan cadangan.
Edit: Seperti ini, ini adalah implementasi RAID5 non-std (lihat komentar oleh Dave M atau gman). Namun, tolong jangan menghukum saya karena kecerobohan. Saya hanya tertarik pada metode paling berisiko melakukan penghapusan drive ini. Anggap saja saya telah mengatasi masalah cadangan tetapi saya tidak akan menggunakannya untuk membangun kembali dari cadangan.
$ sudo mdadm --detail --test /dev/md1
/dev/md1:
Version : 00.90
Creation Time : Sat Sep 1 18:08:21 2007
Raid Level : raid5
Array Size : 488383936 (465.76 GiB 500.11 GB)
Used Dev Size : 488383936 (465.76 GiB 500.11 GB)
Raid Devices : 2
Total Devices : 2
Preferred Minor : 1
Persistence : Superblock is persistent
Update Time : Mon Nov 28 11:32:13 2011
State : clean
Perangkat Aktif: 2
Perangkat yang Bekerja: 2
Perangkat Gagal: 0
Perangkat Cadangan: 0
Layout : left-symmetric
Chunk Size : 64K
UUID : XXX (local to host XXX)
Events : 0.29336
Number Major Minor RaidDevice State
0 8 33 0 active sync /dev/sdc1
1 8 17 1 active sync /dev/sdb1
Jawaban:
Dengan mdadm, 2 drive RAID 5 adalah biner yang identik dengan RAID1, bukan RAID 0, dan tidak ada perangkat ajaib yang tak terlihat. Anda bisa tahu karena arraynya sama ukuran masing-masing dari dua komponen, bukan jumlah mereka:
Anda dapat mengonfirmasi bahwa dengan melakukan:
MD5 adalah sama untuk masing-masing karena drive yang berlebihan. Karena ini sama dengan RAID, setelah menghentikannya kita dapat membuat RAID1 pada perangkat yang sama dan memiliki data yang sama:
Atau lakukan RAID1 hanya dengan satu perangkat, membebaskan yang lain:
Kemudian kosongkan superblok yang dihapus:
Karena ini adalah versi super block mdadm 0.90, setiap drive juga dapat digunakan sendiri. Karena 1.1 dan 1.2 meletakkan data meta di dekat awal pada array, itu tidak akan berfungsi untuk versi tersebut.
sumber
Saya menyadari pertanyaan ini dijawab beberapa tahun yang lalu, tetapi saya baru saja menyelesaikan masalah yang sama, dan saya pikir saya dapat menambahkan beberapa kejelasan untuk kedua pertanyaan dan jawaban Ray M ...
RAID5 dua drive serupa yang menjalankan superblock versi 1.2 adalah, seperti kata Ray M, biner yang identik dengan RAID1. Namun, tidak seperti yang dengan v0.9, array dengan metadata 1.x dapat meninggalkan jarak antara awal perangkat dan awal data array. Jadi, untuk memverifikasi kesetaraan kedua perangkat, pertama-tama tentukan data-offset masing-masing komponen:
Anda akan melihat garis seperti ini untuk setiap perangkat (secara default sama untuk keduanya):
Di sinilah data perangkat dimulai. Mulai di sini, salin beberapa data:
Jumlah md5 harus sama:
Karena drive sebenarnya merupakan cermin dari satu sama lain, Anda dapat gagal dan menghapus satu drive, sehingga array menurun:
Atau mulai baru dengan RAID1 disk tunggal:
Perhatikan bahwa meskipun kesetaraan biner RAID5 dua disk dengan RAID1, Anda tidak bisa hanya:
dengan RAID5 dua drive.
sumber