교재: "국가공인" 리눅스마스터 1급 ((주)수퍼유저, 저자 박성수, 강기봉, 정우영)


국가공인 리눅스마스터 1급

저자
박성수강기봉 지음
출판사
수퍼유저코리아 | 2014-01-13 출간
카테고리
컴퓨터/IT
책소개
국가공인 리눅스마스터 1급 교재이다. 리눅스마스터 1급 1차, ...
가격비교

 



Part1. 리눅스 실무의 이해

Chapter 02. 리눅스 시스템의 이해

2.1 리눅스와 하드웨어

2.1.1 하드웨어의 이해

2.1.2 하드웨어의 선택



방대한 책범위와 시험기간이 얼마 안남은 관계로 전략변경

- 빠른 시일내에 책 훑기

- 문제를 풀면서 내용 정리


- 업데이트 할 목록

-> RAID, SCSI


- 업데이트: 15-08-27


- http://weroot.co.kr/solaris/643  (RAID 장점, 그림 삽입)

- http://smsinfo.tistory.com/176  (본문의 예)




- RAID(Redundant Array of Independent)

- 여러 대의 하드디스크가 있을 때 동일한 데이터를 다른 위치에 저장하는 방법. 입출력 작업이 균형을 이루게 되어 전체적인 성능 향상

- 여러 개의 디스크를 배열하여 속도의 증대, 안전성의 증대, 효율성, 가용성의 증대를 하는데 쓰이는 기술


- RAID 장점

1. 운용 가용성, 데이터 안정성 증대

- RAID 1(mirror) 또는 RAID5 의 경우 볼륨에 포함되어 있는 디스크 중 하나의 디스크에 장애가 발생하더라도 남은 디스크가 백업 역할이 가능 

(이로 인해 데이터 손실로 인해 복구하는데 소요되는 시간 없이 운용 지속 가능)

2. 디스크 용량 증설 용이

- RAID 0(Concatenate)의 경우 기존의 사용하던 디스크를 제외한 여분의 디스크가 하나 있을 경우 기존 사용하던 디스크의 데이터를 보존한 상태로 여분의 디스크와 하나의 볼륨으로 구성하여 사용 가능

3.  디스크 I/O 성능 향상

- RAID 0(Stripe)의 경우 데이터를 구성된 디스크들에게 나눠 저장하므로 I/O 성능 향상의 효과 있음



- RAID 종류

1. RAID 0: RAID 0에는 두 가지 방식이 있음 (필요 드라이브 최소 2개 이상)

- Concatenate(concat) 방식

- 두 개 이상의 디스크에 데이터를 순차적으로 쓰는 방법

- 장점: 디스크 기본 공간이 부족할 때 데이터는 보존하며 여분의 디스크를 볼륨에 포함하여 용량 증설 가능

- 단점: RAID 0의 특성상 디스크 중 하나의 디스크라도 장애 발생시 복구 어려움. 오류검출 지원안함


concat.gif 


- Stripe 방식

- 흔히 RAID 0 이라고 하면 Stripe 방식을 말하는 것으로 생각하면 됨

- 하나의 데이터는 Stripe 기술을 이용하여 여러개의 같은, 일정한 크기로 나뉘게 됨. 이 하나하나의 조각을 Stripe Unit이라함

- 장점: 데이터를 사용할 때 I/O를 디스크 수 만큼 분할하여 쓰기 때문에 I/O 속도가 향상 되고 I/O Controller나 I/O board 등 I/O를 담당하는 장치가 별도로 장착된 경우 더큰 속도 향상 볼 수 있음

- 단점: Stripe를 구성할 시 기존 데이터는 모두 삭제.RAID 0구성 시 중요데이터는 반드시 백업!

