서버 리눅스 LVM 개념 및 만들어보기
서버 리눅스 LVM 개념 및 만들어보기
LVM은 Logical Volume Manager의 약자로... 단어의 의미에서도 알 수 있듯이 [논리 하드디스크 관리자]를 말하고요. 이 녀석의 역할은 여러 개의 하드디스크를 하나로 묶은 후에 그걸 상황에 따라서 다양하게 공간을 재분배하는 역할을 합니다.
예를 들어 2T와 4T의 하드디스크를 하나의 공간으로 묶은 후에 총 6T의 공간을 1T, 3T, 1T, 1T로 다시 나눠서 사용할 수 있게 해줍니다. LVM과 관련된 용어 몇 가지만 살펴보고 직접 만들어보겠습니다.
LVM 용어
물리 볼륨 : /dev/sda1, /dev/sdb1, /dev/sdc1 등 파티션 자체를 의미합니다.
볼륨 그룹 : 각각의 파티션(물리 볼륨)을 하나로 묶어서 하나의 공간으로 만든 걸 말하고요.
논리 볼륨 : 하나로 만든 볼륨 그룹을 다시 1개 이상으로 나눈 것을 말합니다.
실습을 해보죠. VMware에 2T, 3T라고 가정하고 2G, 3G의 하드디스크 두 개를 추가하겠습니다. (VMware에서 하드디스크 추가하는 방법을 잘 모르시면 다음 글을 참고해서 추가해보세요. http://kd3302.tistory.com/972)
▼ 이제 가상머신을 부팅해서 하드디스크들을 사용하기 위해서 파티션 생성 등 사전 작업을 하고 LVM을 구현해보겠습니다. 먼저 이 녀석을 구현하기 위해서 관련 패키지부터 설치를 합니다.
▼ 참.. 그리고 앞에서 추가한 두 개의 하드디스크가 제대로 장착되었는지 확인해봅니다. 아직 파티션을 나누지 않았기 때문에 /dev/sdb /dev/sdc까지만 만들어진 걸 확인할 수 있네요.
▼ 이제 이 녀석들의 파티션을 할당해보는데요. 이 과정은 앞에서 많이 해봤기 때문에 따로 정리하지 않고 그림으로 대신하고 넘어갑니다. 그런데 여기서 차이점이 하나 보이네요. 앞에서 RAID를 만들어 볼때는 파일 시스템 유형을 fd로 했었는데 LVM은 8e로 설정을 해줘야 하는 차이점이 있습니다. (똑같은 방법으로 sdc도 진행할게요.)
▼ 같은 방법으로 두 개 모두 파티션을 할당했으니 확인해봅니다.
▼ 다음 단계는 생성된 파티션을 물리적인 볼륨으로 생성하는 과정인데요. pvcreate 명령어를 사용합니다. 아래 그림처럼 경고 메시지가 떠서 당황했는데 이건 무시해도 된다고 합니다.^^;
▼ 이제 만들어진 두 개의 물리 볼륨을 하나로 묶어서 볼륨 그룹을 생성해보는데요. vgcreeate 명령어를 사용하면 됩니다. 그리고 역시 경고 메시지가 출력되는데 무시해도 되고요. Volume grout "aaa"가 만들어진 걸 확인할 수 있습니다.
▼ 좀 더 자세히 들여다보기 위해서는 아래 그림처럼 vgdisplay 명령어를 실행하면 되고요. 볼륨 그룹의 이름과 그 크기를 확인할 수 있습니다. 2G + 3G로 만들었으니 당연히 5G가 되겠죠?
▼ 5G의 공간이 만들어졌으니 이걸 1G, 3G, 1G로 나눠볼게요. 먼저 1G짜리 공간을 확보하기 위해서 아래 그림처럼 lvcreate 명령어와 크기 이름 등을 설정하면 됩니다. 즉 5G의 공간을 확보하고 있는 aaa안에 1G짜리 bbb 공간을 만드는 작업입니다.
▼ 같은 방법으로 나머지 3G, 1G도 순서대로 만들어봅니다. 그런데 중간에 문제가 발생하는군요. 앞에서 하드를 추가할 때 정확히 5G로 만들었으니 1, 3, 1로 분배하면 문제가 없을 줄 알았는데 3G까지는 제대로 만들어지다가 마지막 1G에서 공간이 조금 부족해버리네요. ㅎ 그래서 0.9G로 만들었습니다.
▼ 제대로 분배가 됐는지 확인해보고 다음 단계로 넘어갑니다.
▼ 다음으로는 이 세 개의 공간의 파일시스템을 생성합니다.
▼ 이제 이 녀석들을 마운트 할 디렉토리를 만들고 각각 마운트를 시켜주겠습니다. 먼저 세 개의 디렉토리를 만들고요.
▼ 각각의 디렉토리에 마운트를 시켜줍니다.
▼ 문제없이 제대로 마운트 됐는지 확인해보고요.
▼ 마지막으로 시스템이 재부팅돼도 자동으로 마운트 되도록 fstab 파일에 다음과 같이 추가를 해주고 마무리하면 됩니다.
이렇게 해서 논리 하드 디스크이 관리자인 LVM의 개념을 알아보고 구현을 해봤습니다. 수고하셨어요.