웹사이트 검색

Linux에서 RAID 5(분산 패리티를 사용한 스트라이핑) 만들기 - 4부


RAID 5에서는 분산 패리티를 사용하여 여러 드라이브에 걸쳐 데이터를 스트립합니다. 분산 패리티를 사용한 스트라이핑은 패리티 정보를 분할하고 데이터를 여러 디스크에 스트라이프하여 데이터 중복성이 우수함을 의미합니다.

RAID 레벨의 경우 최소 3개 이상의 하드 드라이브가 있어야 합니다. RAID 5는 비용 효율적이고 성능과 중복성을 제공하는 대규모 생산 환경에서 사용되고 있습니다.

패리티란 무엇입니까?

패리티는 데이터 저장소의 오류를 감지하는 가장 간단하고 일반적인 방법입니다. 패리티는 각 디스크에 정보를 저장합니다. 4개의 디스크가 있다고 가정하면 4개의 디스크에서 하나의 디스크 공간이 패리티 정보를 저장하기 위해 모든 디스크로 분할됩니다. 디스크 중 하나라도 여전히 오류가 발생하면 오류가 발생한 디스크를 교체한 후 패리티 정보를 다시 작성하여 데이터를 얻을 수 있습니다.

RAID 5의 장점과 단점

  1. 더 나은 성능 제공
  2. 중복성 및 내결함성을 지원합니다.
  3. 핫 스페어 옵션을 지원합니다.
  4. 패리티 정보를 사용하기 위한 단일 디스크 용량이 손실됩니다.
  5. 단일 디스크에 장애가 발생하더라도 데이터 손실이 없습니다. 장애가 발생한 디스크를 교체한 후 패리티에서 재구축할 수 있습니다.
  6. 읽기 속도가 빨라지므로 트랜잭션 지향 환경에 적합합니다.
  7. 패리티 오버헤드로 인해 쓰기 속도가 느려집니다.
  8. 재구축에는 시간이 오래 걸립니다.

요구사항

Raid 5를 생성하려면 최소 3개의 하드 드라이브가 필요하지만 멀티 포트가 있는 전용 하드웨어 RAID 컨트롤러가 있는 경우에만 디스크를 더 추가할 수 있습니다. 여기서는 소프트웨어 RAID와 'mdadm' 패키지를 사용하여 RAID를 생성합니다.

mdadm은 Linux에서 RAID 장치를 구성하고 관리할 수 있는 패키지입니다. 기본적으로 RAID에 사용할 수 있는 구성 파일이 없습니다. RAID 설정을 생성하고 구성한 후 mdadm.conf라는 별도의 파일에 구성 파일을 저장해야 합니다.

더 나아가기 전에 Linux에서 RAID의 기본 사항을 이해하기 위해 다음 기사를 살펴보는 것이 좋습니다.

  1. Linux의 RAID 기본 개념 – 1부
  2. Linux에서 RAID 0(스트라이프) 생성 – 2부
  3. Linux에서 RAID 1(미러링) 설정 – 3부
내 서버 설정
Operating System :	CentOS 6.5 Final
IP Address	 :	192.168.0.227
Hostname	 :	rd5.tecmintlocal.com
Disk 1 [20GB]	 :	/dev/sdb
Disk 2 [20GB]	 :	/dev/sdc
Disk 3 [20GB]	 :	/dev/sdd

이 문서는 9개 자습서 RAID 시리즈의 4부입니다. 여기서는 3개의 20GB 디스크를 사용하여 Linux 시스템 또는 서버에서 분산 패리티가 있는 소프트웨어 RAID 5를 설정하겠습니다. 이름은 /dev/sdb, /dev/sdc 및 /dev/sdd입니다.

1단계: mdadm 설치 및 드라이브 확인

1. 앞서 말했듯이 이 RAID 설정에는 CentOS 6.5 최종 릴리스를 사용하지만 모든 Linux 기반 배포판에서 RAID 설정에 대해서도 동일한 단계를 따를 수 있습니다.

lsb_release -a
ifconfig | grep inet