- 예) "리눅스마스터" 라는 단어를 2개의 드라이브로 구성된 RAID 0에 저장한다면 

 하나의 드라이브는 "ㄹㄴㄱㅅㅁㅅㅌ"라는 자음을 저장하고

 나머지 드라이브는 "ㅣㅜㅡㅏㅡㅓ"라는 모음을 저장하게 된다.

 그렇기 때문에 저장하거나 불러오는 속도는 빠르지만 에러 발생 시 완전한 데이터를 불러오지  못하게 됨. 즉 안정성이 낮은 구성


stripe.gif



2. RAID 1 (mirror)

- 적어도 2개의 디스크가 사용되며, 하나의 하드디스크에 기록되는 모든 데이터가 나머지 하나의 하드디스크에 복사되는 방법으로 아예 똑같기 때문에 mirroring이라고 함 (필요 드라이브 최소 2개 이상)

- 장점: 볼륨 내 디스크 중 하나의 디스크만 정상이어도 데이터는 보존되어 운영이 가능하기 때문에 가용성이 높음, 안정성이 상당히 우수함

- 단점: 용량이 절반으로 줄고(2개의 경우) 쓰기 속도가 느려짐


mirror.gif 


3. RAID 2 

- 디스크들간의 Stripe를 사용하며, 몇몇 디스크들은 에러를 감지하고 수정하는 ECC 정보를 가짐

- 기록용 드라이브와 데이터 복구용 드라이브를 별도로 두는데 4개 하드디스크에 기록하기 위해서는 3개의 부가 데이터를 기록해야 하기 되기 때문에 효율성 측면에서 거의 사용하지 않음

- RAID 0처럼 Stripe 방식이지만 RAID 0 은 에러체크를 하지 않는 반면 에러체크와 수정을 할 수 있도록 Hamming Code 사용하는 것이 특징



4. RAID 3,4 (필요 드라이브 최소 3개 이상)

- RAID 3, 4는 RAID 0, 1의 문제점을 보완하기 위한 방식

- 기본적으로 RAID 0과 같은 Stripe 방식 사용을 사용하여 성능 보완 및 추가로 에러 체크 및 수정을 위한 패리티 정보를 별도의 디스크에 따로 저장함

- 3은 Byte 단위로 데이터를 저장하는 반면, 4는 블록 단위로 저장한다는 차이점이 있음

-> 블록 단위로 저장할 경우 작은 파일의 경우 한번의 작업으로 데이터를 읽을 수 있기 때문 성능상의 장점이 있음. 또한 3은 동기화를 거쳐야 되기 때문에 3보다는 4를 많이 사용함

-> 데이터가 저장되어 있는 드라이브에 장애가 발생할 경우 패리티 정보를 이용하여 복구를 할 수 있으나, 정작 패리티 정보가 저장되어 있는 하드디스크에 장애가 발생하면 복구 불가능

-> 또한, 패리티 하드디스크에 병목현상이 생겨 속도가 저하될 수 있음

- RAID 0 의 구성에 백업용 드라이브를 하나 더 달아서 안정성을 확보한 구성


5. RAID 5 (필요 드라이브 최소 3개 이상)

- 레벨 3과 레벨 4의 단점을 보완한 방식으로, 패리티 정보의 저장을 전달하는 하드디스크 대신 모든 하드디스크에 패리티 정보를 분산 저장

-> 쓰기(Write)에는 패리티 정보가 분산되어 저장되기 때문에 Level 3,4의 단점인 병목은 줄여주지만 읽기(Read)에서는 사방에 흩어져 있는 패리티 정보를 갱신하며 일게 되기 때문에 성능 저하 있음

- RAID 3,4와 달리 패리티 정보가 저장된 디스크가 따로 없어 패리티 디스크 고장과 같은 문제에서 자유롭고 실제 서버/워크스테이션에서 가장 많이 사용하는 방식

- 여러개의 디스크를 Stripe 방식으로 볼륨을 구성하고, 패리티 정보를 사용하여 데이터의 정합성 제공

- 장점: 데이터의 정합성의 유지 및 RAID 1에 비해 용량 활용성 높음

