※ 네이버 클라우드 플랫폼 서비스(NCP)를 이용해 리눅스 서버를 만든뒤 LVM 테스트를 진행하였습니다.
1. LVM (Logical Volume Manager)
LVM은 파티션을 논리적인 개념인 볼륨으로 나눠서 더 유동적으로 디스크의 용량을 관리할 수 있습니다.
볼륨은 기본적으로 단일 파티션에 상주하게 되지만 다수의 파티션을 하나의 볼륨으로 관리할 수도 있습니다. 그래서 여러 파티션을 합치거나 분할하기에 용이해서 유용하게 사용할 수 있습니다.
2. 디스크의 볼륨과 파티션
• 파티션
디스크는 파티션이라는 논리적인 크기로 분할 / 통합해서 사용합니다. 하나의 디스크를 여러 개로 분할하기도 하며 여러 개의 디스크를 하나의 파티션으로 통합하기도 합니다. 파티션은 고정적이고 물리적인 개념이 강하며 한 번 크기를 설정하면 변경하거나 추가하기 힘들고 OS는 각 파티션을 별도의 디스크처럼 인식합니다.
• 볼륨
볼륨은 디스크의 단일 파티션에 상주하게 되며 파티션보다 논리적이고 유동적인 개념입니다. 하나의 디스크를 여러 개의 파티션으로 나누어 사용합니다. 이때 볼륨은 파티션마다 하나씩 존재하기도 하며, 여러 파티션에 하나만 존재할 수도 있습니다.
2-1 Linux 디스크 파티션 설정하기
콘솔에서 스토리지 생성→생성된 디스크 확인 # fdisk /dev/xvdb→n→p→Enter(기본값)→w(저장)
# mkfs –t ext4 /dev/xvdb (ext4 타입으로 파일시스템 포맷)
3. 파일시스템 종류
파일시스템의 종류는 여러가지 있지만, 해당 LVM 테스트에서는 파일시스템 타입을 ext4와 xfs 타입 두가지만 가지고 하였습니다.
4. LVM의 구성&명령어
LVM에서는 디스크를 좀 더 유연하게 사용하기 위해 여러 파티션을 하나의 논리적인 볼륨으로 묶은 뒤 다시 필요한 크기만큼 나눠서 사용할 수 있습니다
•PV (Physical Volume)
물리적 볼륨으로 디스크를 LVM에서 사용할 수 있게 변환하는 작업을 말합니다. 디스크의 파티션을 PV로 초기화시켜 일정한 크기의 PE로 구성됩니다.
기능 | 명령어 | 예시 |
PV정보조회 | pvs | pvs |
PV생성 | pvcreate | pvcreate /dev/xvdb |
PV속성변경 | pvchange | pvchange [옵션] /dev/xvdb |
PV삭제 | pvremove | pvremove /dev/xvdb |
•PE (Physical Extent)
PV에서 나누어 사용하는 블록입니다. 보통 1PE의 크기는 4MB이며 VG가 새롭게 나누는 논리적인 LV의 LE와 1:1 대응합니다.
•VG (Volume Group)
PV가 모여 만들어진 그룹을 말합니다. 물리적인 일정한 크기의 PE로 구성된 PV들이 모여 VG가 만들어집니다. VG는 다시 LV로 할당할 수 있는 공간을 말하기도 합니다.
기능 | 명령어 | 예시 |
VG정보조회 | vgs | vgs |
VG생성 | vgcreate | vgcreate testvg /dev/xvdb |
VG확장 | vgextend | vgextend testvg /dev/xvdb |
VG속성변경 | vgchage | vgchange [옵션] testvg |
VG안에PV삭제 | vgreduce | vgreduce testvg /dev/xvdb |
VG삭제 | vgremove | vgremove testvg /dev/xvdb |
•LV (Logical Volume)
VG에서 사용자가 필요한 만큼 할당돼서 만들어지는 공간입니다. 논리적인 파티션이라고 볼 수 있으며 이는 다시 LE로 나누어집니다.
•LE (Logical Extent)
LV가 나누어진 일정한 크기의 블록으로 물리적 크기인 PE와 1:1 대응합니다.
기능 | 명령어 | 예시 |
LV정보조회 | lvs | lvs |
LV생성(VG용량할당) | lvcreate | lvcreate -n testlv -L 50G testvg |
LV생성(전체할당) | lvcreate | lvcreate -n testlv -l 100%FREE testvg |
LV확장 | lvextend | lvextend –L 20G /dev/testvg/testlv |
LV속성변경 | lvchage | lvchange –a [y or n] testlv |
LV축소 | lvreduce | lvreduce –L 50G /dev/testvg/testlv |
LV리사이징 | resize2fs | /dev/testvg/testlv |
LV삭제 | lvremove | lvremove testlv |
5. LVM 실습
5-1 PV 생성,확인
# pvcreate /dev/xvdb (pv생성) # pvs (pv확인)
# pvremove /dev/xvdb (pv삭제)
5-2 VG 생성,확인
# vgcreate testvg1 /dev/xvdb /dev/xvdc # vgs (vg확인)
(xvdb와 xvdc를 test1vg생성하고 할당)
# vgcreate testvg2 /dev/xvdd
(xvdd를 testvg2생성하고 할당)
5-3 LV 생성,확인,포맷
방법1 # lvcreate –n testlv1 –L 10G testvg1 # lvs (lv확인)
(10G용량의 testlv1을 testvg1에 생성)
방법2 # lvcreate –n testlv1 –L +25G testvg2
(25G용량의 testlv1을 testvg2에 생성)
# mkfs.ext4 /dev/testvg1/testlv1
(testlv1을 ext4형식으로 포맷)
5-4 LV 용량 확장
# df -h
마운트정보 확인
방법1 # lvextend –L +10G /deve/testvg1/testlv1
(testlv1의 용량을 10G 늘린다)
resize2fs /dev/testvg1/testlv1
(resize 진행후 조회시 늘어난 용량 확인)
방법2 # lvresize -L +10G --resizefs /dev/testvg1/testlv1
(testlv1의 용량을 10G 늘리고 resize 진행)
5-5 LV 용량 축소
# umount /dev/testvg1/testlv1 /마운트포인트 (마운트된 디스크 해제)
# e2fsck -f /dev/testvg1/testlv1
# resize2fs /dev/testvg1/testlv1
# lvreduce -L -10G /dev/testvg1/testlv1 (testlv1의 용량을 10G 줄이고 resiz진행)
# lvs
# mount /dev/testvg1/testllv1 /마운트포인트 (줄어든 용량 확인후 마운트)
참고한 글 URL
'Linux Server' 카테고리의 다른 글
[Linux&Window] Zabbix Server & Agent 설치하기 (0) | 2022.07.18 |
---|---|
[CentOS 7.8] Grafana-Node Exporther-Prometheus 구성하기 (0) | 2022.07.18 |
[CentOS 7.8] MySQL 8 설치 및 저장소 위치 변경 (0) | 2022.01.07 |
[CentOS 7.8] 쿠버네티스(K8S) 클러스터 구축 (0) | 2022.01.06 |
[CentOS 7.8] Linux 아파치(Apache) 웹 구성 및 컴파일 (0) | 2022.01.06 |