4.3. 논리 볼륨 크기 조정
LVM(Logical Volume Manager)을 사용하면 저장된 데이터에 영향을 주지 않고 필요에 따라 논리 볼륨(LV)의 크기를 조정할 수 있습니다.
4.3.1. 선형 논리 볼륨 확장
lvextend
명령을 사용하여 선형(thick) LV 및 해당 스냅샷을 확장할 수 있습니다.
사전 요구 사항
- 관리 액세스.
절차
볼륨 그룹에 LV를 확장할 수 있는 충분한 공간이 있는지 확인합니다.
# lvs -o lv_name,lv_size,vg_name,vg_size,vg_free LV LSize VG VSize VFree LogicalVolumeName 1.49g VolumeGroupName 30.75g 29.11g
선형 LV를 확장하고 파일 시스템의 크기를 조정합니다.
# lvextend --size +AdditionalSize --resizefs VolumeGroupName/LogicalVolumeName
additional Size 를 LV에 추가할 공백으로 바꿉니다. 기본 측정 단위는 메가바이트이지만 다른 단위를 지정할 수 있습니다. VolumeGroupName 을 볼륨 그룹의 이름으로 교체합니다. LogicalVolumeName 을 thin 볼륨의 이름으로 바꿉니다.
검증
선형 LV가 확장되었는지 확인합니다.
# lvs -o lv_name,lv_size LV LSize NewLogicalVolumeName 6.49g
4.3.2. thin 논리 볼륨 확장
lvextend
명령을 사용하여 thin 논리 볼륨(LV)을 확장할 수 있습니다.
사전 요구 사항
- 관리 액세스.
절차
씬 풀에 추가할 데이터에 충분한 공간이 있는지 확인합니다.
# lvs -o lv_name,lv_size,data_percent LV LSize Data% MyThinPool 20.10g 3.21 ThinVolumeName 1.10g 4.88
thin LV를 확장하고 파일 시스템의 크기를 조정합니다.
# lvextend --size +AdditionalSize --resizefs VolumeGroupName/ThinVolumeName
additional Size 를 LV에 추가할 공백으로 바꿉니다. 기본 측정 단위는 메가바이트이지만 다른 단위를 지정할 수 있습니다. VolumeGroupName 을 볼륨 그룹의 이름으로 교체합니다. ThinVolumeName 을 thin 볼륨의 이름으로 바꿉니다.
검증
thin LV가 확장되었는지 확인합니다.
# lvs -o lv_name,lv_size,data_percent LV LSize Data% MyThinPool 20.10g 3.21 ThinVolumeName 6.10g 0.43
4.3.3. 씬 풀 확장
thin 논리 볼륨의 가상 크기는 씬 풀의 물리적 용량을 초과하여 과도하게 프로비저닝할 수 있습니다. 공간이 부족하지 않도록 하려면 씬 풀의 용량을 모니터링하고 주기적으로 확장해야 합니다.
data_percent
메트릭은 현재 씬 풀이 사용하는 할당된 데이터 공간의 백분율을 나타냅니다. metadata_percent
지표는 메타데이터를 저장하는 데 사용되는 공간의 백분율을 반영합니다. 이는 씬 풀 내의 매핑을 관리하는 데 중요합니다.
이러한 메트릭을 모니터링하는 것은 효율적인 스토리지 관리를 보장하고 용량 문제를 방지하는 데 중요합니다.
LVM은 필요에 따라 데이터 또는 메타데이터 용량을 수동으로 확장하는 옵션을 제공합니다. 또는 씬 풀의 확장을 모니터링하고 자동화할 수 있습니다.
4.3.3.1. 수동으로 씬 풀 확장
LVM(Logical Volume Manager)은 데이터 세그먼트, 메타데이터 세그먼트 또는 씬 풀을 수동으로 확장하는 옵션을 제공합니다.
4.3.3.1.1. 씬 풀 확장
lvextend
명령을 사용하여 thin 풀을 확장할 수 있습니다.
사전 요구 사항
- 관리 액세스.
절차
사용된 데이터 및 메타데이터 공간을 표시합니다.
# lvs -o lv_name,seg_type,data_percent,metadata_percent LV Type Data% Meta% ThinPoolName thin-pool 97.66 26.86 ThinVolumeName thin 48.80
thin 풀을 확장합니다.
# lvextend -L Size VolumeGroupName/ThinPoolName
thin pool의 새 크기로 Size 를 바꿉니다. VolumeGroupName 을 볼륨 그룹의 이름으로 교체합니다. ThinPoolName 을 thin 풀 이름으로 교체합니다.
데이터 크기가 확장됩니다. 필요한 경우 메타데이터 크기가 확장됩니다.
검증
thin 풀이 확장되었는지 확인합니다.
# lvs -o lv_name,seg_type,data_percent,metadata_percent LV Type Data% Meta% ThinPoolName thin-pool 24.41 16.93 ThinVolumeName thin 24.41
추가 리소스
-
lvs(8)
,lvextend(8)
매뉴얼 페이지 -
LVs -o help
4.3.3.1.2. 씬 풀 데이터 세그먼트 확장
lvextend
명령을 사용하여 data_percent
세그먼트를 확장할 수 있습니다.
사전 요구 사항
- 관리 액세스.
절차
data_percent
세그먼트를 표시합니다.# lvs -o lv_name,seg_type,data_percent LV Type Data% ThinPoolName thin-pool 93.87
data_percent
세그먼트를 확장합니다.# lvextend -L Size VolumeGroupName/ThinPoolName_tdata
Size 를 데이터 세그먼트의 크기로 바꿉니다. VolumeGroupName 을 볼륨 그룹의 이름으로 교체합니다. ThinPoolName 을 thin 풀 이름으로 교체합니다.
검증
data_percent
세그먼트가 확장되었는지 확인합니다.# lvs -o lv_name,seg_type,data_percent LV Type Data% ThinPoolName thin-pool 40.23
추가 리소스
-
lvs(8)
,lvextend(8)
매뉴얼 페이지 -
LVs -o help
4.3.3.1.3. 씬 풀 메타데이터 세그먼트 확장
lvextend
명령을 사용하여 metadata_percent
세그먼트를 확장할 수 있습니다.
사전 요구 사항
- 관리 액세스.
절차
metadata_percent
세그먼트를 표시합니다.# lvs -o lv_name,seg_type,metadata_percent LV Type Meta% ThinPoolName thin-pool 75.00
metadata_percent
세그먼트를 확장합니다.# lvextend -L Size VolumeGroupName/ThinPoolName_tmeta
Size 를 메타데이터 세그먼트의 크기로 바꿉니다. VolumeGroupName 을 볼륨 그룹의 이름으로 교체합니다. ThinPoolName 을 thin 풀 이름으로 교체합니다.
검증
metadata_percent
세그먼트가 확장되었는지 확인합니다.# lvs -o lv_name,seg_type,metadata_percent LV Type Meta% ThinPoolName thin-pool 0.19
추가 리소스
-
lvs(8)
,lvextend(8)
매뉴얼 페이지 -
LVs -o help
4.3.3.2. 씬 풀 자동 확장
thin_pool_autoextend_threshold
및 thin_pool_autoextend_percent
구성 매개변수를 모니터링하고 설정하여 씬 풀 확장을 자동화할 수 있습니다.
사전 요구 사항
- 관리 액세스.
절차
thin 풀이 모니터링되는지 확인합니다.
# lvs -o lv_name,vg_name,seg_monitor LV VG Monitor ThinPoolName VolumeGroupName not monitored
dmeventd
데몬을 사용하여 thin pool 모니터링을 활성화합니다.# lvchange --monitor y VolumeGroupName/ThinPoolName
VolumeGroupName 을 볼륨 그룹의 이름으로 교체합니다. ThinPoolName 을 thin 풀 이름으로 교체합니다.
-
root
사용자로 선택한 편집기에서/etc/lvm/lvm.conf
파일을 엽니다. thin_pool_autoextend_threshold
및thin_pool_autoextend_percent
행의 주석을 제거하고 각 매개변수를 필수 값으로 설정합니다.thin_pool_autoextend_threshold = 70 thin_pool_autoextend_percent = 20
thin_pool_autoextend_threshold
는 LVM이 씬 풀을 자동 확장하기 시작하는 백분율을 결정합니다. 예를 들어, 이를 70개로 설정하면 LVM이 70% 용량에 도달하면 LVM에서 씬 풀을 확장하려고 합니다.thin_pool_autoextend_percent
는 임계값에 도달할 때 씬 풀을 확장해야 하는 백분율을 지정합니다. 예를 들어 20으로 설정하면 씬 풀이 현재 크기의 20% 증가합니다.- 변경 사항을 저장하고 편집기를 종료합니다.
lvm2-monitor
를 다시 시작하십시오.# systemctl restart lvm2-monitor
추가 리소스
-
lvs(8)
,lvchange(8)
,dmeventd(8)
도움말 페이지
4.3.4. 논리 볼륨 축소
LV의 크기가 감소되면 사용 가능한 논리 확장 영역이 볼륨 그룹으로 반환되고 다른 LV에서 사용할 수 있습니다.
축소된 영역에 저장된 데이터가 손실됩니다. 계속하기 전에 항상 데이터를 백업하고 파일 시스템의 크기를 조정합니다.
사전 요구 사항
- 관리 액세스.
절차
논리 볼륨 및 해당 볼륨 그룹을 나열합니다.
# lvs -o lv_name,vg_name,lv_size LV VG LSize LogicalVolumeName VolumeGroupName 6.49g
논리 볼륨이 마운트된 위치를 확인합니다.
# findmnt -o SOURCE,TARGET /dev/VolumeGroupName/LogicalVolumeName SOURCE TARGET /dev/mapper/VolumeGroupName-NewLogicalVolumeName /MountPoint
/dev/VolumeGroupName/LogicalVolumeName 을 논리 볼륨의 경로로 바꿉니다.
논리 볼륨을 마운트 해제합니다.
# umount /MountPoint
/MountPoint 를 논리 볼륨의 마운트 지점으로 바꿉니다.
파일 시스템 오류를 확인하고 복구합니다.
# e2fsck -f /dev/VolumeGroupName/LogicalVolumeName
LV 및 파일 시스템의 크기를 조정합니다.
# lvreduce --size TargetSize --resizefs VolumeGroupName/LogicalVolumeName
TargetSize 를 LV의 새 크기로 바꿉니다. VolumeGroupName/LogicalVolumeName 을 논리 볼륨의 경로로 바꿉니다.
파일 시스템을 다시 마운트합니다.
# mount -o remount /MountPoint
/MountPoint 를 파일 시스템의 마운트 지점으로 바꿉니다.
검증
파일 시스템의 공간 사용량을 확인합니다.
# df -hT /MountPoint/ Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/VolumeGroupName-NewLogicalVolumeName ext4 2.9G 139K 2.7G 1% /MountPoint
/MountPoint 를 논리 볼륨의 마운트 지점으로 바꿉니다.
LV의 크기를 확인합니다.
# lvs -o lv_name,lv_size LV LSize NewLogicalVolumeName 4.00g