- 단점: 데이터를 쓸 때마다 패리티 연산을 해야하고, 이로 인해 부하 발생

(쓰기 작업이 많은 서버의 경우 RAID 1구성이 나을 수 있음)


raid5.gif 


6. RAID 6 (필요 드라이브 최소 4개 이상)

- RAID 5와 같은 개념이지만 다른 드라이브 간에 분포되어 있는 2차 패리티 정보를 넣어 2개의 하드에 문제가 생겨도 데이터를 복구할 수 있음. 즉 RAID 5보다 데이터 안정성 고려

하드를 스트라이핑으로 묶었기 때문에 RAID 0+1이나 RAID 10(1+0)보다 성능은 더 높고 신뢰성도 우수 하지만 패리티 정보를 2중으로 저장하면서 읽기 성능은 RAID 5와 비슷하지만 쓰기 작업 구현이 아주 복잡해서 일반적으로 잘 사용하지 않음


7. RAID 7

- 하드웨어 컨트롤러에 내장되어 있는 운영체제를 사용하여 속도가 빠른 버스를 통한 캐시, 독자적인 컴퓨터의 특성을 포함.(잘 사용안함..)


8. RAID 0+1, RAID 1+0 (필요 드라이브 최소 4개 이상)

- RAID 0과 1의 복합 구성. 즉 0의 Stripe 방식과 1의 Mirror의 기능이 합쳐진 것으로, 분산 저장을 통한 성능 향상, 데이터의 안정성 또한 보장 할 수 있음

-> 그러나 여전히 전체 용량의 50%만 사용할 수 있으며, 비용이 많이 드는 문제점 발생

0+1.gif 


- 성능은 비슷하지만 가용성 측면에서는 RAID 1+0이 높아 많이 사용함


1+0.gif 

- RAID 1+0은 RAID 0+1과 비슷한 개념이지만 구성순서의 차이가 있음. mirror를 먼저 구성한 뒤 두개의 볼륨을 Stripe로 묶는 순서로 구성

- 예)

1. DISK 1,2(혹은 3,4)에 장애 발생의 경우             사용 가능 O           사용 불가 X
2. DISK 1,3(혹은 2,4)에 장애 발생의 경우             사용 불가 X           사용 가능 O
3. DISK 1,4(혹은 2,3)에 장애 발생의 경우             사용 불가 X           사용 가능 O


1 의 경우 RAID 0+1 3,4에 1,2의 데이터를 그대로 보존하고 있기 때문에 사용 가능 하지만 RAID 1+0은 1,2에 데이터가 없기 때문에 사용이 불가능

2과 3의 경우 RAID 0+1은 두개의 Stripe 볼륨에 멤버인 디스크가 하나 씩 장애가 발생하므로 볼륨 전체가 깨져서 사용이 불가능하나 RAID 1+0의 경우에는 mirror 에 멤버인 디스크에 장애가 발생하였으므로 데이터를 보존하고 있어 사용이 가능

-> 이로 인해 RAID 0+1은 가용성이 33.3%이지만 RAID 1+0은 66.6% 두배의 고가용성을 확보할 수 있는 장점이 있음

- 드라이브가 6개일 때

RAID 0+1은 RAID 0으로 구성된 드라이브들을 최종적으로 RAID 1로 묶는 것이라 각각 3개씩 하드 가 나눠지며, RAID 1+0은 2개씩 RAID 1으로 묶여있는 하드들이 RAID 0으로 구성됨  

RAID 0+1의 경우 1개의 하드만 고장나서 복구해도 다른 RAID 0 구성에서 나머지 하드까지 데이터 전체를 복구해야 하지만, RAID 1+0으로 만든 시스템은 고장난 하드가 하드 1개라고 하면 미러링으로 묶인 하드를 통해 데이터만 복구하면 되므로 실제로 운용하는데는 RAID 1+0 이 훨씬 유리 



- SCSI (Small Computer System Interface)

- 추후 업데이트 예정


+ Recent posts