2. Raid 시리즈를 팔로우하고 계시다면 'mdadm' 패키지가 이미 설치되어 있다고 가정합니다. 그렇지 않은 경우 Linux에 따라 다음 명령을 사용하세요. 패키지를 설치하기 위한 배포입니다.

yum install mdadm		[on RedHat systems]
apt-get install mdadm 	[on Debain systems]

3. 'mdadm' 패키지 설치 후 'fdisk' 명령을 사용하여 시스템에 추가한 3개의 20GB 디스크를 나열해 보겠습니다.

fdisk -l | grep sd

4. 이제 다음 명령을 사용하여 연결된 3개의 드라이브에서 해당 드라이브에 있는 기존 RAID 블록을 검사할 차례입니다.

mdadm -E /dev/sd[b-d]
mdadm --examine /dev/sdb /dev/sdc /dev/sdd

참고: 위 이미지에는 아직 슈퍼 블록이 감지되지 않은 것으로 나와 있습니다. 따라서 세 드라이브 모두에 정의된 RAID가 없습니다. 이제 하나를 만들어 보겠습니다.

2단계: RAID용 디스크 분할

5. 무엇보다도 디스크(/dev/sdb, /dev/sdc 및 /)를 파티션해야 합니다. dev/sdd) RAID에 추가하기 전에 다음 단계로 전달하기 전에 'fdisk' 명령을 사용하여 파티션을 정의하겠습니다.

fdisk /dev/sdb
fdisk /dev/sdc
fdisk /dev/sdd
/dev/sdb 파티션 생성

/dev/sdb 드라이브에 파티션을 생성하려면 아래 지침을 따르십시오.

  1. 새 파티션을 생성하려면 'n'을 누르세요.
  2. 그런 다음 기본 파티션으로 'P'를 선택합니다. 여기서는 아직 정의된 파티션이 없으므로 기본을 선택합니다.
  3. 그런 다음 첫 번째 파티션으로 '1'을 선택합니다. 기본적으로 1입니다.
  4. 여기서 실린더 크기의 경우 RAID에 전체 파티션이 필요하므로 지정된 크기를 선택할 필요가 없으므로 Enter 키를 두 번 눌러 기본 전체 크기를 선택하면 됩니다.
  5. 그런 다음 'p'를 눌러 생성된 파티션을 인쇄합니다.
  6. 유형을 변경하세요. 사용 가능한 모든 유형을 알아야 한다면 'L'을 누르세요.
  7. 여기서는 내 유형이 RAID이므로 'fd'를 선택합니다.
  8. 다음으로 'p'를 눌러 정의된 파티션을 인쇄하세요.
  9. 그런 다음 다시 'p'를 사용하여 변경 사항을 인쇄합니다.
  10. 변경사항을 작성하려면 'w'를 사용하세요.

참고: sdcsdd 드라이브용 파티션을 생성하려면 위에서 언급한 단계를 따라야 합니다.

/dev/sdc 파티션 생성

이제 스크린샷에 제공된 단계에 따라 sdcsdd 드라이브를 분할하거나 위의 단계를 따를 수 있습니다.

fdisk /dev/sdc

/dev/sdd 파티션 생성
fdisk /dev/sdd

6. 파티션을 생성한 후 sdb, sdc, sdd 세 드라이브 모두에서 변경 사항을 확인합니다.

mdadm --examine /dev/sdb /dev/sdc /dev/sdd

or

mdadm -E /dev/sd[b-d]

참고: 위 사진에 나와 있습니다. 유형이 fd, 즉 RAID의 경우임을 나타냅니다.

7. 이제 새로 생성된 파티션에서 RAID 블록을 확인하세요. 슈퍼 블록이 감지되지 않으면 계속 진행하여 이러한 드라이브에 새로운 RAID 5 설정을 만들 수 있습니다.

3단계: MD 장치 md0 생성

8. 이제 Raid 장치 'md0'(예: /dev/md0)을 만들고 새로 생성된 모든 파티션(sdb1, sdc1 및 sdd1) 아래 명령을 사용합니다.

mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1

or

mdadm -C /dev/md0 -l=5 -n=3 /dev/sd[b-d]1

