磁盘管理-逻辑卷
介绍
逻辑卷简介
-
逻辑卷管理器是Linux系统用于对硬盘分区进行管理的一种机制 -
理论性较强,创建初衷是为了解决硬盘设备在创建分区后不易修改分区大小的缺陷。尽管对传统的硬盘分区进行强制扩容或缩容从理论上来讲是可行的,但是却可能造成数据的丢失。 -
建立在物理存储设备之上的一个抽象层,优点在于灵活管理 -
特点:
工作原理
-
物理卷:Physical Volume(PV),处于LVM中的最底层,可以将其理解为物理硬盘、硬盘分区或者RAID磁盘阵列 -
卷组:Volume Group( VG),建立在物理卷之上,一个卷组可以包含多个物理卷,而且在卷组创建之后也可以继续向其中添加新的物理卷。一个LVM系统中可以只有一个卷组,也可以包含多个卷组 -
逻辑卷:Logical Volume(LV),逻辑卷建立在卷组之上,并且逻辑卷在建立后可以动态地扩展或缩小空间,是最终用户使用的逻辑设备 -
物理区域 :physical extent(PE),一个物理卷可被划分为多个PE,具有唯一编号的PE是能被LVM寻址的最小单元。PE的大小可指定,默认为4 MB。 PE的大小一旦确定将不能改变,同一个卷组中的所有物理卷的PE的大小是一致的。 -
逻辑区域:logical extent(LE),一个逻辑卷可被划分为多个LE,也是LVM寻址的最小单元,在同一个卷组中,LE的大小和PE是相同的,并且一一对应。
逻辑卷管理
常用命令
功能/命令 | 物理卷管理 | 卷组管理 | 逻辑卷管理 |
---|
扫描 | pvscan | vgscan | lvscan | 建立 | pvcreate | vgcreate | lvcreate | 显示 | pvs | vgs | lvs | 详细显示 | pvdisplay | vgdisplay | lvdisplay | 删除 | pvremove | vgremove | lvremove | 扩展 | | vgextend | lvextend | 缩小 | | vgreduce | lvreduce |
逻辑卷创建
物理设备——>物理卷(pv)——>卷组(vg)——>逻辑卷(lv)——>逻辑卷格式化——>挂载
物理设备:硬盘分区
[root@server1 ~]
[root@server1 ~]
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 5G 0 disk
├─sdb1 8:17 0 1G 0 part
└─sdb2 8:18 0 2G 0 part
sr0 11:0 1 973M 0 rom
[root@server1 ~]
创建物理卷
[root@server1 ~]
Physical volume "/dev/sdb1" successfully created.
Physical volume "/dev/sdb2" successfully created.
[root@server1 ~]
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <19.00g 0
/dev/sdb1 lvm2 --- 1.00g 1.00g
/dev/sdb2 lvm2 --- 2.00g 2.00g
[root@server1 ~]
"/dev/sdb2" is a new physical volume of "2.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb2
VG Name
PV Size 2.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID ogYeQh-kmXp-SguX-IE5I-VY1T-HFSE-mgVzh2
"/dev/sdb1" is a new physical volume of "1.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb1
VG Name
PV Size 1.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID O0FhDl-4USu-DBGD-skhu-zFVA-rEiZ-JVC3T3
创建卷组
[root@server1 ~]
Volume group "vg01" successfully created
[root@server1 ~]
VG
centos 1 2 0 wz--n- <19.00g 0
vg01 2 0 0 wz--n- 2.99g 2.99g
创建逻辑卷
[root@server1 ~]
选项说明:
-n:指定逻辑卷名称
-L:直接指定逻辑卷大小
-l:间接指定逻辑卷大小(加PE个数/卷组剩余空间(VFree)百分比)
[root@server1 ~]
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- <17.00g
swap centos -wi-ao---- 2.00g
lv01 vg01 -wi-a----- 2.50g
查看映射关系
[root@server1 ~]
lrwxrwxrwx 1 root root 7 8月 21 12:17 /dev/vg01/lv01 -> ../dm-2
[root@server1 ~]
lrwxrwxrwx 1 root root 7 8月 21 12:17 /dev/mapper/vg01-lv01 -> ../dm-2
格式化
[root@server1 ~]
[root@server1 ~]
/dev/vg01/lv01: UUID="acc1fc83-a64c-4d60-9f32-955169625ac1" TYPE="ext4"
挂载
[root@server1 ~]
[root@server1 ~]
[root@server1 ~]
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 899M 0 899M 0% /dev
tmpfs tmpfs 910M 0 910M 0% /dev/shm
tmpfs tmpfs 910M 9.6M 901M 2% /run
tmpfs tmpfs 910M 0 910M 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 17G 1.9G 16G 11% /
/dev/sda1 xfs 1014M 194M 821M 20% /boot
tmpfs tmpfs 182M 0 182M 0% /run/user/0
/dev/mapper/vg01-lv01 ext4 2.4G 7.5M 2.3G 1% /mnt/lv01
逻辑卷删除
解挂
[root@server1 ~]
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 5G 0 disk
├─sdb1 8:17 0 1G 0 part
│ └─vg01-lv01 253:2 0 2.5G 0 lvm /mnt/lv01
└─sdb2 8:18 0 2G 0 part
└─vg01-lv01 253:2 0 2.5G 0 lvm /mnt/lv01
sr0 11:0 1 973M 0 rom
[root@server1 ~]
删除逻辑卷
[root@server1 ~]
Do you really want to remove active logical volume vg01/lv01? [y/n]: y
Logical volume "lv01" successfully removed
删除卷组
[root@server1 ~]
Volume group "vg01" successfully removed
删除物理卷
[root@server1 ~]
Labels on physical volume "/dev/sdb1" successfully wiped.
Labels on physical volume "/dev/sdb2" successfully wiped.
[root@server1 ~]
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <19.00g 0
[root@server1 ~]
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 5G 0 disk
├─sdb1 8:17 0 1G 0 part
└─sdb2 8:18 0 2G 0 part
sr0 11:0 1 973M 0 rom
逻辑卷动态扩容
准备0.5G的逻辑卷
[root@server1 ~]
Physical volume "/dev/sdb1" successfully created.
[root@server1 ~]
Volume group "vg01" successfully created
[root@server1 ~]
Logical volume "lv01" created.
[root@server1 ~]
lrwxrwxrwx 1 root root 7 8月 21 13:10 /dev/vg01/lv01 -> ../dm-2
[root@server1 ~]
lrwxrwxrwx 1 root root 7 8月 21 13:10 /dev/mapper/vg01-lv01 -> ../dm-2
[root@server1 ~]
[root@server1 ~]
[root@server1 ~]
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 899M 0 899M 0% /dev
tmpfs tmpfs 910M 0 910M 0% /dev/shm
tmpfs tmpfs 910M 9.6M 901M 2% /run
tmpfs tmpfs 910M 0 910M 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 17G 1.9G 16G 11% /
/dev/sda1 xfs 1014M 194M 821M 20% /boot
tmpfs tmpfs 182M 0 182M 0% /run/user/0
/dev/mapper/vg01-lv01 ext4 488M 780K 452M 1% /mnt/lv01
查看/mnt/lv01属于哪个卷组
[root@server1 ~]
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- <17.00g
swap centos -wi-ao---- 2.00g
lv01 vg01 -wi-ao---- 512.00m
查看vg01的剩余空间
[root@server1 ~]
VG
centos 1 2 0 wz--n- <19.00g 0
vg01 1 1 0 wz--n- 1020.00m 508.00m
扩容卷组:直接将其他物理卷加入该卷组(如果没有空闲物理卷,可以通过物理设备创建物理卷)
[root@server1 ~]
Physical volume "/dev/sdb2" successfully created.
Volume group "vg01" successfully extended
[root@server1 ~]
VG
centos 1 2 0 wz--n- <19.00g 0
vg01 2 1 0 wz--n- 2.99g 2.49g
扩容逻辑卷
[root@server1 ~]
Size of logical volume vg01/lv01 changed from 512.00 MiB (128 extents) to 2.50 GiB (640 extents).
Logical volume vg01/lv01 successfully resized.
[root@server1 ~]
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 899M 0 899M 0% /dev
tmpfs tmpfs 910M 0 910M 0% /dev/shm
tmpfs tmpfs 910M 9.6M 901M 2% /run
tmpfs tmpfs 910M 0 910M 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 17G 1.9G 16G 11% /
/dev/sda1 xfs 1014M 194M 821M 20% /boot
tmpfs tmpfs 182M 0 182M 0% /run/user/0
/dev/mapper/vg01-lv01 ext4 488M 780K 452M 1% /mnt/lv01
同步文件系统
[root@server1 ~]
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/vg01/lv01 is mounted on /mnt/lv01; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/vg01/lv01 is now 655360 blocks long.
[root@server1 ~]
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 899M 0 899M 0% /dev
tmpfs tmpfs 910M 0 910M 0% /dev/shm
tmpfs tmpfs 910M 9.6M 901M 2% /run
tmpfs tmpfs 910M 0 910M 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 17G 1.9G 16G 11% /
/dev/sda1 xfs 1014M 194M 821M 20% /boot
tmpfs tmpfs 182M 0 182M 0% /run/user/0
/dev/mapper/vg01-lv01 ext4 2.5G 1.5M 2.4G 1% /mnt/lv01
逻辑卷实现条带化
条带化:把保存到逻辑卷的数据分成n等分,分别写到不同的物理卷,可以提高数据的读写效率;如果任何一个涉及到的物理卷出现故障,数据都会无法恢复。
创建分区
[root@server1 ~]
[root@server1 ~]
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 5G 0 disk
├─sdb1 8:17 0 2G 0 part
└─sdb2 8:18 0 2G 0 part
sr0 11:0 1 973M 0 rom
刷新分区表(不成功,可以尝试重启)
[root@server1 ~]
创建物理卷
[root@server1 ~]
Physical volume "/dev/sdb1" successfully created.
Physical volume "/dev/sdb2" successfully created.
[root@server1 ~]
PV VG Fmt Attr PSize PFree
/dev/sdb1 lvm2 --- 2.00g 2.00g
/dev/sdb2 lvm2 --- 2.00g 2.00g
创建卷组
[root@server1 ~]
Volume group "vg01" successfully created
[root@server1 ~]
VG
vg01 2 0 0 wz--n- 3.99g 3.99g
创建逻辑卷,实现条带化
[root@server1 ~]
Using default stripesize 64.00 KiB.
Logical volume "lv01" created.
选项说明:
-i:指定条带化的数量
[root@server1 ~]
PV VG Fmt Attr PSize PFree
/dev/sdb1 vg01 lvm2 a-- <2.00g 0
/dev/sdb2 vg01 lvm2 a-- <2.00g 0
格式化
[root@server1 ~]
meta-data=/dev/vg01/lv01 isize=512 agcount=8, agsize=130800 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=1046400, imaxpct=25
= sunit=16 swidth=32 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=16 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
挂载
[root@server1 ~]
[root@server1 ~]
测试
[root@server1 ~]
[root@server1 ~]
选项说明:
-d:查看磁盘
-m:以什么速度显示,M/s
3:每隔3s显示一次
[root@server1 ~]
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sdb1 181.33 0.00 11.29 0 33
sdb2 180.33 0.00 11.27 0 33
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sdb1 731.33 0.00 45.58 0 136
sdb2 729.33 0.00 45.58 0 136
逻辑卷快照
快照大小远远小于逻辑卷实例大小,快照的空间也来自于卷组,当卷组的可用空间为0时,快照不能创建
环境:现打算为vg01-lv01逻辑卷拍摄快照,但卷组可用空间为0,拟采用sdb3扩容
[root@server1 ~]
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 5G 0 disk
├─sdb1 8:17 0 2G 0 part
│ └─vg01-lv01 253:2 0 4G 0 lvm /mnt/lv01
├─sdb2 8:18 0 2G 0 part
│ └─vg01-lv01 253:2 0 4G 0 lvm /mnt/lv01
└─sdb3 8:19 0 1023M 0 part
sr0 11:0 1 973M 0 rom
创建物理卷
[root@server1 ~]
Physical volume "/dev/sdb3" successfully created.
sdb3加入vg01卷组
[root@server1 ~]
Volume group "vg01" successfully extended
[root@server1 ~]
vg01-lv01 (253:2)
├─ (8:18)
└─ (8:17)
centos-swap (253:1)
└─ (8:2)
centos-root (253:0)
└─ (8:2)
拍摄快照
[root@server1 ~]
Logical volume "lv01_snap" created.
[root@server1 ~]
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- <17.00g
swap centos -wi-ao---- 2.00g
lv01 vg01 owi-aos--- 3.99g
lv01_snap vg01 swi-a-s--- 50.00m lv01 0.15
[root@server1 ~]
vg01-lv01_snap (253:5)
├─vg01-lv01_snap-cow (253:4)
│ └─ (8:19)
└─vg01-lv01-real (253:3)
├─ (8:18)
└─ (8:17)
vg01-lv01 (253:2)
└─vg01-lv01-real (253:3)
├─ (8:18)
└─ (8:17)
centos-swap (253:1)
└─ (8:2)
centos-root (253:0)
└─ (8:2)
快照自动扩容
[root@server1 ~]
snapshot_autoextend_threshold = 75
snapshot_autoextend_percent = 20
生产环境下常使用快照备份
锁表–>创建快照–>解锁–>挂载快照–>备份到指定地方–>删除快照
|