본문 바로가기

해봐야 안다.OTL/Linux

[3] RAID(software)

(Redundant Array of Inexpensive Disks)

- 여러 디스크를 한 디스크처럼 사용하도록 함으로써 비용을 절감하면서도 신뢰성을 높이고, 또한 성

능을 향상시키기 위한 저장 장치를 의미

 

종류

- 하드웨어 RAID : 안정적, 제조업체로부터 기술 지원이 가능 가격이 비쌈

 

- 소프트웨어 RAID : 운영체제에서 지원하는 방식으로 RAID구성하는 방법

하드웨어 방식에 비해 신뢰성, 속도 등이 떨어짐 반면, 저렴한 비용으로 좀더 안전한 데이터

의 저장이 가능

 

RAID레벨

0~5, 6개로 분류

주로 RAID0, 1,5와 RAID5의 변형인 5+1, 6 그리고 RAID0과 1의 혼합인 RAID0+1, RAID10을

많이 사용

RAID0구축

raid 타입으로 fd코드를 줘서 생성한다.

/dev/sdc도 마찬가지로 파티션생성

=====================================================================

1. 먼저 기존의 /dev/md* 파일이 있는지 확인한다.

2. mknod로 md0를 생성(b : block device, 9 : md장치의 주번호, 0 : 0번째 장치를 의미)

3.raid0을 mdadm으로 생성

4. mdadm –D --scan으로 확인

5. md0을 ext3로 포맷

6. /proc/mdstat 을 확인

=====================================================================

/etc/mdadm.conf 파일이 없으므로, 생성해줘야한다. redirection으로

그 다음 재부팅한다.

=====================================================================

재부팅시 올라오는 md0가 올라오는 것을 확인

=====================================================================

부팅이 된 후 md0을 다시 확인한 후 mount해준다.

=====================================================================

부팅시 자동으로 md0을 마운트되게 하려면 /etc/fstab을 수정한다.

=====================================================================

RAID1 구축

- RAID1은 mirror방식으로 데이터를 저장할 때 두 디스크에 똑같이 저장되는 것이다.

만약 12Byte를 저장하면 그 두배인 24Byte가 소요된다. 즉 두배의 용량이 소모된다.

두 디스크 중 하나가 고장나도 데이터는 손상되지 않는다 (Fault-tolerance: 고장감내)

파티션생성 역시 fd코드로 생성

다른 /dev/sdc 장치도 마찬가지로 생성한다.

=====================================================================

두번째 RAID 장치이므로 "mknod /dev/md1 b 9 1 로 해준다.

나머진 앞의 설명과 겹침으로 생략

=====================================================================

/etc/mdadm.conf에 md1의 값을 저장 시켜준다.

파일을 보면 좀 전에 저장했던 md0의 값과 md1의 값을 확인할 수 있다.

mdadm.conf파일이 없음 재부팅시 md 장치가 안 올라온다.

재부팅한다

=====================================================================

부팅 시 md1이 올라왔는지 확인한다.

=====================================================================

mdadm –D(detail) --scan으로 확인

=====================================================================

마운트 시킨 후 확인한다.

=====================================================================

 

부팅 때마다 /dev/md1 장치를 자동 마운트시키려면 /etc/fstab을 수정

=====================================================================

 

3.3 RAID5 구축

- 최소 구성이 3(데이타)+1(패리티) : 실제 사용가능한 디스크 3개 전체용량의 75%사용가능

/dev/sdf /dev/sdg /dev/sdh 3개의 디스크로 구성한다.

=====================================================================

 

mknod /dev/md5 b 9 5로 생성

나머진 위의 다른 Raid방식과 같으니 생략

=====================================================================

/etc/mdadm.conf에 /dev/md5장치 정보 추가 저장

=====================================================================

 

재부팅 시 md5장치 확인

부팅 후 /dev/md5마운트

=====================================================================

마운트 확인

부팅 시마다 자동 마운트하려면 /etc/fstab 수정

=====================================================================

RAID6 구축

- 2개의 패리티 사용(2개의 디스크고장 시 복구 가능)

RAID5보다 공간효율 낮음.

- 구축시에 앞서 앞서 했던 RAID디스크를 제거하거나 Vmware의 스냅샷을 이용해 되돌린다.

 

파티션 잡는다. 다른 디스크(/dev/sdb ~ h)도 같은 방법으로 한다.

=====================================================================

mknod /dev/md6 b 9 6으로 해줌.

=====================================================================

 

/etc/mdadm.conf 파일에 /dev/md6의 정보를 저장 후 재부팅한다.

=====================================================================

정상적으로 /dev/md6 7개의 드라이브와 올라온 것을 확인할 수 있다.

=====================================================================

다 정상이다.

마운트해준 후 확인한다.

=====================================================================

부팅 시 자동 마운트되게 하려면 역시 /etc/fstab파일 수정

=====================================================================

RAID6 2개의 디스크 고장 시 데이터가 망가지지 않는 지 확인 해보자

마운트된 디렉토리에 파일하나를 생성한다.

=====================================================================

"Edit virtual machine settings"을 이용해 현재 disk3(SCSI 0:2)과 disk5(SCSI 0:4)를 제거한 상태다.

=====================================================================

 

 

디스크 2개가 고장(제거)났지만,

데이터가 그대로 있는 것을 확인할 수 있다.

=====================================================================

RAID10, RAID0+1 비교

공통점

- 용량이 같다.

- 속도가 같다

차이점

- 기술적으로 RAID10이 복잡 반면 RAID0+1은 단순

- RAID10 안정성 높음 / RAID0+1 상대적으로 낮음.

두 방식은 RAID0 과 1의 조합으로 이루어진다는 것에는 차이가 없다.

즉 속도와 안정성을 합쳐둔 것

 

RAID0+1

- RAID0을 먼저 구성한 다음 RAID1으로 미러링을 하는 구조

출처: http://www.raids.co.uk/raid_images/

 

RAID10

RAID1로 구성한 것을 RAID0으로 묶는 구조

 

< 안정성의 차이 >

RAID0+1에서 RAID1[RAID0[1,2,3,4,5], RAID0[6,7,8,9,10]] 중 1번 디스크가 고장난다면

RAID0은 하나라도 문제가 생기면 전체가 중지되기 때문에 꺠진다.

반면에 RAID10은 RAID0[RAID1[1,2], RAID1[3,4], RAID1[5,6], RAID1[7,8], RAID1[9,10]]

에서 1번 디스크가 고장나면 RAID1[1,2]가 RAID1(mirroring)이기 때문에 동시에 문제가

생기지 않는한 중지되지 않는다.

따라서, RAID10이 확률적으로 훨씬 안정적임.

 

< 복구의 차이 >

RAID0+1의 경우 A1 디스크가 고장난 경우 A1 디스크를 교체 후에 REBUILD를 하게 되면 오른쪽RAID0에서 왼쪽 RAID0으로 통째로 복사하게 된다.

RAID10의 경우 A1 디스크가 깨진 경우 교체 후 REBUILD를 하면 오른쪽A1 디스크에서 A1 디스크로 복사하게된다. 시간이 엄청 단축된다.

<출처:2cpu.co.kr>

참고 : 뇌를 자극하는 Redhat Fedora, 한빛미디어