Linux 10 . LVM

2024. 2. 5. 14:02Linux/CentOS7

LVM이란

Logical Volume Manager로

사용자와 물리적인 디스크 사이에 위치하며 

물리적인 시스크를 LVM을 통해서 

논리적으로 관리함으로서
디스크의 물리적인 결합이 가능한 것 처럼 사용하는 기능이다.

 

즉, 물리적으로 다른 디스크여도 사용자는

하나의 논리적인 디스크로 사용하는 것이다.

jh 

LVM은 

pv (physical volume)

vg (volume group)

lv (logical volume)

세가지 구성요소로 이뤄져있다.

 

 

 

 

 

 

 

pv 

(physical volume)

물리적인 disk를 lvm으로 사용하겠다는 선언

 

#pvcreate 파티션명1 파티션명2 ...

#pvs : pv 목록을 간략히 표시

#pvscan : pv 목록을 좀 더 자세히 표시

#pvdiplay : pv 목록을 상세히 표시

#pvremove 파티션명1 파티션명2

 

vg

(volume group)

물리적인 disk들의 집합,

vg 용량만 있다면 lv의 갯수나 용량은 

얼마든지 늘릴 수 있다.

 

 

#vgcreate 볼륨그룹명 pv1 pv2 ...

#vgs : vg 목록을 간략히 표시

#vgscan : vg 목록을 좀 더 자세히 표시

#vgdisplay : vg 목록을 상세히 표시

#vgremove 볼륨그룹명

 

vg 추가 및 빼기 명령어

#vgextend 볼룸그룹명 pv1 pv2 ...

#vgreduce 볼륨그룹명 pv1 pv2 ...

 

 

lv

(logical volume)

vg를 파티션처럼 논리적으로 분리

파티션을 여러개 생성할 필요 없다.

 

#lvcreate -L 용량 -n lv명  볼륨그룹명

#lvs : lv 목록을 간략히 표시

#lvscan : lv 목록을 좀 더 자세히 표시

#lvdisplay : lv 목록을 상세히 표시

#lvremove /dev/볼륨그룹명/lv명

 

lv 용량 추가 및 빼기 명령어
#lvextend -L +용량(기존용량에 추가) /dev/볼륨그룹명/lv명
#lvextend -L 용량 (최종용량을 의미) /dev/볼륨그룹명/lv명
#lvreduce -L -용량 (기존용량에서 제거) /dev/볼륨그룹명/lv명
#lvreduce -L 용량 (최종용량을 의미) /dev/볼륨그룹명/lv명

 

 

reduce 명령어는 사용을 권장하지 않는다.

데이터가 디스크 어디에 쓰일지 모르게 때문...

 

 

 

 

 

 

용량을 extend 명령어로 추가했다면

시스템 파일 확장 명령어도 입력해줘야 한다

 

ext3,4의 경우

resize2fs /dev/볼륨그룹명/ lv명

 

xfs의 경우 

xfs_growfs /dev/볼륨그룹명/ lv명

 

 

디스크의 사용순서

파티션 (LVM 선언)

pv 생성

vg 생성

lv 생성

파일 시스템 생성

mount

 

 

위의 디스크 사용 순서와

명령어로 sdb를

LVM화 해보자

 

 

파티션

fdisk의 명령어로 파티셔닝을 진행한다.

이때 파티션의 시스템id를 LVM으로

바꿔줘야 하는데 

t 명령어로 바꿔줄 수 있다.

그런데 시스템id 가 너무 많으니

l 명령어로 id 리스트를 확인해본 뒤

LVM을 찾아 변경 해주자

p 로 확인해보면

파티셔닝과 시스템도

LVM 으로 잘 생성 됐다.

 

 

 

 

 

pv 생성

pv 명령어로 생성한 뒤에

s, scan, display 명령어로

잘 생성됐는지 확인해주자

 

 

 

vg 생성

vg 생성 후에도 확인해주자

 

 

 

 

 

vg는 생성시에 

-s 옵션으로 PEsize를 지정해줄 수 있다.

좌측이 -s 2M 옵션을 적용 시킨 것 ,   우측이 기본 생성한 것이다.

PE size의 vg의 데이터의 단위 (블록단위)

 

 

lv 생성

생성 한 뒤에 확인 해주자

 

 

 

1GB 씩 두개의 lv를 생성했다.

