linux磁盘管理命令 lv,Linux磁盘管理--LVM原理及基本操作

LVM(Logical Volume Manager)逻辑卷管理是Linux磁盘管理中的常用操作, 本文主要描述LVM的基本原理以及对LVM的扩展和缩减的基本操作.

LVM实质是过软件方式将多个物理分区或磁盘组合成为一个容量可变大小的磁盘卷组VG, 再通过对VG中的基本单位PE构成可变大小的逻辑卷LV.

LVM的优点: 通过调整VG中PV的数量来动态调整VG的容量大小, 通过调整LV中PE的数量来动态调整LV的容量大小.

LVM中组成部分:

1. 分区: 磁盘中的可用分区, 分区类型ID应在创建磁盘分区过程中指定为8e

2. PV(Physical Valume)物理卷: LVM中最底层用于构成VG的组成部分

3. VG(Volume Group)卷组: VG就是通过将PV组合起来的逻辑上的大磁盘

4. PE(Physical Extend)物理扩展块: LVM中的最小单元, 在创建VG时进行划分, 创建指定大小的LV实质就是通过一定数量的PE来构建LV

5. LV(Logic Volume)逻辑卷: 从VG中划分出指定数量的PE来构建指定大小的LV

创建LVM的过程如下图所示:

667a09c28770d8eb88a07cb75ebee874.png

主要步骤:

1. 创建PV: 将特定类型(8e)的可用分区创建为PV

2. 创建VG: 将指定PV构成一个可变大小的卷组VG, 并指定VG中的单位PE大小

# VG创建后会产生1个实际设备文件: /dev/dm-#; 同时产生2个指向该实际设备文件的符号链接文件, 命名方式为: /dev/VG_NAME/LV_NAME 和 /dev/mapper/VG_NAME-LV_NAME

3. 创建LV: 通过已有VG中指定数量的PE来构成可变大小的逻辑卷LV

=============================================================

新建LVM

1在现有磁盘上创建2个8e类型的分区/dev/sda7和/dev/sda8, 大小分别为2G和3G, 如图所示:

3099de74a4ce2d6a6995c5932b74580a.png

2通过pvcreat将新建两个分区创建为PV, 命令如下, 结果如图所示:# pvcreate /dev/sda{7,8}

b7a0e2ab30fd50c08d1c3f89349513be.png

3使用vgcreat将指定的PV设备创建VG名称为myvg, 命令如下, 结果如图所示:# vgcreate -s 8M myvg /dev/sda7    #选项: -s #Unit: 用于指定VG中的PE块的大小和单位

067ca161f992875d64ee4516f7a04858.png

4在myvg中划分出LV的名称为mylv, 大小为3G, 命令如下, 结果如图所示:# lvcreate -L 3G -n mylv myvg    #选项: -L #Unit: 指定创建LV的大小; -n LV_NAME: 指定创建LV的名称

9054e18100b4e906dbbaf22580a17191.png

5对mylv进行ext4格式的文件格式化, 并将其挂在至/tmp/lv目录, 结果如图所示:

39b903b9e5811349909e82df2c17f235.png

03c484c020df07c8923041466d18404e.png

至此, 在LVM上创建的文件系统就可以通过/tmp/lv/进行访问

=============================================================

对LV进行扩容

当用户感觉现有的LV分区的磁盘空间较小时, 可以通过LVM对mylv再扩充3G空间

1在现有磁盘上创建1个新的磁盘分区/dev/sda9, 类型为8e, 大小为4G, 结果如图所示:

011b07bbc4994846c71ab8bbe4370a29.png

2将/dev/sda9创建为PV, 并将/dev/sda9添加至现有的myvg中, 该步骤与创建LV中的第2,3步类似, 此处就不赘述, 结果如图所示

b83861cbd86314ad23ac9a679d8d75a2.png

