Linux 逻辑卷管理LVM
什么是 LVM
- LVM 逻辑卷管理是Linux环境下对磁盘分区进行管理的一种机制;LVM建立在硬盘和分区之上的一个逻辑层,用于提高磁盘分区管理的灵活性。
- 通过LVM系统管理员可以便捷地管理磁盘分区,如:将若干个磁盘分区连接为一个整块的卷组(volume group),形成一个存储池;并且在卷组的基础上创建文件系统(命名文件和放置文件的逻辑存储和恢复系统)。
- 管理员可以方便地通过LVM调整存储卷组的大小,可以按照组的方式进行命令、管理和分配,例如按照用途“development”等进行命名,而不是使用“sda”等磁盘名。
逻辑分区的创建顺序:物理分区 > 物理卷 > 卷组 > 逻辑卷 > 挂载
分区
硬盘的分区机制主要分为两种:MBR和GPT
MBR
-
Master Boot Record,主引导记录,传统的分区机制;应用于大多数的PC设备,具有主分区、扩展分区、逻辑分区。
-
支持32或64位系统,支持分区数量有限,只支持硬盘数量不超过2T的硬盘。该分区总共有16个字节。只有在MBR分区机制下才存在主分区、扩展分区、逻辑分区的概念。
-
主分区:
- 每块硬盘都只有一个主引导扇区,0号磁头的第一个扇区,大小为512字节。主引导扇区包含MBR(主引导记录,446字节),DPT(分区表,64字节),MN(结束标志,2个字节,是AA和55)。BIOS读取MBR的时候总是最后检查这两个结束标志。
- 硬盘为分区列表保留了64个字节的存储空间,每个分区的对象占据16个字节。主引导分区也叫主分区,能够存储4个分区的数据。
- 一块硬盘最多划分4个主分区。windows系统一般需要安装在这个分区中,最多有4个。
- 扩展分区:
- 扩展分区也是主分区的一种,不同之处在于可以划分为无数个逻辑分区,且无法格式化。
- 扩展分区只能有一个,然后细分为逻辑分区。在MBR硬盘中,分区号为1-4是主分区或者扩展分区,最多一个。
- 逻辑分区:
- 逻辑分区的编号只能从5开始。逻辑分区利用链表进行链接,如果E盘中的信息丢掉,那么操作系统将找不到F盘。
- 逻辑分区是由扩展分区是由连续切割出来的分区。
MBR=446bytes程序代码+64bytes分区表+2bytes标志位,其中分区表中每16bytes识别一个分区,一共可以识别4个(主分区+扩展分区)
总结:分区方式:确保至少一个主分区,主分区最多4个,扩展分区最多1个,二者的编号只能从1-4;逻辑分区的文件名编号只能从5开始:
GPT
- 全局唯一标识分区表(GUID Partition Table, GPT),新的分区管理机制.
- 解决了MBR的缺点:支持超过2T的硬盘,兼容MBR,不存在扩展分区和逻辑分区,只有主分区,支持分区数目最多可有128个。
- GPT分区区域就是用户使用的分区,也是用户进行数据存储的区域。分区区域的起始地址和结束地址由GPT头定义。
LVM 工作原理
- 通过将底层的物理硬盘进行封装,然后以逻辑卷的方式呈现给上层应用。
- 在传统的磁盘管理机制,上层应用直接访问文件系统,从而对底层的物理硬盘进行读取;
- 在LVM中,通过底层硬盘的封装,当需要对物理硬盘进行操作时,不再对分区直接进行操作,而是通过LVM对底层的磁盘进行操作。
- LVM将存储虚拟化,使用逻辑卷,不受限于物理磁盘的大小。
LVM 优点
- 灵活的容量:当使用逻辑卷,文件系统能够扩展到多个磁盘上,能够将多个磁盘或者磁盘分区成单一的逻辑卷;
- 存储池的伸缩性强:通过命令的形式来扩大或缩小逻辑卷大小,不必重新格式化分区或者磁盘设备;
- 设备命令方便:用户能够根据适合自身的方式进行设备命名;
- 数据再分配:数据能够在磁盘在线的情况下进行移动和分配;
- 卷快照:使用逻辑卷获得设备快照,用来一致性备份或者测试数据更新效果而不影响真实数据。
- 逻辑卷的大小可以动态管理,不会丢失现有数据,提高磁盘管理的灵活性。
- ......
LVM术语
- 物理存储介质(PM:The Physical Media)
系统的存储设备,存储系统最低的存储单元,如:/dev/sda,/dev/hda1
- 物理卷 (PV:Physical Volume)
磁盘分区或从逻辑上和磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,包含有和LVM相关的管理参数。
- 卷组(VG: Volume Group)
LVM卷组类似于非LVM系统中的物理硬盘,其由物理卷组成。能在卷组上创建一个或多个“LVM分区”(逻辑卷),LVM卷组由一个或多个物理卷组成。
- 逻辑卷(LV, Logical Volume)
LVM的逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷之上能建立文件系统(比如/home或/usr等)。
- 线性逻辑卷 (Linear Volumes)
一个线性逻辑卷聚合多个物理卷成为一个逻辑卷。比如,如果你有两个60GB硬盘,你能生成120GB的逻辑卷.
- 物理单元 PE(physical extent)
每一个物理卷被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是能被LVM寻址的最小单元。PE的大小是可设置的,默认为4MB。
- 逻辑单元 LE(logical extent)
逻辑卷也被划分为被称为LE(Logical Extents) 的可被寻址的基本单位。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。
关系图如下:
image.png
安装LVM 管理工具
- 检查系统中是否安装了LVM管理工具
rpm -qa|grep lvm
- 如果没有安装,使用yum方式安装
yum install lvm*
- 再次检查,如下显示则正确安装
rpm -qa|grep lvm
lvm2-libs-2.02.180-10.el7_6.3.x86_64
llvm-private-6.0.1-2.el7.x86_64
lvm2-2.02.180-10.el7_6.3.x86_64
mesa-private-llvm-3.9.1-3.el7.x86_64
LVM实现过程
- 通过fdisk工具将磁盘转换成Linux分区;
- 通过pvcreate命令将Linux分区转换成物理卷(PV);
- 通过vgcreate命令将建好的物理卷处理成卷组(VG);
-
通过lvcreate命令将卷组分成逻辑卷(LV);
4.png
Linux分区及逻辑卷操作
创建磁盘阵列分区
使用分区工具(如:fdisk等)创建LVM分区,方法和创建其他一般分区的方式是相同的,差别仅仅是LVM的分区类型为8e。
1、使用root账户登录
su - root
2、检查磁盘阵列的分区信息,通过 fdisk -l 查看
fdisk -l # 查看磁盘阵列的分区信息
3、格式化磁盘
fdisk /dev/sdc # 选中未分区的磁盘,添加新的分区
Command (m for help): m # m查看分区命令帮助
Command action
a toggle a bootable flag
......(省略)
x extra functionality (experts only)
Command (m for help): n # 创建新的分区
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p # 选择p(primary)创建主分区
Partition number (1-4, default 1): 1 # 分区编号,主分区从1开始
First sector (2048-35643391, default 2048): # 柱面起止位置,直接默认值
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-35643391, default 35643391):
Using default value 35643391
Partition 1 of type Linux and of size 17 GiB is set
Command (m for help): t # 设置分区的系统id号
Selected partition 1
Hex code (type L to list all codes): 8e # 主分区id为8e
Changed type of partition 'Linux' to 'Linux LVM'
Command (m for help):w # 将分区信息写入分区表,保存并退出fdisk命令
The partition table has been altered!
......(省略)
Syncing disks.
4、 重启系统显示磁盘阵列分区信息
fdisk -l # 查看分区信息
Device Boot Start End Blocks Id System
/dev/sdc1 2048 35643391 17820672 8e Linux LVM
创建物理卷
5、创建及查看物理卷PV
利用pvcrea命令将添加到卷组的所有分区或磁盘创建为物理卷。
pvcreate /dev/sdc1 # 创建物理卷
pvcreate /dev/sdc2
pvcreate /dev/sdc3
pvdisplay # 查看物理卷
pvs/pvscan # 查看简略信息
pvremove /etc/sdc1 # 删除物理卷(不执行命令)
创建卷组及扩容
6、把分区创建成一个卷组VG
- 将使用pvcreate建立的物理卷创建为一个完整卷组。
-
vgcreate在创建卷组时,设置使用大小为4 MB的PE(默认为4MB),表示卷组上创建的所有逻辑卷以4MB为增量单位来进行扩充或缩减。
image.png
vgcreate vg1 /dev/sdc1 /dev/sdc2 /dev/sdc3 # vg1 是创建的卷组名设备称
vgdisplay vg1 # 查看卷组
vgs/vgs # 查看简略信息
vgchange -a y vg1 # 激活逻辑卷
vgremove vg1 # 删除卷组
vgextend vg1 /dev/sdc1 # 通过物理磁盘sdc扩容
pvresize /dev/md # 通过raid设备间接扩容
创建逻辑卷
7、创建逻辑卷LV
例如:从vg1中划分一个100M,名字是lv1的卷组
lvcreate -L 100M -n lv1 vg1 # 创建逻辑卷
lvextend -L +1G /dev/vg1/lv1 # LV扩容,增加1G容量
resize2fs /dev/vg1/lv1 # 文件系统扩容
umount /dev/vg1/lv # 删除需先卸载
lvremove /dev/vg1/lv1 # 删除逻辑卷
注 :
-L :指定创建的LV大小;
-n:LV的名称;
-l:创建LV的PE数量
格式化并挂载
8、格式化并挂载
mkfs.ext4 /dev/vg1/lv1 # 格式化
mount /dev/vg1/lv1 /mnt/ # 挂载 /mnt/为挂载目录
df -h # 查看分区
df -TH # 查看实际的磁盘容量
逻辑卷创建的具体流程如下图:
-
最后再温习一遍
3.png
网友评论