서버 구축 방법 RAID
서버 구축 방법 RAID
대용량의 데이터를 저장해야 하는 서버의 특성상 여러 개의 하드디스크를 추가해서 사용하게 되는데 이것들을 하나의 저장공간으로 묶어서 마치 하나의 볼륨인 것처럼 사용할 수가 있고요. 어떤 방식으로 묶느냐에 따라서 데이터의 안전성과 공간 이용의 효율성이 달라지게 됩니다. 이처럼 여러 개의 하드디스크를 하나처럼 사용할 수 있게 묶어주는 방식을 RAID라고 하며...
이 RAID의 종류에는 물리적으로 하드웨어 자체를 하나로 묶어버리는 방식이 있고 소프트웨어를 이용해서 여러 개의 하드디스크를 마치 하나처럼 묶어주는 형식이 있는데... 아직 공부하고 있는 상황이라서 잘은 모르지만 물리적으로 처리하는 건 상당한 비용이 들어간다고 하네요. 반면에 소프트웨어로 묶어주는 건 하드디스크의 비용만 들어가니 상대적으로 경제적이라고 합니다.
그리고 이렇게 소프트웨어로 여러 개의 하드를 묶어주는 RAID 방식으로는 Linear RAID, 0, 1, 5, 6, 1+0의 방식 등이 있는데 이것들을 하나씩 만들어보려고 하고요. 오늘은 Linear RAID의 특징을 간단하게 정리하고 가상머신에서 하드디스크를 추가한 후 실제로 묶는 과정까지 정리를 해보려고 합니다.
1. Linear RAID란?
이건 아주 단순합니다. 저처럼 서버를 공부하는 입장에서는 대부분 하나의 저장공간만(단순 볼륨)을 사용해도 충분하지만 만약 이 하나의 공간이 부족할 거 같으면 하드를 하나 더 추가한 후 첫 번째 공간에 이어서 데이터를 계속 저장할 수 있는 방식입니다. 즉, 첫 번째 공간이 모두 사용된다면 그 뒤에 이어서 두 번째 저장공간이 사용되는 거죠.
당연히 두 공간에는 서로 다른 데이터가 저장되겠죠? 앞에 것부터 채우고 이어서 두 번째거를 채우는 형식이라서 공간의 확장 정도로 생각하면 될 거 같네요.
2. 하드디스크 2개 추가하기
실습은.... 가상머신에 두 개의 하드디스크(각 1G씩)를 추가할 거고요. 이것들을 1TB라고 생각하고 진행할 겁니다. ㅎ1GB 이건 1TB 이건 그 과정은 똑같거든요.^^
그리고 가상머신에서 하드디스크를 추가하는 방식은 아래 글에서 정리를 해 놓았으니 혹시 이 글을 보시는 분들 중 참고하실 분들은 잠깐 둘러보시고요.
(아마 이 글을 제목으로 찾아서 보고 계시는 분들이라면 이 정도 과정은 바로 할 수 있을 거 같아서 따로 자세하게 정리하지 않고 넘어갑니다.^^)
아래 그림에서 알 수 있듯이 두 개의 하드를 추가했고요. 첫 번째 녀석의 virtual device node가 SCSI 0:1 이니 두 번째건 SCSI 0:2가 되겠죠? 그리고 SCSI 0:0에는 우분투 리눅스가 설치되어 있는 상태입니다.
이제 리눅스를 부팅해서 RAID로 묶기 전에.... 바로 앞에서 언급한 지난 글에서 진행했듯이 이 녀석들을 이용하기 위한 몇 가지 설정을 해주겠습니다. 먼저 하드가 제대로 추가됐는지부터 확인해볼게요.
▼ ls -l /dev/sd* 명령어로 확인해보니 제대로 추가된 걸 확인할 수 있구요.
이 녀석들에게 각각 하나씩의 파티션을 생성해주겠습니다. (역시 지난 글에서 알아봤듯이 이것들을 사용하기 위해서는 하나 이상의 파티션은 필수로 생성해줘야 합니다.)
3. 파티션 생성하기
▼ 파티션 생성 명령어인 fdisk /dev/sdb를 입력해서 첫 번째 녀석부터 파티션 지정을 해줍니다. 여기서 순서대로 입력하는 n(새로운 파티션 분할) > p(Primary 파티션 선택) > 1(파티션 번호 1번 선택) > 엔터(시작 섹터 번호_ 하나의 파티션만 생성할 거라서 비워두고 엔터) > 엔터(마지막 섹터 번호 _ 역시 하나의 파티션만 생성하기 때문에 그냥 엔터) > t(파일 시스템 유형 선택) > fd(Linux raid autodetect 유형) > p(설정한 내용 확인) > w(저장) 중에는 초보인 전 아직 잘 모르는 부분도 있지만 차차 익히기로 하고 일단 이렇게 하나의 파티션을 생성한 후 다음 단계를 진행합니다.
▼ 두 번째로 추가한 하드디스크인 sdc도 똑같이 파티션 생성을 해줘야겠죠? (위와 같은 과정이니 여기서는 생략하고 넘어갈게요.) 그렇게 두 개 모두 파티션을 생성했다면 다시 한 번 ls -l /dev/sd* 명령어로 그것들이 제대로 만들어졌는지 확인해봅니다. 파티션을 의미하는 /dev/sdb1과 /dev/sdc1이 생성된 걸 확인할 수 있습니다.
▼ 좀 더 깊게 들어가서 파티션의 상태까지 살짝 볼까요?
4. 서버 RAID 만들기
▼ 이제 이것들을 묶어서 하나로 사용할 수 있게 Linear RAID를 만들어볼 건데 그전에 이와 관련된 패키지 하나 후다닥 받을게요. (apt-get -y install mdadm)
▼ 준비가 됐으면 아래와 같이 RAID 생성 명령어를 이용해서 둘(/dev/sdb1, /dev/sdc1)을 묶어 /dev/md9라는 하나의 저장공간을 생성하겠습니다.
▲ 이해하는데 그리 까다로운 건 아닌 거 같죠? [첫 번째 빨간 박스 안의 내용은 /dev/md9라는 저장공간을 만드는데 그 형식은 linear이며 장치는 두 개를 합쳐서 만드는데 각각 /dev/sdb1과 /dev/sdc1이다.] 정도의 의미가 될 거 같고 두 번째는 이게 제대로 만들어졌는지 스캔하는 명령어입니다.
▼ 이제 새롭게 생성된 md를 사용하기 위해서 파일시스템(포맷)을 만들겠습니다.(mkfs.ext4 /dev/md9)
▼ 그리고 이 녀석을 마운트 할 디렉토리(linearRaid)도 하나 생성하고(mkdir /linearRaid) 마운트(mount /dev/md9 /linearRaid)를 시킨 후에 df 명령어를 이용해서 확인을 해보니 제대로 마운트 되었고 그 공간이 약 2GB 인걸 확인할 수 있습니다.
▼ 이렇게 마운트까지 진행했지만 시스템이 재부팅 되면 마운트가 해제되기 때문에 시스템 재부팅 후에도 바로 마운트 되도록 /etc/fstab 파일에 간단한 내용을 마지막으로 하나만 추가하겠습니다. gedit로 열어서 추가할게요.
▲ 다 됐네요.^^ 여기까지 진행하면 두 개의 하드디스크를 하나로 묶어서 사용할 수 있습니다. 그리고 이 녀석의 데이터 저장 방식은 앞에서도 언급했듯이 첫 번째 것이 모두 채워지면 이어서 두 번째 녀석이 채워지는 방식입니다. 때문에 만약 하나라도 고장이 나면 데이터 복원이 어렵다는 단점이 있지만 두 공간을 100% 활용할 수 있다는 장점도 있습니다. 하지만 중요한 데이터를 저장할 때는 이 방식은 좋지 않겠죠?
데이터의 중요성이나 공간의 활용도를 잘 선택해서 사용할지 결정을 해야 할 테고요. 좀 더 중요한 것들은 앞으로 하나씩 알아볼 방식 중에 선택해서 사용하면 됩니다. 그것들은 다음 글에 이어서 정리하기로 하고요. 앞에서 만든 md9라는 Linear Raid의 상태를 자세히 들여다보고 마무리하겠습니다. (mdadm --detail /dev/md9)
만들면서 설정했던 내용들이라 따로 정리할 내용은 없을 거 같네요.^^ 이렇게 해서 서버 구축 과정에서 여러 개의 하드디스크를 하나로 묶어서 사용하는 RAID 방식 중에서 첫 번째로 Linear RAID 만드는 과정을 정리해봤습니다. 다음 글에 이어서 다른 방식들도 하나씩 정리하도록 할게요. 수고하셨습니다.