LVM管理

来源:互联网 发布:java接口对于耦合实例 编辑:程序博客网 时间:2024/05/22 21:48

 

LVM管理


====================================================================================
创建LVM
VG
扩展/缩小
LV扩容/文件系统扩容
LVM Snapshot [扩展]

基本分区(MBR|GPT) ----> Filesystem----> mount
逻辑卷 ----> Filesystem ----> mount

一、创建LVM
0. 准备物理磁盘
可以是: /dev/sdb /dev/sdc1 (建立在RIAD之上)
[root@server0 ~]# ll /dev/vd{c,d,e}
brw-rw----. 1 root disk 253, 32 Jun 6 17:38 /dev/vdc
brw-rw----. 1 root disk 253, 48 Jun 6 17:38 /dev/vdd
brw-rw----. 1 root disk 253, 64 Jun 6 17:38 /dev/vde

1. pv
[root@server0 ~]# pvcreate /dev/vdd
Physical volume "/dev/vdd" successfully created

[root@server0 ~]# pvscan
PV /dev/vdd lvm2 [2.00 GiB]
Total: 1 [2.00 GiB] / in use: 0 [0 ] / in no VG: 1 [2.00 GiB]

[root@server0 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/vdd lvm2 a-- 2.00g 2.00g

2. vg
[root@server0 ~]# vgcreate vg1 /dev/vdd
Volume group "vg1" successfully created
[root@server0 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg1 1 0 0 wz--n- 2.00g 2.00g
[root@server0 ~]# vgscan
Reading all physical volumes. This may take a while...
Found volume group "vg1" using metadata type lvm2
[root@server0 ~]# vgdisplay
--- 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 2.00 GiB
PE Size 4.00 MiB
Total PE 511
Alloc PE / Size 0 / 0
Free PE / Size 511 / 2.00 GiB
VG UUID 7E4tlj-l0a2-ph52-OytH-eaq7-58K6-2S4n8V

3. lv
[root@server0 ~]# lvcreate -l 10 -n lv1 vg1
[root@server0 ~]# lvcreate -L 200M -n lv2 vg1

[root@server0 ~]# lvscan
ACTIVE '/dev/vg1/lv1' [640.00 MiB] inherit
ACTIVE '/dev/vg1/lv2' [256.00 MiB] inherit

4. 创建文件系统并挂载
[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/vde

2. vgextend
[root@server0 ~]# vgextend vg1 /dev/vde
Volume group "vg1" successfully extended
[root@server0 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg1 2 2 0 wz--n- 3.99g 3.76g

==减小VG vgreduce==
1.查看当前的VG中PV的使用情况
[root@server0 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/vdd vg1 lvm2 a-- 2.00g 1.76g
/dev/vde vg1 lvm2 a-- 2.00g 2.00g

2. pvmove数据到其它PV
[root@server0 ~]# pvmove /dev/vdd
/dev/vdd: Moved: 16.7%
/dev/vdd: Moved: 100.0%

[root@server0 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/vdd vg1 lvm2 a-- 2.00g 2.00g
/dev/vde vg1 lvm2 a-- 2.00g 1.76g

3.vgreduce VG
[root@server0 ~]# vgreduce vg1 /dev/vdd
Removed "/dev/vdd" from volume group "vg1"

[root@server0 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg1 1 2 0 wz--n- 2.00g 1.76g


三、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

=======================================
+50%FREE
=======================================

[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@server0 ~]# mount -o ro /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. 修改原卷的数据

3. 观察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,ro /dev/vg1/lv1-snap /mnt/lv1-snap/s
挂载快照,尽量使用ro的方式,将不会破坏快照卷中的数据


[root@server0 ~]# dmsetup ls --tree
vg1-lv2--snap (252:5)
├─vg1-lv2--snap-cow (252:7)
│ └─ (253:17)
└─vg1-lv2-real (252:6)
├─ (253:17)
└─ (253:18)
vg1-lv2 (252:1)
└─vg1-lv2-real (252:6)
├─ (253:17)
└─ (253:18)


快照自动增长:
[root@server0 ~]# vim /etc/lvm/lvm.conf
snapshot_autoextend_threshold = 70
snapshot_autoextend_percent = 20
[root@server0 ~]# systemctl restart lvm2-monitor.service
[root@server0 ~]# systemctl enable lvm2-lvmetad.service
注:快照卷 和 原卷 使用同一VG空间

 

 更多Linux运维云计算知识,尽在千锋教育。