Proxmox VE 스토리지 용어 이해하기 (LVM, LVM-Thin, Directory)

Proxmox VE 설치 후 파일시스템 용량이 이상하다

두 대의 PC에 Proxmox를 설치 한 후 뭔가 이상함을 느꼈다. 두 노드 중 하나의 노드에 256 GB 용량의 SSD 1개를 장착하고 설치했는데 Shell 접속을 한 다음 df -m 명령을 실행했는데 자동으로 구성된 파일시스템의 용량을 아무리 합산해봐도 256 GB가 아니었다.

18.5 GB, 3.6 GB, 68 GB, 18 GB, 1 GB, 3 GB와 짜투리 공간을 모두 합해도 110 GB 정도 밖에 되지 않는다. (df -m 에서 출력되는 1M-block 항목은 Mega Byte (MB)다. 나머지 140 GB의 공간은 어디에 있을까? 혹시 파티셔닝이 되지 않은 채 방치되어 있다고 하기에는 조금 이상했다.

Proxmox VE의 저장소 공간 종류

먼저 Proxmox에서 지원하는 저장소 공간의 종류를 이해해야 했다. Proxmox 관리자 콘솔에서 노드를 선택한 다음 “디스크” 메뉴로 가면 4개의 저장소 종류가 보인다.

Proxmox VE 콘솔의 디스크 구성 관리 화면
Proxmox VE 콘솔의 디스크 구성 관리 화면

각각 LVM, LVM-Thin, 디렉토리 그리고 ZFS가 보인다. 이 중에서 이해하기 조금 어려웠던 LVM, LVM-Thin, Directory에 대해 간단하게 살펴보면 다음과 같다.

LVM – Logical Volume Manager

리눅스에서 자주 볼 수 있는 Logical Volume Manager를 의미한다. 여러개의 물리적 디스크나 파티션을 볼륨그룹으로 묶에 관리할 수 있어 유연한 스토리지 관리를 가능하게 해주는 볼륨 관리시스템을 의미한다. 따라서 여러개의 디스크 또는 파티션을 하나의 관리단위로 묶게 되는데 그것을 볼륨그룹이라고 한다.

앞의 디스크 구성 관리 화면에서 256 GB의 SSD인 /dev/sda가 sda1, sda2, sda3 세 개의 파티션으로 분할되어 있고 그 중에서 sda3 파티션이 LVM으로 구성되어 있는 것으로 표시되어 있다. 그리고 다음 화면에서 pve 라는 볼륨그룹이 생성되어 있고 /dev/sda3가 볼륨그룹에 들어가 있음을 알 수 있다.

Proxmox의 LVM 구성 화면
Proxmox의 LVM 구성 화면

그리고 pve 볼륨 그럽에는 LV 즉 파일시스템으로 사용할 수 있는 로지컬 볼륨(LV)이 4개가 만들어져 있다는 것도 알 수 있다. 그 볼륨 4개 중 하나는 이 포스트의 가장 앞 화면 (df -m 명령 실행 화면)에서 보이는 /dev/mapper/pve-root 볼륨이다. 이 볼륨은 / (루트파일시스템)로 마운트 되어 있다. 그리고 나머지 세 개의 볼륨은 보이지 않는다. 다음에 설명할 다른 용도로 사용되고 있다.

LVM은 여기까지 이해하면 된다. 다음은 LVM-Thin 이다.


LVM-Thin

LVM에 의해 하나 이상의 파티션이나 디스크가 볼륨그룹으로 만들어지면 그 볼륨그룹에 파일시스템을 생성할 수 있는 볼륨이라는 공간을 만들게 된다. 일반적으로 64 GB의 볼륨을 생성하면 64GB의 파일시스템을 생성하게 되고 실제 저장된 파일이나 데이터가 없더라도 전체 공간만큼 미리 예약하게 되고 다른 볼륨이나 파일시스템에서 사용할 수 없다. (1 파일시스템은 1 개의 볼륨을 의미함)

하지만 LVM-Thin ( Thinpool) 기술을 사용해 볼륨을 생성을 생성하면 논리적으로만 공간을 할당하고 할당된 범위 내에서 실제로 사용하는 만큼의 공간만 볼륨에 할당할 수 있다. 즉 100 GB의 볼륨그룹에 50 GB의 용량을 갖는 볼륨 3 개를 생성할 수 있다는 의미다. 다만 지속적으로 세 개의 볼륨이 사용하는 공간의 합이 100GB를 넘기지 않도록 관리가 필요하다.

LVM-Thin은 당연히 공간 효율성이 좋고 확장성 또한 좋지만 내부적으로 관리가 복잡하며 갑작스런 성능저하의 가능성을 배제할 수 없다. Proxmox VE의 관리 콘솔의 디스크 메뉴 하위에 있는 LVM-Thin에 가면 최초 설치 후 기본적으로 생성되어 있는 data라는 볼륨을 볼 수 있다.

하지만 이렇게 생성되어 있는 볼륨인 data는 노드에 ssh 접속을 해도 df 명령으로는 확인할 수 없다. 대신 lvdisplay 라는 명령어를 사용하면 상세정보를 확인할 수 있다. 그리고 이 LVM-Thin 타입으로 생성되어 있는 볼륨에 VM생성 또는 CT생성으로 만든 가상머신 이미지 파일이 만들어진다.

LVM-Thin은 HDD나 SSD를 추가로 설치하여 필요한 만큼 더 생성하여 사용할 수 있다. 다음 화면은 SSD를 추가하고 디스크 메뉴에서 디스크를 초기화한 다음 LVM-Thin 메뉴에서 볼륨을 생성하는 화면이다.

LVM-Thin 볼륨은 생성한 가상머신 이미지가 저장되는 공간으로 사용되는 것이 일반적이다.


Directory (디렉토리)

256 GB의 SSH에 Proxmox VE를 기본 구성으로 설치하면 디렉토리 타입의 저장공간은 만들어지지 않는다. (Proxmox 8.2.2) 이 디렉토리는 일반적으로 가상머신의 이미지 파일을 업로드하고 보관하는 용도로 사용하게 된다. 별도로 만들어진 디렉토리가 없으면 기몬적으로 / (루트) 파일시스템에 업로드가 된다. 즉 디렉토리는 노드에 파일을 업로드하는 용도로 사용하는 것이 일반적이다.

추가로 SSD나 HDD를 설치하면 디렉토리를 생성할 수 있다. 디스크 메뉴에서 추가로 장착된 디스크를 선택하고 초기화한 다음 디렉토리 메뉴에서 디스크를 선택하여 생성하거나 볼륨그룹을 생성한 다음 볼륨그룹을 선택하여 디렉토리를 생성할 수 있다. 당연히 볼륨그룹을 만든 다음 LVM-Thin도 생성할 수 있다.

다음은 추가된 SSD를 디스크 메뉴에서 초기화한 다음 디렉토리 메뉴에서 디스크를 선택하여 디렉토리를 생성하는 화면이다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다