Kecilkan RAID dengan menghapus disk?

14

Saya memiliki NAS Synology dengan 12 bay. Awalnya, kami memutuskan untuk mengalokasikan semua 12 disk untuk volume RAID-6 tunggal, tetapi sekarang kami ingin mengecilkan volume menggunakan hanya 10 disk dan menetapkan dua HDD sebagai suku cadang.

The Volume Manager Wisaya dapat dengan mudah memperluas volume dengan menambahkan hard disk, tapi saya tidak menemukan cara untuk mengecilkan volume dengan menghapus hard disk . Bagaimana saya bisa melakukan itu tanpa harus menginisialisasi ulang seluruh sistem?

Pierre Arnaud
sumber
Apa tujuannya di sini? Saat ini dua disk digunakan sebagai paritas, dan array dapat mentolerir dua kegagalan. Jika Anda ingin dua suku cadang, Anda bisa membiarkannya di dekatnya dan memiliki toleransi yang sama, tetapi dengan lebih banyak ruang disk.
Paul
Tentu, tetapi saya harus pergi ke kantor, mengeluarkan disk dan memasukkan disk pengganti. Memiliki cadangan memungkinkan untuk melakukan ini dari jarak jauh.
Pierre Arnaud
Apakah Synology Anda memiliki MDADM bawaan jika Anda ssh melakukannya?
Paul
Ya, saya memiliki akses ke alat mdadm.
Pierre Arnaud

Jawaban:

19

Untuk ini saya akan menganggap ada 12 disk dalam array, dan masing-masing berukuran 1TB.

Itu berarti ada 10TB penyimpanan. Ini misalnya, asalkan Anda tidak menggunakan lebih dari 6 disk (6TB) senilai penyimpanan, maka ukurannya pun tidak masalah.

Penafian Oblig: Tidak satu pun dari ini dapat didukung oleh Synology, jadi saya akan memeriksa dengan mereka jika pendekatan ini dapat menyebabkan masalah, membuat cadangan sebelumnya, dan mematikan layanan synology sebelumnya. Synology menggunakan array raid standar md sejauh yang saya tahu, dan mereka dapat diakses jika disk dipindahkan ke server standar yang mendukung md - jadi seharusnya tidak ada masalah.

Gambaran

Urutannya seperti ini:

  1. Kurangi ukuran sistem file
  2. Kurangi ukuran volume logis
  3. Kurangi ukuran array
  4. Ubah ukuran sistem file kembali
  5. Ubah disk cadangan menjadi suku cadang panas

Berkas sistem

Temukan partisi utama, gunakan df -h, seharusnya terlihat seperti:

Filesystem                Size      Used Available Use% Mounted on
/dev/vg1/volume_1         10T       5T   5T         50% /volume1

Gunakan perintah ini untuk mengubah ukuran ke maksimum yang dibutuhkan dan tidak lebih:

umount /dev/vg1/volume_1
resize2fs -M /dev/vg1/volume_1

Sekarang periksa:

mount /dev/vg1/volume_1 /volume1
df -h

Filesystem                Size      Used Available Use% Mounted on
/dev/vg1/volume_1         5T       5T    0T        100% /volume1

Volume

Untuk mengurangi ukuran volume, gunakan lvreduce (buat sedikit lebih besar untuk jaga-jaga):

umount /dev/vg1/volume_1
lvreduce -L 5.2T /dev/vg1/volume_1

Sekarang setelah volume logis telah dikurangi, gunakan pvresize untuk mengurangi ukuran volume fisik:

pvresize --setphysicalvolumesize 5.3T /dev/md0

Jika pengubahan ukuran gagal, lihat pertanyaan lain ini untuk memindahkan bagian data yang dialokasikan di akhir volume fisik ke awal.

Sekarang kita memiliki volume 5.3T pada array 10T, sehingga kita dapat dengan aman mengurangi ukuran array sebesar 2T.

Himpunan

Cari tahu perangkat md:

 pvdisplay -C
 PV         VG      Fmt  Attr PSize   PFree
 /dev/md0   vg1     lvm2 a--  5.3t    0.1t

Langkah pertama adalah memberi tahu mdadm untuk mengurangi ukuran array (dengan tumbuh):

mdadm --grow -n10 /dev/md0
mdadm: this change will reduce the size of the array.
       use --grow --array-size first to truncate array.
       e.g. mdadm --grow /dev/md0 --array-size 9683819520

Ini mengatakan bahwa untuk menyesuaikan array saat ini ke 10 disk, kita perlu mengurangi ukuran array.

 mdadm --grow /dev/md0 --array-size 9683819520

Sekarang lebih kecil, kita dapat mengurangi jumlah disk:

 mdadm --grow -n10 /dev/md0 --backup-file /root/mdadm.md0.backup

Ini akan memakan waktu yang lama, dan dapat dipantau di sini:

 cat /proc/mdstat

Personalities : [raid6] [raid5] [raid4]
md4 : active raid6 sda4[0] sdb4[1] sdc4[2] sdd4[3] sde4[4] sdf4[5] sdg4[6] sdh4[7] sdi4[1] sdj4[1] 
      [>....................]  reshape =  1.8% (9186496/484190976)
                              finish=821.3min speed=9638K/sec [UUUUUUUUUU__]

Tapi kita tidak perlu menunggu.

Ubah ukuran PV, LV, dan sistem file ke maksimum:

pvresize /dev/md0
lvextend -l 100%FREE /dev/vg1/volume_1
e2fsck -f /dev/vg1/volume_1
resize2fs /dev/vg1/volume_1

Tetapkan disk cadangan sebagai suku cadang

Tidak ada yang bisa dilakukan di sini, setiap disk cadangan dalam sebuah array secara otomatis dihemat. Setelah pembentukan kembali Anda selesai, periksa status:

cat /proc/mdstat

Personalities : [raid6] [raid5] [raid4]
md4 : active raid6 sda4[0] sdb4[1] sdc4[2] sdd4[3] sde4[4] sdf4[5] sdg4[6] sdh4[7] sdi4[S] sdj4[S] 
Paul
sumber
Terima kasih banyak untuk petunjuk terperinci ini. Pertama-tama saya akan menunggu array RAID saya untuk menyelesaikan pembangunan kembali setelah mengganti HDD (total kapasitas: 17,86 TB, butuh beberapa waktu).
Pierre Arnaud
Lihat juga lembar contekan mdadm ( ducea.com/2009/03/08/mdadm-cheat-sheet ).
Pierre Arnaud
@Paul - superuser.com/questions/1274328/... tandai komentar ini untuk dihapus setelah Anda menentukan apakah Anda dapat membantu pengguna
Ramhound
Waspadalah! Saya pikir jawaban ini dapat menyebabkan hilangnya data, seperti: tidak ada pemeriksaan bahwa lvm lv memang pada awal pv! (yang tidak dijamin dengan lvm). Lihat unix.stackexchange.com/questions/67702/... (dan unix.stackexchange.com/questions/67702/... terjadi error) cara untuk memastikan akhir PV adalah bebas untuk menyusut.
Ekleog
@Ekleog Terima kasih, komentar ini akan lebih baik ditempatkan sebagai bagian dari jawaban jika ada yang terlewatkan
Paul