一、LVM 存在的意义及名词解释
1.什么是 LVM?
LVM(Logical Volume Manager,逻辑卷管理器)是一种把硬盘驱动器空间分配成逻辑卷的方法,使硬盘不必使用分区也能被简单地重新划分大小。传统上,一个分区大小是静态 的。假如一个用户在这个分区上没有空间时,他要么重新分区(这可能要求整个操作系统重装),要么像符号链接一样使用组装机。使用LVM,硬盘驱动器或硬盘 驱动器集合就会分配给一个或多个物理卷(Physical Volume)。物理卷被合并成逻辑卷组(Logical Volume Group),唯一例外的是/boot分区。由于物理卷无法跨越一个以上驱动器,如果想让逻辑卷组跨越一个以上驱动器,就应该在驱动器上创建一个或多个物 理卷。逻辑卷组被分成逻辑卷,被分配了挂载点(如/home 和/),以及文件系统类型(如ext3)。当“分区达”到了它们的极限时,逻辑卷组中的空闲空间就可以被添加给逻辑卷来增加分区的大小。当某个新的硬盘驱 动器被添加到系统上后,它也可以被添加到逻辑卷组中,逻辑卷是可以扩展的分区。由于LVM允许在机器的物理存储资源以外创建逻辑卷,并且逻辑卷组中,逻辑 卷是可以扩展分区。由于LVM允许在机器的物理存储资源以外创建逻辑卷,并且逻辑卷可以在系统仍处于运行状态时扩充和缩减,所以就为Linux系统管理员 提供了他们梦寐以求的存储器灵活性。
LVM的作用:LVM的实际运作情形则根据做法不同而有所差异。但LVM通常包括实体储存分群(Physical Storage Grouping)、重设逻辑扇区大小(Logical Volume Resizing),以及数据转移(Data Migrating)。
2.LVM 基本术语
LVM 是磁盘分区和文件系统之间添加的一个逻辑层,来为文件系统屏蔽下层磁盘分区分布提供一个抽象的存储卷,在存储卷上建立文件系统。
物理存储介质 physical storage media
指物理存储设备:磁盘 如:/dev/hda /dev/sda等,是存储系统最底层的存储单元。
物理卷 physical volume ,PV
实际的分区需要通过 fdisk 调整系统表示符(system ID)为 8e (LVM 标示符),然后再经过 pvcreate 的命令将它转换成 LVM 最底层的物理卷(PV),之后才能够将这些 PV 加以利用。
卷组 volume group ,VG
所谓的 LVM 大磁盘就是许多 PV 整合成这个 VG ,所以 VG 就是 LVM 组合起来的大磁盘。每个 VG 最多能包含 65534 个 PE。如果使用 LVM 默认的参数,则一个 VG 最大可达 256GB 的容量。
逻辑卷logical volume ,LV
类似于非lvm系统中的磁盘分区,逻辑卷建立在卷组VG之下,在逻辑卷LV之上可以建立文件系统,比如 /home 或者 /usr 等。
物理块physical extent ,PE
每一个物理卷 PV 被划分为 PE 的基本单元,具有唯一编号的 PE 是可以被 LVM 寻址的最小单元。PE的大小是可以配置的,默认为4MB,所以物理卷 PV 由大小等同的基本单元 PE 组成。
逻辑块 logical extent ,LE
逻辑卷 LV 也被划分为可以被寻址的基本单位,LE。在同一个卷组中,LE 的大小和 PE 相同,并且一一对应。
文件系统
Linux文件系统中的文件是数据的集合,文件系统不仅包含着文件中的数据而且还有文件系统的结构,所有Linux 用户和程序看到的文件、目录、软连接及文件保护信息等都存储在其中。
二、LVM 的建立
与 PV 相关的命令
| pvcreate | 将物理分区新建成 PV |
|---|---|
| pvs | 查询目前系统里面任何具有 PV 的磁盘 |
| pvdisplay | 显示出目前系统上面的 PV 状态 |
| pvremove | 将 PV属性删除,让该分区不具有 PV 属性 |
与 VG 相关的命令
| vgcreate | 新建 VG |
|---|---|
| vgs | 查找系统上面是否有 VG 存在 |
| vgdisplay | 显示目前系统上面的 VG 状态 |
| vgextend | 在 VG 内增加额外的 PV |
| vgreduce | 删除 VG 内PV |
| vgchange | 设置 VG 是否启动 |
| vgremove | 删除一个VG |
与 LV 相关的命令
| lvcreate | 新建 LV |
|---|---|
| lvs | 查询系统上面的 LV |
| lvdisplay | 显示系统上面的 LV 状态 |
| lvextent | 在 LV 里面增加容量 |
| lvreduce | 在 LV 里面减少容量 |
| lvremove | 删除一个 LV |
| lvresize | 对 LV 进行容量大小的调整 |
实验:
步骤一:分出三个分区,每个分区 1G,且将 systemID 改为 8e
步骤二:为了更清楚的看到操作,使用 watch 命令对 LVM 创建过程进行监控
步骤三:新建 PV
步骤四:新建 VG
步骤五:新建LV
步骤六:格式化 lv0
步骤七:新建挂载目录并挂载,此时已经可以使用
三、LVM 的拉伸及缩减
1. 将xfs 格式的文件系统进行拉伸
xfs 文件系统只能进行拉伸,不能进行缩减。
第一种情况:当划分出来的主分区大小够用的时候,直接进行拉伸
步骤一:
步骤二:同步文件系统的大小
第二种情况:当划分出来的主分区容量不够用时,比如想要将 lv0 拉伸至3.5G,则需要先添加一个主分区,然后再拉伸
步骤一:新建分区,且将 systemID 改为 8e
步骤二:新建 PV
步骤三:将新建的 PV 加入到 VG ahtl 中
步骤四:在 LV 中增加容量
步骤五:同步文件系统的大小
2.将 ext4 格式的文件系统进行拉伸
步骤一:先将 /test 卸载
步骤二:将设备格式化为 ext4 文件系统
步骤三:挂载
步骤四:blkid 查看类型
步骤五:扩展 LV
步骤六:同步文件系统的大小
3.将 ext4 格式的文件系统进行缩减
步骤一:卸载 /test
步骤二:扫描设备 lv0 里面的东西,否则直接缩减会造成损坏数据
步骤三:缩减文件系统为2G
步骤四:挂载
步骤五:缩减 lv0 设备