* Logical Volume Management 정의
Logical Volume Management (LVM)은 디스크 공간 관리를 더 쉽게해준다. 예를들어, logical volume에서 생성된 파일시스템이 공간이 더 필요한 경우, logical volume이 있는 volume group의 남는 공간을 사용하여 해당 logical volume을 확장하고, 파일시스템을 리사이즈 할 수 있다. 만약 디스크 장애가 발생하면, 대체 디스크를 해당 volume group에 physical disk로 등록하고 해당 logical volum의 extent들을 새로운 디스크로 마이그레이션 할 수 있다.
* lvm 주요 용어 정의
Physical Devices
물리적 장치는 논리 볼륨에 저장된 데이터를 저장하는 데 사용되는 저장 장치이다. 이러한 장치는 블록 장치이며 디스크 파티션, 전체 디스크, RAID 어레이 또는 SAN 디스크가 될 수 있다. LVM과 함께 사용하려면 장치를 LVM 물리적 볼륨으로 초기화해야 한다. 전체 장치가 물리적 볼륨으로 사용된다.
Physical Volume (PV)
Physical Volume은 LVM과 함께 사용되는 기본 물리 스토리지이다. LVM 시스템에서 사용하기 전에 장치를 물리적 볼륨으로 초기화해야 한다. LVM tool은 물리적 볼륨을 물리적 볼륨에서 가장 작은 스토리지 블록 역할을 하는 작은 데이터 청크인 Physical Extents(PEs)으로 세분화한다.
Volume Group (VG)
볼륨 그룹은 하나 이상의 물리적 볼륨으로 구성된 스토리지 풀이다. 이는 기본 스토리지에서 전체 디스크와 기능적으로 동일하다. PV는 하나의 VG에만 할당할 수 있다. VG는 사용되지 않는 공간과 논리 볼륨으로 구성될 수 있다.
Logical Volume(LV)
논리 볼륨은 볼륨 그룹의 free physical extents을 가지고 생성되며 애플리케이션, 사용자 및 운영 체제에서 사용하는 "스토리지" 장치를 제공한다. LV는 logical extents (LE) 의 모음으로, PV의 가장 작은 스토리지 청크인 physical Extents (PE)에 매핑된다. 기본적으로 각 LE는 하나의 PE에 매핑된다. 특정 LV 옵션을 설정하면 이 매핑이 변경됩니다. 예를 들어 미러링은 각 LE가 두 개의 PE에 매핑되도록 한다.
* lvm 스토리지 구현하기
LVM 스토리지 생성은 여러 스탭이 있다. 첫번째는, 어떤 physical device를 사용할지 결정하는 것이다. 이러한 physical device는physical volume으로 초기화된다. 이를 통해 PV들은 LVM에 belonging 된다고 인식한다. PV는 VG로 합쳐진다. 이것은 LV를 할당할 수 있는 디스크 공간 풀을 생성하는 것이다. LV는 VG의 사용가능한 공간으로부터 생성되며, 이것은 파일시스템으로 포맷될 수 있다. 또한 스왑 공간으로 쓸수도 있고, 마운트되고 영구적으로 사용될 수 있다.
* LVM 생성 명령어들
LVM 구성을 진행하기전에 PV를 만들 블록 장치를 찾아야 한다. 이것은 전체 디스크가 될 수도 있고, 디스크 내의 특정 파티션이 될 수도있다. 아래 예제에서는 sdb, sdc를 LVM에 사용할것이다. lsblk, blkid, cat /proc/partitions 명령으로 장치들을 식별할 수 있다.
pvcreate
물리적 장치 또는 파티션에다가 이것이 Physical Volume이라고 라벨링을 한다. 또한 이 명령은 Physical Volume을 고정된 사이즈인 Physical Externts (PEs)로 나눈다. 예를들어 PE의 크기는 4MiB가 될 수 있다. 간단히 정리하면, pvcreate 명령은 물리적 장치 또는 파티션을 PV로 만든다. 이러한 PV는 VG에 할당될 준비가 된다.
vgcreate
하나나 하나 이상의 Physical Volume들을 하나의 Volume Group 으로 만든다. VG는 기능적으로 하드 디스크와 동일하다. 사용자는VG에 할당된 PV들이 가지고 있는 PE의 단위로 Logical Volume을 생성할 수 있다. 간단히 말하면 vgcreate 명령은 PV들을 모아 하나의 Pool을 만들고, 다시 거기서 PE의 개수단위로 LV를 생성하는 것이다. 아래 vg01의 크기는 /dev/sdb, /dev/sdc의 크기를 합친 것이 된다.
lvcreate
VG에서 사용가능하 PE를 가지고 새로운 Logical Volume을 생성한다. 몇가지 옵션이 있다. 아래 예시는 LV 생성을 위해 최소한의 옵션이며, 맨 마지막에는 LV를 생성할 VG를 명시한다. 결과적으로 vg01에서 700M 를 가져와서 lv01을 생성하게 된다.
-n : LV의 이름을 지정한다
-L : LV의 크기를 bite로 명시하여 생성한다. / -l : LV의 크기를 extents 개수로 명시하여 생성한다.
-L 옵션의 경우, 그냥 M이 아니라 MiB로 명시하여 명확하게 값을 지정할 수 있다. (KiB, GiB 등) 또한 -l 옵션은 사전에 정해진 extents의 크기에 따라 실제 크기가 결정된다. 예를들어 extents 크기가 4M 이고 200개라면 800M 가 될 것이다. 또한, lvcreate 명령 사용 시 크기가 정확히 일치하지 않을 경우 크기가 물리적 범위 크기의 인수로 반올림된다.
* Filesystem 생성
mkfs 명령어로 LV를 파일시스템으로 만들 수 있다. xfs 외에 여러 파일시스템이 있으나 더이상 자세한 설명은 생략한다.
* LVM의 상태 확인 명령어들
pvdisplay
이 명령은 PV에 대한 상세 정보를 보여준다. pvdisplay 단독으로 사용할수도 있고, 여러 옵션을 사용할수도 있다.
1. 장치에 매핑된 PV의 이름
2. PV가 할당되어있는 VG의 이름
3. 사용하지 않은 용량을 포함하여, 해당 PV의 물리적 크기
4. Physical Extent의 크기 PE는 해당 lV에서 할당될 수 있는 가장 작은 사이즈 단위이며, 또한 사용된PE, 사용하지 않은 PE 값을
계산할 때의 곱하기 계수가 된다.예를들어 175개의 PE 와 4MiB(PE크기) 를 곱하면 700MiB가 된다. 또한 LV의 크기는 PE 단위의
계수로 반올림된다. LVM은 PE 크기를 자동으로 설정하지만 따로 지정을 할 수도 있다.
5. Free PE는 새로운 LV 할당에 사용할 수 있는 PE가 몇개나 남았는지 보여준다.
pvs
다른 정보들을 좀 더 컴팩트하게 보여준다.
vgdisplay
VG에 대한 상세 정보를 보여준다. vgdisplay 단독으로 사용할수도 있고, 여러 옵션을 사용할수도 있다.
1. VG의 이름
2. 논리적 볼륨 할당에 사용할 수 있는 스토리지 풀의 총 크기
3. PE의 개수로 표현된 총 사이즈
4. 새로운 LVf를 만들거나 존재하는 LV를 확장하는데 사용할 수 있는 남은 공간이 얼마나 있는지 보여줌
vgs
다른 정보들을 좀 더 컴팩트하게 보여준다.
lvdisplay
LV 에 대한 상세 정보를 보여준다. lvdisplay 단독으로 사용할수도 있고, 여러 옵션을 사용할수도 있다.
1. LV의 장치명을 보여준다. 어떤 툴에서는 /dev/mapper/vgname-lvname 형태로 보여주기도 하는데, 동일한 것이다.
2. 이 LV가 위치한 VG를 보여준다.
3. LV의 전체 크기를 보여준다. 파일 시스템 도구를 사용하여 데이터 저장을 위한 여유 공간과 사용 공간을 확인할 수 있다.
4. 이 LV에 의해 사용된 LE의 수를 보여준다. LE는 일반적으로 VG 안에서 PE와 1:1 매핑된다.
lvs
lv에 대한 다른 정보들을 좀 더 컴팩트하게 보여준다.
* References
lvm(8), pvcreate(8), vgcreate(8), lvcreate(8), pvdisplay(8), pvs(8), vgdisplay(8), vgs(8), lvdisplay(8), lvs(8), and lvm.conf(5) man pages
Knowledgebase: "What are the advantages and disadvantages to using partitioning on LUNs, either directly or with LVM in between?"
'High Availability > RH436 & EX436' 카테고리의 다른 글
[RH436/EX436] 10. GFS2 Filesystem (1) | 2024.02.07 |
---|---|
[RH436/EX436] 9. High Availability 클러스터의 2가지 LVM 구성 방식 (0) | 2024.02.07 |
[RH436/EX436] 7. Multipath 구성 (2) | 2024.02.07 |
[RH436/EX436] 6. iSCSI 연결 (1) | 2024.02.06 |
[RH436/EX436] 5. 클러스터 관리 (0) | 2024.02.06 |