LVM技术原理详解与逻辑卷的应用
Posted 抛物线.
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LVM技术原理详解与逻辑卷的应用相关的知识,希望对你有一定的参考价值。
本篇博客内容将介绍LVM逻辑卷技术下一篇介绍RAID技术以及RAID性能测试
这是我很久之前录的在优酷上面的lvm技术
https://v.youku.com/v_show/id_XMzgxNjI0NTk0OA==.html?spm=a2h0k.11417342.soresults.dtitle
1.1LVM逻辑概述问题
试想有一大随看业务的增加, 你的文件系统负载会越来越大,终于到了空间不足的情况,而如果我们还在使用传统的分区方式进行磁盘管理,就不得不将现有的所有分区全部删除,并重新规划新的存储解决方案。其实从一开始我们就需要-种管理机制,她能帮助我们动态地管理存储,而LVM就提供了这种功能。
LVM (Logical Volume Manager) 是基于内核的一种逻辑卷管理器,LVM 适合于管理大存储设备,
并允许用户动态调整文件系统的大小。
此外,LVM的快照功能可以帮助我们快速备份数据。
LVM为我们提供了逻辑概念上的磁盘,使得文件系统不再关心底层物理磁盘的概念。
使用LVM创建逻辑卷需要我们提前了解以下几个概念。
◎物理卷(Physical Volume, PV):物理卷是LVM的最底层概念,是LVM的逻辑存储
块,物理卷与磁盘分区是逻辑的对应关系。
生活中的圆形的积木在没有附加工具时,是不能相互堆叠且稳定的(上面的积木很快会掉下来),
但方形却有很强的组合功能(多个方向堆叠在一起不会倒塌),
我们可以假设普通的分区是一个圆形,多个分区是不能合并组合的,
而LVM中的物理卷可以假设为方形,多个LVM物理卷可以合并或拆分,从而实现容量的扩容和缩减。
LVM提供了命令工具可以将分区转换为物理卷,通过组合物理卷可以生成卷组。
◎ 卷组(Volume Group, VG): 卷组是LVM逻辑概念上的磁盘设备,
通过将单个或多个物理卷组合后生成卷组。
卷组的大小取决于物理卷的容量以及个数。在CentOS 7系统中,对容量与个数没有限制。
◎物理长度 (Physical Extent, PE): 物理长度是将物理卷组合为卷组后,
所划分的最小存储单位,即逻辑意义上磁盘的最小存储单元。
LVM默认PE大小为4MB。
这里等下我们使用lvdisplay可以看到
◎逻辑卷(Logical Volume, LV): 逻辑卷就是LVM逻辑意义上的分区,
我们可以指定从卷组中提取多少容量来创建逻卷,最后对逻辑卷格式化并挂载使用。
下图 LVM整体概念的示意图,图中可以看出,我们将物理磁盘分区可用转换为LVM的物理卷(PV),
多个物理卷组合为卷组(VG),逻辑卷(LV) 是从卷组中提取出来的存储空间,
最后我们可以将逻辑卷挂载到某个挂载点目录上。
通过对以上概念的了解,接下来要说明具体使用到的命令。将普通分区转换为物理卷的命令是pvcreate,将物理卷组合为卷组的命令是vgcreate,从卷组中提取容量创建逻辑卷的命令是Ivcreate创建完成后可以分别使用pvdisplay、vgdisplay、 Ivdisplay 查看效果。
- pvcreate
描述:使用LVM对磁盘或分区进行初始化。
用法: pvcreate [选项]物理卷[物理卷..]
例子:
[root@centos7 ~]# pvcreate /dev/sdc4 /dev/sde
[root@centos7 ~]# pvcreate /dev/sdb1,2,3
- vgcreate
描述:创建卷组。
用法: vgcreate [选项]卷组名称物理设备路径[物理设备路径..]
例子:
[root@centos7 ~] # vgcreate test vg1 /dev/sdb5 /dev/sdb6
[ root@centos7 ~]# vgcreate test vg2 -s 16M /dev/sdc5 /dev/ sdc6
#-s参数用来指定PE大小为16MB
- Ivcreate
描述:从卷组中提取存储空间,创建逻辑卷。
用法: Ivcreate [选项]卷组名称或路径[物理卷路径]
选项: -1指定使用多少个卷组中的PE创建逻辑卷,PE的容量在创建卷组时已经指定。
-L直接指定逻辑卷的容量大小,单位可以是b(B)、s(S)、k(K)、m(M)、g (G)、
t (T)、p (P)或e (E)。-n指定逻辑卷名称。
例子:
[root@centos7 ~]# lvcreate -L 2G -n test 1v1 test vg1
#从test vg1卷组中提取2GB容量,创建名称为test_ 1v1 的逻辑卷
[root@centos7 ~]# lvcreate -1 200 -n test 1v2 test vg2
#使用200个PE创建逻辑卷,前面案例中定义了PE大小为16MB
[root@centos7 ~]# lvcreate -L 2G -n test 1v1 test vg1 /dev/ sdb6
#指定使用test_ vg1卷组中的/dev/sdb6这个物理卷的存储空间,创建名称为test_ lv1 的逻辑卷
1.2 创建LVM分区实例
这里我们使用sdb这块500GB的硬盘创建四个100GB 的分区,并使用这四个分区创建一个名称为test vg的卷组,最后从该卷组中创建出两个大小为 120GB的逻辑卷,名称分别为
test web、test data。
1.使用fdisk创建分区
[rootacentos7 ~]# fdisk /dev/sdb
Command (m for help) : n
Command action
e extendedo
p primary partition (1-4)
irst sector (2048-1048575999, default 2048):
Using default value 2048
Last sector, +sectors or +sizeK,M,G(2048-1048575999, default.1048575999) : +100G
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4) : 2
First sector (20971 72481048575999, default20971 7248):
Using default value 20971 7248
Last sector, +sectors or +size(K,M,G) (20971 7248-1048575999, default 1048575999):+100G
p
Command (m for help) : nCommand action .
extended
primary partition (1-4)
p
Partition number (1-4) : 3
First sector 1419432448-1048575999,loin~ dofalt wa11e 41 9432448
default 419432448):
First sector (4194324481048575999, default 41 94324481 :
Using default value 419432448
defaultLast sector, +sectors or +size(K,M,GJ 1419432448-1I 048575999,1048575999) : +100G
Command (m for help) : n
Command action
e extended
p primary partition (1-4)
e
Selected partition 4
First sector (629147648-1048575999, default 629147648) :Using default value 629147648
Last sector, +sectors or +size(K,M,G] (629147648-1048575999, default1048575999) :
Using default value 1048575999
Command (m for help) : n
First sector (629149696-1048575999, default 629149696) :Using default value 629149696
Last sector , tsectors or +size(K,M,GJ1048575999) : +100G
Command (m for help) : tPartition number (1-5):1.
Hex code (type L to list codes) : 8e(5t4↑%x MtHJAJr..)Command (m for help) : Pt['ïJ ïßG h m/>.Device Boot ./dev/sdb1/dev/sdb2/dev/sdb3/dev/sdb4/dev/ sdb5
start
204 820971 724841 943244 862914 7648629149696.
End .
20971 72 474194324476291 476471048575999838864895
(629149696-1048575999, default
Blocks Id Sys tem
104857600 8e Linux LVM10485 7600 8e Linux LVM104857600 8e Linux LVM20971 417 6 5 Extended10485 7600 8e Linux LVM
Command (m for help) : w
The partition table has been altered!
Calling ioctl () to re-read partition table.Syncing disks.
[root@centos7 ~]# partprobe /dev/sdb
2 使用pvcreate 创建物理卷并使用display查看结果
[root@centos7 ~]# pvcreate /dev/sdb[1,2,3,5]
[root@centos7 ~]# pvdisplay
"/dev/sdb1" is a new physical volume of "100.00 GiB"-- NEW Physical volume ---
PV Name /dev/sdb1
PV Size 100.00 GiB
Free PE OAl located PE O
PV UUID MEO4oH-He1C-QGeX-JR3W- PnO0- iaKo- inQmw
3.使用vgcreate创建卷组并使用vgdisplay查看结果
[rootacentos7 ~] # vgcreate test vg /dev/sdb1,2,3,5-”一一 Volume group
VG Name test_ vg System ID
…………………………
4 . 使用lvcreate创建逻辑卷,并使用display查看结果
[root@centos7 ~]# lvcreate -n test web -L 120G test_ vg
[root@centos7 ~]# lvcreate -n test data -l 30720 test_ _vg
[root@centos7 ~]# lvdisplay
--- Logical vol ume ---
5. 格式化并挂载
[root@centos7 ~]# mkfs.xfs /dev/test_vg/test_web
[root@centos7 ~]# mkfs.xfs /dev/test_vg/test_data
[ root@centos7 ~]# mkdir -p /test/ web, data
[ root@centos7 ~]# cat >> /etc/fstab << EOF
> /dev/test vg/test data /test/data xfs defaults 0 0
>/dev/test vg/test web /test/web xfs defaults 00
>EOF
[ root@centos7 ~]# mount -a
[root@centos7 ~]# df -h #查看文件系统挂载状态
5 修改LVM分区容量
随着时间的推移,逻辑卷test data 现有的存储空间已经不能满足企业大业务量的需要,我们需要将存储容量增大至240GB时,LVM随时可以帮助我们动态调整文件系统的大小。
由于test vg这个卷组还有足够的剩余空间可以划分给逻辑卷,所以我们可以直接使用lvextend命令调整逻辑卷大小。
但lvextend仅调整逻辑卷大小,使用该命令调整完逻辑卷大小后,还需要使用xfs_ growfs 命令更新文件系统的大小,具体方法如下:
[root@centos7 ~]# lvextend -L +120G /dev/test_ vg/test data #扩 容逻辑卷
[ root@centos7 ~]# lvs #查看逻辑卷已经扩容完成
[root@centos7 ~]# df -h #文件系统没有变化
[root@centos7 ~]# xfs_ growfs /dev/test vg/test data #调整文件系统大小
[root@centos7 ~]# df -h #调整后查看文件系统大小,有变化
此外,当我们的卷组没有足够的空间划分给逻辑卷时,LVM的卷组也是可以动态调整容量大小的,这时需要使用fdisk创建一个新的分区, 并使用pvcreate命令转换为物理卷格式,接着通过vgextend将新的物理卷追加至现有的卷组空间中,最后使用Iextend调整逻辑卷的容量。
下面我们再次扩展逻辑卷test data的存储空间至360GB。
root@centos7 ~]# fdisk /dev/sdb
Command (m for help) : n
First sector (8388669441048575999,default 838866944) :Using default value 838866944
Last sector , +sectors or+size(K,M,GJ (8388669441048575999,1048575999) :
Using default value 1048575999
Command (m for help) : t
Partition number (1-6) : 6
Hex code (type L to list codes) : 8e
Changed system type of partition 6 to 8e (Linux LVM)Command (m for help) : w
[root@centos7 Desktop]# pvcreate /dev/ sdb6
[root@centos7 Desktop]# vgextend test vg /dev/ sdb6
[root@centos7 Desktop]# vgdisplay test_ _vg
一一 一 Volume group ---
VG Name test vg
VG Size 499.98 GiB #息容量499GBA1loc PE / Size 92160 / 360. 00 GiB
#已錏使用360GB
Free PE / Size 35835 / 1 39.98 GiB
#剩余139GB〈以上輸出信息部分内容省略)
lrootecentos7 ~]+ 1vextend -L 360G /dev/test_ _vg/test. data
#將還緝巻折展至360GB
[rootecentos7 ~# xfs. gxowts /dev/test _vg/test_data
[root@centos7 ~# df -h
提示
在企止生戸坏境中y要提前好数据的各备份エ作。
6 删除LVM
当我们不再需要逻辑份分区时,可以使用LVM命令轻松地删除之前创建的物理卷、卷组、逻辑卷。删除的顺序应该与创建时的顺序相反,也就是卸载文件系统、删除逻辑卷、删除卷组、删除物理卷这样的顺序。卸载文件系统时需要注意,如果有必要,应该更新(et/fstab文件。
[ root@centos7 ~]# umount /dev/test_vg/test_ data
[ root@centos7 ~]# umount /dev/test_vg/test_web
[root@centos7 ~# lvremove /dev/test_vg/test_data
Do you really want to remove active logical volume test_ data? [y/n]: Y
Logical volume "test_ data" successfully removed
[ root@centos7 ~]# lvremove /dev/test_vg/test_ web
Logical volume test_vg/test_web contains a fi lesystem in use.
[ root@centos7 Desktop]# lvremove /dev/test_vg/test_web
Do you really want to remove active logical volume test_ web? [y/n] : y
Logical volume "test_web" successfully removed
[root@centos7 Desktop]# vgremove test_vg
Volume group "test_vg" successfully removed
好了以上便是整个实例操作,下面一篇介绍raid技术
附上几张之前做的PPT
更好的了解LVM
以上是关于LVM技术原理详解与逻辑卷的应用的主要内容,如果未能解决你的问题,请参考以下文章