본문 바로가기

리눅스-기초명령어/레이드

mdadm

mdadm



옵션

옵션 설명
-C 레이드를 생성하는 옵션 --create
-l -c 옵션과 같이 사용이 된다. 레이드의 레벨을 지정 
0,1,2,3,4,5,6 10 등등
-n 구성할 디바이스의 개수를 지정 -c와 쓰인다
-d 지정한 RAID의 자세한 정보를 출력한다
-S 레이드 배열을 해제하여 모든 자원을 해제한다
-Q 지정한 RAID의 간단한 정보 출력
-f 특정 장치에 오류를 발생 시킨다
-a 작동중인 RAID의 디바이스를 추가로 연결
-r RAID에서 디바이스를 제거

 

1.raid 1+0과 0+1의 차이점

안정성 측면

RAID 01은 디스크 0과 2가 동시에 망가질 경우 모든 디스크가 먹통이되지만 10은 0 과2가 동시에 망가져도 전체 디스크가 동작하는데 문제가 없다. 물론 10도 디스크 0과 1이 동시에 망가진다면 전체 디스크가 깨지지만 전체 디스크가 망가질 확률이 01보다 적으므로 안정성 측면에서 RAID 10이 좀더 좋다고 할 수 있다.

 

복구 측면

망가진 디스크의 복구과정 에서 01의 경우 디스크 0번이 망가진 경우 0번 디스크를 교체한후 재구성하게 되면 디스크 2, 3번으로 구성된 RAID 0 전체가 복사되지만 RAID 10의 경우 0번 디스크를 교체했다면 1번 디스크에서 복사를 하게되어 리소스의 비용이 훨씩 적게들어 시간이 단축된다.



2. RAID 1+0 만들기

[root@localhost ~]# lsblk  #래이드로 묶을 재료를 준비 ada~e 을 만듬
NAME     MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sdb        8:16   0     5G  0 disk
sdc        8:32   0     5G  0 disk
sdd        8:48   0     5G  0 disk
sde        8:64   0     5G  0 disk
sr0       11:0    1   8.6G  0 rom  /run/media/root/AlmaLinux-9-2-x86_64-dvd

[root@localhost ~]# mdadm -C /dev/md10 -l 10 -n 4 /dev/sd[b-e]
mdadm: Defaulting to version 1.2 metadata      #레이드를 10으로 한다.
mdadm: array /dev/md10 started.                      b~e 를 재료로 만듭니다.
# md10 레이드 10을 만듬
[root@localhost ~]# lsblk    # 만들어진 정보 확인인
NAME    MAJ:MIN RM   SIZE RO TYPE   MOUNTPOINTS
sda       8:0    0     5G  0 disk  
sdb       8:16   0     5G  0 disk  
└─md10    9:10   0    10G  0 raid10
sdc       8:32   0     5G  0 disk  
└─md10    9:10   0    10G  0 raid10
sdd       8:48   0     5G  0 disk  
└─md10    9:10   0    10G  0 raid10
sde       8:64   0     5G  0 disk  
└─md10    9:10   0    10G  0 raid10

[root@localhost ~]# mdadm -D /dev/md10
.
.
.
  Number   Major   Minor   RaidDevice State 
      0       8       16        0      active sync set-A   /dev/sdb
      1       8       32        1      active sync set-B   /dev/sdc
      2       8       48        2      active sync set-A   /dev/sdd
      3       8       64        3      active sync set-B   /dev/sde

#b와d를A로 c와d를B로 묶은뒤 레이드A,B를 Raid 0으로 묶는다. 

 

raid 오류 

 

#스토리지 1개를 제거를 하고 리부트
[root@localhost ~]# lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE   MOUNTPOINTS
sda           8:0    0     5G  0 disk  
sdb           8:16   0     5G  0 disk  
└─md127       9:127  0    10G  0 raid10
sdc           8:32   0     5G  0 disk   #raid md10 이 md127이지만
└─md127       9:127  0    10G  0 raid10  raid10은 유지된다.
sdd           8:48   0     5G  0 disk  
└─md127       9:127  0    10G  0 raid10
sr0          11:0    1   8.6G  0 rom    /run/media/root/AlmaLinux-9-2-x86_64-dvd
nvme0n1     259:0    0   200G  0 disk  
├─nvme0n1p1 259:1    0     1G  0 part   /boot
└─nvme0n1p2 259:2    0   199G  0 part  
  ├─almalinux-root
  │         253:0    0    70G  0 lvm    /
  ├─almalinux-swap
  │         253:1    0   7.9G  0 lvm   
  └─almalinux-home
            253:2    0 121.1G  0 lvm    /home
