리눅스 볼륨관리 LVM(Logical Volume Management)은 물리적 디스크를 논리적 볼륨으로 구성하여 디스크 공간을 효율적으로 관리하는 기술입니다. LVM을 사용하면 여러 물리 디스크를 하나의 논리적 볼륨으로 묶거나, 하나의 물리 디스크를 여러 개의 논리적 볼륨으로 분할할 수 있습니다.
볼륨 그룹(VG) 내에서 논리 볼륨(LV)을 만들고 Ext4 파일 시스템을 설정하는 과정을 안내합니다.
더불어 VG의 확장, 축소, 그리고 LV의 확장에 대해서도 다룰 것입니다.
리눅스 디스크 확인 및 파티션 생성
리눅스 디스크 블록 디바이스를 확인
# lsblk
fdisk
를 사용하여 디스크를 파티션
# fdisk /dev/sda
p -> n -> e -> enter -> +800M -> t -> 8e -> p -> w
위 명령을 실행하면 /dev/sda 디스크에 800MB 크기의 ext4 파일 시스템을 가진 e 파티션이 생성됩니다.
파티션 테이블을 정보 업데이트 및 확인
# partprobe
# lsblk
물리 볼륨 (PV) 및 볼륨 그룹 (VG) 생성
물리 볼륨과 볼륨 그룹을 생성
# pvcreate /dev/sda6 /dev/sda7
# vgcreate -s 32M eng /dev/sda6 /dev/sda7
위 명령을 실행하면 eng 볼륨 그룹을 생성합니다. -s 옵션은 논리 볼륨의 기본 크기를 지정합니다. 여기서는 32MB로 지정했습니다.
볼륨 그룹 확인
# vgs
# vgdisplay eng
vgs, vgdisplay eng 명령을 실행하면 eng 볼륨 그룹의 정보를 확인할 수 있습니다.
논리 볼륨 (LV) 생성 및 파일 시스템 설정
논리 볼륨 LV 생성 및 파일시스템 EXT4 포맷
“project1″이라는 논리 볼륨을 만들고 Ext4로 포맷합니다.
# lvcreate -l 20 -n project1 eng
# mkfs.ext4 /dev/eng/project1
lvcreate 명령을 실행하면 eng 볼륨 그룹에 20개의 물리 확장 32MiB 크기의 project1 논리 볼륨을 생성합니다.
mkfs.ext4 명령을 실행하면 project1 논리 볼륨을 ext4 파일 시스템으로 포맷합니다.
마운트 포인트 만들고 /etc/fstab 설정
마운트 포인트를 만들고 /etc/fstab
파일을 업데이트합니다.
# mkdir /redhat
# blkid /dev/eng/project1
blkid 명령을 실행하면 project1 논리 볼륨의 UUID를 가져옵니다.
다음 라인을 /etc/fstab
에 추가합니다.
# vi /etc/fstab
UUID="blkid_UUID_기재" /redhat ext4 defaults 0 1
파일 시스템을 마운트합니다.
# mount -a
# mount
mount -a 명령을 실행하면 /redhat 마운트 지점에 project1 논리 볼륨을 마운트합니다.
mount 실행하여 볼륨 마운트 정보를 확인합니다.
설정을 확인합니다.
# df -Th
# lvdisplay /dev/eng/project1
lvdisplay 명령을 실행하면 project1 논리 볼륨의 세부 정보를 확인할 수 있습니다.
볼륨 그룹 확장, 축소 및 논리 볼륨 확장
볼륨 그룹 VG 확장
새로운 디스크(/dev/vdb)를 추가했다고 가정하면 볼륨 그룹을 확장합니다.
# lsblk
# fdisk /dev/vdb # 새로운 파티션을 만들고 유형을 8e(Linux LVM)로 설정
# partprobe
# pvcreate /dev/vdb4
# vgextend eng /dev/vdb4
볼륨 그룹 VG 축소
데이터를 대상 PV로 이동하고 볼륨 그룹을 축소합니다.
# pvmove /dev/vdb4
# vgreduce eng /dev/vdb4
# pvremove /dev/vdb4
논리 볼륨 LV 확장
논리 볼륨과 파일 시스템을 확장합니다.
# vgextend eng /dev/sda7
# lvextend -L +300M /dev/eng/project1 -r
# resize2fs /dev/eng/project1
XFS 파일 시스템 확장 축소
# lvextend -L +300M /dev/eng/project1
# xfs_growfs /redhat
LVM 장점
- 디스크 공간을 효율적으로 관리할 수 있습니다.
- 논리 볼륨의 크기를 유연하게 변경할 수 있습니다.
- 물리 디스크를 추가 또는 제거하여 논리 볼륨의 크기를 확장 또는 축소할 수 있습니다.
LVM 단점
- LVM에 대한 이해가 필요합니다.
- LVM을 사용하면 파일 시스템을 포맷할 때마다 논리 볼륨의 크기를 지정해야 합니다.
LVM 사용 주의 사항
- 논리 볼륨을 생성하기 전에 볼륨 그룹에 충분한 여유 공간이 있는지 확인해야 합니다.
- 논리 볼륨을 확장하려면 먼저 볼륨 그룹을 확장해야 합니다.
- 논리 볼륨을 축소하려면 먼저 볼륨 그룹에서 데이터를 이동해야 합니다.
리눅스 partprobe
파티션 테이블 정보 업데이트
partprobe
는 블록 장치의 파티션 테이블을 검색하고 다시 읽는 Linux 유틸리티입니다. 즉, 파티션 테이블을 변경한 후 커널의 파티션에 대한 정보를 업데이트합니다.
partprobe
가 할 수 있는 몇 가지 작업은 다음과 같습니다.
- 파티션 테이블을 변경한 후 다시 읽습니다.
fdisk
와 같은 도구를 사용하여 파티션을 추가, 삭제 또는 크기 조정한 경우 유용합니다. - 새로 생성된 파티션을 감지합니다. 새 저장 장치를 핫 플러그하거나 다른 운영 체제에서 파티션을 생성한 경우 유용합니다.
- 커널의 파티션 테이블 정보를 업데이트합니다. 커널의 파티션에 대한 정보가 오래된 경우 유용합니다.
partprobe
는 다음 옵션을 사용하여 사용할 수 있습니다.
-s, --summary
: 장치 및 파티션에 대한 요약을 표시합니다.-d, --details
: 장치 및 파티션에 대한 자세한 정보를 표시합니다.-v, --verbose
: 자세한 출력을 표시합니다.-f, --force
: 파티션 테이블을 변경하지 않았더라도 다시 읽도록 강제합니다.
partprobe
를 사용하려면 원하는 옵션과 함께 명령을 실행하기만 하면 됩니다. 예를 들어 모든 장치의 파티션 테이블을 다시 읽으려면 다음 명령을 실행합니다.
partprobe
장치 및 파티션에 대한 요약을 표시하려면 다음 명령을 실행합니다.
partprobe -s
장치 및 파티션에 대한 자세한 정보를 표시하려면 다음 명령을 실행합니다.
partprobe -d
자세한 출력을 표시하려면 다음 명령을 실행합니다.
partprobe -v
파티션 테이블을 변경하지 않았더라도 다시 읽도록 강제하려면 다음 명령을 실행합니다.
partprobe -f
partprobe
는 파티션 테이블을 관리하는 데 유용한 도구입니다. 파티션 테이블을 변경한 후에는 partprobe
를 사용하여 커널의 파티션 정보를 업데이트하는 것이 좋습니다.
요약
이 포괄적인 가이드를 통해 리눅스 시스템에서 LVM을 사용한 논리 볼륨의 생성 및 관리를 수행하여 시스템의 유연성과 확장성을 보장합니다.