Membuat RAID Array dengan mdadm

mdadm adalah software RAID tool di Linux yang dapat digunakan untuk membuat, mengelola, dan monitor software RAID array. RAID akan menggabungkan beberapa disk menjadi satu kelompok array disk. Dibandingkan dengan satu disk, array RAID menyediakan kapasitas dan performa yang lebih baik.

Prerequisites

  • 1 Server/VM dengan 2 CPU dan 4 GB RAM.
  • 4 Disk/Volume.

OS yang digunakan dalam panduan ini adalah Ubuntu 22.04. Namun, Anda juga dapat menggunakan OS lain dengan menjalankan perintah yang sama.

RAID 0

RAID 0 menggabungkan dua hard disk atau lebih untuk meningkatkan performa dan kapasitas, tetapi tidak memberikan toleransi kesalahan. Artinya, jika salah satu hard disk mengalami kegagalan, maka semua data akan hilang.

RAID 0 bermanfaat untuk sistem non-kritis dimana kehilangan data tidak terlalu merugikan.

Untuk membuat RAID 0, jalankan perintah berikut.

mdadm --create --verbose /dev/md0 --level=raid0 --chunk=64K --raid-devices=2 /dev/sd[a-b]
Tambahkan setidaknya 2 hard disk untuk RAID 0

Kemudian cek status RAID 0.

# mdadm --detail /dev/md0
/dev/md0:
           Version : 1.2
     Creation Time : Fri Oct 11 22:53:21 2024
        Raid Level : raid0
        Array Size : 4188160 (3.99 GiB 4.29 GB)
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent

       Update Time : Fri Oct 11 22:53:21 2024
             State : clean
    Active Devices : 2
   Working Devices : 2
    Failed Devices : 0
     Spare Devices : 0

            Layout : -unknown-
        Chunk Size : 64K

Consistency Policy : none

              Name : nila.pcc.my.id:0  (local to host nila.pcc.my.id)
              UUID : 74bdf34a:e306d042:cd34058b:7669e553
            Events : 0

    Number   Major   Minor   RaidDevice State
       0       8        0        0      active sync   /dev/sda
       1       8       16        1      active sync   /dev/sdb

Atau Anda dapat melihat proses rebuild dengan perintah.

watch cat /proc/mdstat

Selanjutnya simpan konfigurasi RAID 0 ke mdadm.conf supaya bisa muncul ketika sistem di boot ulang.

mdadm --detail --scan --verbose /dev/md0 | tee -a /etc/mdadm/mdadm.conf

Format device /dev/md0 supaya dapat digunakan.

mkfs.xfs /dev/md0

Lalu mount device RAID.

mount -o discard,defaults,noatime /dev/md0 /mnt/raid0

Edit fstab untuk membuat mouting menjadi permanent.

echo '/dev/md0 /mnt/raid0 xfs defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab

RAID 1

RAID 1 atau mirroring seringnya diimplementasikan dengan dua hard disk. Data di satu hard disk akan disalin ke hard disk lainnya, sehingga memberikan toleransi kesalahan jika terjadi kegagalan pada salah satu hard disk.

RAID 1 meningkatkan performa baca (read) disk, sementara performa tulis (write) akan setara dengan satu hard disk.

mdadm --create --verbose /dev/md0 --level=raid1 --raid-devices=2 /dev/sd[a-b]
Tambahkan setidaknya 2 hard disk untuk RAID 1

Kemudian cek status RAID 1.

# mdadm --detail /dev/md0
/dev/md0:
           Version : 1.2
     Creation Time : Sat Oct 12 00:29:07 2024
        Raid Level : raid1
        Array Size : 2094080 (2045.00 MiB 2144.34 MB)
     Used Dev Size : 2094080 (2045.00 MiB 2144.34 MB)
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent

       Update Time : Sat Oct 12 00:29:18 2024
             State : clean
    Active Devices : 2
   Working Devices : 2
    Failed Devices : 0
     Spare Devices : 0

Consistency Policy : resync

              Name : nila.pcc.my.id:0  (local to host nila.pcc.my.id)
              UUID : 2ea558b9:f9ac2bbe:287673eb:3c2f9112
            Events : 17

    Number   Major   Minor   RaidDevice State
       0       8        0        0      active sync   /dev/sda
       1       8       16        1      active sync   /dev/sdb

Atau Anda dapat melihat proses rebuild dengan perintah.

watch cat /proc/mdstat

Selanjutnya simpan konfigurasi RAID 1 ke mdadm.conf supaya bisa muncul ketika sistem di boot ulang.

mdadm --detail --scan --verbose /dev/md0 | tee -a /etc/mdadm/mdadm.conf

Format device /dev/md0 supaya dapat digunakan.

mkfs.xfs /dev/md0

Lalu mount device RAID.

mount -o discard,defaults,noatime /dev/md0 /mnt/raid1

Edit fstab untuk membuat mouting menjadi permanent.

echo '/dev/md0 /mnt/raid1 xfs defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab

RAID 5

