Linux / / 2024. 7. 4. 17:41

RAID

 

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의 경우, 하드가 동시에 여러개 고장나면

복구가 되지 않을 수 있습니다.

 

 

  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유