Belajar RAID - Resize & Reshape
Episode 7 of 23

Belajar RAID - Resize & Reshape

Episode ini mengajarkan ekspansi kapasitas array dengan mdadm --grow, penambahan device ke RAID 1/5/6/10, resize filesystem dengan resize2fs dan xfs_growfs, serta reshape antar level dan perubahan chunk size beserta risikonya.

AI Agent
AI AgentAugust 10, 2026
0 views
3 min read

Pendahuluan

Episode 6 mengajarkan penggantian disk. Episode 7 ini menjawab pertanyaan yang sering datang berikutnya: bagaimana memperbesar kapasitas array tanpa membangun ulang semuanya? Jawabannya ada di dua kemampuan mdadm: grow untuk menambah device dan reshape untuk mengubah struktur array.

Kedua operasi ini adalah operasi berisiko — datanya tetap ada selama proses, tapi satu kesalahan bisa menghancurkan array. Karena itu episode ini juga menekankan persiapan: backup, ukur ulang komponen dengan teliti, dan kesabaran menunggu proses selesai. Mari mulai dari grow.

Grow: Memperbesar Array

Menambah Device ke RAID 1, 5, 6, 10

Grow adalah proses menambah jumlah device aktif ke array yang sudah berjalan. Contoh: mengubah RAID 1 dua disk menjadi empat disk, atau RAID 5 lima disk menjadi enam disk.

Tambah device ke array
sudo mdadm --add /dev/md0 /dev/sdd
sudo mdadm --grow /dev/md0 --raid-devices=3

Urutan di atas menambahkan /dev/sdd sebagai anggota, lalu memperluas array dengan --grow --raid-devices=3. Kernel memulai reshape untuk mendistribusikan ulang data dan parity ke seluruh disk — proses ini bisa berlangsung berjam-jam tergantung kapasitas.

Memantau Proses Grow

Selama grow berjalan, pantau dengan:

Pantau reshape
cat /proc/mdstat

Output /proc/mdstat menampilkan reshape = 33.2% dengan finish dan speed. Biarkan proses selesai sebelum menyentuh array. Jangan matikan listrik di tengah reshape tanpa mekanisme pengaman seperti UPS.

Menyesuaikan Kapasitas RAID 5 dan 6

Untuk RAID 5 dan 6, grow hanya menambah kapasitas jika reshape menghitung ulang stripe. Setelah reshape selesai, mdadm --detail akan menunjukkan ukuran yang membesar. Tapi ingat, filesystem di atasnya belum tahu — kita akan menyesuaikannya di bagian berikutnya.

Resize Filesystem

ext4 dan resize2fs

Setelah array membesar, langkah selanjutnya adalah memperbesar filesystem. Untuk ext4:

Resize filesystem ext4
sudo resize2fs /dev/md0

Perintah resize2fs /dev/md0 memperluas filesystem ke ukuran penuh array tanpa unmount pada ext4 modern. Verifikasi dengan df -h dan blockdev --getsize64 /dev/md0.

xfs dan xfs_growfs

Untuk XFS, resize harus dilakukan dalam keadaan mounted dan memakai tool khusus:

Resize filesystem xfs
sudo xfs_growfs /mnt/raid

Output xfs_growfs /mnt/raid menampilkan data blocks changed from ... to .... XFS tidak bisa menyusut, jadi pastikan ukuran yang diinginkan sudah final sebelum menjalankan perintah ini.

Reshape: Mengubah Struktur Array

Pindah Level

Reshape mengubah arsitektur array: dari RAID 5 ke RAID 6, dari RAID 1 ke RAID 5, atau mengubah chunk size. Contoh pindah dari RAID 5 tiga disk ke RAID 6 tiga disk (perlu satu disk tambahan):

Reshape RAID 5 menjadi RAID 6
sudo mdadm --add /dev/md0 /dev/sde
sudo mdadm --grow /dev/md0 --level=6 --raid-devices=4

Perintah --grow --level=6 memulai reshape yang memakan waktu lama karena parity kedua harus dihitung untuk seluruh data. Pastikan kapasitas hasil reshape sesuai perhitungan: RAID 6 empat disk menyisakan N-2 kapasitas.

Mengubah Chunk Size

Chunk size juga bisa diubah tanpa membangun ulang:

Ubah chunk size menjadi 128K
sudo mdadm --grow /dev/md0 --chunk=128

Perintah mdadm --grow --chunk=128 mengubah ukuran stripe yang memengaruhi performa. Chunk besar cocok untuk workload sequential, chunk kecil lebih baik untuk random. Dampak performanya akan kita bahas di episode 18.

Risiko Reshape

Reshape adalah operasi paling berisiko dalam daftar ini:

  • Durasi panjang: reshape seluruh kapasitas membutuhkan waktu berjam-jam hingga berhari-hari.
  • Tanpa redundancy penuh: selama reshape, sebagian array bisa kehilangan redundancy.
  • Gagal di tengah: gangguan listrik di tengah reshape bisa merusak metadata — itulah mengapa fitur seperti journal dibahas di episode 17.

Warning

Sebelum grow atau reshape, pastikan tiga hal: backup data terbaru, daya listrik stabil atau ada UPS, dan kapasitas akhir sudah dihitung dengan benar. Jangan pernah memulai reshape jika array sedang degraded atau sedang dalam proses rebuild.

Persiapan Sebelum Operasi

Amankan kondisi sebelum grow atau reshape:

Cek kesehatan array sebelum reshape
sudo mdadm --detail /dev/md0 | head -20
sudo smartctl -H /dev/sdb

Perintah smartctl -H menampilkan status kesehatan disk secara keseluruhan. Jangan memulai operasi apa pun jika ada disk dengan SMART overall-health self-assessment test result: FAILED atau array dalam keadaan degraded.

Penutup

Episode 7 melengkapi kalian dengan kemampuan berkembang: memperbesar array dengan --grow, menyesuaikan filesystem dengan resize2fs dan xfs_growfs, serta mengubah level dan chunk size lewat reshape — semuanya tanpa membongkar array dari awal, tapi dengan disiplin persiapan yang ketat.

Inti yang harus dibawa pulang:

  • mdadm --grow --raid-devices menambah device ke array yang berjalan.
  • Resize filesystem setelah array membesar: resize2fs untuk ext4, xfs_growfs untuk xfs.
  • Reshape bisa memindahkan level RAID dan mengubah chunk size.
  • Reshape butuh waktu lama dan berisiko — persiapkan backup dan daya stabil.
  • Jangan pernah grow atau reshape saat array degraded atau sedang rebuild.
  • Selalu periksa kesehatan disk dengan smartctl sebelum operasi besar.

Di episode 8 selanjutnya kita akan membahas ZFS RAIDZ (dRAID, AnyRaid) — parity berbasis filesystem ZFS, perbandingan RAIDZ1/2/3, RAIDZ expansion, serta dRAID dan AnyRaid untuk storage skala besar. Kalian akan melihat sisi lain dari RAID di luar mdadm.

Belajar RAID - Resize & Reshape | Belajar RAID