📌LVM (Logical Volume Manager)
- 논리적 볼륨 관리자
- 디스크 파티션을 유연하게 관리할 수 있도록 도와주는 기술
- 확장성과 유연성이 뛰어난 저장소 관리 방법
- 디스크의 크기를 증가 or 감소 가능
💡기존의 파티션은?
- 디스크 크기를 변경하기 어려움
- 여러 개의 디스크를 하나처럼 사용할 수 없음
- 디스크 공간을 동적으로 관리하기 어려움
💡LVM을 사용하면?
- 여러 개의 물리 디스크(PV)를 하나의 논리적 볼륨(LV)으로 묶을 수 있음
- 디스크 크기를 동적으로 조정 가능(확장/ 축소 가능)
- 볼륨을 쉽게 이동 및 복사가 가능
💡 LVM의 기본 개념
1️⃣ PV (Physical Volume, 물리 볼륨)
- 실제 물리적 디스크 또는 디스크 파티션을 의미
- fdisk, parted 등을 사용해 디스크를 초기화한 후, pvcreate 명령어로 LVM에서 사용할 수 있도록 변환
2️⃣ VG (Volume Group, 볼륨 그룹)
- 여러 개의 PV(물리 볼륨)를 하나로 묶어서 관리하는 단위
- 디스크 용량을 논리적으로 확장 가능
3️⃣ LV (Logical Volume, 논리 볼륨)
- VG에서 특정 크기를 할당하여 만든 가상의 파티션
- lvcreate 명령어를 사용하여 생성 가능
- 파일 시스템(ext4, xfs 등)을 생성하여 마운트 가능
실습) 디스크를 3개 추가한다. 각각 1GB, 2GB, 3GB
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
Partition number (1-4, default 1):
First sector (2048-2097151, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-2097151, default 2097151):
Using default value 2097151
Partition 1 of type Linux and of size 1023 MiB is set
Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'
Command (m for help): p
Disk /dev/sdb: 1073 MB, 1073741824 bytes, 2097152 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x631c871f
Device Boot Start End Blocks Id System
/dev/sdb1 2048 2097151 1047552 8e Linux LVM
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
- 찾아볼 수 있음
- 8e: Linux LVM
- 패키지 검색
- 설치 목록 볼 수 있음
[root@PxE ~]# yum install -y lvm2
- 설치
[root@PxE ~]# pvcreate /dev/sdb1
[root@PxE ~]# pvcreate /dev/sdc1
[root@PxE ~]# pvcreate /dev/sdd1
- 물리디스크 PV로 선언
- 내가 만든 PV 목록
- myvg라는 볼륨그룹에 mylv1인 이름을 갖는 lv를 1GB 정도로 만들어주자
[root@PxE ~]# lvcreate --size 1G --name mylv1 myvg
Logical volume "mylv1" created.
[root@PxE ~]# lvcreate --size 1G --name mylv2 myvg
Logical volume "mylv2" created.
[root@PxE ~]# lvcreate --extents +100%FREE --name mylv3 myvg
Logical volume "mylv3" created.
- myvg의 남은공간 전부(+100%FREE) 할당하여 mylv3이라는 lv를 만들겠다.
- ivdisplay로 확인가능
- 내가 갖고있는 lv의 장치명 확인
mkfs.ext4 /dev/myvg/mylv1
[root@srv1 ~]# mkfs.ext4 /dev/myvg/mylv2
[root@srv1 ~]# mkfs.ext4 /dev/myvg/mylv3
# 파일시스템 생성
[root@srv1 ~]# mkdir /lv1
[root@srv1 ~]# mkdir /lv2
[root@srv1 ~]# mkdir /lv3
# 마운트 포인트 생성
[root@srv1 ~]# mount /dev/myvg/mylv1 /lv1
[root@srv1 ~]# mount /dev/myvg/mylv2 /lv2
[root@srv1 ~]# mount /dev/myvg/mylv3 /lv3
#마운트
실습) 디스크를 추가하여 VG와 LV를 늘려보자.
- 7GB짜리 디스크 추가
(vm에서 해도 상관없지만 실수로 했기 때문에 xshell로 넘어감)
- 볼륨그룹에 방금 만든 pv인 /dev/sde를 추가
- 추가된 사이즈와 기존에 이미 할당된 사이즈, 남은 공간 확인
- mylv2를5G로 재설정하겠음
- 사이즈 그대로임
- 파일 시스템에서는 늘어난 용량을 인지하지 못함
[root@PxE ~]# resize2fs /dev/myvg/mylv2
- 파일 시스템 리사이징
- 반영된 걸 확인 가능
실습) lv를 줄여보자
1. 마운트해제
[root@PxE ~]# umount /lv2
2. 파일시스템 체크
[root@PxE ~]# e2fsck -f /dev/myvg/mylv2
3. 줄일 용량 만큼 fs감소
[root@PxE ~]# resize2fs /dev/myvg/mylv2 2G
4. lvreduce 명령으로 사이즈 감소
[root@PxE ~]# lvreduce --size 2G /dev/myvg/mylv2
- 감소하는 만큼 용량안에 있는 데이터에 손실이 있을 수 있음이라고 알려줌
5. 다시 마운트
[root@PxE ~]# mount /dev/myvg/mylv2 /lv2
문제 1) mylv1을 2GB로 확장하고 mylv2는 1GB로 감소시킨 후 남은 VG공간 전체를 mylv3에 할당해 보세요
mylv1을 2GB로 확장
[root@srv1 ~]# lvextend --size 2G /dev/myvg/mylv1
[root@srv1 ~]# resize2fs /dev/myvg/mylv1
[root@srv1 ~]# umount /lv2
[root@srv1 ~]# e2fsck -f /dev/myvg/mylv2
mylv2는 1GB로 감소
[root@srv1 ~]# resize2fs /dev/myvg/mylv2 1G
[root@srv1 ~]# lvreduce --size 1G /dev/myvg/mylv2
[root@srv1 ~]# lvreduce --size 1G /dev/myvg/mylv2
[root@srv1 ~]# mount /dev/myvg/mylv2 /lv2
VG공간 전체를 mylv3에 할당
[root@srv1 ~]# lvextend --extents +100%FREE /dev/myvg/mylv3
문제 2) 현재 사용 중인 서버의 최상위 디렉터리 용량을 10G 정도 늘려보세요.
- xfs 파일시스템의 경우엔 xfs_growfs라는 명령으로 리사이징을 하셔야 함
[root@PxE ~]# vgdisplay
내가 확장하고싶은 VG의 이름을 확인
[root@srv1 ~]# pvcreate /dev/sdf
- pv 생성
[root@srv1 ~]# vgextend centos /dev/sdf
- 생성한 pv를 centos라는 이름의 vg에 추가
- 추가된 걸 확인할 수 있음
[root@PxE ~]# lvdisplay
- lv의 다른 이름
[root@PxE ~]# lvextend --extents +100%FREE /dev/centos/root
[root@PxE ~]# xfs_growfs /dev/centos/root
[root@PxE ~]# df -h | grep root
'AWS Cloud School 8기 > 서버가상화_클라우드 이미지' 카테고리의 다른 글
WordPress (0) | 2025.01.31 |
---|---|
디스크 관리, RAID (2) | 2025.01.27 |
방어벽/ 포트의 개념 (0) | 2025.01.26 |
PxE kickstart/ 응용 실습 (0) | 2025.01.26 |
FTP(신뢰성 y 파일 전송 y),DHCP(IP부여) ,TFTP(신뢰성 n 파일 전송 y), PxE(OS 설치 환경 -> 네트워크 -> 제공) 응용 문제/ 이론 (5) | 2025.01.24 |