3使用lvextend命令对当前mylv进行扩容至大小为6G, 命令如下, 结果如图所示:# lvextend -L +3G /dev/myvg/mylv    #选项: -L [+]#Unit: 指定扩容空间, 使用+时表示#为变量值, 不使用+时表示#为目标值, Unit用于指定单位

7cfcbf0a80d7c9d7df1e89b16b16e5ec.png

4相对mylv的挂载点/tmp/mylv进行查看发现目录大小没有改变, 因为此时文件系统没有变化, 需要使用resize2fs来重新规划文件系统边界, 命令如下, 结果如图所示:# resize2fs /dev/myvg/mylv    #使用resize2fs命令不指定分区调整后的大小时, 会使用全部分区大小

11700cc56ab9f5b9b4d78540381a3c5e.png

至此, LV扩展已经完成, 通过显示扩容后的文件系统大小为6G

注: 对LV进行扩容时, 不需要卸载文件系统, 在文件系统挂载状态时就能够进行扩容

=============================================================

对LV进行裁剪

如果发现现有LV分区上的文件系统使用率较低, 浪费现有磁盘空间时, 可以对LV进行裁剪已达到缩减LV分区大小的目的.

对mylv进行裁剪, 会保证文件系统内已有的文件的完整性, 为此先向mylv的文件系统内复制了两个目录/bin和/sbin, 如图所示

d6271803105ff0cf67efddb253e0168a.png

1先将mylv卸载, 再对mylv的文件系统进行强制磁盘检查, 命令如下,# umount /dev/myvg/mylv

# e2fsck -f /dev/myvg/mylv

3da0c086c0815f3fbea99a7c15033459.png

2使用resize2fs命令将mylv文件系统的大小缩减至1G大小, 命令如下, 结果如图所示:# resize2fs /dev/myvg/mylv 1G    #指定文件系统更改后的大小为1G

0aa8924da7d43d67b0fd5977e36a791c.png

3使用lvreduce命令将mylv分区缩减至1G大小, 缩减空间被重新分配至myvg中, 命令如下, 结果如图所示:# lvreduce -L 1G /dev/myvg/mylv

d60d60afc75eb5aa5196c9132a2c6ce7.png

4如果要将mylv中使用的空间集中到指定物理磁盘分区上, 需要查看现有PV的使用情况, 如下图所示:

920d0b8b08a5f98aa13b3d9a2cbaa866.png

发现现在使用的全部是物理磁盘分区/dev/sda7中的空间, /dev/sda8和/dev/sda9中式空白的

5现在需要使用/dev/sda9来作为PV使用, 其他两块磁盘从PV中删除, 就需要使用pvmove来将/dev/sda7中的数据全部转移至/dev/sda9中, 命令如下, 结果如图所示:# pvmove /dev/sda7 /dev/sda9

7940a831cd885e2107ae268923961c6a.png

6再次查看可得/dev/sda7中的所有数据已经转移至/dev/sda9中

7d4dff73a914103b973e88473b8415b6.png

7此时使用vgreduce来将指定设备从myvg中取出, 命令如下, 结果如下所示:# vgreduce myvg /dev/sda{7,8}

a7eda6a2bc258f68f1df2cc787390489.png

8使用pvremove将/dev/sda7和/dev/sda8从PV中删除, 命令如下, 结果如图所示:pvremove /dev/sda{7,8}

305c263b507d0ce24e96e422c7e95056.png

9最后将mypv挂载至原挂载点, 如图所示:

10c6a8c6a0b451ebe6c6bde48164848f.png

可以看到复制的/bin和/sbin两个目录依旧存在, 说明对LV进行裁剪不影响其内部文件系统

至此, LV裁剪已经完成

注: 对LV进行裁剪时时, 需要先将文件系统卸载, 再对文件系统进行强制检查并重新修改文件系统边界, 对LVM中的磁盘分区操作时, 要保证需要移除的物理磁盘分区是空白的, 才能将其对应的PV先移出VG, 再将其本身移出PV

本人水平有限, 如有理解不当的地方, 请大家给予指正, 非常感谢!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值