LVM이란 여러개의 HDD를 1개의 HDD처럼 통으로 사용하는 방법이다.
얼핏보면 RAID와 같은것 같지만 RAID와는 조금 다르다.
RAID는 백업을 목적으로 여러개의 HDD를 합쳐서 각각의 하드에 같은내용을 저장하거나
나누어서 저장하거나 한다
phy -> log 전환해서 사용하는 이유
1.확장성
2.안정성
3.효율적 관리
LVM 순서도
각각의 sdb,sdc 하드디스크를 1GB용량의 단일 파티션으로 생성한 후
System을 Linux LVM 형태로 만든 후 sdb1,sdc1을 pv(물리볼륨)으로 생성하고 각각 생성된 pv를 VG(볼륨그룹)로
하나로 합쳐준다.
이후 VG를 LV로 생성
LV생성할때 -L 옵션으로 용량을 입력하거나 -l 옵션으로 PE의 개수를 입력할 수 있다.
[참고] -l 옵션으로 PE개수를 입력하면 남은 용량없이 모두 사용 가능하다
LVM 생성 순서
----------------------------------------------------------------------------------------------------
1. 전원 off 및 HDD 추가
2. 장치 인식후 파티션 생성 fdisk(Linux LVM)
3. PV(physical Volume) 생성 pvcreate, pvscan, pvdisplay
4. VG(Volume Group) 생성 vgcreate, vgscan, vgdisplay
5. LV(Losical Volume) 생성 lvcreate, lvscan, lvdisplay
# lvcreate -L 용량[G/M] -n LV명 VG명
# lvcreate -l PE갯수 -n LV명 VG명
6. 파일시스템 생성(포맷) mkfs
7. 마운트 mount
----------------------------------------------------------------------------------------------------
[TIP] 파티션 생성시 System 타입을 Linux 가 아닌 Linux LVM 으로 생성해야한다.
Command : t 입력시 Hexcode를 입력하라고 나온다.
이때 LVM을 생성하기 위한 코드값은 8e이다.
LVM 구성요소
구성요소 |
설명 |
Physical Volume |
PV는 하나의 물리적인 Disk에 LVM을 사용할 수 있도록 LVM 데이터 구조를 생성한 것을 말한다. 디스크에 PV가 생성되면 LVM은 디스크를 하나의 물리볼륨으로 간주하게 되고, 볼륨그룹에 포함시킬 수 있게 된다. 따라서 하나의 디스크를 몇 개의 섹션은 논리볼륨으로, 몇 개의 섹션은 전체디스크로 관리하는 등의 방법은 적용 할 수 없다. (예) 물리적인 디스크(EX:/dev/sda) or 물리적인 파티션(EX:/dev/sda1) |
Volume Group |
VG는 하나 또는 그 이상의 PV를 포함하며, LV를 생성할 수 있는 Volume Group의 집합이다. vg00은 부팅정보와 OS가 있는 root Volume Group으로 변경이 불가능하다. 관리자가 관리상의 편의를 위해 DB의 경우에는 vgdb##, 일반적인 파일시스템의 경우에는vgfil##등으로 VG이름을 지정하여 사용한다. (예) 가상 디스크 |
Logical Volume |
LV는 하나 또는 그 이상의 PV로 구성되어 있는 VG 공간을 전체 또는 분할하여 일반 파일시스템, swap or dump area, raw disk로 사용할 수 있도록 논리적으로 할당한공간이다. 운영 중 공간이 부족할 경우 볼륨그룹에 속해 있는 또 다른 물리볼륨을 사용하여 확장이 가능하고, 필요하다면 크기를 변경하거나 다른 디스크로 데이터를 옮길 수 있다. Volume Group vg00에 속한 Logical Volume lvol1,lvol2,lvol3은 각각 /stand, primary swap, / 디렉토리로 변경이 불가능 하다. (예) 가상 파티션 |
LVM 명령어
[여러개의 디스크 장치를 하나의 하드디스크로 생성하는 LVM 작업 과정]
(1)새로운 디스크 장치 생성
새롭게 생성된 디스크를 확인하고 파티션 생성을 통해서
각 디스크의 fdisk 명령어를 통해서 System 형식을 Linux LVM 형태로 바꾸기
pvcreate 명령어로 pv를 생성 후 pvscan 으로 확인출력
(볼륨그룹을 만들기 위한 선수작업)
pvdisplay 명령어를 사용 pv를 자세하게 확인출력
(- pvscan은 생성의 유/무를 확인하는 용도)
vgcreate [생성할파일이름] [추가할디스크]
vgscan 결과 생성된 vg를 확인할 수 있고
pvscan 결과값이 달라진 것을 볼 수 있다.
vg생성 후 vgdisplay 명령어로 vg를 자세하게 출력
# lvcreate -L [용량] -n [LV이름] [VG이름]
[참고]
lvcreate 명령에 -L 옵션을 사용하여 용량을 명시해서 생성하면
PE조각이 완벽히 맞아 떨어지지 않을 수 있다
lvcreate 명령어에 -l 옵션을 주어서 생성
# lvcreate -l 100%FREE 나머지 용량 전부
# lvcreate -l 508 PE개수 지정
mkfs 명령에 -t 옵션을 주어 ext3형식의 파일시스템으로 /dev/VG/LV를 포맷
마운트할 포인트에 마운트
[참고] 하나의 VG에 여러개의 LV를 생성하여 파티션을 나눌 수 있다
장치명 /dev/mapper/vgtest-lvtest ( /dev/vgtest/lvtest )이
너무 길어 라벨명을 지정하고 첫번째 필드에 적는다.
부팅시 기본적으로 파일시스템을 자동 마운트하기 위해
vi /etc/fstab 설정
재부팅후 df -h로 자동마운트가 잘 되는지 확인
[참고] 마운트 옵션은 각각의 옵션들을 콤마(,)를 이용해서 중복입력 가능
defaults : rw, suid, dev, exec, auto, nouser, async 옵션을 모두선택한 것과 같음
auto : 부팅시 자동으로 마운트
noauto : 부팅시 자동 마운트 하지 않는다
nosuid : uid gid 가 적용되지 않음
ro : 읽기전용
rw : 읽기,쓰기 전용
백업 : 0 이면 백업하지 않고 1이면 백업가능한 파일 시스템
검사 : 0 부팅시에 파일 시스템 점검 X , 1 루트 파일시스템으로서 부팅시에 파일 시스템 점검
2로 선택할시 루트 파일 시스템 이외의 파일시스템으로서 부팅시 점검
[예 제]
LVM구성실습
■ LVM 1 / LVM 2
LVM 1 - RHEL 3(Redhat Enterprise Linux 3)/CentOS 3.X
LVM 2 - RHEL 4(Redhat Enterprise Linux 4)/CentOS 4.X
■ LVM 최대 크기 지원(64-bits CPU) - 8 Exa Bytes 까지 지원
(B -> KB -> MB -> GB -> TB -> PB -> EB -> ZB -> YB)
■ LVM 작업 순서
System Partition ID 변경(fdisk CMD)
-> PV 생성(pvcreate CMD)
-> VG 생성(vgcreate CMD)
-> LV 생성(lvcreate CMD)
-> F/S 생성(mkfs CMD)
-> 마운트(mount CMD, /etc/fstab)
[EX] 4장의 디스크 추가 후 파티션 설정
dev/sdc dev/sdd dev/sde dev/sdf 새롭게 추가후
# ls -l /dev/sd?
disk를 하나의 주 파티션으로 생성 /dev/sdd1, system ID : 8e
# fdisk /dev/sdc
# fdisk /dev/sdd
# fdisk /dev/sde
# fdisk /dev/sdcf
LVM으로 System 형식이 잘 바뀌었는지 확인
# fdisk -l /dev/sd[cdef]
또는 fdisk -l | grep LVM
(1) 물리적인 볼륨 생성(PV: Physical Volume)
생성한 디스크를 LVM으로 사용하기 위한 선처리 작업으로 물리적인 볼륨으로 생성해 준다.
(명령어 형식)
■ PV 생성
# pvcreate /dev/sda1
# pvcreate /dev/sda1 /dev/sdb1 /dev/sdc1
# pvcreate /dev/sd[abc]1
# pvcreate /dev/sda /dev/sdb /dev/sdc
■ PV 삭제
# pvremove /dev/sda1
# pvremove /dev/sda1 /dev/sdb1 /dev/sdc1
# pvremove /dev/sd[abc]1
■ PV 정보 확인
# pvs
# pvscan
# pvdisplay (# pvdisplay /dev/sdc1)
# lvmdiskscan
[EX] PV 생성 및 삭제
PV 생성
# pvcreate /dev/sd[cedf]1
PV 삭제
# pvremove /dev/sdf1
PV 확인
# pvscan
(2) 물리적인 볼륨 그룹생성(VG: Volume Group)
물리적인 볼륨을 생성하였으면 각각의 물리적인 볼륨을 하나의 그룹으로 생성해 준다.
(명령어 형식)
■ VG 생성
# vgcreate vg1 /dev/sdc1 /dev/sdd1 /dev/sde1
# vgcreate vg1 /dev/sd[cde]1
■ VG 삭제
# vgremove vg1
# vgremove /dev/vg1
■ VG에 디스크 추가/제거
# vgextend vg1 /dev/sdf1
# vgreduce vg1 /dev/sdf1
■ VG 이름 변경
# vgrename /dev/vg1 /dev/vg1_backup
# vgrename vg1 vg1_backup
■ VG 정보 확인
# vgs
# vgscan
# vgdisplay (# vgdisplay vg1)
[EX] VG 생성 및 삭제
VG 생성 & PV 확인 & VG 확인
# vgcreate vg1 /dev/sdc1 /dev/sdd1 /dev/sde1
# pvs
# vgs
dev/sdf1 추가하기
# pvcreate /dev/sdf1 ; # vgcreate vg1 /dev/sdf1
# pvs && vgs !!?
# vgextend vg1 /dev/sdf1
# pvs
(3) 논리 볼륨 생성(LV: Logical Volume)
논리 볼륨은 LVM에서 생성하는 파티션이므로 단일 파티션 또는 다중 파티션으로 나눌 수 있는데, 이때 논리 볼륨을 생성하는 방법은 용량 단위 또는 PE수를 통해 생성해 줄 수 있다.
(명령어 형식)
■ LV 생성
# lvcreate -L 10G vg1 /* LV 이름 자동 생성 : lvol#(용량 10G) */
# lvcreate -L 1500M -n lv1 vg1
# lvcreate -L 1500 -n lv1 vg1 /* 용량 단위가 없으면 MB */
# lvcreate -l 60%VG -n lv1 vg1 vg의 60%를 사이즈로 지정
# lvcreate -l 100%FREE -n lv1 vg1 나머지 사이즈를 전부
■ LV 삭제
# lvremove /dev/vg1/lv1
■ LV 이름 변경
# lvrename /dev/vg1/lv1 /dev/vg1/lv2
# lvrename vg1 lv1 lv2 /* vg1(lv1 -> lv2) */
■ LV 공간 늘리기/줄이기
# lvextend -L 12G /dev/vg1/lv1 /* lv1 용량을 12G로 맞춤 */
# lvextend -L +1G /dev/vg1/lv1 /* lv1 용량을 1G 만큼 추가 */
# lvextend -l +100%FREE /dev/vg1/lv1
# lvreduce -L -3G /dev/vg1/lv1
# lvreduce -l -3 /dev/vg1/lv1 /* lv1 용량을 3 LE(Logical Extend)만큼 감소 */
■ LV 정보 확인
# lvs
# lvscan
# lvdisplay
[EX] LV 생성 및 삭제
# vgdisplay
LV 생성
# lvcreate -L 1G -n lv1 vg1 ; lvcreate -L 1G -n lv2 vg1
LV 생성
# lvcreate -l 100%FREE -n lv3 vg1
LV 확인
# lvs ; lvscan
LV 자세히 확인
# lvdisplay /dev/vg1/lv3
LV 삭제 및 확인
# lvremove /dev/vg1/lv3 && lvs
LV 이름 변경
# lvrename /dev/vg1/lv2 /dev/vg1/lv2_backup && lvs
LV 이름 재변경
# lvrename vg1 lv2_backup lv2 && lvs
LV 용량 늘리기
# vgs ( # vgdisplay | grep PE )
# lvextend -L +500M /dev/vg1/lv1
# lvs
LV 용량 줄이기
# lvreduce -L -500M /dev/vg1/lv2
# lvs
[EX] 파일시스템 생성
# lvs
# mkfs.ext3 /dev/vg1/lv1
# mkfs -t ext3 /dev/vg1/lv2
[EX] 마운트
# mkdir /lv1 /lv2
# mount /dev/vg1/lv1 /lv1 ; mount /dev/vg1/lv2 /lv2
# df- h
■ 물리적인 파티션 작업과 LVM 작업 비교
[이전 작업 방식] |
[ LVM 작업 방식] |
(ㄱ) 파티션 작업 # fdisk /dev/sdc
(ㄴ) 파일시스템 작업 # mkfs.ext3 /dev/sdc1
(ㄷ) 마운트 작업 # vi /etc/fstab # mkdir /oracle # mount /oracle |
(ㄱ) 파티션 작업(Partition ID (83 -> 8e)) # fdisk /dev/sdc # pvcreate /dev/sdc1 # vgcreate vg1 /dev/sdc1 # lvcreate -l 100%FREE -n lv1 vg1
(ㄴ) 파일시스템 작업 # mkfs.ext3 /dev/vg1/lv1
(ㄷ) 마운트 작업 # vi /etc/fstab # mkdir /oracle # mount /oracle |
LVM 관리
(1) LVM 설정 방법 종류
(GUI) # system-config-lvm
(TUI) pvcreate CMD, vgcreate CMD, lvcreate CMD
[EX] LVM 관리를 위한 관리 툴 및 명령어 확인
① (GUI) system-config-lvm 툴
(필요하면 명령어 수행)
# yum install system-config-lvm
# system-config-[TAB][TAB]
# system-config-lvm &
② (TUI) LVM 관리 명령어 확인
# pv[TAB][TAB]
# vg[TAB][TAB]
# lv[TAB][TAB]
(2) 정보를 자세히 보는 방법
(ㄱ) -v, -vv, -vvv, -vvvv 옵션 사용
# lvcreate -L 50MB new_vg
# lvcreate -v -L 50MB new_vg
# lvcreate -vvvv -L 50MB new_vg
(ㄴ) command --help
# pvcreate --help
# vgcreate --help
# lvcreate --help
(ㄷ) manual page
# man pvcreate
# man vgcreate
# man lvcreate
[EX] 정보 자세히 보기
① lvcreate -v 사용
# vgs
-> 남은 공간 확인(VFree : 1000.00M)
# lvcreate -L 50M -n testlv vg1
# lvcreate -v -L 50M -n testlv2 vg1
# lvcreate -vvvv -L 50M -n testlv3 vg1
# lvs
-> 출력 결과 생략
# lvremove /dev/vg1/testlv (# echo y | lvremove /dev/vg1/testlv)
# lvremove /dev/vg1/testlv2 (# echo y | lvremove /dev/vg1/testlv2)
# lvremove /dev/vg1/testlv3 (# echo y | lvremove /dev/vg1/testlv3)
② CMD --help 사용
# pvcreate --help (# pvcreate -h)
# pvremove --help (# pvremove -h)
# vgcreate --help
# vgremove --hlep
# lvcreate --help
# lvremove --help
[관리 예제]
(3) 관리 작업(시나리오 작업)
(3-1) 파일시스템(EX: /lv2) 용량을 늘리는 경우
■ 작업 계획
/lv2 파일시스템이 용량이 부족하여 파일시스템 용량을 늘리기
/lv2((500M) + 1G = 1.5G)
① 실습의 위한 설정 확인 및 준비
통상적으로 80%를 넘지 않아야한다.
② 파일시스템(EX: /lv2) 용량 늘리기
# vgdisplay (# vgs)
(3-2) VG(EX: vg1)에 PV(EX: sdf1)를 추가하는 경우
■ 작업 계획
LV1(dev/vg1/lv1(1.5G) 용량을 늘리기를 원하는 상태.
그러나 VG(/dev/vg1)에는 남는 공간이 없는 상황.
VG(/dev/vg1)에 PV(/dev/sdf1) 추가하고 LV(/dev/vg1/lv1)에 용량 늘리기
vg1(sdc1, sdd1, sde1) + sdf1
(3-3) LV 용량 감소(Shrinking)
■ 작업 계획
(가정) VG에 증설할 PV는 존재하지 않는 상태
/lv1 용량은 남은 상태이고, lv2는 용량이 부족한 상황.
따라서, /lv1 용량을 감소 시키고, /lv2 용량을 증가.
/lv1 - 용량 감소
/lv2 - 용량 증설
■ 파일시스템 용량을 줄이는 경우의 절차
(ㄱ) 파일시스템 언마운트(umount)
# umount /lv1
(ㄴ) 파일시스템 점검(fsck -f/fsck.ext3 -f/e2fsck -f)
# e2fsck -f /dev/vg1/lv1
(ㄷ) 파일시스템 용량 줄이기
# resize2fs -p /dev/vg1/lv1 700M
(ㄹ) LV 용량 줄이기
# lvrecuce -L 700M /dev/vg1/lv1
* 파일시스템 용량과 LV용량은 반드시 맞춰야한다.
(3-4) VG 안의 PV를 새로운 PV로 교체
VG 안에 PV를 새로운 PV로 교체하는 이유
■ 성능이 좋은 디스크로 교체하는 경우(10000 rpm -> 15000 rpm)
■ 용량이 큰 디스크로 교체하는 경우(72G SCSI -> 250G SAS)
(전제조건) 새로운 디스크(EX: /dev/sdg, /dev/sdh)가 추가 되어 있고
하나의 파티션(/dev/sdg1, /dev/sdh1)으로 설정
(ㄱ) 서버 전원 OFF
# poweroff
(ㄴ) 새로운 디스크 장착
VMWare > VM > Setting > Add > Hard Disk > Create a new virtual disk > SCSI > 1G
(ㄷ) 서버 전원 ON 후 새로 장착된 디스크 확인
# ls -l /dev/sd? (# fdisk -l)
brw-r----- 1 root disk 8, 0 Apr 29 14:50 /dev/sda
brw-r----- 1 root disk 8, 16 Apr 29 14:50 /dev/sdb
brw-r----- 1 root disk 8, 32 Apr 29 14:50 /dev/sdc
brw-r----- 1 root disk 8, 48 Apr 29 14:50 /dev/sdd
brw-r----- 1 root disk 8, 64 Apr 29 14:50 /dev/sde
brw-r----- 1 root disk 8, 80 Apr 29 14:50 /dev/sdf
brw-r----- 1 root disk 8, 96 Apr 29 14:50 /dev/sdg
brw-r----- 1 root disk 8, 112 Apr 29 14:50 /dev/sdh
(3-5) LV/VG/PV 삭제
■ 작업 순서
- umount 작업
- LV 삭제(lvremove CMD)
- VG 삭제(vgremove CMD)
- PV 삭제(pvremove CMD)
(3-6) LV Striping 구성
LVM Stripe 방식의 특성
- 성능: ↑, 안정성: ↓, 디스크 사용 효율: -
(명령어 형식)
# lvcreate -L 50G -i2 -I64 -n lv1 vg1 /* -I : 대문자 i */
-> -i 옵션: number of stripes
-> -I 옵션: stripe size(KB) - 기본값이 64KB
-> 2개의 PV에 걸쳐서 stripe 크기는 64KB 크기로 vg1에 lv1 구성
# lvextend -L +10G /dev/vg1/lv1
# lvextend -l +100%FREEE /dev/vg1/lv1
[EX] LV Stripe 구성
(선수작업) /dev/sdh1(System partition ID : 8e)
# fdisk /dev/sdh
-> /dev/sdh1 (System partition ID : 8e)
# pvs
#
-> 구성된 정보가 없다.
# fdisk -l | grep 'LVM'
# pvcreate /dev/sd[cde]1 (# pvcreate /dev/sdc1 /dev/sdd1 /dev/sde1)
# vgcreate vg1 /dev/sd[cde]1 (# vgcreate vg1 /dev/sdc1 /dev/sdd1 /dev/sde1)
# lvcreate -L 1.5G -i 3 -I 64 -n stripelv vg1 /* -l : 대문자 i */
# pvs
[참고] # man lvcreate
-i
-I
[EX] Striped LV 확장
# vgs
# lvextend -l +100%FREE /dev/vg1/stripelv
# vgs
# pvs
# pvcreate /dev/sd[fgh]1
# vgextend vg1 /dev/sd[fgh]1
# vgs (# pvs)
# lvextend -L +1.5G /dev/vg1/stripelv
# pvs
(추가적인 실습)
# lvs
# mkfs.ext3 /dev/vg1/stripelv
# mkdir -p /stripelv
# mount /dev/vg1/stripelv /stripelv (/etc/fstab)
# df -h
# dd if=/dev/zero of=/stripelv/file1 bs=1M count=150
# cd
# umount /stripelv (/etc/fstab)
# df –h
(복원) LV/VG/PV 삭제
# lvremove /dev/vg1/stripelv
# vgremove /dev/vg1
# pvremove /dev/sd[cdefgh]1
(3-7) LV Mirroring 구성
Mirror 방식의 특성:
- 성능(r/w): read ↑, write ↓, 안정성: ↑, 디스크 사용효율: ↓
(명령어 형식)
# lvcreate -L 50G -m 1 -n lv1 vg1
-> -m 옵션: number of copies
# lvcreate -L 12G -m1 -n lv1 vg1 /dev/sdc1 /dev/sdd1
# lvextend -L +5G /dev/vg1/mirrorlv —nosync
[EX] LV Mirroring 구성
# fdisk -l | grep LVM
# pvcreate /dev/sd[cdef]1
# vgcreate vg1 /dev/sd[cde]1
# pvs
# lvcreate -L 100M -m 1 -n mirrorlv vg1 (# lvcreate -L 100M -m 1 -n mirrorlv vg1 /dev/sdc1 /dev/sdd1)
# pvs
[EX] LV Mirror 확장
# lvextend -L +100M /dev/vg1/mirrorlv
# pvs
(추가적인 작업)
# lvs
# mkfs.ext3 /dev/vg1/mirrorlv
# mkdir -p /mirrorlv ; mount /dev/vg1/mirrorlv /mirrorlv (/etc/fstab)
# df –h
# cd
# umount /mirrorlv (/etc/fstab)
# df -h
(원복) LV/VG/PV 삭제
# lvremove /dev/vg1/mirrorlv
# vgremove /dev/vg1
# pvremove /dev/sd[cdef]1
■ (추가적인 실습 1)
(ㄱ) 디스크 준비
/dev/sdc1(1G), /dev/sdd1(1G), /dev/sde1(1G), /dev/sdf1(1G), /dev/sdg1(1G), /dev/sdh1(1G)
(ㄴ) 생성과정
PV(pvcreate) -> VG(vgcreate) -> LV(lvcreate) -> F/S(mkfs.ext3) -> Mount(mount,/etc/fstab)
(ㄷ) 작업 시나리오
VG1(/dev/sdc1, /dev/sdd1, /dev/sde1)
LV1(1.5G) ----> /lvm1 (마운트 포인터)
LV2(1.5G) ----> /lvm2 (마운트 포인터)
VG2(/dev/sdf1, /dev/sdg1)
LV3(1G) ----> /lvm3 (마운트 포인터)
LV4(1G) ----> /lvm4 (마운트 포인터)
VG2에 /dev/sdh1 디스크 추가(vgextend, lvextend, resize2fs)
LV4(/lvm4) 용량(EX:1G) 모두 할당
reboot 후에 확인
(ㄹ) 삭제
언마운트(umount, /etc/fstab) -> LV 삭제(lvremove) -> VG 삭제(vgremove) -> PV 삭제(pvremove)
(ㅁ) 참고
# pvscan (# pvs)
# vgscan (# vgs)
# lvscan (# lvs)
# pvdisplay
# vgdisplay
# lvdisplay
-------------------------------------------------------------------------------------------------------------------------------------
LVM
---------------------------------- 작업 과정 ---------------------------------------
(선수작업) VMWare > VM > CD-ROM > "CD" 사용하지 않도록 작업(마운트 되지 않도록)
(1) 디스크 준비
- 각 DISK를 PV로 생성한다.
# fdisk /dev/sdc (/de/sdc1(System ID : 8e))
# fdisk /dev/sdd (/de/sdd1(System ID : 8e))
# fdisk /dev/sde (/de/sde1(System ID : 8e))
# fdisk /dev/sdf (/de/sdf1(System ID : 8e))
# fdisk /dev/sdg (/de/sdg1(System ID : 8e))
# fdisk /dev/sdh (/de/sdh1(System ID : 8e))
# fdisk -l | grep LVM
(2) PV 생성
# pvcreate /dev/sdc1 (# pvcreate /dev/sd[cdefgh]1)
# pvcreate /dev/sdd1
# pvcreate /dev/sde1
# pvcreate /dev/sdf1
# pvcreate /dev/sdg1
# pvcreate /dev/sdh1
# pvscan
# pvdisplay
# pvs
(3) VG 생성
# vgcreate VG1 /dev/sdc1 /dev/sdd1 /dev/sde1 (# vgcreate VG1 /dev/sd[cde]1)
# vgcreate VG2 /dev/sdf1 /dev/sdg1 (# vgcreate VG2 /dev/sd[fg]1)
# vgscan
# vgdisplay
# vgs
# pvs
(4) LV 생성
# lvcreate -L 1500M -n LV1 VG1 (# lvcreate -L 1.5G -n LV1 VG1)
# lvcreate -L 1500M -n LV2 VG1 (# lvcreate -l 100%FREE -n LV2 VG1)
# lvcreate -L 1000M -n LV3 VG2 (# lvcreate -L 1G -n LV3 VG2)
# lvcreate -L 1000M -n LV4 VG2 (# lvcreate -l 100%FREE -n LV4 VG2)
# lvscan
# lvdisplay
# lvs
(5) 파일시스템 작업
# mkfs.ext3 /dev/VG1/LV1
# mkfs.ext3 /dev/VG1/LV2
# mkfs.ext3 /dev/VG2/LV3
# mkfs.ext3 /dev/VG2/LV4
# tune2fs -l /dev/VG1/LV1
(6) 마운트 작업
# mkdir /lvm1 /lvm2 /lvm3 /lvm4
# mount /dev/VG1/LV1 /lvm1
# mount /dev/VG1/LV2 /lvm2
# mount /dev/VG2/LV3 /lvm3
# mount /dev/VG2/LV4 /lvm4
# vi /etc/fstab
/dev/VG1/LV1 /lvm1 ext3 defaults 1 2 /dev/VG1/LV2 /lvm2 ext3 defaults 1 2 /dev/VG2/LV3 /lvm3 ext3 defaults 1 2 /dev/VG2/LV4 /lvm4 ext3 defaults 1 2 |
# df -h (# mount)
(7) 용량 늘리는 작업
# vgextend VG2 /dev/sdh1
# lvextend -L +1000M /dev/VG2/LV4 (# lvextend -l +100%FREE /dev/VG2/LV4)
# resize2fs /dev/VG2/LV4
# df -h
/dev/mapper/VG1-LV1 1.5G 35M 1.4G 3% /lvm1 /dev/mapper/VG1-LV2 1.5G 35M 1.4G 3% /lvm2 /dev/mapper/VG2-LV3 985M 18M 918M 2% /lvm3 /dev/mapper/VG2-LV4 2.0G 18M 1.9G 1% /lvm4 |
(8) 재부팅
# init 6 (# reboot)
부팅 이후에 확인
# df -h
/dev/mapper/VG1-LV1 1.5G 35M 1.4G 3% /lvm1 /dev/mapper/VG1-LV2 1.5G 35M 1.4G 3% /lvm2 /dev/mapper/VG2-LV3 985M 18M 918M 2% /lvm3 /dev/mapper/VG2-LV4 2.0G 18M 1.9G 1% /lvm4 |
(9) 삭제 작업
# umount /lvm1
# umount /lvm2
# umount /lvm3
# umount /lvm4
# vi /etc/fstab
# df -h
# lvremove /dev/VG1/LV1 (# lvremove /dev/VG[12]/LV[12])
# lvremove /dev/VG1/LV2
# lvremove /dev/VG2/LV3
# lvremove /dev/VG2/LV4
# lvscan
# vgremove VG1
# vgremove VG2
# vgscan
# pvremove /dev/sdc1 (# pvremove /dev/sd[cdefgh]1)
# pvremove /dev/sdd1
# pvremove /dev/sde1
# pvremove /dev/sdf1
# pvremove /dev/sdg1
# pvremove /dev/sdh1
# pvscan
[참고] pvremove 명령어로 삭제 했지만 pvscan 결과에 표시가 나는 경우
# dd if=/dev/zero of=/dev/sdc1 bs=512 count=2
# pvscan
---------------------------------- 작업 과정 ---------------------------------------
[참고] /etc/fstab 파일이 잘못 되어서 부팅이 되지 않는 경우
■ 부팅시의 에러 메세지 화면
|
=> root 암호 입력 : (centos)
# vi /etc/fstab
|
=> :q!
# mount -o remount /
# vi /etc/fstab
----------------------------------------
# /dev/VG1/LV1 /lvm1 ....
# /dev/VG1/LV2 /lvm2 ....
# /dev/VG2/LV3 /lvm3 ....
# /dev/VG2/LV4 /lvm4 ....
: wq!
----------------------------------------
# exit
..... 부팅 과정 진행 ....
|
(추가적인 실습 2) 오라클을 위한 VG 생성 및 LV 생성
3장의 디스크(/dev/sdc1, /dev/sdd1, /dev/sde1)에 LVM 생성
oraclevg -----+----- oralv (/oracle) : 1.5G
|
+----- datalv(/oracle/data) : 1.5G
(참고 작업 내용)
# fdisk /dev/sda1
# fdisk /dev/sdb1
# fdisk /dev/sdc1
# pvcreate /dev/sdc1 /dev/sdd1 /dev/sde1 (# pvcreate /dev/sd[cde]1)
# vgcreate oraclevg /dev/sdc1 /dev/sdd1 /dev/sde1 (# vgcreate oraclevg /dev/sd[cde]1)
# lvcreate -L 2G -n oralv oraclevg
# lvcreate -l 100%FREE -n datalv oraclevg
# mkfs -t ext3 /dev/oraclevg/oralv
# mkfs -t ext3 /dev/oraclevg/datalv
# mkdir /oracle
# mount /dev/oraclevg/oralv /oracle (# vi /etc/fstab)
# mkdir /oracle/data
# mount /dev/oraclevg/da talv /oracle/data (# vi /etc/fstab)
# df -h
# umount /oracle/data (# vi /etc/fstab)
# umount /oracle (# vi /etc/fstab)
# lvremove /dev/oraclevg/datalv
# lvremove /dev/oraclevg/oralv
# vgremove oraclevg
# pvremove /dev/sdc1 /dev/sdd1 /dev/sde1
(추가적인 실습 3) WAS(Web Application Server)을 위한 VG 생성 및 LV 생성
3장의 디스크(/dev/sdf1, /dev/sdg1, /dev/sdh1)에 LVM 생성
wasvg -----+----- waslv (/was) : 1G
|
+----- sourcelv(/source) : 1G
|
+----- wasloglv(/waslogs) : 1G
'Learning > └Essential & Admin' 카테고리의 다른 글
Linux_ServerAdmin (7)SWAP관리 (0) | 2016.11.03 |
---|---|
Linux_ServerAdmin (6)RAID관리 (0) | 2016.10.31 |
Linux_ServerAdmin (4)장치관리_마운트관리 (0) | 2016.10.31 |
Linux_ServerAdmin (3)장치관리_파일시스템 작업 (0) | 2016.10.31 |