zoukankan      html  css  js  c++  java
  • LVM基本应用,扩展及缩减实现

    一、基本概念

    如上图所示:底层PV(物理卷可能是硬盘设备,分区或RAID等),一个或多个PV组织成一个VG(卷组),卷组是不能直接格式化使用的,所以在VG之上,还需要创建LV进行格式化使用。VG在逻辑层面上将每一个PV提供的空间划分成多个PE(physcal Extent,默认4M)来使用, LV根据VG提供的PE数量动态的扩展或缩减大小,VG的空间也可以随着PV的增减进行动态的扩展或缩减。

    二、LV基本应用

      1.PV管理工具:
            pvs: 简要pv信息显示
            pvdisplay: 显示pv的详细信息
            pvcreate /dev/DEVICE: 创建pv
            pvremove /dev/PV_NAME:移除PV
      2.VG管理工具:
            vgs: 简要显示vg信息
            vgdisplay:显示vg的详细信息
            vgcreate [-s PE_SIZE[kKmMgGtTpPeE]]  VG_NAME /dev/DEVICE : 创建vg
            vgextend VG_NAME /dev/DEVICEE: vg扩展
            vgreduce VG_NAME /dev/DEVICE: 缩减vg,需要先做pvmove 
            vgremove /dev/VG_NAME:vg移除
      3.LV管理工具:
            lvs: 简要显示lv信息
            lvdisplay:详细显示lv信息
            lvcreate -L #[mMgGtT] -n LV_NAME VG_NAME : 创建lv
            lvremove /dev/VG_NAME/LV_NAME: 移除lv
          3.1扩展逻辑卷步骤:(支持在线扩展)
                lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME: 扩展物理边界
                resize2fs /dev/VG_NAME/LV_NAME (EXT系列的文件格式):修改逻辑边界

              注意:上面的扩展方法只适合ext系列,如果是xfs文件系统的话,需要按如下方法扩容:
                xfs_growfs /dev/VG_NAME/LV_NAME
          3.2缩减逻辑卷步骤:
                umount /dev/VG_NAME/LV_NAME: 先卸载LV
                e2fsck -f /dev/VG_NAME/LV_NAME: 强制检测和修复文件系统        
                resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT]:缩减逻辑边界
                lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME:缩减物理边界
                mount: 重新挂载lv
      4. snapshot
          快照就是某一时刻立即创建一个对原卷文件元数据的监视器,当原卷上文件元数据要变化的时候,先把原文件复制一份到快照卷上,而没有变化的就指向原卷上的文件数据。
          快照的相关命令:
             lvcreate -L #[mMgGtT] -p r -s -n SNAPSHOT_LV_NAME ORIGINAL_NAME: 创建一个只读的快照

    三、实例

    1: 创建一个至少有两个pv组成的大小为4G的名为testvg的VG,要求PE大小为16MB,而后在卷组中创建大小为3G的逻辑卷testlv,挂载至/users目录
        1. 创建至少两个分区,大小各位2G: /dev/sda3,/dev/sda5,dev/sda6,调整分区id为8e
        2. 创建PV: pvcreate /dev/sda{3,5}
        3. 创建vg: vgcreate -s 16M myvg /dev/sda{3,5}
        4. 创建testlv: lvcreate -L 3G  -n testlv myvg
        5. 格式化: mke2fs -t ext4 -b 1024 -L MYLV -m 3 /dev/myvg/mylv  //格式化为ext文件格式
        6. 挂载到/users: mkdir /users, mount /dev/myvg/testlv /users   
    2:新建用户archlinux,要求其家目录为/users/archlinux,而后su切换至archlinux用户,复制、etc/pam.d目录至自己的家目录
        1. useradd -d /users/archlinux archlinux
        2. su - archlinux
        3. su root(以root用户身份复制文件)cp -a /etc/pam.d /users/archlinux 
    3:扩展testlv至5G,要求archlinux用户的文件不能丢失  
        1. 再创建一个2G的PV: pvcreate /dev/sda6
        2. vgextend myvg /dev/sda6  //扩展vg
        3. lvextend -L 5G /dev/myvg/testlv  //扩展lv, 先扩大物理边界
        4. resize2fs /dev/myvg/testlv  //再扩大逻辑边界
    4:收缩testlv至3G,要求archlinux用户的文件不能丢失
        1. umount /dev/myvg/testlv  //不支持在线缩减,先卸载
        2. e2fsck -f /dev/myvg/testlv  //强制文件检测
        3. resize2fs /dev/myvg/testlv 3G  //缩减逻辑边界
        4. lvreduce -L 3G /dev/myvg/testlv  //缩减物理边界
        5. mount /dev/testvg/testlv /users  
        6. cd /users/archlinux  //查看archlinux家目录文件是否不受损
    5.对testlv创建快照,并尝试基于快照备份数据,验证快照的功能
        lvcreate -s -p r - L 500M -n mysnap /dev/myvg/testlv  // -p r : 快照权限为只读
        mkdir /tmp/backup
        mount /dev/myvg/mysnap /tmp/backup

      

            

  • 相关阅读:
    JavaScript自定义事件
    用Java构建一个简单的WebSocket聊天室
    PHP实现支付宝小程序用户授权的工具类
    jq ajax超时设置
    gulp使用笔记
    vue学习—组件的定义注册
    echarts设置线条粗细
    求js数组的最大值和最小值
    js删除数组中的 "NaN"
    jq方法(end)
  • 原文地址:https://www.cnblogs.com/ckh2014/p/9537256.html
Copyright © 2011-2022 走看看