Worker Node
Storage Node
Single Node (Tower)
4GPU Server
8GPU Server
10GPU Server
나라장터 등록제품
2GPU Workstation
4GPU Workstation
Name Node
Data Node
가상화
HCI
Network Storage
Data Server
NVMe over Fabrics
SAN Storage
나라장터 등록제품
WEB Server
WAS Server
고성능 DB
타워형서버
나라장터 등록제품
1CPU Workstation
2CPU Workstation
나라장터 등록제품
Cloud
Open Source
NVIDIA
HCI
Backup
MLOps
● Logical Volume(LV)을 효율적이고 유연하게 관리하기 위한 기능입니다.
● 여러 물리 디스크를 하나의 볼륨 그룹으로 만든 후, 다시 논리적 볼륨으로 나누어서 사용합니다.
● 유연한 용량
논리 볼륨을 사용하는 경우 장치 및 파티션을 단일 논리 볼륨에 집계할 수 있습니다. 이 기능을 사용하면 파일 시스템을 단일 대규모 장치처럼 여러 장치에 걸쳐 확장할 수 있습니다.
● 편리한 장치 이름 지정
논리 스토리지 볼륨은 사용자 정의 및 사용자 정의 이름으로 관리할 수 있습니다.
● 크기 조정할 수 있는 스토리지 볼륨
기본 장치를 다시 포맷하고 다시 분할하지 않고도 간단한 소프트웨어 명령으로 논리 볼륨을 확장하거나 논리 볼륨을 줄일 수 있습니다
? 디스크의 용량이 더 필요할 때 기존의 쓰던 디스크를 그대로 두고, 새로운 디스크를 추가 장착하여, Volume Grub에 추가한 뒤 사용하면 편하게 용량을 확장할 수 있습니다.
● 과정: PV구성 → VG구성 → LV구성
● OS: Centos7
● DISK: 50GB *3
CentOS 7에서는 LVM 패키지가 기본으로 설치되어 있지만, 만약 없다면 다음 명령으로 설치할 수 있습니다.
# yum install lvm2
디스크 추가 및 파티션 생성
현재 추가한 디스크 정보를 확인합니다. [실제 디스크명은, 시스템에 따라 다를 수 있습니다.] # fdisk -1 추가한 디스크 파티션을 생성해 줍니다. [저는 아래와 같이 /dev/sdb, /dev/sdc, /dev/sdd 3개의 디스크를 추가하였습니다] # fdisk /dev/sdb # fdisk /dev/sdc # fdisk /dev/sdd 각각의 디스크들을 파티션 설정을 해줍니다. # fdisk /dev/sdb
Device Boot | Start | End | Blocks | Id | System |
/dev/sdb1 | 2048 | 104857599 | 5242777683 | 83 | Linux |
Device Boot | Start | End | Blocks | Id | System |
/dev/sdc1 | 2048 | 104857599 | 52427776 | 83 | Linux |
Device Boot | Start | End | Blocks | Id | System |
/dev/sdd1 | 2048 | 104857599 | 52427776 | 83 | Linux |
설정된 파티션을 물리 볼륨(PV)으로 설정
# pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1
하나 이상의 물리 볼륨(PV)을 하나의 볼륨 그룹(VG)으로 설정
# vgcreate (VG이름) (PV) (예시) # vgcreate VG0 /dev/sdb1 /dev/sdc1 /dev/sdd1 VG확인 방법 [생성된 VG를 확인할 수 있습니다.] # vgdisplay
-- Volume group ---
VG Name | VG0 |
System ID | |
Format | lvm2 |
Metadata Areas | 3 |
Metadata Sequence No | 1 |
VG Access | read/write |
VG Status | resizable |
MAX LV | 0 |
Cur LV | 0 |
Open LV | 0 |
Max PV | 0 |
Cur PV | 3 |
Act PV | 3 |
VG Size | < 149.99 GiB |
PE Size | 4.00 MiB |
Total PE | 38397 |
Alloc PE / Size | 0 / 0 |
Free PE / Size | 38397 / < 149.99 GiB |
VG UUID | WIgfbu-7RaH-XjAQ-HEzi-PUYS-0Cca-x2ea1K |
볼륨그룹(VG)에서 원하는 용량으로 논리 볼륨(LV)을 생성합니다.
# lvcreate -L (원하는 용량) -n (LV이름) (생성된 VG) (예시) # lvcreate -L 50GB -n maya VG0 아래는 생성된 LV를 확인하는 방법입니다. # lvdisplay
--- Logical volume ---
LV Path | /dev/VG0/maya |
LV Name | maya |
VG Name | VG0 |
LV UUID | w97PnQ-IseL-CngM-M6hu-Iwz4-cwCR-sT134F |
LV Write Access | read/write |
LV Creation host, time | localhost.localdomain, 2024-01-10 15:38:27 +0900 |
LV Status | available |
# open | 0 |
LV Size | 50.00 GiB |
Current LE | 12800 |
Segments | 2 |
Allocation | inherit |
Read ahead sectors | auto |
- currently set to | 8192 |
Block device | 253:2 |
Filesystem | Size | Used | Avail | Use% | Mounted on |
devtmpfs | 6.2G | 0 | 6.2G | 0% | /dev |
tmpfs | 6.3G | 0 | 6.3G | 0% | /dev/shm |
tmpfs | 6.3G | 8.6M | 6.2G | 1% | /run |
tmpfs | 6.3G | 0 | 6.3G | 0% | /sys/fs/cgroup |
/dev/mapper/centos-root | 28G | 1.5G | 27G | 6% | / |
/dev/sda1 | 1014M | 137M | 878M | 14% | /boot |
tmpfs | 1.3G | 0 | 1.3G | 0% | /run/user/0 |
/dev/mapper/VG0-maya | 50G | 33M | 50G | 1% | /data |
LV생성 후, VG 용량 확인 방법은 아래와 같습니다.
# vgdisplay
---- Volume group ---
VG Name | /dev/VG0 |
System ID | |
Format | lvm2 |
Metadata Areas | 3 |
etadata Sequence No | 2 |
VG Access | read/write |
VG Status | esizable |
MAX LV | 0 |
Cur LV | 1 |
Open LV | 1 |
Max PV | 0 |
Cur PV | 3 |
Act PV | 3 |
VG Size | < 149.99GiB |
PE Size | 4.00 MiB |
Total PE | 38397 |
Alloc PE / Size | 12800 / 50.00 GiB -----------------(남은 용량 확인) |
Free PE / Size | 25597 / < 99.99 GiB |
Free VG UUID | WIgfbu-7RaH-XjAQ-HEzi- PUYS -0Cca-x2ea1K |
[논리 볼륨을 삭제하면 해당 볼륨에 저장된 데이터가 사라지므로 신중히 진행해야 합니다.] 삭제할 LV마운트 해제 (필수)
# umount /dev/
논리 볼륨 삭제
# lvremove /dev/
볼륨 그룹에서 삭제
# vgremove
물리 볼륨에서 삭제
# pvremove /dev/sdd1 여기서 sdd1은 PV의 경로에 따라 적절히 변경해 줍니다.
? LVM은 설정 및 조작에 대한 오류로 인해 데이터 손실이 발생할 수 있으며, 복구가 어렵습니다. 각 볼륨그룹과, 논리볼륨이 일부 공간을 소비하여 디스크 공간 낭비가 있습니다. LVM은 유연성과 운영체제에서 볼륨을 효과적으로 관리하는 데에 많은 도움을 주지만, 이러한 단점을 고려하여 사용해야 합니다.