Computer >> 컴퓨터 >  >> 체계 >> Linux

MDADM을 사용하여 Linux에서 소프트웨어 RAID 구성

MDADM Linux에서 소프트웨어 RAID를 만들고 관리할 수 있는 도구입니다. 이 기사에서는 mdadm(다중 디스크 관리)을 사용하여 RAID 어레이 스토리지를 생성하고, 디스크를 추가 및 관리하고, 핫 스페어 등을 추가하는 방법을 보여줍니다.

mdadm:소프트웨어 RAID 관리 도구를 설치하는 방법

mdadm을 설치하려면 설치 명령을 실행하십시오:

  • CentOS/Red Hat(yum/dnf 사용):yum install mdadm
  • Ubuntu/Debian:apt-get install mdadm

mdadm 및 종속 라이브러리가 설치됩니다.

트랜잭션 실행 중설치 :libreport-filesystem-2.1.11-43.el7.centos.x86_64 1/2설치 중 :mdadm-4.1-1.el7.x86_64 2/2확인 중 :mdadm-4.1-1.el7.x86_64 :libreport-filesystem-2.1.11-43.el7.centos.x86_64 2/2Installed:mdadm.x86_64 0:4.1-1.el7Dependency Installed:libreport-filesystem.x86_64 0:2.1.11-43.el7.centosComplete /사전> 

Linux에서 2개의 디스크를 사용하여 RAID 1(미러) 만들기

내 Linux 서버에 두 개의 추가 디스크가 설치되어 있고 여기에 소프트웨어 미러(RAID1)를 만들고 싶습니다. 드라이브가 비어 있습니다. 우선 RAID에 추가할 디스크의 모든 슈퍼블록을 0으로 만들어야 합니다.

# mdadm --zero-superblock --force /dev/vd{b,c}

두 개의 깨끗한 디스크가 있습니다. vdbvdc .

MDADM을 사용하여 Linux에서 소프트웨어 RAID 구성

mdadm:인식할 수 없는 md 구성 요소 장치 - /dev/vdbmdadm:인식할 수 없는 md 구성 요소 장치 - /dev/vdc

이 목록은 어떤 디스크도 어레이에 추가된 적이 없음을 의미합니다.

소프트웨어 RAID1를 만들려면 두 개의 디스크에서 /dev/md0 장치로 다음 명령을 사용하십시오.

# mdadm --create --verbose /dev/md0 -l 1 -n 2 /dev/vd{b,c}

