4GPU Server
8GPU Server
HGX Server
2GPU Workstation
4GPU Workstation
Compact AI
10GPU Server
Cloud
Open Source
NVIDIA
HCI
Backup
MLOps
HW/SW 유지보수
AS
● 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은 유연성과 운영체제에서 볼륨을 효과적으로 관리하는 데에 많은 도움을 주지만, 이러한 단점을 고려하여 사용해야 합니다.
이전글
