您的位置:首页 > 运维架构 > Linux

逻辑卷管理LVM

2017-03-04 14:22 309 查看

LVM管理

在线扩容 on-line
快照snapshot 例如MySQL可以通过快照实现一致性的物理备份

主要内容:

创建逻辑卷

管理VG:VG扩容/VG缩小(数据迁移)

管理LV:LV扩容/文件系统扩容

LVM 快照 Snapshot


创建 扫描 显示详细 显示 扩展 缩小 删除 更改


pvcreate pvscan pvdisplay pvs pvremove

vgcreate vgscan vgdisplay vgs vgextend vgreduce vgremove vgchange

lvcreate lvscan lvdisplay lvs lvextend lvreduce lvremove lvchange

一、创建LVM

1. 准备物理磁盘

可以是: /dev/sdb /dev/sdc1 (建立在RIAD之上)

[root@server0 ~]# ll /dev/vdb*

brw-rw----. 1 root disk 253, 16 12月 6 11:11 /dev/vdb

brw-rw----. 1 root disk 253, 17 12月 6 11:11 /dev/vdb1

2. pv

[root@server0 ~]# pvcreate /dev/vdb1

Physical volume "/dev/vdb1" successfully created

[root@server0 ~]# pvscan

PV /dev/vdb1 lvm2 [1.00 GiB]

Total: 1 [1.00 GiB] / in use: 0 [0 ] / in no VG: 1 [1.00 GiB]

[root@server0 ~]# pvs

PV VG Fmt Attr PSize PFree

/dev/vdb1 lvm2 a-- 1.00g 1.00g

3. vg

[root@server0 ~]# vgcreate -s 64M vg1 /dev/vdb1

[root@server0 ~]# vgdisplay vg1

--- Volume group ---

VG Name vg1

System ID

Format lvm2

Metadata Areas 1

Metadata Sequence No 1

VG Access read/write

VG Status resizable

MAX LV 0

Cur LV 0

Open LV 0

Max PV 0

Cur PV 1

Act PV 1

VG Size 960.00 MiB
PE Size 64.00 MiB

Total PE 15

Alloc PE / Size 0 / 0

Free PE / Size 15 / 960.00 MiB

VG UUID Zv9hou-iIWu-IOLc-DT1M-SxFy-Ug4k-hTSDSo

4. lv

[root@server0 ~]# lvcreate -l 10 -n lv1 vg1 //指定LE数量

[root@server0 ~]# lvcreate -L 200M -n lv2 vg1 //指定LV Size

[root@server0 ~]# lvscan

ACTIVE '/dev/vg1/lv1' [640.00 MiB] inherit

ACTIVE '/dev/vg1/lv2' [256.00 MiB] inherit

5. 创建文件系统并挂载

[root@server0 ~]# yum -y install xfsprogs

[root@server0 ~]# mkfs.xfs /dev/vg1/lv1

[root@server0 ~]# mkfs.ext4 /dev/vg1/lv2

[root@server0 ~]# mkdir /mnt/lv1 /mnt/lv2

[root@server0 ~]# vim /etc/fstab

/dev/vg1/lv1 /mnt/lv1 xfs defaults 0 0

/dev/vg1/lv2 /mnt/lv2 ext4 defaults 0 0

[root@server0 ~]# mount -a

[root@server0 ~]# df

Filesystem 1K-blocks Used Available Use% Mounted on

/dev/mapper/vg1-lv1 651948 32928 619020 6% /mnt/lv1

/dev/mapper/vg1-lv2 245671 2062 226406 1% /mnt/lv2

二、VG管理

扩大VG vgextend
1. pv

[root@server0 ~]# pvcreate /dev/vdb2

2. vgextend

[root@server0 ~]# vgextend vg1 /dev/vdb2

[root@server0 ~]# vgs

VG #PV #LV #SN Attr VSize VFree

vg1 2 2 0 wz--n- 1.88g 1.00g

减小VG vgreduce
1.查看当前的VG中PV的使用情况

[root@server0 ~]# pvs

PV VG Fmt Attr PSize PFree

/dev/vdb1 vg1 lvm2 a-- 960.00m 64.00m

/dev/vdb2 vg1 lvm2 a-- 960.00m 960.00m

2. pvmove数据到其它PV

[root@server0 ~]# pvmove /dev/vdb1 //原始PV

/dev/vdb1: Moved: 0.0%

/dev/vdb1: Moved: 71.4%

/dev/vdb1: Moved: 100.0%

[root@server0 ~]# pvs

PV VG Fmt Attr PSize PFree