여기서 '-l 1 '는 배열 유형입니다(여기서는 RAID1,

및 '-n 2 '는 어레이에 추가된 디스크의 수입니다.

RAID0을 생성하려는 경우 (Stripe) 여러 물리적 디스크 간의 명령을 병렬화하여 읽기/쓰기 속도를 향상시키려면 다음 명령을 사용하십시오.

# mdadm --create --verbose /dev/md0 --level=0 --raid-devices=2 /dev/vdb /dev/vdc

RAID 5의 경우 세 개 이상의 드라이브 중:

# mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/vdb /dev/ vdc /dev/vdd

명령을 입력한 후 작업을 확인하면 소프트웨어 RAID가 생성됩니다.

MDADM을 사용하여 Linux에서 소프트웨어 RAID 구성

디스크에 대한 정보를 나열하면 RAID md0 드라이브가 표시됩니다.

# lsblk

이름 MAJ:MIN RM 크기 RO TYPE MOUNTPOINTvda 253:0 0 20G 0 디스크├─vda1 253:1 0 512M 0 부분 /boot└─vda2 253:2 0 19.5G 0 부분 /vdb 0 253:0G6 디스크└─md0 9:0 0 20G 0 raid1vdc 253:32 0 20G 0 디스크└─md0 9:0 0 20G 0 raid1

RAID1 드라이브에 ext4 파일 시스템을 생성하려면 다음 명령을 실행하십시오:

# mkfs.ext4 /dev/md0

MDADM을 사용하여 Linux에서 소프트웨어 RAID 구성

백업 디렉토리를 생성하고 여기에 RAID 장치를 마운트하십시오:

# mkdir /backup
# mount /dev/md0 /backup/
# df -h

사용된 파일 시스템 크기 Avail Use% 마운트됨.........../dev/md0 20G 45M 19G 1% /backup 

어레이가 오류 없이 마운트되었습니다. 매번 수동으로 기기를 마운트하지 않으려면 fstab을 다음과 같이 변경합니다. :

# nano /etc/fstab

/dev/md0 /backup ext4 기본값 1 2

MDADM을 사용하여 Linux에서 소프트웨어 RAID 구성

RAID 어레이의 상태를 보거나 무결성을 확인하는 방법

어레이의 데이터 무결성을 확인하려면 다음 명령을 사용하십시오.

#echo 'check' > /sys/block/md0/md/sync_action

그런 다음 다음 파일의 출력을 봅니다.

#cat /sys/block/md0/md/mismatch_cnt

0이 나오면 , 배열은 정상입니다:

MDADM을 사용하여 Linux에서 소프트웨어 RAID 구성

확인을 중지하려면 다음을 실행하십시오.

#echo 'idle' > /sys/block/md0/md/sync_action

서버에서 사용 가능한 모든 RAID의 상태를 확인하려면 다음 명령을 사용하십시오.

# cat /proc/mdstat

성격 :[raid1]md0 :활성 raid1 vdc[1] vdb[0]20954112 block super 1.2 [2/2] [UU]

다음 명령을 사용하여 특정 RAID에 대한 자세한 정보를 볼 수 있습니다.

# mdadm -D /dev/md0

MDADM을 사용하여 Linux에서 소프트웨어 RAID 구성

명령 목록의 주요 항목을 살펴보겠습니다.

  • 버전 – 메타데이터 버전
  • 생성 시간 – RAID 생성 날짜 및 시간
  • 레이드 레벨 – RAID 어레이 수준
  • 배열 크기 – RAID 디스크 공간의 크기
  • 사용된 개발자 크기 – 장치가 사용하는 공간 크기
  • 레이드 장치 – RAID의 디스크 수
  • 총 기기 수 – RAID에 추가된 디스크 수입니다.
  • 상태 – 현재 상태입니다(깨끗함 - 정상)
  • 활성 기기 – RAID의 활성 디스크 수
  • 작업 장치 – RAID의 작업 디스크 수
  • 실패한 기기 – RAID에서 실패한 장치의 수
  • 예비 기기 – RAID의 예비 디스크 수
  • 일관성 정책 – 실패 후 동기화 유형을 설정하는 매개변수이고, rsync는 RAID 어레이 복구 후 전체 동기화입니다(비트맵, 저널, ppl 모드 사용 가능)
  • UUID – RAID 배열 식별자

fdisk를 사용하여 간략한 정보를 볼 수 있습니다. :

# fdisk -l /dev/md0

디스크 /dev/md0:21.5GB, 21457010688바이트, 41908224섹터 단위 =1의 섹터 * 512 =512바이트섹터 크기(논리/물리):512바이트/512바이트I/O 크기(최소/최적):512바이트

RAID에서 디스크 오류 복구, 디스크 교체

RAID의 디스크 중 하나가 실패하거나 손상된 경우 다른 디스크로 교체할 수 있습니다. 먼저 디스크가 손상되어 교체해야 하는지 확인하십시오.

# cat /proc/mdstat

성격 :[raid1]md0 :활성 raid1 vdb[0]20954112 block super 1.2 [2/1] [U_]

이전 명령에서 하나의 디스크만 활성 상태임을 알 수 있습니다. [U_ ] 또한 문제가 있음을 의미합니다. 두 디스크가 모두 정상이면 출력은 [UU ].

RAID에 대한 자세한 정보는 또한 몇 가지 문제가 있음을 보여줍니다.

# mdadm -D /dev/md0

/dev/md0:Version :1.2생성 시간 :Tue Dec 31 12:39:22 2020Raid Level :raid1Array Size :20954112 (19.98 GiB 21.46 GB)사용된 Dev Size :20954112 (12.9) 장치 :2지속성 :슈퍼블록이 지속됨업데이트 시간 :Tue Dec 31 14:41:13 2020State :clean, 저하됨Active Devices :1Working Devices :1Failed Devices :1State :clean, 저하됨

– 마지막 줄은 RAID의 한 디스크가 손상되었음을 나타냅니다.

우리의 경우 /dev/vdc 교체해야 합니다. 어레이를 복원하려면 손상된 디스크를 제거하고 새 디스크를 추가해야 합니다.

고장난 드라이브 제거:

# mdadm /dev/md0 --remove /dev/vdc

어레이에 새 디스크 추가:

# mdadm /dev/md0 --add /dev/vdd

새 디스크를 추가하면 디스크 복구가 자동으로 시작됩니다.

# mdadm -D /dev/md0

/dev/md0:Version :1.2생성 시간 :Tue Dec 31 12:39:22 2020Raid Level :raid1Array Size :20954112 (19.98 GiB 21.46 GB)사용된 Dev Size :20954112 (12.9) 장치 :2지속성 :슈퍼블록이 지속됨업데이트 시간 :Tue Dec 31 14:50:20 2020State :clean, 저하됨, recoveringActive Devices :1Working Devices :2Failed Devices :0Spare Devices :1Consistency Policy :resyncRebuild Status :48% completeName :host1:0 (local 호스트 호스트1)UUID :9d59b1fb:7b0a7b6d:15a75459:8b1637a2Events :42Number Major Minor RaidDevice State0 253 16 0 활성 동기화 /dev/vdb2 253 48 1 예비 재구축이 /dev/vddrebuild 상태에 표시됩니다. /dev/vdd를 재구축하면 어레이에 추가되고 있는 디스크가 표시됩니다. 어레이를 재구축한 후 상태를 확인하십시오. State:cleanActive Devices:2Working Devices:2Failed Devices:0Spare Devices:0

Linux에서 소프트웨어 RAID에 디스크를 추가하거나 제거하는 방법

이전에 만든 mdadm RAID 장치를 제거해야 하는 경우 마운트를 해제합니다.

# umount /backup

그런 다음 다음 명령을 실행하십시오.

# mdadm -S /dev/md0

mdadm:중지됨 /dev/md0

RAID 어레이를 파괴한 후에는 별도의 디스크 장치로 감지되지 않습니다.

# mdadm -S /dev/md0

mdadm:/dev/md0을 여는 중 오류 발생:해당 파일 또는 디렉터리가 없습니다.

연결된 모든 드라이브를 스캔하고 물리적 드라이브의 메타데이터에 따라 이전에 제거된(실패한) RAID 장치를 다시 생성할 수 있습니다. 다음 명령을 실행하십시오.

# mdadm --assemble —scan

MDADM을 사용하여 Linux에서 소프트웨어 RAID 구성

어레이에서 작동 가능한 드라이브를 제거하고 교체하려면 먼저 드라이브에 실패한 것으로 태그를 지정하십시오.

# mdadm /dev/md0 --fail /dev/vdc

그런 다음 다음 명령을 사용하여 제거할 수 있습니다.

# mdadm /dev/md0 --remove /dev/vdc

드라이브에 장애가 발생한 경우와 마찬가지로 새 디스크를 추가할 수 있습니다.

# mdadm /dev/md0 --add /dev/vdd

MDADM 어레이에 핫 스페어 드라이브를 추가하는 방법은 무엇입니까?

추가 핫 스페어를 추가할 수 있습니다. 활성 디스크 중 하나가 실패할 경우 RAID 어레이를 빠르게 재구축하기 위한 드라이브. 원하는 md 장치에 여유 디스크 추가:

# mdadm /dev/md0 --add /dev/vdc

RAID 상태를 확인하면 디스크가 스페어로 표시됩니다.

MDADM을 사용하여 Linux에서 소프트웨어 RAID 구성

핫 스왑이 작동하는지 확인하려면 모든 드라이브를 실패한 것으로 표시하고 RAID 상태를 확인하십시오.

# mdadm /dev/md0 --fail /dev/vdb

확인 후 어레이의 재구축이 시작된 것을 알 수 있습니다.

MDADM을 사용하여 Linux에서 소프트웨어 RAID 구성

/dev/vdb 디스크가 실패한 것으로 표시되고 핫 스페어 디스크가 활성 RAID 디스크 중 하나가 되었습니다. 그래서 재구축 과정이 시작되었습니다.

RAID에 작동 가능한 디스크를 추가하려면 다음 두 단계를 따라야 합니다.

어레이에 빈 드라이브 추가:

# mdadm /dev/md0 --add /dev/vdb

이제 이 디스크가 핫 스페어로 표시됩니다. 활성화하려면 md RAID 장치를 확장하십시오.

# mdadm -G /dev/md0 —raid-devices=3

그러면 어레이가 다시 작성됩니다.

MDADM을 사용하여 Linux에서 소프트웨어 RAID 구성

재구축 후 모든 디스크가 활성화됩니다.

번호 Major Minor RaidDevice State3 253 32 0 활성 동기화 /dev/vdc2 253 48 1 활성 동기화 /dev/vdd4 253 16 2 활성 동기화 /dev/vdb

MDADM RAID 어레이를 제거하는 방법

소프트웨어 RAID 드라이브를 영구적으로 제거하려면 다음 구성표를 사용하십시오.

# umount /backup – 디렉토리에서 어레이를 마운트 해제

# mdadm -S /dev/md0 — RAID 장치 중지

그런 다음 디스크가 구성된 디스크의 모든 슈퍼블록을 지웁니다.

# mdadm --zero-superblock /dev/vdb
# mdadm --zero-superblock /dev/vdc

Mdmonitor:RAID 상태 모니터링 및 이메일 알림

mdmonitor 데몬을 사용하여 RAID 상태를 모니터링할 수 있습니다. 먼저 /etc/mdadm.conf를 생성해야 합니다. 현재 어레이 구성이 포함된 파일:

# mdadm –detail –scan > /etc/mdadm.conf

mdadm.conf 파일은 자동으로 생성되지 않습니다. 수동으로 생성하고 업데이트해야 합니다.

RAID 문제의 경우 알림을 보낼 관리자 이메일 주소를 /etc/mdadm.conf 끝에 추가합니다.

MAILADDR raidadmin@woshub.com

그런 다음 systemctl을 사용하여 mdmonitor 서비스를 다시 시작하십시오.

# systemctl restart mdmonitor

그러면 시스템에서 mdadm 오류나 디스크 결함이 있는 경우 이메일로 알려줍니다.

비활성 MDADM RAID

하드웨어 오류 또는 긴급 종료의 경우 소프트웨어 RAID 어레이가 비활성화될 수 있습니다. . 모든 드라이브는 비활성으로 표시되지만 오류는 없습니다.

# cat /proc/mdstat

특성:[선형] [다중 경로] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]md0 :비활성 vdc[1] vdb[0]20954112 사용하지 않는 장치 차단:<없음> 

이 경우 다음 명령을 사용하여 어레이를 중지해야 합니다.

# mdadm --stop /dev/md0

그리고 다시 조립하세요:

# mdadm --assemble --scan –force

md 장치가 /etc/fstab에 등록되어 있으면 다음 명령을 사용하여 다시 마운트합니다.

# mount -a

이미 설치된 OS에서 소프트웨어 RAID를 생성하는 몇 가지 방법이 있습니다. 이 경우 수동으로 모든 파티션 테이블을 새 디스크에 복사하고 시스템 디스크의 내용을 하나의 디스크로 구성된 RAID로 수동으로 이동해야 합니다. 그런 다음 첫 번째 디스크를 정리하고 RAID에 추가하고 initramfs 및 GRUB 로더를 편집합니다. 따라서 서버 배포 중에 소프트웨어 RAID에서 CentOS 설치 모드를 선택하는 것이 좋습니다.

아담 Linux에서 소프트웨어 RAID를 더 쉽게 관리할 수 있습니다. 이 기사에서는 도구로 작업할 때의 주요 사항을 설명하고 mdadm을 사용하여 RAID로 작업할 때 발생하는 일반적인 질문을 다뤘습니다.