LVM

 

 

 

 

 

 

(어제 이어서)

 

 

 

 

 

LVM Stripe 방식=>

IO가 분산되서 성능이 좋아짐

안전성은 떨어짐

 

 

 

* 팁

디스크 추가 후

# partprob => 새로운 장치 인식 명령어

 

 

 

* 데이터생성

# dd if=/dev/zero of=/stripelv/file1 bs=1M count=150

 

 

 

 

 

 

LVM mirror 방식=>

복제 (reflact) 방식이기 때문에 안정성은 좋지만

디스크 효율이 떨어짐

일반적으로 2 way mirroring system으로 사용.

 

 

 

점검할때

ls -l /dev/sd?

fdisk -l | grep LVM

 

 

 

 

 


 

 

 

 

 

 

-LVM 종합 실습-

 

 

 

 

 

(ㄱ) 디스크 준비

/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

 

 

 

 

 

---------------------------------- 작업 과정 ---------------------------------------

 

 

 

 

 

(선수작업)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

# pvdispl

# 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 lvm1 VG1(# lvcreate -L 1.5G -n lvm1 VG1)

# lvcreate -L 1500M -n lvm2 VG1(# lvcreate -l 100%FREE -n LV2 VG1)

 

# lvcreate -L 1000M -n lvm3 VG2 (# lvcreate -L 1G -lvm3 VG2)

# lvcreate -L 1000M -n lvm4 VG2 (# lvcreate -l 100%FREE -n lvm4 VG2)

 

 

ㄴ) 사용하지 않고 남아있는 디스크(h)의 용량을 VG2/lvm4에 추가해 용량 늘리는 작업

# vgextend VG2 /dev/sdh1 => VG2 확장

# lvextend -L +1000M /dev/VG2/lvm4 (# lvextend -l +100%FREE /dev/VG2/lvm4) => LV 확장

# resize2fs /dev/VG2/lvm4 => 용량 추가 후 적용을 위한 리사이즈 작업

 

 

 

# lvscan

# lvdisplay

# lvs

 

 

 

 

 

(5) 파일시스템 작업

# mkfs.ext4 /dev/VG1/lvm1

# mkfs.ext4 /dev/VG1/lvm2

# mkfs.ext4 /dev/VG2/lvm3

# mkfs.ext4 /dev/VG2/lvm4

# tune2fs -l /dev/VG1/LV1 (안해도 됨)

 

 

 

 

(6) 마운트 작업

# mkdir -p /lvm1 /lvm2 /lvm3 /lvm4 : 마운트 포인터 만들어 주고

# mount -a : 전체 마운트 시키기

# 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/lvm1  /lvm1 ext3 defaults 1 2

/dev/VG1/lvm2  /lvm2 ext3 defaults 1 2

/dev/VG2/lvm3  /lvm3 ext3 defaults 1 2

/dev/VG2/lvm4  /lvm4 ext3 defaults 1 2

 

# df -h(# mount 여부 확인)

 

 

 

 

 

 

 

(7) 재부팅

# init 6 (# reboot)

 

부팅 이후에 확인

 

# df -h

 

 

 

 

(8) 삭제 작업

# 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 VG[12])

# 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

 

 

 

 

 


 

 

 

 

RAID

 

 

*레이드 개념 알기

 

운영체제 사용하기 좋다.

데이터들은 스토리지에서 끌어와 쓰는게 좋다.

 

 

 

 

 

실습

 

 

 

(ㄱ) 디스크 준비

/dev/sdc1(1G), /dev/sdd1(1G), /dev/sde1(1G), /dev/sdf1(1G),

/dev/sdg1(1G), /dev/sdh1(1G), /dev/sdi1(1G)

 

 

(ㄴ) RAID 구현 절차

RAID 구성(mdadm --create) -> F/S(mkfs.ext3) -> Mount(mount,/etc/fstab)

/etc/mdadm.conf

 

 

(ㄷ) 작업 시나리오

RAID 0 (/dev/md0) - /dev/sdc1, /dev/sdd1 => /raid0

RAID 1 (/dev/md1) - /dev/sde1, /dev/sdf1 => /raid1

RAID 5 (/dev/md5) - /dev/sdg1, /dev/sdh1, /dev/sdi1 => /raid5

 

# timedd if=/dev/zero of=/test/file1 bs=500M count=1

# timedd if=/dev/zero of=/raid0/file1 bs=500M count=1

# timedd if=/dev/zero of=/raid1/file1 bs=500M count=1

# time dd if=/dev/zero of=/raid5/file1 bs=500M count=1

 

 

(ㄹ) RAID 삭제

Umount(umount, /etc/fstab) -> RAID 구성 삭제(mdadm --stop)

/etc/mdadm.conf

 

 

(ㅁ) 참고

# cat /proc/mdstat

# mdadm --detail /dev/md0

# ls -l /etc/mdadm.conf

 

 

 

 

 

 

--------------------------------- 작업 과정 ------------------------------------

 

 

 

 

(ㄱ) 디스크 준비

# systemctl list-unit-files | grep systemd-udev

# poweroff

새로운 디스크 장착(EX: /dev/sdi)

Power ON

# ls -l /dev/sd? (# fdisk -l | grep 'Disk /dev')

 

 

system ID fd(raid)로 변경시키기

# fdisk /dev/sdc

# fdisk /dev/sdd

