※경고 : 아래 명령어들은 디스크를 초기화할수 있으니 사전에 충분한 인지가 필요합니다.
※본 문서는 Redhat 5.x 버전이 기준이 되어집니다
redhat 4.x 버전부터는 LVM2를 지원하고 있으며 글을 쓰는시점에서 LVM1 언급하지 않습니다. (http://www.redhat.com/magazine/009jul05/features/lvm2/)
(참고 : https://access.redhat.com/knowledge/docs/ko-KR/Red_Hat_Enterprise_Linux/5/pdf/Cluster_Logical_Volume_Manager/Red_Hat_Enterprise_Linux-5-Cluster_Logical_Volume_Manager-ko-KR.pdf)
LVM구축시 사용되어지는 용어와 명령어
physical medi) : 물리적 하드 디스크를 말한다. (/dev/hda, /dev/sda)
*PV(Physical Volume) : 파티션을 나눈 것을 말한다(/dev/ hda1, /dev/sda2)
PE(Physical Extents) : 하드 디스크를 제어할 때 블럭(PE) 단위로 제어한다.(PV의 크기가 1G이고 PE 블록의 크기가 4M 이면 PE는 모두 250개)
*VG(Volume Group) : PV로 되어 있는 파티션을 그룹으로 설정한다. (PV를 LVM에 쓸려면 LINUX에서는 8e type이다)
*LV(Logical Volume) : 마운트 포인트로 사용할 실질적인 파티션이다.
위에서 * 되어진 부분이 실제로 LVM작업시에 사용되어지는 부분들이다.
LVM1과 LVM2의 차이.
1. 허용용량 차이입니다. LVM1은 테라바이트, LVM2는 엑사바이트 지원이 가능합니다.
※키로 -> 메가 -> 기가 -> 테라 -> 페타 -> 엑사 -> 제타 -> 요타
2. GPFS 파일 시스템 지원 여부
3. 스트라이핑 저장 방식
4. 최대 PV 개수
SoftRaid + LVM 구성
LVM에서 미러기능을 제공을 한다(!) - 그런데 왜 softRaid가 별도로 존재하는것일까? (보통 /dev/md0가 softRaid이다)
데이터의 보존을 이유로 SoftRaid + LVM을 같이 사용하기도 한다.
LVM 논리적 볼륨
선형 (linear) : 서로용량이 틀린 PV를 결합하여 사용 (가장 일반적인 방법)
스트파이프 (striped) : 디스크에 저장시 RR방식을 채택하여 저장 (*I/O 분산에 유리 : 즉 개별적인 PV에 저장)
미러 (mirrored) : 하나의 미러 leg에 장애가 발생할 경우, 논리 볼륨은 선형 볼륨으로 되어 액세스 가능
LVM 마운트 따라하기
============================================================================================
물리 볼륨 관리 (PV)
파티션 유형 설정 : pvcreate를 사용할수 있도록 setting
fdisk명령을 통해 Id type를 8e로 변경하는 작업 (#8e = Linux LVM)
#>fdisk /dev/sdb
The number of cylinders for this disk is set to 79408.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-79408, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-79408, default 79408):
Command (m for help): t
Partition number (1-4): 1
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
위 처럼 작업을 하고 나와 fdisk로 확인하면 아래 처럼 보여질겁니다.
# fdisk -l
Disk /dev/sda: 40.9 GB, 40982151168 bytes
16 heads, 63 sectors/track, 79408 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 389 196024+ 8e Linux LVM
그럼 실제 pv를 생성합니다.
#>pvcreate /dev/sda1
vgscan -- reading all physical volumes (this may take a while...)
vgscan -- "/etc/lvmtab" and "/etc/lvmtab.d" successfully created
vgscan -- WARNING: This program does not do a VGDA backup of your volume group
pvcreate -- ERROR: "/etc/lvmtab" doesn't exist; please run vgscan 혹시 오류가 나면 아래 명령어를 통해 PV를 만들어줍니다.
#>touch /etc/lvmtab
#>vgscan
============================================================================================
볼륨 그룹 (디스크 묶기)
#>vgcreate vg01 /dev/sda1 (vg01이라는 볼륨그룹을 생성합니다, 묶는 파티션은 sda1만 생성합니다)
vgcreate -- INFO: using default physical extent size 4 MB
vgcreate -- INFO: maximum logical volume size is 255.99 Gigabyte
vgcreate -- doing automatic backup of volume group "vg01"
vgcreate -- volume group "vg01" successfully created and activated
#>vgdisplay (볼륨 생성 확인)
--- Volume group ---
VG Name vg01
VG Access read/write
VG Status available/resizable
VG # 0
MAX LV 256
Cur LV 0
Open LV 0
MAX LV Size 255.99 GB
Max PV 256
Cur PV 2
Act PV 2
VG Size 500 MB #실제 VG에서 사용되어질 용량
PE Size 4 MB
Total PE 92
Alloc PE / Size 0 / 0
Free PE / Size 92 / 368 MB
VG UUID Ywc9nQ-8tzD-vPdN-1LR2-iVcz-1b65-OJ6ssO
============================================================================================
로지컬 파티션(마운트 포인트 만들기)
#>lvcreate -L 500M -n data01 vg01
lvcreate -- doing automatic backup of "vg01"
lvcreate -- logical volume "/dev/vg01/data01" successfully created
#lvcreate에서 미러링, 스트라이핑, 선형 방식 선택이 가능하며 "-n" 옵션을 따른다
미러링 : cluster에 한....
선형 : 일반적인 익스텐드 맵핑
스트라이핑 : RR방식의 데이터 저장
ex> 스트라이핑 : lvcreate -n stripedlv -i 2 -l 64 -L 500M data01 vg01
#>lvscan 확인하기
lvscan -- ACTIVE "/dev/vg01/data01" [500 MB]
lvscan -- 1 logical volumes with 500 MB total in 1 volume group
lvscan -- 1 active logical volumes
============================================================================================
포맷팅 (실제 마운트 하기 위해서 ext3 혹은 ext4로 포맷팅합니다)
#>mkfs.ext3 /dev/vg01/data01
#>mount /dev/vg01/data01 /data
============================================================================================
파티션 추가 (볼륨추가)
순서는 아래와 같습니다.
1. PE를 잡아주고 (맨 처음 fdisk작업)
2. VG에 extend
#>vgextend vg01 /dev/sdc1
vgextend -- INFO: maximum logical volume size is 255.99 Gigabyte
vgextend -- doing automatic backup of volume group "vg02"
vgextend -- volume group "vg02" successfully extended
3. vg확인
#>vgscan에서 VG Size확인
4. lv 늘리기
#>lvextend -L 용량 /dev/vg01/data01
lvextend -- extending logical volume "/dev/vg02/lvol1" to 500 MB
lvextend -- doing automatic backup of volume group "vg02"
lvextend -- logical volume "/dev/vg02/lvol1" successfully extended
#>resize2fs /dev/vg01/data01#왜 이것에 대해서 설명한곳이 그다지 없는지는 모르겠다.
'01. operation > ii. base command' 카테고리의 다른 글
lvm 복구 테스트 (pv loss) (0) | 2022.05.17 |
---|---|
iso 이미지를 통해 yum update 방법 (yum repository) (0) | 2012.09.19 |
리눅스 램 드라이브 (램 디스크) (0) | 2010.07.15 |
ps (0) | 2009.07.27 |
sar (0) | 2009.07.27 |