linux class 1 페이지

본문 바로가기
사이트 내 전체검색


회원로그인

linux class

LVM(Logical Volume Manager)

페이지 정보

작성자 admin 작성일15-12-23 15:13 조회230회 댓글0건

본문

LVM - Logical Volume Manager

- lvm을 이용하면 여러개의 디스크를 하나의 디스크 처럼 사용할 수 있다.
예를들면 1G 용량의 디스크 세개를 하나의 3G 용량의 디스크 처럼 사용할 수 있다.
그리고 추가용량이 필요하면 파일시스템을 새로 생성하지 않고도 동적으로 용량을
늘릴수 있다.

Volume Group(VG): Logical Volumes 과 Physical Volumes 를 하나의 관리할수있는 group 으로 만든것.
- 여러개의 PV 를 합친것이고 가상의 디스크라고 보면 된다.
Physical Volume(PV): 일반적으로 하드디스크나 파티션을 의미.
Logical Volume(LV) : LVM 으로 구성되지 않은 시스템에서의 디스크 파티션과 같은것이다.
- 가상디스크(VG) 의 분할영역으로 보면 된다.
Physical Extent(PE) : PV에 나뉘어져 있는 데이터 블럭
volume 그룹에서 PE 의 크기는 LE의 크기와 같다.
Logical Extent(LE) : LV에 나뉘어져 있는 데이터 블럭

LVM 구성형태
lvm.jpg

*. LVM 관련 명령어
pvcreate - LVM 구성을 위해서 PV 를 만들고 초기화한다.
vgcreate - pvcreate 에 생성된 PV 장치명으로 새로운 Volume Group(VG)를 만든다.
vgdisplay - VG 정보를 출력한다.
lvcreate - 하나의 VG 로 새로운 logical volume 을 생성한다.
lvremove - logical volume 을 삭제한다. 삭제할때는 mount 를 끊어야 한다.
vgremove - volume groupd 을 제거한다.

*. LVM 구성 순서

1. 하나로 묶을 디스크를 정한다.
2. 정해진 디스크를 각각 fdisk 로 파티션을 하나 잡고 파티션 타입을 lvm 으로 한다.
3. physical voume을 만든다.
4. 각각의 physical volume 을 하나의 volume group으로 묶는다.
5. vgdisplay 로 volume group 이 제대로 생성되었는지 확인한다.
6. lvcreate 로 volume group 에 logical volume 을 생성한다.
7. logical volume 에 파일시스템을 생성한다.
8. mount 하여 사용.


ex)
200mb 용량의 디스크 두개를 하나로 구성하여 사용하기 위한 lvm 구성

사용할 디스크
/dev/sdb
/dev/sdc

[root@star /]# fdisk /dev/sdb <= 파티션은 전체용량으로 하나만 설정한다.
Command (m for help): p

Disk /dev/sdb: 213 MB, 213909504 bytes
64 heads, 32 sectors/track, 204 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes

Device Boot Start End Blocks Id System

Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-204, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-204, default 204):
Using default value 204

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)

Command (m for help): p

Disk /dev/sdb: 213 MB, 213909504 bytes
64 heads, 32 sectors/track, 204 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes

Device Boot Start End Blocks Id System
/dev/sdb1 1 204 208880 8e Linux LVM

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
[root@star /]#

그리고 두번째 디스크도 똑 같은 방법으로 파티션을 구성한다.
그리고 다음

[root@star /]# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created

[root@star /]# pvcreate /dev/sdc1
Physical volume "/dev/sdc1" successfully created

[root@star /]#
[root@star /]# vgcreate test_vg /dev/sdb1 /dev/sdc1
Volume group "test_vg" successfully created

[root@star /]# vgdisplay -v => 제대로 구성었는지 확인할 수 있다.

[root@star /]#

[root@star /]# lvcreate -L 400M -n test_lv1 test_vg
Logical volume "test_lv1" created
(*. 용량을 % 단위로 할당하는 경우에는
ex) lvcreate -l(또는 --extents) 50%VG .... ; VG 의 50% 크기로 할당
lvcreate -l 100%FREE ... ; VG 의 남은 용량 모두 할당 )



