운영체제/Linux

LVM에 대해서, LVM(Logical Volume Manager)이란? -- 아글아글IT

ahgle 2022. 11. 21. 16:03
728x90
반응형

오늘은 LVM에 대해서 알아보겠습니다.

LVM이란 무엇인 지, LVM은 왜 쓰는 지, 그리고 어떻게 설정하는 것인 지 용어와 함께 알아보겠습니다.

 

1. LVM이란? LVM의 특징

LVM은 Logical Volume Manager의 줄임말로, 논리적인 공간을 관리하고 만들수 있게 해주는 프로그램입니다. 여기서 중요한 것은 논리적인 공간 이라는 말의 의미입니다.

포스팅을 읽은 후에는 왜 논리적인 볼륨이라는 말이 중요한 지 아시게 될 것이라고 생각합니다.

 

 

보통 LVM을 설명하기 위해서는 기존에 디스크를 나누는 개념인 파티션에 대한 설명을 먼저 하는데요,

 

TIP

윈도우의 경우, 마운트를 자동으로 해줍니다.

16GB USB나, 500GB 외장하드를 USB포트를 통해 PC와 연결했다고 생각해봅시다.

디스크를 자동으로 인식(마운트)하여, C,D 드라이브 외 드라이브가 추가되죠?

리눅스는 이런 마운트를 반드시 수동으로 해주어야합니다.

 

기존의 파티션에 대해서 먼저 알아보겠습니다.

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048    84912127    41943040   83  Linux

sda 디스크의 경우 /dev/sda1, /dev/sda2 두 개의 파티션으로 나뉘어 있는 것을 볼 수 있습니다.

 

전통적으로, 리눅스에서 저장 장치를 사용했던 방식은 위처럼 물리 디스크를 파티션이라는 단위로 나누어서 이를 특정 디렉터리에 마운트(연결)해서 사용하는 것입니다.

 

 

전통적인 파티션 구조

 

위 그림과 같은 전통적인 파티션 구조는 여러 단점이 존재했습니다. 만약, 특정 파티션(/home)에 용량이 가득 찼을 경우,

용량을 늘리기 위해 아래와 같은 절차를 필요로 했죠.

 

1. 추가 디스크 장착

2. 추가된 디스크에 파티션 생성 및 포맷

3. 새로운 마운트포인트(/home2) 생성 및 추가한 파티션을 마운트

4. 기존 /home파티션을 언마운트(umount, 연결 해제)

5. /home2를 /home으로 마운트.

 

새로운 디스크를 만들고, 디스크에 파티션을 나누고, 특정 파일시스템으로 포맷하고... 기존 데이터를 새로운 디스크에 옮기고, 기존 디스크는 umount하고, 신규 디스크에 다시 /home을 mount하고 ... 

 

딱 봐도 번거롭습니다. 

 

위와 같은 단점을 해소할 수 있는 것이 바로 LVM입니다.

LVM 기술을 통해서 용량이 부족한 공간은 새로운 디스크로 갈아 끼우는 것이 아닌, 유연하게 용량을 늘려서 사용할 수 있게 된 것이죠.

 

LVM의 장점 및 특징은 아래와 같습니다.

 

1.여러 개의 디스크 공간을 합쳐서 하나처럼 사용할 수 있음

2. 파티션 별 잔여 용량을 활용하기 위해

3. 기존 사용 파티션의 용량을 유연하게 늘릴 수 있음

 

LVM을 통해 서로 다른 디스크의 파티션을 합쳐서 만든 LV(Logical Volume)

 

 

위 그림을 보면, LVM을 통해 서로 다른 디스크의 파티션을 합쳐서, 새로운 디스크 공간을 만들어낸 것을 알 수 있습니다.

 

위에서 말씀드린 논리 공간이란 말이 조금 이해가 되시나요? 절대적인 공간이 아닌 나뉘어질 수도, 합쳐질 수도, 늘어날 수도, 줄어들을 수도 있는 공간이기 때문에 '논리적인' 공간이라는 것입니다.

 

 

2. LVM을 이용한 논리 공간 생성 과정 (PV, VG, LV, PE, LE 용어 파악과 함께)

이번에는 명령어들을 이용하여 논리 공간을 만들어보겠습니다.

 

전체적인 개념을 아래와 같습니다.

전체적인 lvm 구성 및 흐름

대략적인 흐름은 위 그림과 같습니다.

 

그럼 이번엔 그림 순서대로 간단하게 글로 정리해보겠습니다.

 

1. 기존 파일 시스템의 종류 변경 (시스템 Id  83 →8e)

파일시스템 사용 용도가 나뉘어져있고 용도에 맞는 Id를 가집니다. 이 때 8e는 LVM용 시스템 Id입니다. 파티션의 파일시스템 종류를 8e로 변경해주어야, 비로소 LVM용 파일시스템이 되어 LV(Logical Voulme)를 구성할 수 있게 됩니다.

2. PV 생성

사용하는 명령어는 pvcreate 입니다.

3. VG 생성

사용하는 명령어는 vgcreate 입니다.

4. VG 활성화

사용하는 명령어는 vgchange -a y 입니다.

5. LV 생성

사용하는 명령어는 lvcreate 입니다.

7. LV에 파일시스템 생성

운영체제에서는 사용하는 공간에 대해 적절한 파일시스템을 생성해주어야합니다. 공간만 만들어놓고 ,파일시스템 생성을 안해주면 그 공간을 사용 용도가 없어 쓸모없는 공간이 되는 것이기 때문에, 반드시 파일시스템을 생성해줍니다.

(파일시스템을 생성한다? 라는 개념이 이해가 되지 않을 경우, 그냥 할당된 공간에 사용을 위해 반드시 해주어야 하는 작업 정도로 이해하고 넘어가겠습니다)

8. LV마운트

이렇게 용도에 맞게 잘 만든 공간은, 디렉터리와 연결을 해서 사용하는 것이 리눅스의 특징입니다.

mount 명령어를 통해 디렉터리와 연결해주면 끝이 납니다.

 

3. 명령어 실습을 통해 부족한 감 잡기

이번에는 명령어 실습을 직접 진행하며, LV(Logical Volume)을 만들고, 이를 빈 디렉터리에 마운트까지 해보겠습니다.

(....시간 부족으로 다음 포스팅에 이어서 작성을 진행하겠습니다!)

 

 

 

The record makes me strong.

728x90