目录
- 前言
- 1. 原理
- 2. 实验
前言
那么,根据我们上一版块的解释,其实经过思考会发现,传统的分区格式化会有一些问题,比如说:当我数据的存储大小超过了所有单个磁盘的存储空间大小的时候,会发现即使剩余空间总和满足数据存储的需求,但是却没法满足;其次是扩容不方便,数据扩容属于单磁盘式扩容,会受到磁盘的最大存储空间的限制。
为了解决这些问题,思考一下能否将所有存储磁盘空间进行统一管理形成统一的存储空间,然后扩容可以通过加入磁盘的方式实现动态扩容?
那么解决这个办法的技术也就是:LVM(Logical Volume Manager:逻辑卷管理器)也就是常说的逻辑卷。
1. 原理
a) Linux自带的开源本地存储虚拟化,存储虚拟化可以理解成为将现有的存储虚拟出来形成一个大集合使用。
b) LVM有助于更加轻松地管理磁盘空间。可以将卷组(VolumeGroup)中的可用空间分配给逻辑卷(Logical Volume),并且可以调整文件系统的大小
c) 如果磁盘出现错误,可将替换磁盘注册为物理卷(Phycial Volume )放入卷组中,并将逻辑卷的区块迁移到新磁盘
d) 定义
i. 物理设备:用于保存逻辑卷中所存储数据的存储设备。是块设备,可以是磁盘分区、整个磁盘、RAID 阵列或SAN磁盘。
ii. 物理卷(PV):物理设备必须初始化为PV,LVM工具会将物理卷划分为物理区块(PE),充当物理卷上最小存储块
iii. 卷组(VG):由一个或多个物理卷组成的存储池。一个PV只能分配给一个VG。VG可以包含未使用的空间和任意数目的LV
iv. 逻辑卷(LV):根据卷组中的空闲物理区块创建。LV由逻辑区块(LE)组成,LE映射到PE
2. 实验
a) 在创建LVM的时候需要注意创建顺序:PV、VG、LV。
b) 创建PV
i. 不分区创建
ii. 分区创建:通过下面我们会发现,分区创建可以使用磁盘的部分空间用于创建LVM
c) 创建名为vgtest的VG
d) 创建名为lvtest的LV
e) 查看最后生成的存储
f) LVM表述方式
i. 直接表示:/dev/vgname/lvname
ii. Mapper映射器映射:/dev/mapper/vgname-lvname
g) 可以直接使用针对上述的表述进行格式化然后就可以使用啦~
3. 那么因为LVM实质意义上是软件定义的,所以具有一些高级特性,比如:动态扩容、动态缩减、故障恢复、软RAID……
4. 辣么,我们这讲一个针对LV的动态扩容吧
a) 首先,我们刚刚创建的LV做了格式化并挂载了
b) 然后我们来动态扩个容
c) 注意!选项里的-L是针对大小(也就是日常说的:MB、GB之类),-l(小写的L哈)是针对PP的个数啦,在前面创建vg的时候是可以对PP的大小做设定的哈;-r指的是在扩容的时候将文件系统一起扩个容,如果没加记得给文件系统也扩一下容哈
5. 形容一下,比如我有两块2T的数据盘,如果使用传统的分区格式化,则只能够有两个2T的存储空间;但是使用LVM后就不一样了,我可以将两个2T的空间形成一个4T的空间(虽然在创建LVM的时候会有一部分的空间损耗,但是可以在可接受范围内,我这里讲的是理论),这样子形成一个总的存储池,并且是一个理论无上限的存储池。