LVM 技术详解

     前言

       每个 Linux 使用者在安装 Linux 时都会遇到这样的困境:在为系统分区时,如何精确评估和分配各个硬盘分区的容量,因为系统管理员不但要考虑到当前某个分区需要的容量,还要预见该分区以后可能需要的容量的最大值。因为如果估计不准确,当遇到某个分区不够用时管理员可能甚至要备份整个系统、清除硬盘、重新对硬盘分区,然后恢复数据到新分区。
       虽然有很多动态调整磁盘的工具可以使用,例如 PartitionMagic 等等,但是它并不能完全解决问题,因为某个分区可能会再次被耗尽;另外一个方面这需要重新引导系统才能实现,对于很多关键的服务器,停机是不可接受的,而且对于添加新硬盘,希望一个能跨越多个硬盘驱动器的文件系统时,分区调整程序就不能解决问题。
       因此完美的解决方法应该是在零停机前提下可以自如对文件系统的大小进行调整,可以方便实现文件系统跨越不同磁盘和分区。幸运的是 Linux 提供的逻辑盘卷管理(LVM,LogicalVolumeManager)机制就是一个完美的解决方案。

     了解一下 LVM 的几个术语

  • 物理存储介质(PhysicalStorageMedia):指系统的物理存储设备:磁盘,如:/dev/hda、/dev/sda等,是存储系统最底层的存储单元。
  • 物理卷(Physical Volume,PV):指磁盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。
  • 卷组(Volume Group,VG):类似于非LVM系统中的物理磁盘,其由一个或多个物理卷PV组成。可以在卷组上创建一个或多个LV(逻辑卷)。
  • 逻辑卷(Logical Volume,LV):类似于非LVM系统中的磁盘分区,逻辑卷建立在卷组VG之上。在逻辑卷LV之上可以建立文件系统(比如/home或者/usr等)。
  • 物理块(Physical Extent,PE):每一个物理卷PV被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。所以物理卷(PV)由大小等同的基本单元PE组成。
  • 逻辑块(Logical Extent,LE):逻辑卷LV也被划分为可被寻址的基本单位,称为LE。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。

 

     给大家用图解释一下吧

 
 
在这里插入图片描述
 

        提示

  • VG 可以有多个。当 VG 不够时,可以用 PV 来扩容 VG
  • LV 可以有多个。可以同一组 VG 组建,也可以由不同组的 VG 组建,但是 LV 的大小最大与 VG 相同
  • LV 不够用时,可以添加新的 VG 来扩容

            如何来创建 LVM 呢?

                 我们用分区代替添加新磁盘

              1.首先,至少分 4 个分区(eg:/dev/sdb{1,2,3,5} )

在这里插入图片描述
            (4 是扩展分区,不能使用,所以我们创建逻辑分区)

           2.创建 PV

在这里插入图片描述
 
           3.创建 VG

在这里插入图片描述
 
            4.创建 LV

在这里插入图片描述
 
    5.格式化

# mkfs.ext4 /dev/vg1/lv1

    6.创建挂载目录

# mkdir /lv1

    7.挂载

# mount /dev/vg1/lv1 /lv1

    创建 LVM 完成

 

        当文件系统不够用时,如何调整?

        1.先对 VG 扩容

在这里插入图片描述
       (VG 缩减)

# vgreduce vg1 /dev/sdb2   //( vg1 为要缩减的vgname,  /dev/sdb2 为要缩减的 pvname )
//当缩减时出现"正在使用"的情况,则先将其内部的数据移走,语句如下:
# pvmove /dev/sdb2  //不用指定移向位置,系统自动控制
//再操作 vgreduce 语句即可

        2.对 LV 扩容

在这里插入图片描述
 

   ( LV 缩减)
  • 先卸载
# umount mountpoint     //找到挂载点,卸载
  • 强制检测
# e2fsck -f /dev/vg1/lv1     //强制检测文件系统
  • 使用 resize2fs 调整文件系统大小
# resize2fs /dev/vg1/lv1 40M      //根据自己需要设定文件系统大小    
  • 再使用 lvreduce 调整 LV 大小
# lvreduce -L 40M /dev/vg1/lv1     //调整的 LV 大小必须与文件系统的大小相同,如果 LV 小于文件系统大小,则会数据丢失或无法使用      
  • 最后挂载使用
# mount /dev/vg1/lv1 /lv1

 

    提示

    LV 的缩减是危险的操作,一定要按照规范操作

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值