# fdisk /dev/sde

# fdisk /dev/sdf

# fdisk /dev/sdg

# fdisk /dev/sdh

# fdisk /dev/sdi

# fdisk -l | grep raid (# fdisk –l /dev/sd? | grep raid) => 확인작업

 

 

 

 

(ㄴ) RAID 구성 작업

# mdadm --create /dev/md0--level=0--raid-device=2/dev/sdc1 /dev/sdd1

# mdadm --create /dev/md1--level=1--raid-device=2/dev/sde1 /dev/sdf1

# mdadm --create /dev/md5--level=5 --raid-device=3 /dev/sdg1 /dev/sdh1 /dev/sdi1

#cat /proc/mdstat (# watch cat /proc/mdstat) => 확인작업

 

 

 

 

# mdadm —detail —scan

# mdadm --detail --scan > /etc/mdadm.conf

 

# cat /etc/mdadm.conf => 확인작업

 

* 왜 저장하는가?

mdadm 커맨드의 설정파일이 mdadm.conf 인데

부팅시 레이드 정보가 올라와야 안에 설정파일이 읽혀지기 때문.

처음에는 설정이 안되어있기 때문에 따로 만들어 줘야한다.

Software Raid 방식

 

 

 

 

 

(ㄷ) 파일시스템 작업

# mkfs.ext4 /dev/md0

# mkfs.ext4 /dev/md1

# mkfs.ext4 /dev/md5

# tune2fs –l /dev/md0

# tune2fs –l /dev/md1

# tune2fs -l /dev/md5

 

 

 

(ㄹ) 마운트 작업

# mkdir -p /raid0 /raid1 /raid5

# vi /etc/fstab (부팅할때 활성화 되도록 등록)

*들어가면

/dev/md0 /raid0 ext4 defaults 1 2

/dev/md1 /raid1 ext4 defaults 1 2

/dev/md5 /raid5 ext4 defaults 1 2

 

# mount –a 아니면 하나씩

# mount /raid0

# mount /raid1

# mount /raid5

# df -h

 

 

 

 

(ㅁ) 파일생성 테스트

# timedd if=/dev/zero of=/test/file1 bs=500M count=1 (0m5.689s:0m7.838s:0m6.675s:0m6.572s

# time dd if=/dev/zero of=/raid0/file1 bs=500M count=1 (0m3.325s:0m5.658s:0m8.190s:0m6.631s

# timedd if=/dev/zero of=/raid1/file1 bs=500M count=1 (0m2.314s:0m6.844s:0m9.022s:0m7.101s

# timedd if=/dev/zero of=/raid5/file1 bs=500M count=1 (0m1.925s:0m1.982s:0m7.252s:0m3.982s

 

 

 

(ㅂ) RAID 삭제

# df –h –T 먼저 확인

# umount /raid0

# umount /raid1

# umount /raid5

# vi /etc/fstab

# df -h

 

 

# mdadm --stop /dev/md0

# mdadm --stop /dev/md1

# mdadm --stop /dev/md5

# cat /proc/mdstat

 

 

# mdadm --remove /dev/md0

# mdadm --remove /dev/md1

# mdadm --remove /dev/md5

 

 

# mdadm —zero-superblock /dev/sd[cdefghi]1 > 한번에 지우는법

# mdadm --zero-superblock /dev/sdc1 /dev/sdd1 하나씩 지우는 법

# mdadm --zero-superblock /dev/sde1 /dev/sdf1

# mdadm --zero-superblock /dev/sdg1 /dev/sdh1 /dev/sdi1

 

# rm -f /etc/mdadm.c

onf

# ls -l /etc/mdadm.conf

 

 

 

 


 

 

 

 

5. SWAP

 

 

 

 

자주하는 작업은 아니지만

개념은 알고 있어야 한다.

 

 

 

 

* SWAP?

* SWAP Issue?

* SWAP 언제 추가해야 하는가?

* SWAP 추가한다면 얼만큼 추가해야 하는가?

* SWAP 추가하면 성능이 좋아지는가?

 

 

 

* SWAP 관리

SWAP File 추가/삭제

# mkdir -p /swap ; dd if=/dev/zero of=/swap/swapfile bs=1M count=10240

# mkswap /swap/swapfile

# swapon /swap/swapfile

# vi /etc/fstab

# swapoff /swap/swapfile

# vi /etc/fstab

# rm -f /swap/swapfile

SWAP Partition 추가/삭제

# fdisk /dev/sdb

# mkswap /dev/sdb1 (/dev/sdb1(82))

# swapon /dev/sdb1

# vi /etc/fstab

# swapoff /dev/sdb1

# vi /etc/fstab

 

 

 


 

 

 

 

6. Software 관리

 

 

 

rpm CMD

# rpm -ivh|Fvh|Uvh [--nodeps] [--force] PKG.rpm

# rpm -qa | grep bash

# rpm -qi bash

# rpm -ql bash

# rpm -qf /bin/bash

# rpm -qi -p PKG.rpm

# rpm -e [--nodeps] PKG

 

 

 

[참고] rpm 구할수 있는 곳

1) Linux CD

2) 인터넷(fedoraproject)

# yum install epel-release

# yum install ntfs-3g

3) 인터넷(rpmfind.net, pbone.net)

4) 개발자

yum CMD

source 관리

 

 

 

 

 

 

 

 

 

728x90

+ Recent posts