📑 Daftar Isi
- 1. Persiapan dan Identifikasi Disk
- 2. Install mdadm
- 3. Bikin Partisi RAID di Masing-Masing Disk
- 4. Membuat RAID Array
- 5. Simpan Konfigurasi Array ke mdadm.conf
- 6. Format Filesystem dan Mount
- 7. Verifikasi Kondisi Array
- 8. Simulasi Disk Failure dan Rebuild
- Troubleshooting Umum
- Pro Tips dan Warning
- FAQ
Cara Setup Software RAID di AlmaLinux Pakai mdadm, Step-by-Step buat Production Server
Skip basa-basi. Kalau sampeyan lagi nyiapin server production baru dan mau disk-nya aman dari hardware failure, software RAID pakai mdadm di AlmaLinux itu pilihan paling umum di lapangan. Gratis, stabil, dan gak perlu beli hardware RAID controller buat kasus mirroring sederhana. Tapi inget satu hal: urutan langkah di bawah wajib diikutin dari awal sampai akhir. Satu aja kelewat, bisa-bisa data sampeyan nangis. Praktekin di server test dulu kalau ragu.
Jadi gini kenapa aku nulis artikel ini. Dua kali dalam setahun terakhir aku nemu client yang pasang server tanpa RAID sama sekali, terus disk-nya mati beberapa bulan setelah go-live. Panik, nelpon, minta recovery. Ya, akhirnya ketolong, tapi jam terbang dan biayanya gak sedikit. Nah, biar sampeyan gak ngalamin itu, artikel ini berisi panduan lengkap setup software RAID di AlmaLinux 8/9 — mulai dari install mdadm, bikin array, sampe simulasi disk mati dan rebuild-nya.
Masalahnya serius, lho. Satu disk mati itu bukan hal mustahil, apalagi buat disk yang udah dipake nonstop 3-5 tahun. Tanpa RAID, satu disk mati artinya server down, website ikut down, orderan berhenti, dan klien mulai ngomel. Dengan RAID 1 atau RAID 5, server tetap jalan walau satu disk gagal, karena data masih bisa dibaca dari disk cadangan. Impact-nya ke production jelas banget: uptime naik, risiko data loss turun drastis, dan kerja NOC di malam hari jadi jauh lebih tenang.
Sebelum lanjut, sampeyan harus paham dulu level RAID yang umum dipake di server Linux biar gak salah pilih. RAID 0 itu striping doang — gak ada redundancy, malah lebih berisiko karena kalau satu disk mati, seluruh data ikut hilang. RAID 1 itu mirroring — data ditulis ke dua disk sekaligus, jadi satu disk mati masih aman. RAID 5 itu striping dengan parity, butuh minimal 3 disk, kapasitasnya lebih efisien tapi rebuild-nya lumayan makan waktu. RAID 6 mirip RAID 5 tapi bisa nahan dua disk mati dalam satu array.
Pola yang sering aku temuin di lapangan: client pilih RAID 1 buat server web atau database yang kritis, dan RAID 5/6 buat storage dengan banyak disk. Artikel ini pakai contoh RAID 1 dengan 2 disk kosong, karena itu kasus paling sering dan paling gampang dipraktekin. Konsepnya identik kok buat level lain, tinggal ganti jumlah disk dan parameter di perintah mdadm. Oke, monggo kita mulai dari langkah persiapan.
Sebelum masuk ke command, bayangin dulu analogi gampangnya. RAID 1 itu kayak bawa payung cadangan — satu payung patah, masih ada yang lain, kepala tetep kering. Array menulis data yang sama ke dua disk, jadi kalau satu mati, data tetap lengkap di disk satunya. Logikanya sederhana, dan di AlmaLinux penerapannya cuma beberapa perintah.
1. Persiapan dan Identifikasi Disk
Langkah pertama yang gak boleh dilewatin: pastikan disk yang mau dipake buat array itu bener-bener kosong dan gak ada data penting. Karena proses pembuatan RAID nanti akan menghapus seluruh isi disk. Cek dulu daftar disk di sistem:
lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINT
Contoh output yang diharapkan pada server dengan dua disk kosong plus disk sistem:
NAME SIZE TYPE FSTYPE MOUNTPOINT
sda 100G disk ext4 /
sdb 40G disk
sdc 40G disk
Di contoh ini, /dev/sdb dan /dev/sdc adalah dua disk kosong yang bakal dijadikan array RAID 1. /dev/sda adalah disk sistem yang menjalankan AlmaLinux — jangan sentuh. Kalau ragu disk yang mana, cek pakai /dev/disk/by-id biar lebih jelas:
ls -l /dev/disk/by-id/ | grep -E "sdb|sdc"
Verifikasi dulu sebelum lanjut. Salah disk artinya data hilang permanen, dan gak ada tombol undo di dunia nyata.
2. Install mdadm
mdadm biasanya udah ada di instalasi default AlmaLinux, tapi pastikan versinya yang terbaru dan aktif:
dnf install -y mdadm
mdadm --version
Contoh output: mdadm – v4.2 – 2021-12-30. Kalau versinya muncul, berarti mdadm siap dipake.
3. Bikin Partisi RAID di Masing-Masing Disk
Kita perlu partisi tipe Linux RAID di tiap disk. Di AlmaLinux 9, partisi GPT dengan label raid adalah cara paling aman dan modern. Jalankan perintah ini di tiap disk, ganti /dev/sdb dengan /dev/sdc untuk disk kedua:
parted /dev/sdb mklabel gpt
parted /dev/sdb mkpart primary 1MiB 100%
parted /dev/sdb set 1 raid on
Lakukan hal yang sama buat /dev/sdc. Setelah selesai, cek hasilnya:
lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINT
Sampeyan harus lihat /dev/sdb1 dan /dev/sdc1 dengan tipe part. Kalau dua-duanya udah ada, lanjut ke pembuatan array.
4. Membuat RAID Array
Ini langkah inti. Perintah di bawah membuat array RAID 1 dari dua partisi tadi:
mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1
mdadm bakal nanya konfirmasi, Continue creating array? Ketik y dan enter. Proses pembuatan array biasanya cepet, tapi sinkronisasi data (resync) jalan di background. Cek progresnya:
cat /proc/mdstat
Contoh output:
Personalities : [raid1]
md0 : active raid1 sdc1[1] sdb1[0]
41937920 blocks super 1.2 [2/2] [UU]
[=================>...] resync = 45.2% (19000000/41937920) finish=4.2min speed=100000K/sec
Berhenti di sini, jangan lanjut ke langkah berikutnya dulu. Tunggu sampai resync selesai 100%. Buat disk 1TB di RAID 1, proses ini bisa makan waktu beberapa jam. Kalau kepaksa restart di tengah resync, gak masalah — mdadm bakal melanjutkan otomatis dari titik terakhir.
5. Simpan Konfigurasi Array ke mdadm.conf
Konfigurasi array wajib disimpan biar otomatis di-assemble saat boot. Kalau dilewatin, pas reboot array-nya muncul sebagai /dev/md127 atau malah gak ke-assemble sama sekali:
mdadm --detail --scan >> /etc/mdadm.conf
Terus, update initramfs biar pengenalan array masuk ke image boot:
dracut --force
Cek isi /etc/mdadm.conf buat memastikan entry ARRAY-nya benar:
cat /etc/mdadm.conf
Contoh output:
MAILADDR root@localhost
ARRAY /dev/md0 metadata=1.2 name=server-01:0 UUID=9c8f1a3b:2d4e:5f6a:7b8c:9d0e:1f2a:3b4c:5d6e
6. Format Filesystem dan Mount
Array udah siap. Format dengan XFS, filesystem default AlmaLinux yang cocok buat file besar:
mkfs.xfs /dev/md0
Buat mount point dan mount array-nya:
mkdir /data
mount /dev/md0 /data
Biar otomatis ter-mount saat boot, ambil UUID array dan tulis ke /etc/fstab:
blkid /dev/md0
Contoh output: /dev/md0: UUID=”xxxx-xxxx” TYPE=”xfs”. Terus tambahkan baris ini ke /etc/fstab, ganti UUID-nya dengan hasil blkid:
UUID=xxxx-xxxx /data xfs defaults,noatime 0 0
Uji dulu entry fstab-nya sebelum reboot biar gak kaget:
mount -a
df -h /data
7. Verifikasi Kondisi Array
Semua udah ke-setting. Sekarang verifikasi bahwa array dalam keadaan sehat:
cat /proc/mdstat
mdadm --detail /dev/md0
Perhatiin bagian State di output mdadm –detail, harus active. Dan pastikan kedua disk terdaftar sebagai active sync. Kalau ada disk yang tercatat degraded, berarti ada masalah di salah satu disk.
8. Simulasi Disk Failure dan Rebuild
Nah, ini bagian yang paling sering dianggap remeh padahal justru paling penting. Sampeyan harus tahu persis apa yang terjadi kalau satu disk mati — bukan pas HP-nya udah meledak jam 3 pagi.
Sebelum menjalankan simulasi di bawah, pastikan sampeyan sudah: 1. Backup semua data penting di /data (RAID bukan pengganti backup!) 2. Verifikasi backup bisa di-restore 3. Siapkan disk pengganti yang baru sebelum mulai
Simulasi ini sengaja mematikan salah satu disk array. Tanpa backup dan disk pengganti, server bakal jalan dalam kondisi degraded tanpa pengaman.
Untuk mensimulasikan disk mati, tandai salah satu partisi sebagai failed:
mdadm --fail /dev/md0 /dev/sdb1
Cek status array — harus berubah jadi degraded:
cat /proc/mdstat
Output-nya jadi begini:
md0 : active raid1 sdc1[1] sdb1[0](F)
41937920 blocks super 1.2 [2/1] [_U]
...
Huruf F artinya disk ditandai failed, dan [2/1] artinya dari 2 disk cuma 1 yang aktif. Array masih jalan dan data masih bisa dibaca — ini gunanya RAID. Sekarang lepas disk yang gagal:
mdadm --remove /dev/md0 /dev/sdb1
Ganti disk fisik yang rusak dengan yang baru, partisi ulang pakai parted seperti di langkah 3, lalu tambahkan ke array:
mdadm --add /dev/md0 /dev/sdb1
mdadm langsung mulai rebuild otomatis. Pantau progresnya:
cat /proc/mdstat
Selama rebuild, beban I/O naik dan performa turun. Itu normal. Yang penting jangan reboot server di tengah rebuild kalau gak mendesak.
Troubleshooting Umum
Buat jaga-jaga kalau nemu kendala, ini tabel troubleshooting yang paling sering kejadian di lapangan:
| Symptom | Kemungkinan Penyebab | Solusi |
|---|---|---|
| Device /dev/md0 gak muncul saat boot | Konfigurasi /etc/mdadm.conf belum disimpan atau initramfs belum di-update | Jalankan ulang langkah 5, lalu dracut –force dan reboot |
| Array muncul sebagai /dev/md127 | Incremental assembly default tanpa nama array di konfigurasi | Tambahkan baris ARRAY dengan UUID dari mdadm –detail ke mdadm.conf |
| Resync stuck di satu persentase | Read-ahead atau I/O lain lagi tinggi | Biarkan jalan, atau cek I/O dengan iostat buat mastiin gak ada bottleneck |
| Disk sehat tapi ditandai failed | Kabel SATA longgar, atau ada SMART error yang gak terdeteksi | Cek SMART dengan smartctl, periksa kabel, lalu re-add disk ke array |
| dnf gak nemu package mdadm | Repo BaseOS atau AppStream belum aktif | Verifikasi dengan dnf repolist, enable repo yang dibutuhkan |
Pro Tips dan Warning
Beberapa hal yang sering dilewatin orang tapi penting banget. Pasang email monitoring biar di-notif kalau array degraded — mdadm bisa kirim email lewat MAILADDR di /etc/mdadm.conf, atau pasang agent monitoring kayak Netdata atau Zabbix buat alert otomatis. Dan inget terus: RAID itu pengaman hardware, bukan pengganti backup. Del yang salah, fire, atau kelalaian manusia tetap bisa bikin data ilang walau RAID sehat-sehat aja.
Soal strategi backup yang bener, sampeyan bisa baca artikel strategi backup 3-2-1 buat panduan lengkapnya. Buat alert lebih dini, cek juga cara monitoring server dengan Netdata. Kalau nanti butuh fleksibilitas partisi lebih, panduan LVM bakal berguna — LVM dan mdadm bisa dipake bersamaan. Terakhir, jangan lupa panduan hardening AlmaLinux sebelum go-live.
FAQ
Q: Apa bedanya software RAID dan hardware RAID?
Software RAID diproses oleh CPU dan kernel lewat mdadm, tanpa hardware khusus. Hardware RAID diproses oleh kartu controller yang punya cache dan battery sendiri. Buat server kecil sampai menengah, software RAID udah cukup andal dan jauh lebih murah. Buat enterprise dengan beban berat yang butuh cache tinggi, hardware RAID masih jadi pilihan.
Q: Bisa gak pasang mdadm di AlmaLinux yang udah terinstall?
Bisa. mdadm tinggal diinstall dengan dnf install mdadm tanpa perlu reboot. Tapi inget, membuat array RAID baru cuma bisa dilakukan di disk kosong. Kalau mau migrasi disk sistem ke RAID tanpa downtime, itu topik tersendiri yang butuh perencanaan ekstra.
Q: RAID 1 atau RAID 5, mana yang lebih cocok buat server web?
Buat server web atau database yang kritis, RAID 1 dengan 2 disk adalah pilihan paling simpel dan aman. RAID 5 butuh minimal 3 disk dan lebih efisien kapasitasnya, tapi rebuild-nya lebih lama dan di disk kapasitas besar ada risiko URE saat rebuild. Kalau data gak banyak tapi butuh keamanan maksimal, pilih RAID 1.
Q: Kenapa array saya muncul sebagai /dev/md127 setelah reboot?
Itu tandanya array di-assemble tanpa nama yang pasti. Solusinya simpan konfigurasi dengan mdadm –detail –scan >> /etc/mdadm.conf, lalu jalankan dracut –force dan reboot. Setelah itu /dev/md0 bakal kembali stabil.
Q: Gimana cara memantau kesehatan array RAID?
Mulai dari yang simpel: cek /proc/mdstat secara berkala dan pasang monitoring seperti Netdata atau Zabbix buat alert otomatis. Pastikan juga alamat email di /etc/mdadm.conf terisi, biar sampeyan dapat notifikasi begitu array berubah jadi degraded.
Yaudah, segitu dulu panduan lengkapnya. Sebelum tutup halaman, pastiin tiga hal ini: 1) konfigurasi /etc/mdadm.conf tersimpan dengan benar, 2) fstab terisi dan mount -a sukses, 3) backup tetap jalan walau RAID udah aktif. Kalau tiga-tiganya udah, artinya setup sampeyan siap buat production. Praktekin di server test dulu kalau masih ragu, biar pas di server asli gak ada drama. Semangat!