이후 vgdisplay로 확인해보면

3GB의 용량이 남아있는 것을 볼 수 있다.

이처럼 vg 용량만 된다면 

lv 갯수나 용량은 얼마든지 추가할 수 있다.

 

 

 

파일시스템 생성

 

lv 2개를 각각 ext4, xfs로 생성해보자

 

생성한 뒤에

위처럼 blkid 명령어로 확인해보자

 

 

 

마운트

 

/lv1 /lv2 디렉토리를 생성한 후에

각각 마운트 해주었다.

 

그뒤에 mount 명령어로 확인해보면

시스템 id 마운트 lv 까지 잘 만들어진 것을 볼 수 있다.

df -Th 명령어로 더욱 보기좋게 표시할수도 있다.

 

 

 

마운트 후 용량 추가

 

마운트가 끝나 사용중인 상태에서

용량을 늘려보겠다.


lvextend -L +용량(기존용량에 추가) /dev/볼륨그룹명/lv명
lvextend -L 용량 (최종용량을 의미) /dev/볼륨그룹명/lv명

vgdisplay로 확인해보면 3GB의 용량이 남아있으니 각각 1gb, 1gb용량을 추가해보자

추가가 잘 완료됐으면 lvscan으로 확인해주자

lvs에선 용량이 잘 반영 됐지만

df -Th 명령어를 입력해보면  파일 시스템에선 아직 용량이 그대로다.

 

lv로 우리가 용량 확장을 했다면 

파일시스템에서도 확장 명령어를 이용해 반영시켜줘야 한다

 

ext3,4 : resize2fs /dev/볼륨그룹명/ lv명
xfs : xfs_growfs /dev/볼룸그룹명/ lv명

위의 명령어를 사용해 반영시켜보자

이제 2GB로 잘 반영됐다.

 

 

 

lvm 삭제

lvm의 삭제는 생성의 역순으로 진행해주면 된다.

 

umount

파일 시스템 삭제

lv 삭제

vg 삭제

pv 삭제

파티션 삭제

 

 

언마운트를 진행한 뒤에 꼭 확인해보자

파일 시스템도 삭제해준 뒤에 blkid로 확인해주자

lv도 삭제 진행후 lvscan으로 확인해주자

vg도 삭제후 확인하자

pv 삭제 후 확인하며

 

항상 생성, 삭제 후 확인하는 습관을 들이자!

파티션까지 삭제해주면 완전히 삭제된 것이다!

 

 

 

 

다른 disk로 lv 확장하기

실습에 앞서서 lvm으로 sdb1을 doghj1,2,3 lv로 생성한 뒤

2,2,1022mb로 모두 할당 해줬다.

 

이처럼 sdb의 용량을 모두 사용중이면

더이상 확장할 수 있는 공간이 없다..

 

이럴때 lvm으로

다른 disk를 

논리적으로 하나의 disk인 것 처럼 사용이 가능하다

 

10GB의 sdc 디스크를 연결해줬다.

 

먼저 sdc를 LVM으로 파티셔닝 해주자

파티션 생성후 확인까지 하자

 

pv를 생성해주자.

 

여기서부터 일반확장과는

조금 다르게 진행된다

같은 lv로 확장 시킬 것이니까

doghj vg로 확장시켜 줘야한다

이후에 vgdisplay로 확인해주면 10GB의 용량이 늘어난 것을 볼 수 있다!

이제 각각의 lv를 4,4,2GB로 확장시켜보자

여기서 또 lvscan에는 확장된 용량으로 나오지만

파일 시스템엔 반영되자 않은 상태다..

파일 시스템 확장도 진행해주자

파일 시스템에도 반영이 완료됐다!

 

이처럼 lvm으로 

사용중인 disk를 확장할 수도 있으며

다른 disk를 하나의 disk 처럼 사용할 수도 있는 유용한 기능이다!

 

 

'Linux > CentOS7' 카테고리의 다른 글

Linux 12 . Local Repository  (0) 2024.02.08
Linux 11 . Linux 설치 시 lvm 수동설정  (0) 2024.02.06
Linux 9 . Storage 관리  (0) 2024.02.02
Linux 8 . skel과 default/useradd 그리고 login.defs  (0) 2024.02.01
Linux 7 . shodow 분석  (0) 2024.01.31