해당 포스팅은 Rocky 9.2 Linux.ver + kernel 5.14.* 버전에서의 LVM에 대한 문서입니다.
(기존 /var/log에 쌓이던 로그들을 LVM 생성을 통한 디스크 관리를 만드는 것을 목표로 합니다.)
포스팅 목차
LVM(Logical Volume Manager):논리 볼륨 관리자
- 리눅스 시스템에서 디스크 관리를 위한 도구
- LVM은 물리적인 HDD나 파티션을 추상화하여 더 효율적으로 관리할 수 있도록 한다
- 논리적인 볼륨 그룹을 생성하고, 그룹 내에서 논리 볼륨을 만들어 사용자에게 제공한다.
- 논리 볼륨은 파티션과 유사한 개념이지만, 크기를 동적으로 조정하거나 여러 개의 물리적인
- 디스크를 결합하여 크기를 유연하게 조정하고, 여러 디스크 간에 데이터를 분산 저장 가능.
LVM 사용 시 이점
- 운영 중인 시스템에서 디스크 공간을 확장하거나 축소 가능
- 논리 볼륨의 크기를 실시간으로 조정 가능
- 데이터의 이동이나 서버 중지 없이 디스크 공간을 효율적으로 관리 가능
LVM Snapshot
- 스냅샷 기능을 제공
- 특정 시점에 데이터 상태를 보존 가능데이터 복원, 테스트 환경 구축 등에 유용함
해당 내용을 축약하자면 LVM은 서버 환경에서 대용량의 데이터 저장이 필요한 경우에 많이 사용되며 유연한 용량 조정과 데이터 관리 기능을 통해 리눅스 시스템의 디스크 관리를 효율적으로 처리 할 수 있다.
LVM 명령어
- pvcreate : 물리적인 볼륨을 생성
- HDD, 파티션을 LVM에서 사용 가능한 물리 볼륨으로 설정하는 명령어
- vgcreate : 볼륨 그룹을 생성
- 볼륨 그룹을 생성하고 물리 볼륨을 추가하는 명령어
- 하나 이상의 물리 볼륨을 결합하여 논리 볼륨을 생성하는데 사용
- 볼륨 그룹을 생성하고 물리 볼륨을 추가하는 명령어
- lvcreate : 논리 볼륨을 생성
- 볼륨 그룹 내에 논리 볼륨을 생성하고 크기를 할당
- pvdisplay : 물리 볼륨의 상세 정보를 표시
- 물리 볼륨의 이름, 크기, 사용 가능한 공간 등을 확인 가능
- vgdisplay : 볼륨 그룹의 상세 정보를 표시
- 볼륨 그룹의 이름, 물리 볼륨, 논리 볼륨 등을 확인 가능
- lvdisplay : 논리 볼륨의 상세 정보를 표시
- 논리 볼륨의 이름, 크기, 경로 등을 확인 가능
- lvresize : 논리 볼륨의 크기를 조정
- 논리 볼륨의 크기를 확장 및 축소 가능
- lvremove : 논리 볼륨을 제거
- 논리 볼륨을 삭제하고 해당 공간을 다른 용도로 사용 가능하게 함
(명령어마다 옵션을 제공하며 상황에 따라 man 명령어를 사용)
실습 : /var/log에 쌓이는 로그들을 새로운 디스크에 LVM 설정부여 후 로그 관리 (개인의 환경이 다르기 때문에 참고용으로 사용)
## 목표 ##
! /var/log Driectory에 새로운 LVM 볼륨에 마운트되어 로그 파일이 해당 위치에 저장
+ 해당 작업을 통해 로그 파일의 저장 공간을 추가 유연성을 토대로 로그 디렉터리를 관리
환경 *개인 실습 환경에 맞춰서 진행 가상머신의 경우 Vhdd 장착*
HOST PC : MAC OS
Rocky Linix : VM
CPU : 2core
RAM : 2GB
SSD : / = 50GB
Add Disk Size = 10GB (/var/log LVM)
## 추가한 디스크를 통한 로그가 저장되는 경로를 변경 및 LVM으로 설정 ##
1. 서버에 디스크 추가 (VM 환경)
#VMware Version에 따라서 UI가 다르게 나옴#
2. 디스크 추가 후 fdisk -l 사용하여 확인
** 가상머신에 따라 /dev/HDD NMAE <- HDD Path가 달라질수 있음
3. 새로운 물리 볼륨 생성
$ sudo pvcreate /dev/path <= fdisk에서 확인한 경로
# 디스크를 물리 볼륨으로 설정, LVM에서 사용 가능한 디스크 공간으로 준비
4. 새로운 볼륨 그룹 생성
$ sudo vgcreate (볼륨 그룹이름) /dev/path
# myvlog 볼륨 그룹을 생성하고 /dev/path를 해당 그룹에 추가
5. 논리 볼륨의 크기를 사용 가능하게 지정
$ sudo lvcreate -n loglv -l 100%FREE myvlog
# loglv라는 이름의 논리볼륨을 생성하고 -l 100%FREE 옵션을 통해 모든 공간을 할당
6. ext4 파일 시스템 생성
$ sudo mkfs.ext4 /dev/path/loglv
# loglv 논리 볼륨에 ext4 파일시스템을 생성 및 파일시스템 형식화 하여 데이터 저장 준비
7. 마운트 및 데이터 복사
$ sudo mount /dev/path/groupname/loglv /mnt
$ sudo rsync -av /var/log /mnt
# 논리볼륨을 /mnt 디렉터리에 마운트, why? = 데이터를 읽고 쓸 수 있게 하기위해
# /var/log의 모든 내용을 /mnt로 복사 (기존 로그 파일을 새로운 LVM 볼륨으로 이동 시킴)
8. 디렉터리 백업 및 마운트 해제
$ sudo umount /mnt
# 마운트 해제 후 백업
사진에서 안나오지만 log_backup 디렉터리 생성 이전 /mnt 마운트를 해제해야함
9. fstab 설정
$ sudo vi /etc/fstab
$ sudo mount -a (# fstab을 적용하기 위함)