/dev/vdb1 vg1 lvm2 a-- 960.00m 960.00m

/dev/vdb2 vg1 lvm2 a-- 960.00m 64.00m

3.vgreduce VG

[root@server0 ~]# vgreduce vg1 /dev/vdb1

Removed "/dev/vdb1" from volume group "vg1"

[root@server0 ~]#

[root@server0 ~]# vgs

VG #PV #LV #SN Attr VSize VFree

vg1 1 2 0 wz--n- 960.00m 64.00m

三、LV扩容

1. lv扩容

[root@server0 ~]# vgs

VG #PV #LV #SN Attr VSize VFree

vg1 2 2 0 wz--n- 1.88g 1.00g

[root@server0 ~]# lvextend -L 800M /dev/vg1/lv1

[root@server0 ~]# lvextend -L +800M /dev/vg1/lv1

[root@server0 ~]# lvextend -l 15 /dev/vg1/lv1

[root@server0 ~]# lvextend -l +15 /dev/vg1/lv1

增加整个VG FREE 50%

[root@server0 ~]# lvextend -l +50%FREE /dev/vg1/lv1

[root@server0 ~]# lvscan

ACTIVE '/dev/vg1/lv1' [768.00 MiB] inherit

ACTIVE '/dev/vg1/lv2' [512.00 MiB] inherit

2. FS扩容

[root@server0 ~]# df -Th

/dev/mapper/vg1-lv1 xfs 637M 67M 570M 11% /mnt/lv1

/dev/mapper/vg1-lv2 ext4 240M 32M 192M 15% /mnt/lv2

a. xfs

[root@server0 ~]# xfs_growfs /dev/vg1/lv1

b. ext2/3/4

[root@server0 ~]# resize2fs /dev/vg1/lv2

[root@server0 ~]# df -Th

Filesystem Type Size Used Avail Use% Mounted on

/dev/mapper/vg1-lv1 xfs 765M 67M 698M 9% /mnt/lv1

/dev/mapper/vg1-lv2 ext4 488M 32M 429M 7% /mnt/lv2

四、LVM快照snapshot

1. 创建快照 (EXT4)

[root@server0 ~]# lvcreate -L 128M -s -n lv2-snap /dev/vg1/lv2

[root@server0 ~]# lvs

LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert

lv1 vg1 -wi-ao---- 768.00m

lv2 vg1 owi-aos--- 512.00m

lv2-snap vg1 swi-aos--- 128.00m lv2 5.92

[root@localhost ~]# dmsetup ls --tree

vg1-lv2--snap (253:2)

├─vg1-lv2--snap-cow (253:4)

│ └─ (8:0)

└─vg1-lv2-real (253:3)

├─ (8:0)

└─ (8:16)

vg1-lv2 (253:1)

└─vg1-lv2-real (253:3)

├─ (8:0)

└─ (8:16)

[root@server0 ~]# mount /dev/vg1/lv2-snap /mnt/lv2-snap/

[root@server0 ~]# df -Th

Filesystem Type Size Used Avail Use% Mounted on

/dev/mapper/vg1-lv2 ext4 488M 32M 429M 7% /mnt/lv2

/dev/mapper/vg1-lv2--snap ext4 488M 32M 429M 7% /mnt/lv2-snap

[root@server0 ~]# lvscan

ACTIVE '/dev/vg1/lv1' [768.00 MiB] inherit

ACTIVE Original '/dev/vg1/lv2' [512.00 MiB] inherit

ACTIVE Snapshot '/dev/vg1/lv2-snap' [128.00 MiB] inherit

[root@server0 ~]# ls /mnt/lv2

etc lost+found

[root@server0 ~]# ls /mnt/lv2-snap/
etc lost+found

2. 查看Snapshot

[root@server0 ~]# lvs

LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert

lv1 vg1 -wi-ao---- 768.00m

lv2 vg1 owi-aos--- 512.00m

lv2-snap vg1 swi-aos--- 128.00m lv2 30.56

XFS:

[root@server0 ~]# mount -o nouuid,norecovery,ro /dev/vg1/lv1-snap /mnt/lv1-snap/

挂载快照,尽量使用ro的方式,将不会破坏快照卷中的数据

快照卷自动增长:

[root@localhost ~]# vim /etc/lvm/lvm.conf

snapshot_autoextend_threshold = 70

snapshot_autoextend_percent = 20

[root@localhost ~]# service lvm2-monitor start

[root@localhost ~]# chkconfig lvm2-monitor on

===================================================================================

a603
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息