RAID 5 memberikan toleransi kesalahan dan meningkatkan performa baca. Metode ini memerlukan setidaknya tiga hard disk. Jika terjadi kegagalan pada salah satu hard disk, data dari hard disk yang gagal akan direkonstruksi menggunakan paritas yang terdistribusi di seluruh hard disk yang tersisa.

mdadm --create --verbose /dev/md0 --level=raid5 --chunk=8K --raid-devices=4 /dev/sd[a-d]

Apabila ingin mengatur salah satu disk sebagai spare device.

mdadm --create --verbose /dev/md0 --level=raid5 --chunk=8K --raid-devices=3 /dev/sd[a-c] --spare-devices=1 /dev/sdd

Kemudian cek status RAID 5.

# mdadm --detail /dev/md0
/dev/md0:
           Version : 1.2
     Creation Time : Sun Oct 13 04:04:54 2024
        Raid Level : raid5
        Array Size : 6282240 (5.99 GiB 6.43 GB)
     Used Dev Size : 2094080 (2045.00 MiB 2144.34 MB)
      Raid Devices : 4
     Total Devices : 4
       Persistence : Superblock is persistent

       Update Time : Sun Oct 13 04:05:06 2024
             State : clean
    Active Devices : 4
   Working Devices : 4
    Failed Devices : 0
     Spare Devices : 0

            Layout : left-symmetric
        Chunk Size : 8K

Consistency Policy : resync

              Name : nila.pcc.my.id:0  (local to host nila.pcc.my.id)
              UUID : 7828a52e:67c4de30:6d7e56c6:00f5a3f0
            Events : 18

    Number   Major   Minor   RaidDevice State
       0       8        0        0      active sync   /dev/sda
       1       8       16        1      active sync   /dev/sdb
       2       8       32        2      active sync   /dev/sdc
       4       8       48        3      active sync   /dev/sdd

Atau Anda dapat melihat proses rebuild dengan perintah.

watch cat /proc/mdstat

Selanjutnya simpan konfigurasi RAID 5 ke mdadm.conf supaya bisa muncul ketika sistem di boot ulang.

mdadm --detail --scan --verbose /dev/md0 | tee -a /etc/mdadm/mdadm.conf

Format device /dev/md0 supaya dapat digunakan.

mkfs.xfs /dev/md0

Lalu mount device RAID.

mount -o discard,defaults,noatime /dev/md0 /mnt/raid5

Edit fstab untuk membuat mouting menjadi permanent.

echo '/dev/md0 /mnt/raid5 xfs defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab

RAID 10

RAID 10 adalah gabungan dari RAID 1 + RAID 0. Metode ini akan membuat performa baca dan tulis meningkat, namun hanya separuh dari kapasitas total yang dapat digunakan untuk penyimpanan data.

mdadm  --create --verbose /dev/md0 --level=10 --chunk=64K --raid-devices=4 /dev/sd[a-d]

Kemudian cek status RAID 10.

# mdadm --detail /dev/md0
/dev/md0:
           Version : 1.2
     Creation Time : Sun Oct 13 05:01:27 2024
        Raid Level : raid10
        Array Size : 4188160 (3.99 GiB 4.29 GB)
     Used Dev Size : 2094080 (2045.00 MiB 2144.34 MB)
      Raid Devices : 4
     Total Devices : 4
       Persistence : Superblock is persistent

       Update Time : Sun Oct 13 05:01:48 2024
             State : clean
    Active Devices : 4
   Working Devices : 4
    Failed Devices : 0
     Spare Devices : 0

            Layout : near=2
        Chunk Size : 64K

Consistency Policy : resync

              Name : nila.pcc.my.id:0  (local to host nila.pcc.my.id)
              UUID : a32feae5:9efa56ba:d2d9f6c4:928f9d91
            Events : 17

    Number   Major   Minor   RaidDevice State
       0       8        0        0      active sync set-A   /dev/sda
       1       8       16        1      active sync set-B   /dev/sdb
       2       8       32        2      active sync set-A   /dev/sdc
       3       8       48        3      active sync set-B   /dev/sdd

Selanjutnya simpan konfigurasi RAID 10 ke mdadm.conf supaya bisa muncul ketika sistem di boot ulang.

mdadm --detail --scan --verbose /dev/md0 | tee -a /etc/mdadm/mdadm.conf

Format device /dev/md0 supaya dapat digunakan.

mkfs.xfs /dev/md0

Lalu mount device RAID.

mount -o discard,defaults,noatime /dev/md0 /mnt/raid10

Edit fstab untuk membuat mouting menjadi permanent.

echo '/dev/md0 /mnt/raid10 xfs defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab

Drop RAID

Untuk menghapus RAID serta wipe disk, jalankan perintah berikut.

wipefs --all --force /dev/md0
mdadm --stop /dev/md0
mdadm --zero-superblock /dev/sda /dev/sdb

Cheat Sheet

Untuk menambahkan spare device pada device RAID.

mdadm --add /dev/md0 /dev/sde /dev/sdf

Untuk menggunakan spare device sebagai penyimpanan data.

mdadm --grow --raid-devices=6 /dev/md0

Untuk menghapus hard disk pada RAID.

mdadm /dev/md0 --fail /dev/sdc
mdadm /dev/md0 --remove /dev/sdc

Referensi: