2024. 2. 5. 14:02ㆍLinux/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 까지 잘 만들어진 것을 볼 수 있다.
마운트 후 용량 추가
마운트가 끝나 사용중인 상태에서
용량을 늘려보겠다.
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 |