리눅스 노트정리

SERVER RAID1, 5 만들기

차케요 2018. 6. 7. 13:44

SERVER RAID1, 5 만들기

 

지난 글에서 레이드의 개념과 Linear RAID, RAID0을 만들어봤는데요. 오늘은 RAID1과 5의 장단점을 살펴보고 그것들을 만들어보려고 합니다. 만드는 과정은 앞에서 해봤던 것들과 똑같기 때문에 RAID 생성 과정만 자세히 살펴보고 초기화 과정 등 기본 작업은 기본적인 내용들만 정리하면서 넘어가도록 할게요. 혹시 이 글을 보는 분들이 있다면 아래 글들을 참고하시면 될 거예요.

 

RAID 개념

RAID0 만들기

 

이번 글에서는 먼저 RAID 1과 5의 특징을 살펴보겠습니다.

 

1. RAID1의 특징

이 녀석의 핵심은 똑같은 데이터를 두 곳(두 개의 하드디스크)에 각각 나눠서 저장을 하는 방식입니다. 한쪽에 12345를 저장한다면 다른 한 쪽에도 똑같이 12345가 저장되는 형식으로 어느 한쪽의 하드가 상태가 안 좋아져도 다른 쪽에 똑같은 데이터가 있기 때문에 그 안전을 보장받을 수 있겠죠? 이것을 [결함 허용]이라고 하는데 그 저장공간은 두 배가 소요되기 때문에 공간 효율성은 떨어집니다. 그렇기 때문에 정말.. 엄청... 많이 중요하고 절대 없어져서는 안 될 데이터를 저장할 때 사용하는 게 좋을 거 같습니다.

 

 

2. RAID5의 특징

이 방식을 구현하기 위해서는 최소한 3개 이상의 하드디스크가 있어야 하는데요. 보통은 5개 이상을 사용한다고 합니다. 그리고 문제가 발생하면 패리티(Parity)를 이용해서 복구를 하는 방식인데요. 데이터를 저장할 때마다 하드 중 하나를 비워두고 데이터를 저장해서 어느 하나가 문제가 발생했을 때 다른 하드의 데이터를 바탕으로 소실된 것을 유추할 수 있는 방식인데요. 제 머리 속에 정리된 대로 정리하다 보니 말이 어렵네요. ㅎ

 

▲ 그림처럼 다섯 개의 하드에 데이터를 저장할 때 순서대로 하나씩을 비워놓습니다. 그리고 사용할 패리티를 정해놓는데요. 홀수 패리티를 사용한다고 가정해보죠. 즉, 오른쪽으로 숫자들의 합을 더했을 때 홀수가 나오면 되기 때문에 E에는 1, D에도 1, C에도 1, B에는 0이 들어가야겠죠.

 

▲ 이렇게 각각의 패리티 값이 정해질 것입니다. 이 상태에서 만약에 C 하드가 고장이 나서 그 안에 있던 데이터가 손실됐다고 가정해볼게요.

 

 ▲ 이런 불상사가 생겨도 C에 있던 값을 유추할 수 있겠죠? 쭉~ 더해서 홀수가 되야 하기 때문에 0, 1, 1, 1이 있었다는 것을 알 수 있고 그 값을 복원할 수 있는 방식이 RAID5입니다.

 

초보가 공부하면서 정리하는 글이라 깊이가 없네요.^^; 여하튼 기본 개념을 정리해봤으니 이것들을 직접 만들어보겠습니다.

 

3. SERVER RAID 1, 5 만들기

이번에도 역시 가상머신에 하드디스크를 추가해서 만들어 볼 건데요. RAID1을 위한 하드 두 개와 RAID5를 위한 하드 3개를 추가하겠습니다. (앞글에서 했던 내용이니까 그 과정은 생략하고 넘어갈게요.)

 

▼ 이제 리눅스를 실행시켜 이것들이 제대로 추가됐는지 확인해봅니다.

 

 

▼ 다음으로는 파티션을 생성해야겠죠? /dev/sdb 파티션 하는 과정만 아래 그림처럼 정리하고 나머지는 똑같은 방법으로 후다닥 만들겠습니다.

 

▼ 똑같은 과정을 거쳐서 다섯 개의 하드디크스에 각 한 개씩의 파티션을 만든 상태입니다.

 

▼ 이제 sdb1과 sdc1을 묶어서 RAID1을 만들고 나머지 세 개(sdd1, sde1, sdf1)를 묶어서 RAID5를 만들도록 하겠습니다.


 

▼ 다음으로는 생성된 md1과 md5를 포맷합니다.

 

▼ 이제 이 녀석들을 마운트 할 디렉토리를 생성하고 각각 마운트를 시키겠습니다.

 

▼ 지금까지의 작업이 제대로 됐는지도 확인해봐야겠죠? df 명령어를 실행해봅니다.

▲ 모두 제대로 됐군요. 위 그림에서 md1의 크기가 왜 1G이고 md5는 2G 인지는 아시겠죠? 앞에서 개념 정리할 때 정리했듯이 1번은 1G짜리 두 개에 각각 똑같은 내용이 저장되기 때문에 실제로 사용되는 공간은 1G 인거고요. md5는 1G짜리 하드디스크 3개 중에서 하나는 패리티 정보에 사용되기 때문입니다. 만약 10개의 하드를 사용한다면 하나 빠지니까 9G를 사용할 수 있겠죠?

 

 

▼ 이제 마지막으로.... 리눅스 시스템이 재부팅될 때 이것들이 항상 마운트 되도록 하기 위해서 /etc/fstab 파일을 수정하겠습니다.

 

▼ 참... 그리고 앞에 글에서는 여기까지만 진행을 했었는데요. 우분트 리눅스를 사용할 때는 이 부분에 버그가 좀 있어서 한가지 작업을 더 해줘야 하더라고요. 먼저 mdadm --detail --scan을 실행해서 나타나는 ARRAY 목록을 복사합니다.

 

▼ 그리고 /etc/mdadm/mdadm.conf 파일을 열고 붙여넣기 합니다. 이때 중간쯤에 있는 name=server:1과 name=server:5는 삭제를 한 후 저장을 하고요.

 

▼ 마지막으로 변경된 내용을 적용하기 위해서 다음과 같이 업데이트를 해주면 마무리가 됩니다.

 

이렇게 해서 서버의 여러 개 하드디스크를 하나로 묶어서 사용하는 RAID1과 RAID5의 개념을 알아보고 만들어봤습니다. 수고하셨어요.