zoukankan      html  css  js  c++  java
  • linux逻辑卷扩容

    前言:

      存储备份的服务器空间不足了,需要给服务器硬盘加空间,好在操作系统安装时分区是基于lvm逻辑卷的,可以直接将空间加到逻辑卷上,流程如下:

    先df -Th查看下文件系统格式,并确认下逻辑卷名称,确认是否为lvm逻辑卷的安装方式

     如图所示,/dev/mapper/centos-root,表示逻辑卷,xfs表示使用了xfs的文件系统格式,挂载在/目录下

    使用fdisk命令查看当前硬盘的分区情况:

     20G的系统盘,centos-root用了5G,交换分区用了1G,还有很大的空间没有分配。

    将剩余的空间分区:

     查看系统当前的pv,vg:

     重新读取分区表并将新建的/dev/sda3分区划分为pv卷,添加到centos的vg卷组中:

     添加后:

     比较重要的是上图中Free PE参数,它表示以4.00MB为大小的未分配PE还有3532个,将未分配的PE分配有两种方式,分别为按个数和按大小:

    lvextend -l 21759 /dev/mapper/centos-root
    
    lvextend -L +84G /dev/mapper/centos-root

    lvextend -l +100%FREE /dev/mapper/centos-root    直接将所有空余PE分配给centos-root逻辑卷

    这里我选择的是按个数,直接分配所有:

     最后,使用命令来针对对应的文件格式来进行加载空间,就可以完成了,根据xfs还是ext4选择不同的命令:

    xfs_growfs /dev/mapper/centos-root        xfs文件格式
    
    resize2fs /dev/mapper/centos-root            ext4文件格式

     可以看到,就完成了根分区的扩容。

    梳理逻辑:

      可以看到基本的逻辑就是,将磁盘未分配空间或新磁盘空间分区 >> 将新分区创建为pv >> 将pv添加到vg卷组中 >>  将vg卷组的PE划分到逻辑卷中 >> 逻辑卷加载新PE,这样,就完成了分区的扩充。需要注意的是,lv即lvm是基于vg创建的,也就是说,我们要为哪个lvm扩容,就要将新的pv加入到对应的vg中,而后,才能将新的空间分配给lv

    补充部分未用到的命令:

    针对LVM底层PV的一些基本操作 
    对于底层的PV而言,操作的命令如下表所示:
    
    命令          解释
    pvchange    控制指定PV是否可以分派新空间的权限
    pvck    检查PV的LVM元数据的一致性
    pvcreate    将指定磁盘或分区转化为PV
    pvdisplay    详细地查看系统当前的PV情况
    pvmove    在同一VG卷组里面移动一个PV的数据到另一个PV里面
    pvremove    删除PV标签,即移除PV
    pvs    简略地查看系统当前的PV情况
    pvresize    当PV对应的设备分区(如md软raid)扩容之后,利用该命令可以扩容PV
    pvscan    扫描所有打着PV标签的设备文件
    针对LVM中层VG的一些基本操作 
    对于中层的VG而言,操作的命令如下表所示
    
    命令                            命令解释
    vgcfgbackup    备份VG描述文件(默认/etc/lvm/backup,亦可自由指定)
    vgcfgrestore    从备份的VG描述文件对VG元数据进行恢复
    vgck    检查VG
    vgchange    修改特定VG的属性,包括是否激活,uuid号,……
    vgconvert    修改VG元数据格式,例如从LVM1改为LVM2
    vgcreate    创建VG卷组
    vgs    简略地查看系统VG卷组情况
    vgdisplay    详细地查看系统VG卷组的使用情况
    vgexport    将特定VG变为未知状态,用于迁移卷组到别的系统上面
    vgimport    将未知状态的特定VG卷组变为正常状态,用于迁移卷组到别的系统上面
    vgextend    将PV添加到特定VG中
    vgimportclone    用于导入重复的卷组(例如某卷组的快照),并修改其UUID
    vgmerge    在满足特定条件下,对多个卷组进行归并
    vgmknodes    重新创建卷组设备目录以及逻辑卷特殊文件
    vgreduce    将未使用的PV从特定VG中移除
    vgremove    移除特定VG
    vgrename    重命名指定VG的名称
    vgsplit    将指定的PV从一个VG里面挪动到另一个VG里面
    vgscan    扫描系统的VG                
    针对LVM上层LV的一些基本操作 
    对于上层的LV而言,操作命令如下表所示:
    
    命令                   命令解释
    lvchange    修改指定LV的一些属性,包括是否是激活状态、是否只读……
    lvconvert    转换指定LV的属性,从线性转化为镜像或者快照
    lvcreate    创建LV
    lvs    简略地查看系统内的LV情况
    lvdisplay    详细地查看系统内的LV情况
    lvextend    扩展指定LV的容量大小
    lvm    管理LVM的一个shell工具
    lvmconf    LVM配置修改器
    lvmconfig    查看LVM配置的工具
    lvmdiskscan    扫描所有LVM2可见的设备
    lvmdump    创建LVM的dump文件,用于诊断
    lvmetad    缓存LVM元数据的守护程序
    lvmpolld    LVM操作命令的轮询守护程序
    lvreduce    缩容指定的LV
    lvremove    删除指定的LV
    lvrename    重命名指定的LV
    lvresize    调整指定LV的大小,即可以扩容也可以缩容
    lvscan    扫描系统的LV
  • 相关阅读:
    Qt(python) + 百度语音合成 实现demo
    windows7 + Qt(MSVC2017) + VS2019安装配置
    ubuntu下openCV-Haar特征分类器训练
    坚果云+typora(个人十分喜欢的一个记笔记方式)
    文本编辑--程序员专属技能
    ftp、tftp、nfs--服务器搭建
    QT--动态人流量监测系统
    C++ --内存四区概述
    CTFHUB-技能树-Web-信息泄露
    网络教育行业频发奖金高薪挖人,在线教育行业将迎来快速发展
  • 原文地址:https://www.cnblogs.com/xiaoyuxixi/p/13646235.html
Copyright © 2011-2022 走看看