LVM
LVM(Logical Volume Manager)은 여러 개의 물리적 하드디스크나 파티션을 하나의 논리적 볼륨으로 합쳐 관리하는 기술이다. 이를 통해 디스크 공간을 유연하게 할당하고 조정할 수 있다. 필요에 따라 볼륨의 크기를 동적으로 확장하거나 축소할 수 있어 스토리지 관리에 큰 유연성을 제공한다.
LVM의 주요 기능
디스크 공간의 유연한 관리
여러 개의 하드디스크를 하나의 논리적 볼륨으로 합쳐 사용할 수 있다. 예를 들어, 2TB 용량의 하드디스크 2개를 합쳐 4TB의 볼륨 그룹을 만들고, 이를 다시 1TB와 3TB의 논리 볼륨으로 나눠서 사용할 수 있다.
동적인 볼륨 크기 조정
운영 중인 시스템에서도 디스크 공간의 추가나 축소가 가능하다. 새로운 하드디스크를 추가하여 볼륨 그룹에 포함시키거나, 사용하지 않는 공간을 회수하여 다른 용도로 활용할 수 있다.
스냅샷 기능
파일 시스템의 특정 시점 상태를 스냅샷으로 저장하여 데이터 백업이나 복구에 활용할 수 있다. 이를 통해 데이터 손실 위험을 최소화할 수 있다.
LVM의 용어 설명
물리 볼륨(Physical Volume, PV)
- 실제 하드디스크나 파티션을 말한다.
- 예시:
/dev/sda1
,/dev/sdb1
등 - LVM의 가장 기본적인 구성 요소로, 볼륨 그룹에 포함된다.
볼륨 그룹(Volume Group, VG)
- 여러 개의 물리 볼륨을 하나의 그룹으로 묶은 것이다.
- 볼륨 그룹은 하나의 큰 스토리지 풀로 생각할 수 있다.
- 논리 볼륨을 생성하기 위한 공간을 제공한다.
논리 볼륨(Logical Volume, LV)
- 볼륨 그룹에서 할당된 공간으로, 실제로 파일 시스템을 생성하여 사용하는 영역이다.
- 일반적인 파티션처럼 마운트하여 사용할 수 있다.
- 필요에 따라 크기를 조정하거나 스냅샷을 생성할 수 있다.
LVM의 구조와 설정 방법
디스크 파티션 생성 및 타입 설정
새로운 디스크나 기존 디스크의 파티션을 생성할 때, 파티션 타입을 'Linux LVM'으로 설정해야 한다.
sudo fdisk /dev/sdb
fdisk
에서 아래와 같이 진행한다:
n
을 눌러 새 파티션 생성- 파티션 번호 선택 (기본값 사용)
- 첫 번째 섹터와 마지막 섹터 선택 (기본값으로 전체 디스크 사용)
t
를 눌러 파티션 타입 변경8e
를 입력하여 Linux LVM으로 설정w
를 눌러 변경 사항 저장 및 종료
물리 볼륨 생성
생성된 LVM 파티션을 물리 볼륨으로 초기화한다.
sudo pvcreate /dev/sdb1 /dev/sdc1
# 확인
pvdisplay
볼륨 그룹 생성
물리 볼륨들을 하나의 볼륨 그룹으로 묶는다.
sudo vgcreate vg_data /dev/sdb1 /dev/sdc1
# 확인
vgdisplay
논리 볼륨 생성
볼륨 그룹에서 필요한 크기만큼 논리 볼륨을 만든다.
sudo lvcreate -L 100G -n lv_backup vg_data
# 확인
lvdisp
파일 시스템 생성 및 마운트
논리 볼륨에 파일 시스템을 생성하고 마운트하여 사용한다.
sudo mkfs.ext4 /dev/vg_data/lv_backup
sudo mkdir /mnt/backup
sudo mount /dev/vg_data/lv_backup /mnt/backup
LVM과 RAID의 차이점 및 조합
LVM과 RAID의 차이점
LVM | RAID | |
주요 목적 | 스토리지 공간의 유연한 관리 | 데이터의 무결성 보장 및 성능 향상 |
데이터 보호 | 기본적으로 데이터 보호 기능이 없다 | RAID 레벨에 따라 데이터 중복이나 패리티로 보호 |
유연성 | 볼륨의 크기 조정 및 스냅샷 생성이 용이하다 | RAID 레벨 변경이나 디스크 추가가 어렵다 |
성능 향상 | 성능 향상보다는 관리의 유연성에 중점 | 스트라이핑 등을 통해 성능 향상을 도모할 수 있다 |
구성 복잡도 | 상대적으로 간단하며, 운영 중에도 변경이 가능하다 | RAID에 비해 초기 설정이 복잡할 수 있다 |
특징 | 유연한 관리: 디스크 공간을 자유롭게 할당하고 조정할 수 있다. 데이터 보호 미지원: 기본적으로 데이터 중복이나 오류 복구 기능이 없다. 성능 영향: 성능 향상보다는 관리의 편의성에 초점을 맞추고 있다. |
데이터 보호: RAID1, RAID5 등은 디스크 고장 시 데이터 복구가 가능하다. 성능 향상: RAID0 등의 레벨은 디스크 입출력 성능을 향상시킨다. 유연성 제한: 구성 변경이 복잡하며, 운영 중 변경이 어려울 수 있다. |
LVM과 RAID의 조합
RAID 위에 LVM 사용
- 여러 디스크를 RAID로 구성하여 데이터 보호와 성능 향상을 도모한다.
- 그 위에 LVM을 사용하여 유연한 볼륨 관리를 구현한다.
- 예를 들어, RAID5로 구성된 디스크를 하나의 물리 볼륨으로 사용하고, 이를 볼륨 그룹에 포함시켜 논리 볼륨을 생성한다.
LVM 내에서 RAID 기능 활용
- LVM 자체에서 미러링 등의 기능을 지원하여 간단한 데이터 보호를 구현할 수 있다.
- 하지만 전문적인 RAID 기능에 비해 성능이나 안정성이 떨어질 수 있다.
조합의 이점
- 데이터 안전성과 유연성 동시 확보: RAID를 통해 데이터의 안전성과 성능을 확보하고, LVM을 통해 디스크 공간의 유연한 관리를 실현할 수 있다.
- 관리 편의성 향상: 디스크 추가나 볼륨 확장이 필요한 경우 LVM을 통해 쉽게 관리할 수 있다.
LVM의 고급 기능 및 고려사항
LVM 스냅샷(Snapshot)
LVM 스냅샷은 특정 시점의 논리 볼륨 상태를 복제하여 저장하는 기능이다. 이는 백업이나 테스트 목적으로 유용하다. 스냅샷은 원본 볼륨의 변경 사항을 추적하기 때문에 스냅샷 크기가 충분하지 않으면 스냅샷이 손상될 수 있다.
sudo lvcreate --size 10G --snapshot --name lv_snap /dev/vg_data/lv_backup
온라인 볼륨 크기 조정
논리 볼륨 확장
사용 중인 논리 볼륨의 크기를 실시간으로 확장할 수 있다.
sudo lvextend -L +50G /dev/vg_data/lv_backup sudo resize2fs /dev/vg_data/lv_backup
논리 볼륨 축소
볼륨을 축소하기 전에 파일 시스템을 먼저 축소해야 한다. 데이터 손실 위험이 있으므로 백업을 권장한다.
sudo umount /mnt/backup sudo e2fsck -f /dev/vg_data/lv_backup sudo resize2fs /dev/vg_data/lv_backup 80G sudo lvreduce -L 80G /dev/vg_data/lv_backup sudo mount /dev/vg_data/lv_backup /mnt/backup
물리 볼륨의 추가 및 제거
디스크 추가
새로운 디스크를 물리 볼륨으로 생성하고 볼륨 그룹에 추가한다.
sudo pvcreate /dev/sdd1
sudo vgextend vg_data /dev/sdd1
디스크 제거
데이터를 다른 물리 볼륨으로 이동한 후 제거해야 한다.
sudo pvmove /dev/sdb1
sudo vgreduce vg_data /dev/sdb1
sudo pvremove /dev/sdb1
RAID 기능을 갖춘 LVM
LVM은 자체적으로 RAID 기능을 지원하여 미러링 및 스트라이핑을 구현할 수 있다.
sudo lvcreate -L 100G -m1 -n lv_mirror vg_data
m1
옵션은 미러 복사본을 1개 생성한다는 의미이다.
Thin Provisioning(씬 프로비저닝)
실제로는 사용되지 않은 공간을 즉시 할당하지 않고, 필요한 만큼 동적으로 할당하여 스토리지 효율성을 높인다.
디스크 공간 활용 최적화와 여러 논리 볼륨에 대해 과다 할당(over-provisioning)이 가능하다는 장점이 있다.
sudo lvcreate -L 500G --thinpool tp0 vg_data
sudo lvcreate -V 100G --thin -n lv_thin1 vg_data/tp0
LVM 백업 및 복원
구성 백업
LVM의 메타데이터를 백업하여 추후 문제 발생 시 복구에 사용한다. 백업 파일 위치는 /etc/lvm/backup
이다.
복원 방법
vgcfgrestore
명령어를 사용하여 볼륨 그룹 메타데이터를 복원한다.
sudo vgcfgrestore vg_data
LVM의 제한 사항 및 주의점
- 복잡성 증가: LVM은 강력한 기능을 제공하지만, 시스템 복잡성이 증가할 수 있다. 관리자가 충분한 이해를 갖추는 것이 중요하다.
- 데이터 손실 위험: 잘못된 명령 실행이나 구성 변경 시 데이터 손실 위험이 있으므로 항상 최신 백업을 유지해야 한다.
- 성능 영향: LVM 사용 시 약간의 성능 저하가 발생할 수 있다. 특히 스냅샷이나 씬 프로비저닝 사용 시 더욱 그렇다.
'CS > Linux' 카테고리의 다른 글
[Linux] 텔넷 서버 (2) | 2024.10.03 |
---|---|
[Linux] 쿼터(Quota) (1) | 2024.10.03 |
[Linux] RAID 문제 발생 시 (0) | 2024.10.01 |
[Linux] /dev와 파티션 이해하기 (2) | 2024.10.01 |
[Linux] RAID 설정하는 방법 (0) | 2024.10.01 |