LVM逻辑卷管理
LVM(logical volume manager,逻辑卷管理)是Linux环境下对磁盘分区进行管理的机制。他针对我们的数据不断扩大,在原有的动态磁盘基础上动态的调整磁盘的大小。
普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻辑分区存放不下某个文件时,这个文件因为受上层文件系统的限制,也不能跨越多个分区来存放,所以也不能同时放到别的磁盘上。而遇到出现某个分区空间耗尽时,解决的方法通常是使用符号链接,或者使用调整分区大小的工具,但这只是暂时解决办法,没有从根本上解决问题。随着Linux的逻辑卷管理功能的出现,这些问题都迎刃而解,用户在无需停机的情况下可以方便地调整各个分区大小。
物理存储介质(The physical media):系统存储设备,如硬盘,/dev/sda /dev/hdadeng
物理卷(physical volume):指硬盘上从逻辑上与磁盘分区具有相同功能的设备,是LVM
的基本存储逻辑块。
卷组(volume group):类似于非LVM系统中的物理硬盘,由物理卷组成。
逻辑卷(logical volume):类似于非LVM系统的硬盘分区,在逻辑卷上可以建立文件系统。
PE(physical extend):每一个物理卷被划分为称为PE的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元,默认4MB。
LE(logical extend):逻辑卷被划分为称为LE的可被寻址的基本单位。在同一卷组中,LE和PE的大小是相同的,并且一一对应。
工作原理:
(1)物理磁盘被格式化为PV,空间被划分为一个个的PE
(2)不同的PV加入到同一个VG中,不同PV的PE全部进入到了VG的PE池内
(3)LV基于PE创建,大小为PE的整数倍,组成LV的PE可能来自不同的物理磁盘
(4)LV现在就直接可以格式化后挂载使用了
(5)LV的扩充缩减实际上就是增加或减少组成该LV的PE数量,其过程不会丢失原始数据
创建逻辑卷
创建物理卷----->创建卷组----->创建逻辑卷---->格式化----->开机自动挂载
root@localhost ~]# fdisk /dev/sda 添加磁盘分区
[root@localhost ~]# partprobe
[root@localhost ~]# pvcreate /dev/sda{6,7,8} 创建物理卷
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda6 lvm2 --- 2.00g 2.00g
/dev/sda7 lvm2 --- 2.00g 2.00g
/dev/sda8 lvm2 --- 2.00g 2.00g
[root@localhost ~]# vgcreate datastore /dev/sda{6,7} 创建卷组
[root@localhost ~]# lvcreate -n database -L 3G /dev/datastore 创建逻辑卷
[root@localhost ~]# mkfs.xfs /dev/datastore/database 格式化
[root@localhost ~]# vim /etc/fstab 开机自动挂载
UUID=6f074fa0-341f-4ce6-9252-64929e1d7f42 /mnt xfs defaults 0 0
扩展逻辑卷
[root@localhost ~]# vgextend datastore /dev/sda8
Volume group "datastore" successfully extended
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
datastore 3 1 0 wz--n- 5.99g 2.99g
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
database datastore -wi-a----- 3.00g
[root@localhost ~]# lvextend -L +2G /dev/datastore/database
Size of logical volume datastore/database changed from 3.00 GiB (768 extents) to 5.00 GiB (1280 extents).
Logical volume database successfully resized.
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
database datastore -wi-a----- 5.00g
删除所有逻辑卷,恢复
[root@localhost ~]# vim /etc/fstab 修改配置文件
[root@localhost ~]# lvremove /dev/datastore/database 删除逻辑卷
Do you really want to remove active logical volume database? [y/n]: y
[root@localhost ~]# vgremove datastore 删除卷组
[root@localhost ~]# pvremove /dev/sda{6,7,8} 删除物理卷
[root@localhost ~]# fdisk /dev/sda 删除分区
[root@localhost ~]# partprobe
[root@localhost ~]# fdisk -l
Disk /dev/sda: 64.4 GB, 64424509440 bytes, 125829120 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O si***imum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000c466e
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 411647 204800 83 Linux
/dev/sda2 411648 41371647 20480000 83 Linux
/dev/sda3 41371648 49563647 4096000 82 Linux swap / Solaris
/dev/sda4 49563648 125829119 38132736 5 Extended
/dev/sda5 49565696 50614271 524288 82 Linux swap / Solaris