[root@star /]#
[root@star /]# vgdisplay -v => 다시 확인.

[root@star /]#

[root@star /]# mkfs -t ext3 /dev/test_vg/test_lv1 (또는 mke2fs -j /dev/test_vg/test_lv1 )

[root@star /]#

[root@star /]# mkdir /mnt/lvmdata


[root@star /]# mount -t ext3 /dev/test_vg/test_lv1 /mnt/lvmdata
[root@star /]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 6520216 4553532 1630124 74% /
/dev/sda6 194442 5664 178739 4% /data2
/dev/sda7 194442 5664 178739 4% /data3
/dev/shm 127808 0 127808 0% /dev/shm
/dev/sda3 497861 10603 461554 3% /home
/dev/hdc 649838 649838 0 100% /media/cdrom
/dev/sda5 202219 1917 189862 1% /data1
/dev/mapper/test_vg-test_lv1
396672 10544 365648 3% /mnt/lvmdata
[root@star /]#

리부팅하였을 경우에도 계속 사용하려면
/etc/fstab 파일에

/dev/test_vg/test_lv1 /mnt/lvmdata ext3 defaults 1 1
이 한줄을 추가한다.

그리고 lvm 구성이 완료된후에도 용량이 더 필요하면 데이터 이동이나 손상없이
쉽게 늘릴 수 있다.

ex)
[root@titan mnt]#pvcreate /dev/sdd1
[root@titan mnt]#vgextend test_vg /dev/sdd1 <= 기존의 VG 에 추가하는 경우에는 vgextend 로 하여야 한다.
Volume group "test_vg" successfully extended
[root@titan mnt]# lvresize --size +100M /dev/test_vg/test_lv1
Extending logical volume test_lv1 to 500.00 MB
Logical volume test_lv1 successfully resized
[root@titan mnt]# resize2fs /dev/test_vg/test_lv1

*. LVM 구성 제거.
*. 제거순서(구성할때의 역순으로 제거)
1. logical volume 마운트 해제
2. logical volume 제거
3. volume group 제거
4. physical volume 제거
5. fstab 에 등록되어 있는경우 fstab 파일에서도 삭제해야 한다.

[root@star /]# umount /mnt/lvmdata
[root@star /]# lvremove /dev/test_vg/test_lv1
Do you really want to remove active logical volume "test_lv1"? [y/n]: y
Logical volume "test_lv1" successfully removed
[root@star /]#

[root@star /]# vgremove test_vg
Volume group "test_vg" successfully removed
[root@star /]# 그 다음 pvremove /dev/sdb1 /dev/sdc1 /dev/sdd1 ...
*. 최종확인 : lvdisplay ; vgdisplay ; pvdisplay ; 아무런 출력이 없어야 한다.

* lvm 구성 예제.
1. 디스크를 두개 합쳐서 크게 사용하기(사용자 계정용도의 파일시스템으로 사용)
sde ---> 전체크기 주파티션 1개(lvm)(p.v)
sdf ---> 전체크기 주파티션 1개(lvm)(p.v)
/dev/sde1 + /dev/sdf1 = VG(이름은 아무거나)
logical volume 은 전체크기로 한개만 생성
lv 를 /newhome 에 마운트해서 모든계정을복사.(cp -rp /home/* /newhome)
useradd -d /newhome/tuser1 tuser1
useradd -d /newhome/tuser2 tuser2
부팅할때 lv가 자동마운트되게 fstab에도등록
확인:=> umount -a ; mount -a ; su - tuser1 ; 경고나 에러없이 계정이 바뀌어지면 성공.

2. 사용하지 않는 여분의 디스크를 vg 에 붙여서 용량을 파일시스템 용량 확장하기.
작업후 확인은
df 명령으로 파일시스템 용량이 증가했는지 확인.
용량이 제대로 증가한것을 확인하였으면 다시
umount -a ; mount -a ; su - tuser1 ; 경고나 에러없이 계정이 바뀌어져야 한다.

댓글목록

등록된 댓글이 없습니다.


접속자집계

오늘
1
어제
200
최대
611
전체
453,482
개인정보취급방침 서비스이용약관 twoseven.kr All rights reserved.
상단으로