[root@localhost /]# mount -t ext4 /dev/md127 /mnt
[root@localhost /]# cd mnt
[root@localhost mnt]# ls  # 안에 파일들은 이상이 없다.
1  2  3  4  lost+found
[root@localhost mnt]# lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE   MOUNTPOINTS
sda           8:0    0     5G  0 disk  
sdb           8:16   0     5G  0 disk  
└─md127       9:127  0    10G  0 raid10 /mnt
sdc           8:32   0     5G  0 disk  
└─md127       9:127  0    10G  0 raid10 /mnt
sdd           8:48   0     5G  0 disk  
└─md127       9:127  0    10G  0 raid10 /mnt
sr0          11:0    1   8.6G  0 rom    /run/media/root/AlmaLinux-9-2-x86_64-dvd
nvme0n1     259:0    0   200G  0 disk  
├─nvme0n1p1 259:1    0     1G  0 part   /boot
└─nvme0n1p2 259:2    0   199G  0 part  
  ├─almalinux-root
  │         253:0    0    70G  0 lvm    /
  ├─almalinux-swap
  │         253:1    0   7.9G  0 lvm   
  └─almalinux-home
            253:2    0 121.1G  0 lvm    /home
[root@localhost mnt]# mdadm -a /dev/md127 /dev/sda #새로운 스토리지 추가가
mdadm: Cannot open /dev/sda: Device or resource busy
[root@localhost mnt]#  echo "- - -" > /sys/devices/pci0000\:00/0000\:00\:11.0/0000\:02\:04.0/host32/scsi_host/host32/scan
[root@localhost mnt]# mdadm -a /dev/md127 /dev/sde
mdadm: added /dev/sde
[root@localhost mnt]# mdadm -D /deb/md127
mdadm: cannot open /deb/md127: No such file or directory
[root@localhost mnt]# mdadm -D /dev/md127
/dev/md127:
          Version : 1.2
    Creation Time : Fri May 19 16:04:18 2023
        Raid Level : raid10
        Array Size : 10475520 (9.99 GiB 10.73 GB)
    Used Dev Size : 5237760 (5.00 GiB 5.36 GB)
      Raid Devices : 4
    Total Devices : 4
      Persistence : Superblock is persistent

      Update Time : Fri May 19 16:12:14 2023
            State : clean, degraded, recovering
    Active Devices : 3
  Working Devices : 4
    Failed Devices : 0
    Spare Devices : 1

            Layout : near=2
        Chunk Size : 512K

Consistency Policy : resync

    Rebuild Status : 68% complete # 리빌딩

              Name : localhost.localdomain:10  (local to host localhost.localdomain)
              UUID : 3b0b26a8:fd6b2258:f39a694f:1f62309e
            Events : 42

    Number   Major   Minor   RaidDevice State
      4       8       64        0      spare rebuilding   /dev/sde
      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
[root@localhost mnt]# mdadm -D /dev/md127
/dev/md127:
          Version : 1.2
    Creation Time : Fri May 19 16:04:18 2023
        Raid Level : raid10
        Array Size : 10475520 (9.99 GiB 10.73 GB)
    Used Dev Size : 5237760 (5.00 GiB 5.36 GB)
      Raid Devices : 4
    Total Devices : 4
      Persistence : Superblock is persistent

      Update Time : Fri May 19 16:12:23 2023
            State : clean
    Active Devices : 4
  Working Devices : 4
    Failed Devices : 0
    Spare Devices : 0

            Layout : near=2
        Chunk Size : 512K

Consistency Policy : resync

              Name : localhost.localdomain:10  (local to host localhost.localdomain)
              UUID : 3b0b26a8:fd6b2258:f39a694f:1f62309e
            Events : 48

    Number   Major   Minor   RaidDevice State
       4       8       64        0      active sync set-A   /dev/sde
      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
[root@localhost mnt]
















-S 레이드 해제한다 (재부팅시 재 연결)

[root@localhost ~]# lsblk
NAME           MAJ:MIN RM   SIZE RO TYPE   MOUNTPOINTS
sda              8:0    0     5G  0 disk  
sdb              8:16   0     5G  0 disk  
└─md10           9:10   0    10G  0 raid10
sdc              8:32   0     5G  0 disk  
└─md10           9:10   0    10G  0 raid10
sdd              8:48   0     5G  0 disk  
└─md10           9:10   0    10G  0 raid10
sde              8:64   0     5G  0 disk  
└─md10           9:10   0    10G  0 raid10
sr0             11:0    1   8.6G  0 rom    /run/media/root/AlmaLinux-9-2-x86_64-dvd
nvme0n1        259:0    0   200G  0 disk  
├─nvme0n1p1    259:1    0     1G  0 part   /boot
└─nvme0n1p2    259:2    0   199G  0 part  
  ├─almalinux-root
  │            253:0    0    70G  0 lvm    /
  ├─almalinux-swapumoun
  │            253:1    0   7.9G  0 lvm   
  └─almalinux-home
              253:2    0 121.1G  0 lvm    /home
[root@localhost ~]# mdadm -S /dev/md10
mdadm: stopped /dev/md10
[root@localhost ~]# lsblk
NAME             MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda                8:0    0     5G  0 disk
sdb                8:16   0     5G  0 disk
sdc                8:32   0     5G  0 disk
sdd                8:48   0     5G  0 disk
sde                8:64   0     5G  0 disk 


#완전히 제거 하기 위해서는 슈퍼블럭 을 사용해야 한다
[root@localhost ~]# mdadm --zero-superblock /dev/md10