zoukankan      html  css  js  c++  java
  • 1.1 关于LVM的创建、删除、扩容和缩减

    一、新建LVM的过程
    1.使用fdisk 新建分区 修改ID为8e
    3.使用 pvcreate 创建 PV 
    4.使用 vgcreate 创建 VG 
    5.使用 lvcreate 创建 LV 
    6.格式化LV
    7.挂载
    示例过程:
    1. 查看磁盘情况
    # fdisk -l
    # lsblk
    2.使用fdisk 新建分区 修改ID为8e 并更新
    # fdisk /dev/sdb
    # partprobe
    3.使用 pvcreate 创建 PV (pvscan pvdisplay)
    # pvcreate /dev/sdb{5,6,7}
    4.使用 vgcreate 创建 VG (vgscan vgdisplay pvscan)
    # vgcreate -s 16M testvg /dev/sdb{5,6,7}
    5.使用 lvcreate 创建 LV (vgdisplay lsblk lvdisplay)
    # lvcreate -l 192 -n testlv testvg
    6.格式化LV
    # mkfs -t ext4 /dev/testvg/testlv
    7.挂载(mkdir df lsblk)
    # mount /dev/testvg/testlv /mnt/test
     
     
    二、删除LVM的过程
    1.先卸载系统上面的 LVM 文件系统 (包括快照与所有 LV)
    2.使用 lvremove 移除 LV 
    3.使用 vgchange -a n VGname 让 VGname 这个 VG 不具有 Active 的标志
    4.使用 vgremove 移除 VG
    5.使用 pvremove 移除 PV
    6.使用 fdisk 修改 ID 回来
    示例过程:
    前提:如果有数据库的使用,需要先停止数据库和集群
    1. 查看分区和磁盘情况
    # df -h
    # lsblk
    2. 卸载LVM 文件系统
    卸载之前,需要检查扩容的目录是否有用户在使用: fuser -vm /u01(如果有,可以使用kill杀掉进程)
    # umount /mnt/test
    # umount /mnt/test2
    3. 使用 lvremove 移除 LV ( lvscan lvdisplay )
    # lvremove /dev/testvg/testlv
    # lvremove /dev/testvg/test2lv
    4.使用 vgchange -a n VGname 让 VGname 这个 VG 不具有 Active 的标志;
    # vgchange -a n testvg
    5.使用 vgremove 移除 VG:(vgscan vgdisplay)
    # vgremove testvg
    6.使用 pvremove 移除 PV (注意1 里面的lsblk 查看到的 )
    # pvremove /dev/sdb{5,6,7,8}
    7.使用 fdisk 修改ID为82
    # fdisk /dev/sdb
    8.更新
    # partprobe
     
     
    三、放大 LV 容量的过程
    1.用 fdisk 配置新的具有 8e system ID 的 partition
    2.利用 pvcreate 建置 PV
    3.利用 vgextend 将 PV 加入VG
    4.利用 lvresize 将新加入的 PV 内的 PE 加入LV 中
    5.透过 resize2fs 将文件系统的容量确实添加!
    示例过程
    前提:如果有数据库的使用,需要先停止数据库和集群
    1. 查看磁盘情况
    # fdisk -l
    # lsblk
    2.使用fdisk 新建分区 修改ID为8e 并更新
    # fdisk /dev/sdb
    # partprobe
    3.使用 pvcreate 创建 PV (pvscan pvdisplay)
    # pvcreate /dev/sdb8
    4.利用 vgextend 将 PV 加入VG (vgdisplay)
    # vgextend testvg /dev/sdb8
    5.利用 lvresize 将新加入的 PV 内的 PE 加入LV 中(vgdisplay vgdisplay lvdisplay lsblk df )
    # lvresize -l +64 /dev/testvg/testlv
    6.透过 resize2fs 将文件系统的容量确实添加( df )
    # resize2fs /dev/testvg/testlv
     
     
    四、缩小LV容量的过程(抽取整块分区)
    1.卸载
    2.使用resize2f 直接降低LV的容量
    示例过程
    前提:如果有数据库的使用,需要先停止数据库和集群
    1.查看PV情况 (df lsblk)
    # pvdisplay
    # pvscan
    #pvs
    2.卸载
    卸载之前,需要检查扩容的目录是否有用户在使用: fuser -vm /u01(如果有,可以使用kill杀掉进程)
    # umount /mnt/test
    3.磁盘检测LV
    # e2fsck -f /dev/testvg/testlv
    4.使用resize2fs 直接指定降低后的容量
    # resize2fs /dev/testvg/testlv 3G
    5.重新挂载
    # mount /dev/testvg/testlv /mnt/test
    6.使用lvresize 降低LV的容量 (pvscan pvdisplay )
    #pvdisplay
    #lvreszie -l -64 /dev/testvg/testlv
    7.将要抽离的PV 的PE转移到 空闲PV中 (pvscan pvdisplay)
    # pvmove /dev/sdb5 /dev/sdb8
    8.使用vgreduce 将PV移除VG
    # vgreduce testvg /dev/sdb5
    9.使用pvremove 去除PV 
    # pvremove /dev/sdb5
    10.使用fdisk 修改ID 
    # fdisk /dev/sdb
     
    五、先缩小LV1容量,后增大LV2容量的过程(生产环境下的减小/home 增大/root)
    1.卸载LV1
    2.使用 e2fsck 检测一下LV1
    3.使用resize2fs 重新定义LV1的大小
    4.重新挂载,检验一下结果
    5.使用lvreduce 或lvresize 减小LV1至指定大小
    6.使用lvextend 增加LV2的大小
    7.重新定义下LV2大小
    示例过程
    前提:如果有数据库的使用,需要先停止数据库和集群
    1. 查看磁盘情况
    # fdisk -l
    # df -h
    # lsblk
    2.备份LV1的数据
    # mkdir /mnt/backup
    # tar -jcv -f /mnt/backup/test.tar.bz2 * 
    # mv /mnt/test/* /mnt/backup/
    3.卸载LV1
    卸载之前,需要检查扩容的目录是否有用户在使用: fuser -vm /u01(如果有,可以使用kill杀掉进程)
    # umount /mnt/test
    4.使用 e2fsck 检测一下LV1
    # e2fsck -f /dev/testvg/testlv
    5.使用resize2fs 重新定义LV1的大小
    # resize2fs -p /dev/testvg/testlv 2G
    6.重新挂载,检验一下结果
    # mount /dev/testvg/testlv /mnt/test
    # df -h
    7.使用lvreduce 或lvresize 减小LV1至指定大小
    # lvresize -L 2G /dev/testvg/testlv
    # lvreduce -L 2G /dev/testvg/testlv
    8.使用lvextend 增加LV2的大小
    # lvextend -l +100%FREE /dev/testvg/test2lv
    # lvextend -L +1G /dev/testvg/test2lv
    9.重新定义下LV2大小
    # resize2fs -p /dev/testvg/test2lv
    10.检查结果
    # df -h
    # lsblk
    查看下其他的实例过程
    # mkdir /backup 
    # mv /home/* /backup/ 
    # umount /home 
    # lvremove /dev/centos/home 
    # lvcreate -L 50G -n home cents 
    # mkfs -t xfs /dev/centos/home 
    # mv /backup/* /home/ 
    # lvextend -L +xxxG /dev/centos/root 
    # xfs_growfs root 
    # rm -rf /backup
     
    六、额外
    缩小LV是先声明 resize2fs -p 后定义 lvresize -L 的过程
    扩大LV是先定义 lvresize -L 后声明 resize2fs -p 的过程
    lvresize只是扩展了lv磁盘(裸设备)的大小,resize2fs是ext4文件系统命令,会调用文件系统本身去扩容,所以还是ext4。也就是说你这个lv原来是什么文件系统现在还是什么文件系统,他只是负责调用,如果是xfs文件系统的话会有xfs的扩容缩减命令,xfs_growfs 刷新文件系统大小
     
    缩下VG是移除空闲的PV的过程
  • 相关阅读:
    AQtime实战
    升级到 Fedora 12 后系统无法启动
    PostMortem Debugging Your Application with Minidumps and Visual Studio .NET
    分析、调试内存泄漏的应用程序
    中兴通讯有限公司 招聘“dotnet 高级工程师”
    快速构建大数据缓存
    【翻译 windbg 6】NET 调试示例实验 1:挂起
    【翻译 Windbg 5】.Net 调试举例
    【翻译 windbg 1】Getting started with windbg part I (第一部分 1)
    反汇编教程及汇编命令详解(一)
  • 原文地址:https://www.cnblogs.com/cnhyk/p/11765274.html
Copyright © 2011-2022 走看看