Engineer/virtual machine

[리눅스]우분투 ubuntu LVM 실습하기

messengerwoong 2023. 7. 29. 15:28

LVM이란?

LVM이란?

 

Logical Volume Manager의 약자로 "논리 볼륨 관리자" "논리 하드디스크 관리자"라는 뜻입니다. 

주요 기능은 여러 개의 하드디스크를 합쳐 한 개의 파티션을 구성한 뒤, 다시 필요에 따라 나누는 것입니다.

혹은 한 개의 디스크를 LVM으로 구성하고 다시 파티션으로 구분할 수 있습니다.

 

꼭 알아두어야 될 개념이 있습니다.

 

*물리볼륨(Physical Volume): /dev/sda1과 같은 파티션

*볼륨그룹(Volume Group): 물리 볼륨을 합쳐서 1개의 물리그룹으로 만든 것

*논리볼륨(Logical Volume):볼륨 그룹을 1개 이상 나눈 것으로 논리적 그룹

 

만약에 3GB, 5GB의 2개의 하드디스크를 합쳐 8GB의 볼륨그룹으로 묶을 수 있습니다. 그 후 묶은 것을 다시 

2GB, 3GB, 3GB 이런식으로 나누어서 사용하는 것이라고 생각하면 됩니다. 

 

실습을 통해 더 확실히 공부해 보겠습니다.

STEP1. 디스크추가

새로운 디스크를 4, 3GB추가했습니다.

부팅을 한 후 장치를 확인합니다.

 

2개가 잘 만들어진 것을 볼 수 있습니다.

STEP2 :파티션 

root@server:~# apt -y install lvm2

lvm을 위해 패키지를 설치합니다.

 

설치 후 LVM을 위해 파티션을 해줍니다. 이와 동일한 방식으로 sdc도 세팅해 줍니다.

STEP3: 물리적 볼륨 생성하기  

RAID방식과 다르게 pvcreate를 통해 물리적 볼륨을 생성해 줍니다.

root@server:~# pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created.
root@server:~# pvcreate /dev/sdc1
  Physical volume "/dev/sdc1" successfully created.

지우는 방법은 pvremove이입니다. pvremove /dev/sdb1

STEP4: 볼륨그룹 생성하기  

그 후 vgcreate로 볼륨 그룹을 생성해 줍니다.

root@server:~# vgcreate goLVM /dev/sdb1 /dev/sdc1
  Volume group "goLVM" successfully created

vgdisplay를 해서 제대로 생성되어 있는지 확인합니다.

지우는 방법은vgremove이입니다. vgremove 그룹이름 

STEP5: 논리적 볼륨 생성하기 

그럼 7GB를 2GB, 3GB, 2GB로 나눠보게 씁니다.

lvcreate라는 명령으로 3가지를 만들어주었습니다. 그런데 주의할 점은 파란 칸처럼 7이라고 생각하고 부여하면 오류가 난다는 것입니다. 

따라서 그 밑줄처럼 나머지를 다 할당해 주겠다고 명령해야 합니다.

지우는 방법 lvremove /dev/goLVM/goLVM1이런 식으로 지우면 됩니다.

STEP6: 포맷하기 

root@server:~# mkfs.ext4 /dev/goLVM/goLVM1
mke2fs 1.45.5 (07-Jan-2020)
Creating filesystem with 524288 4k blocks and 131072 inodes
Filesystem UUID: c62e000d-cd36-4da9-b60b-3dd81a6e3a88
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done

ext4형식으로 포맷해 줍니다. 나머지도 goLVM2이 부분 빼고 동일하게 포맷하여 줍니다.

STEP7: 마운트 하기 

root@server:~# mkdir /lvm1 /lvm2 /lvm3
root@server:~# mount /dev/goLVM/goLVM1 /lvm1
root@server:~# mount /dev/goLVM/goLVM2 /lvm2
root@server:~# mount /dev/goLVM/goLVM3 /lvm3

 

디렉터리를 만들어주고 마운트를 시켜줍니다.

 

root@server:~# df -h
(생략)
/dev/mapper/goLVM-goLVM1  2.0G  6.0M  1.8G   1% /lvm1
/dev/mapper/goLVM-goLVM2  2.9G  9.0M  2.8G   1% /lvm2
/dev/mapper/goLVM-goLVM3  2.0G  6.0M  1.9G   1% /lvm3

df-h로 확인하면 대략 2, 3, 2 GB로 나뉜 것을 볼 수 있습니다.

STEP8: 재부팅 시 마운트 되게 하기 

root@server:~# nano /etc/fastab

파일 경로 마운트지점 포맷형식 옵션 덤프 패스 순으로 적어주었습니다. 

오타 잘 확인하시고 crtl+x+y 하고 나가주세요.

STEP9: 재부팅 후 확인 하기

 

재부팅 후 df -h로 제대로 출력되면 잘 설정된 것입니다.