본문으로 바로가기

RAID 이론 및 실습

category 리눅스 2021. 2. 22. 02:41
반응형

RAID는 여러개의 하드디스크를 하나의 하드디스크 처럼 사용하는 방식이다. 비용을 절감하면서 신뢰성을 높이며 성능까지 향상 시킬 수 있다.

RAID 의 종류는 크게 하드웨어 RAID와 소프트웨어 RAID 로 나눌수 있다.

 

하드웨어 RAID

하드웨어 RAID 는 하드웨어 제조업체에서 여러 개의 하드디스크를 연결한 장비를 만들어 그 자체를 공급하는 것이다.

하드웨어 RAID 는 좀 더 안정적이고 각 제조업체에서 기술 지원을 받을 수 있기에 많이 선호하는 방법이다.

하지만 안정적이고 성능 좋은 제품은 상당히 고가다. 대부분의 경우 SA-SCSI 하드디스크를, 중저가는 SATA 하드디스크를 사용한다.

 

소프트웨어 RAID

고가 하드웨어 RAID의 대안으로, 하드디스크만 여러 개 있으면 운영체제에서 지원하는 방식으로 RAID를 구성하는 방법을 말한다. 하드웨어 RAID와 비교하면 신뢰성이나 속도 등이 떨어질 수 있지만, 아주 저렴한 비용으로 좀 더 안전하게 데이터를 저장할 수 있다는 점에서 적극 고려해 볼 수 있다.

 

RAID 레벨 

RAID는 기본적으로 구성 방식에 따라 Linear RAID , RAID 0, 1,2,3,4,5 의 일곱 가지로 분류할 수 있다.

주로 사용하는 방식은 Linear RAID, RAID 0, 1,5와 5의 변형인 6, 1과0의 혼합인 RAID 1+0 이다.

 

Linear RAID와 RAID 0

RAID 0와 Linear RAID의 공통점은 최소 두개이상의 하드디스크가 필요하다는 점이다.

저장하는 방식에서 차이가 있는데 Linear RAID는 순차적으로 저장을 한다. 예를들면 디스크를 세개 씩 장착하였다 하고 저장하는 방식을 살펴보면  "안녕하세요 김한길입니다." 를 저장 할 경우 1번째 하드디스크에 저장이 되며  처리하는 데이터가 다 처리가 안됐을 경우 다음 디스크를 사용하지 못한다. (1번째 디스크 > 2번째 디스크 > 3번째 디스크 등등 순차적으로.)

그와 달리 RAID 0는 한번에 세곳으로 나누어 "동시에" 데이터를 처리한다 1,2,3 번째 디스크에 "안녕하세요 김한길입니다"를 나누어 동시에 저장하므로 저장처리 속도가 상당히 빠르다 이렇게 동시에 여러 디스크에 저장하는 방식을 

스트라이핑 방식이라고 한다. 세곳의 디스크를 동시에 쓰므로 공간효율성도 좋다 100% 전부 사용할 수 있다.

 

단점은 이렇게 스트라이핑 방식으로 동시에 여러곳에 데이터를 저장한다면 하나의 디스크가 고장이 나버리면 그 데이터를 전부 잃어버리게 된다. 그러므로 RAID 0 의 방식은 빠른 성능을 요구하되, 혹시 전부 잃어버려도 큰 문제가  되지 않는 자료를 저장하는데 적절한 방식이라고 할 수 있다.  그리고 서로 용량이 다른 두개의 디스크를 결합 할 경우는 공간효율성이 떨어진다. 1TB 디스크와  3TB 디스크를 합쳤을 경우 1TB + 1TB = 2TB 밖에 사용하지 못한다는 단점이 있다.

이와 반대로

 

Linear RAID의 장점은 각 하드디스크의 용량이 달라도 전체 용량을 문제 없이 사용 할 수 있어 공간효율성이 100퍼라는 점이다. 

 

* RAID 0의 특징 : 처리 속도가 빠르다, 하지만 한개의 디스크가 망가질 경우 모든 데이터를 잃는다. 서로 다른 크기의 

디스크로 구성 했을 경우 공간효율성이 떨어진다.

* Linear RAID 의 특징 : 처리 속도가 다른것에 비해 느리다. 하지만 공간효율성이 100퍼센트 이며 데이터를 보존하는데에 0의 방식보다는 안전하다.

 

RAID 1:

RAID1 방식의 핵심은 "미러링"이다. 즉 똑같은 데이터를 2개의 디스크에 동시에 저장을 한다. 이렇게 하면 데이터의 안전성은 늘어나지만 그만큼 용량을 활용하는데에 있어선 비효율적 이다.

 

RAID 5:

RAID5는 RAID 0과 RAID 1의 방식들을 어느정도 포용한것이다. RAID5는 최소한 3개 이상의 하드디스크가 있어야 구성할 수 있으며 대부분 5개 이상의 하드디스크로 구성한다. 하드디스크에 오류가 발생하면 패리티를 이용해 데이터를 복구할 수 있다. 1개당 1TB 의 용량을 가진 10개의 하드디스크를 이용해 구성하였다면 N-1개의 저장효율을 보여주므로 9TB를 사용할 수 있다. 저장속도와 어느정도의 결함을 허용하는 방식을 사용하고자 할 때 RAID5 방식을 사용한다. 

 

 

리눅스에 실습을 해본다면 순서는 이렇게 된다.

1. vmware에 디스크 장착 

2. 각 디스크에 파티션 설정

3. 디스크 끼리 논리적으로 묶기 (RAID 설정)

4. RAID 디스크에 파일시스템 설치 후 원하는 디렉토리에 마운트

 

명령어 :  mdadm [옵션] 

--create 생성할 RAID 장치의 이름
--level RAID 레벨을 지정
--raid-devices RAID에 추가될 실제 장치의 파티션 지정
--detail 특정 장치의 상세 내역을 출력

 

 RAID 0 구성
Linear : 디스크를 배열 형태로 단순하게 연결시킨 구조
mdadm  --create  /dev/md/linear  --level linear  --raid-devices=2 /dev/sdb1 /dev/sdc1

Stripte : 데이터의 내용을 분산 저장하여 속도가 빠르다. but 안전성 down
mdadm  --create  /dev/md/stripe  --level stripe  --raid-devices=2 /dev/sdd1 /dev/sde1


  RAID 1 구성
mdadm  --create  /dev/md/mirror  --level mirror --raid-devices=2 /dev/sdf1 /dev/sdg1

  RAID 5 구성
mdadm  --create  /dev/md/raid5  --level=5 --raid-devices=3 /dev/sdh1 /dev/sdi1 /dev/sdj1

  RAID 구성 삭제
마운트 해제 후 
mdadm  --stop  [RAID 장치명]
mdadm  --zero-superblock  [파티션 장치명]


  RAID에서 디스크 새로 추가
mdadm --manage [RAID 장치명] --add [추가할 디스크 파티션명]

 

반응형