9. RAID 장치를 생성한 후 mdstat 출력에서 RAID, 포함된 장치 및 RAID 레벨을 확인하고 확인합니다.

cat /proc/mdstat

현재 빌드 프로세스를 모니터링하려면 'watch' 명령을 사용할 수 있습니다. watch 명령으로 'cat /proc/mdstat'을 전달하면 됩니다. 1초마다 화면을 새로 고칩니다.

watch -n1 cat /proc/mdstat

10. RAID 생성 후 다음 명령어를 사용하여 RAID 장치를 확인합니다.

mdadm -E /dev/sd[b-d]1

참고: 위 명령의 출력은 세 드라이브의 정보를 모두 인쇄하므로 약간 길어집니다.

11. 다음으로, RAID 레벨에 포함된 장치가 실행 중이고 다시 동기화되기 시작했다고 가정하기 위해 RAID 배열을 확인합니다.

mdadm --detail /dev/md0

4단계: md0용 파일 시스템 생성

12. 마운트하기 전에 ext4를 사용하여 'md0' 장치에 대한 파일 시스템을 만듭니다.

mkfs.ext4 /dev/md0

13. 이제 '/mnt' 아래에 디렉토리를 생성한 다음 생성된 파일 시스템을 /mnt/raid5 아래에 마운트하고 마운트 지점 아래의 파일을 확인합니다. lost+found 디렉터리가 표시됩니다.

mkdir /mnt/raid5
mount /dev/md0 /mnt/raid5/
ls -l /mnt/raid5/

14. 마운트 지점 /mnt/raid5 아래에 몇 개의 파일을 생성하고 파일 중 하나에 텍스트를 추가하여 내용을 확인합니다.

touch /mnt/raid5/raid5_tecmint_{1..5}
ls -l /mnt/raid5/
echo "tecmint raid setups" > /mnt/raid5/raid5_tecmint_1
cat /mnt/raid5/raid5_tecmint_1
cat /proc/mdstat

15. fstab에 항목을 추가해야 합니다. 그렇지 않으면 시스템 재부팅 후 마운트 지점이 표시되지 않습니다. 항목을 추가하려면 fstab 파일을 편집하고 아래와 같이 다음 줄을 추가해야 합니다. 마운트 지점은 환경에 따라 다릅니다.

vim /etc/fstab

/dev/md0                /mnt/raid5              ext4    defaults        0 0

16. 그런 다음 'mount -av' 명령을 실행하여 fstab 항목에 오류가 있는지 확인합니다.

mount -av

5단계: Raid 5 구성 저장

17. 앞서 요구 사항 섹션에서 언급했듯이 기본적으로 RAID에는 구성 파일이 없습니다. 수동으로 저장해야 합니다. 이 단계를 따르지 않으면 RAID 장치는 md0에 있지 않고 다른 임의의 숫자에 있게 됩니다.

따라서 시스템을 재부팅하기 전에 구성을 저장해야 합니다. 구성이 저장되면 시스템 재부팅 중에 커널에 로드되고 RAID도 로드됩니다.

mdadm --detail --scan --verbose >> /etc/mdadm.conf

참고: 구성을 저장하면 md0 장치에서 RAID 레벨이 안정적으로 유지됩니다.

6단계: 예비 드라이브 추가

18. 예비 드라이브를 추가하면 무슨 소용이 있나요? 예비 드라이브가 있는 경우 매우 유용합니다. 어레이에서 디스크 중 하나에 오류가 발생하면 이 예비 드라이브가 활성화되어 프로세스를 재구축하고 다른 디스크의 데이터를 동기화하므로 여기서 중복성을 확인할 수 있습니다.

예비 드라이브를 추가하고 Raid 5 내결함성을 확인하는 방법에 대한 자세한 지침은 다음 문서의 #Step 6#Step 7을 읽어보세요.

  1. Raid 5 설정에 예비 드라이브 추가

결론

이 기사에서는 3개의 디스크를 사용하여 RAID 5를 설정하는 방법을 살펴보았습니다. 다음 기사에서는 RAID 5에서 디스크 오류가 발생할 때 문제를 해결하는 방법과 복구를 위해 디스크를 교체하는 방법을 살펴보겠습니다.