본문 바로가기

Learning/ └Essential & Admin

Linux_ServerAdmin (5)LVM관리

Linux_ServerAdmin (5)LVM관리

 

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는 하나의 물리적인 DiskLVM을 사용할 수 있도록 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 크기로 vg1lv1 구성

 

# 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) 디스크 준비

- DISKPV로 생성한다.

# 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