RAID 0 (스트라이프)
-> 여러개의 하드디스크를 하나로 합쳐 단일 하드디스크처럼 사용합니다.
-> 장애가 일어나면 사용이 불가능하나 속도가 빠릅니다.
-> 데이터가 저장되는 순서 없이 랜덤으로 저장됩니다.
RAID Linear
-> RAID0과 유사하나 데이터가 순차적으로 저장됩니다.
RAID 1
-> 디스크 미러링이라고도 하며, 중복 저장된 여러개의 드라이브로 구성됩니다.
-> 여러 드라이브를 동시에 읽으므로 읽기 성능이 향상되며, 쓰기성능은 그대로 입니다.
-> 미러링한 숫자만큼의 하드가 더 필요하므로 구성 비용이 많이 듭니다.
RAID 5
-> 각 하드에 일정 공간의 패리티 어레이를 만듭니다.
-> 패리티 어레이는 점검용으로 사용하며 데이터를 재구성하는데 사용됩니다.
-> 총 패리티는 하드 1개만큼의 공간을 차지합니다.
RAID 6
-> RAID 5와 비슷하지만 패리티를 하나 더 만듭니다.
-> 총 패리티는 하드 2개만큼의 공간을 차지합니다.
RAID 구축하기
1. 하드디스크 장착 및 인식
2. RAID 파티션 생성
3. RAID 구축
4. 파일시스템 생성
5. 마운트포인트 생성 & 마운트
6. 자동마운트
1. 새 하드디스크 인식시키기
하드디스크 연결 컨트롤러 -> 메인보드 -> CPU
하드디스크 연결 컨트롤러 3개 -> 컨트롤러0,1,2
컨트롤러 1개당 하드디스크 32개 인식
VMware에서 하드 추가하기
Virtual Machine Settings -> Add... -> Hard Disk
리눅스에서 하드 인식시키기
echo "- - -" > /sys/class/scsi_host/host0/scan
echo "- - -" > /sys/class/scsi_host/host1/scan
echo "- - -" > /sys/class/scsi_host/host2/scan
# 어느 컨트롤러에 연결되어 있는지 알수 없으므로
# 세 컨트롤러를 다 찾아줍니다.
# Redhat 계열만 리눅스만 사용이 가능합니다.
새로 추가한 하드는 자동으로 추가되지 않습니다.
명령어를 입력하자 하드가 인식이 되었습니다.
2. 하드디스크 타입 확인 및 바꾸기
fdisk /dev/sdb
p
# 하드디스크 정보를 확인합니다.
리눅스용 하드디스크 ID -> 83
RAID용 하드디스크 ID -> ??
사용가능한 하드디스크 타입과 ID 보기
fdisk /dev/sdb
l
자주 사용하는 타입은 아래에 따로 표시됩니다.
주의 : ID가 대문자로 표시되지만 소문자로 입력해야 합니다.
하드디스크 타입을 RAID로 변경
fdisk /dev/sdb
t
fd
# raid는 ID가 fd임을 확인했으므로 fd를 입력합니다.
하드디스크 정보 한번에 확인하기
fdisk -l /dev/sd[b-e]
3. RAID 구축하기
RAID 패키지 설치
dnf install -y mdadm
RAID 만들기
mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sdb1 /dev/sdc1
# md0이라는 이름의 RAID0 생성(level)
# device는 2개가 들어가며 해당 device 이름은 /dev/sdb1, /dev/sdc1
# level값에 따라 레이드 종류를 설정할 수 있습니다.
만들어진 RAID 확인
cat /proc/mdstat
mdadm --detail /dev/md0
4. 파일시스템 생성
mkfs.xfs /dev/md0
# md0 레이드를 xfs 타입의 파일시스템으로 생성
5. 마운트
mkdir /R0
mount -t xfs /dev/md0 /R0
# /R0 폴더를 생성해 xfs 타입의 md0 레이드와 마운트
lsblk로 확인하면 무슨 레이드에 포함되어 있고
어디에 마운트 되어 있는지 확인할 수 있습니다.
6. 자동 마운트 설정
vi /etc/fstab
RAID 명령어
장애선언
mdadm /dev/md1 -f /dev/sdf1
# md1 레이드의 sdf1 파티션이 장애가 발생했다고 선언
mdadm --detail /dev/md1로 확인한 결과
sdf1 파티션이 장애(faulty) 상태로 출력됩니다.
레이드에서 파티션 삭제
mdadm /dev/md1 -r /dev/sdf1
# md1 레이드의 sdf1 파티션을 삭제
레이드에 새 파티션 추가
mdadm /dev/md1 -a /dev/sdh1
# md1 레이드에 sdh1 파티션을 추가
mdadm --detail /dev/md1을 한 결과
md1은 RAID1방식의 레이드이므로
새 파티션을 추가하면 자동으로 기존 데이터들이 백업됩니다.
스페어 만들기
HDD 5개를 RAID1 방식으로3개는 미러링, 2개는 스페어로 만들고 싶은 경우
# 레이드 생성 및 미러링, 스페어 넣기
mdadm --create /dev/md1 --level=1 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1 --spare-devices=2 /dev/sde1 /dev/sdf1
# 파일 시스템 생성 (xfs형식)
mkfs.xfs /dev/md1
# 만든 RAID를 /R1 폴더에 마운트
mount -t xfs /dev/md1 /R1
# /dev/sdc1 파티션 장애 선언
mdadm /dev/md1 -f /dev/sdc1
mdadm --detail /dev/md1
하드에 장애가 생기면 자동으로 스페어 하드가
고장난 하드의 위치를 대신합니다.
# 고장난 하드 제거
mdadm /dev/md1 -r /dev/sdc1
mdadm --detail /dev/md1
실습
RAID 5 구축
HDD: 8개 (5개 RAID5, 3개 스페어)
RAID에 새로운 하드를 추가하면?
mdadm /dev/md55 -a /dev/sdj1
# md55 레이드에 sdj1 파티션 추가
mdadm --detail /dev/md55
새로운 파티션은 스페어로 들어가는것을 확인할 수 있습니다.
RAID5의 경우, 하드가 동시에 여러개 고장나면
복구가 되지 않을 수 있습니다.