LVM이란 Logical Volume Manager의 약자로 논리 볼륨 관리자라는 뜻이다. 우리가 사용하는 물리적인 (하드)디스크 여러 개를 논리적인 디스크으로 할당하여 유연하게 관리할 수 있게 해준다.
예를 들어, 처음 설치할 때 /home 파티션에 5GB를 할당했다. 그러고 나서 이 파티션을 늘려주려면 운영체제를 다시 새로 설치한 다음 파티션을 다시 할당해줘야 하는 반면 LVM을 이용하면 그런 과정을 거치지 않고 /home 파티션 크기를 늘려줄 수 있다. 반대로 필요없는 어떤 파티션이 있다면 이것을 줄여 어떤 필요한 다른 파티션에 사용할 수도 있다. 파티션 뿐만 아니라 하드 디스크를 추가해 해당 파티션의 용량을 늘릴 수도 있다. LVM은 이렇게 유연하게 파티션을 이용할 수 있어 매우 유용하다.
해당 설명에 대한 이해를 좀 더 돕기 위하여 다음 그림들을 보도록 하자.
해당 그림에서 보이듯이 500G 하드디스크가 있는데 1TB 하드디스크를 추가하고 싶다. LVM을 사용하지 않는다면 일단 500G 하드디스크를 1TB 하드디스크로 교체해줘야 한다. 그러기 위해서는 500G에 저장된 데이터를 먼저 백업하고 500G 하드디스크를 umount시킨 후 1TB 하드디스크를 다시 mount시키고 백업했던 데이터를 불러오는 등의 복잡한 과정을 거쳐야 한다. 그리고 총 늘어난 용량을 보면 500G -> 1TB 즉, 500G가 늘어난 것을 알 수 있다.
이번엔 LVM을 이용한 경우를 보자. 상황은 똑같이 1TB 하드디스크를 추가하고 싶다. LVM을 이용하면 500G 하드디스크를 umount 시킬 필요없이 바로 추가해서 사용할 수 있다. 물론 나름대로의 설치과정이 있지만 하드디스크를 umount시키고 다른 하드디스크를 다시 mount시키고 이럴 필요가 없다. 그리고 1TB가 그대로 추가된 것이기 때문에 늘어난 용량도 500G -> 1.5TB 즉, 1TB가 늘어난 것을 알 수 있다. LVM을 이용하지 않은 경우와 비교했을 때 LVM을 이용한 경우가 과정도 덜 복잡하고 추가된 용량도 더 많음을 확인할 수 있다.
이제 LVM의 전체적인 구조를 보도록 하자.
1. 파티션(Partition)
하나의 하드디스크에 대해 영역(구역)을 나누는 것을 말한다. fdisk 명령어로 파티션을 설정할 수 있다.
2. 물리 볼륨(PV, Physical Volume)
물리 볼륨은 각각의 파티션을 LVM으로 사용하기 위해 형식을 변환시킨 것으로 해당 파티션을 물리볼륨을 만들어주면 LVM은 디스크를 하나의 물리볼륨으로 간주하게 되어 볼륨그룹에 포함시킬 수 있게 된다.
3. 볼륨 그룹(VG, Volume Group)
각 물리 볼륨을 그룹으로 설정한다. 여러 개의 물리 볼륨을 하나의 그룹으로 만들 수도 있고 1개의 물리 볼륨을 하나의 그룹으로 만들수도 있으며 예를 들어, 5개의 물리 볼륨이 있다고 할 때 2개를 하나의 그룹, 3개를 또 하나의 다른 그룹 등 이런 식으로 유동적으로 만들 수 있다. 밑의 그림도 참고하길 바란다.
4. 논리 볼륨(LV, Logical Volume)
볼륨 그룹에서 나눈 파티션이 논리 볼륨이라고 생각하면 된다. LVM을 이용해 크기를 확장 및 축소할 수 있고 이 부분을 사용자가 사용하게 된다.
5. 파일 시스템
논리 볼륨을 디스크에서 사용하기 위해 사용할 논리볼륨을 파일시스템으로 만들어준다.
정리하면 LVM은 각 디스크에 먼저 파티션을 설정한 후 각각의 파티션들을 물리볼륨으로 만든다. 그 다음 이 물리볼륨들을 볼륨그룹으로 묶고 이 그룹에서 다시 논리 볼륨으로 나눠준 후 파일시스템으로 만들어 사용하는 것이다. 다음 포스팅에는 이 내용들을 실제로 적용해보자. 필자는 서버가 따로 없어 VM에서 진행할 것이다.
참고 블로그 : http://sgbit.tistory.com/12
(그림이나 내용을 여기서 많이 참고했습니다.)