• ext4和xfs文件系统的扩容和收缩


     

     

    1. LVM逻辑卷管理

    2. ext4文件系统

    2.1 扩容CentOS6的根文件系统(ext4)

    根文件系统在 /dev/VolGroup/lv_root 逻辑卷上,文件系统类型为ext4,大小为10G,现在要将其扩容成20G。

    1)调整分区类型为8e

     
    # 调整分区类型为LVM,也就是8e类型
    fdisk /dev/sdb
        # 选定分区后使用 t 选项,然后选择8e类型
     
    # 通知内核重读分区表
    partx -a /dev/sdb
    
    # 查看
    cat /proc/partitions
    lsblk 

    2)进行扩容

     
    # 1. 创建pv
    pvcreate /dev/sdb7
    
    # 2. 对根 / 所在的vg进行扩容,将/dev/sdb7这个pv添加到VolGroup这个vg中去
    vgextend VolGroup /dev/sdb7
    
    # 3. 对根 / 所在的lv进行扩容
    # 先通过vgdisplay命令查看对应vg中空闲的pe数量,然后再将这些空闲的pe添加到lv中去
    lvextend -l +2194 /dev/VolGroup/lv_root 
    
    # 4. 扩容文件系统
    resize2fs /dev/VolGroup/lv_root  # 自动扩容,将可分配的空间全部分配完
    # 或者扩容成指定的大小 resize2fs /dev/VolGroup/lv_root  15G
    
    # 5. 查看是否扩容成功
    df -hT
    • 注意:LV扩容前最好先卸载挂载的设备,然后再使用 lvextend 进行扩容,这里因为是对根文件系统进行扩容,故而没有卸载

    2.2 收缩ext4文件系统

    /dev/sdb6 和 /dev/sdb4 一共分区大小为5G,分区类型为8e,它们被添加到了卷组VolGroup中,并做成 lv_mnt 逻辑卷挂载在了 /mnt 目录。

    现在要将 lv_mnt 缩小成3G,并且不能损坏其数据

     
    # 1. 卸载设备
    umount /mnt
    
    # 2. 进行磁盘检查
    e2fsck -f /dev/VolGroup/lv_mnt
    
    # 3. 收缩文件系统
    resize2fs /dev/VolGroup/lv_mnt 3G
    
    # 4. 收缩LV
    lvreduce -L -2G /dev/VolGroup/lv_mnt 
    
    # 5. 将PE移动到空闲的地方
    ### 查看哪些PV上有空闲的PE
    pvdisplay | grep 'PV Name| Free'
    ### 将PE移动到有空闲PE的PV上
    pvmove  /dev/sdb6:0-99  /dev/sdb4
    
    # 6. 从VG中移除PV
    vgreduce VolGroup /dev/sdb6
    
    # 7. 移除该PV
    pvremove /dev/sdb6

    3. xfs文件系统

    3.1 扩容CentOS7的根文件系统(xfs)

     
    # 1. 与CentOS6一样,先要创建一个8e格式磁盘分区
    fdisk /dev/sdb
    
    # 2. 创建PV
    pvcreate /dev/sdb5
    
    # 3. 将pv添加到根所在的VG中
    vgextend centos /dev/sdb5
    
    # 4. 扩容LV
    # 特别注意:在扩容LV之前最好要先卸载设备,这里没有卸载是因为扩容的根文件系统
    lvextend -l +2048 /dev/centos/root # 5. 扩容xfs文件系统 xfs_growfs /dev/centos/root # 6. 查看是否扩容成功 df -hT

    3.2 收缩xfs文件系统

    xfs文件系统只能扩容而无法收缩,如果要想收缩,可以先备份,之后再进行减容重建,再恢复数据。

    1)备份

     
    # xfsdump的方式备份
    xfsdump -f /data/home.img /home
        -f 备份保存的位置
    
    # cp直接复制文件的方式备份
    cp -aR /home /data/home

    2)减容重建

     
    # 1. 卸载home目录
    umount /home/
    
    # 2. 删除 lv_home
    ### 删除之前要备份或者将PE移动到空闲的PV中
    lvremove /dev/centos/home
    
    # 3. 扩容根所在的的 lv
    lvresize -L 20G /dev/centos/root
    
    # 4. 扩容根文件系统
    xfs_growfs /dev/centos/root
    
    # 5. 重建home的LV
    lvcreate -L 1G -n home centos
    
    # 6. 格式化并挂载
    mkfs.xfs /dev/centos/home
    mount /dev/centos/home /home
    
    # 7. 还原数据
    xfsrestore -f /data/home.img /home
    • 注意:尽量避免对重要数据所在的文件系统做收缩操作

    本文作者: Praywu

    本文链接:https://www.cnblogs.com/hgzero/p/14193427.html

    版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

  • 相关阅读:
    【Leetcode】92. Reverse Linked List II && 206. Reverse Linked List
    【Leetcode】91. Decode Ways
    记一次面经
    涨知识
    B-Tree 漫谈 (从二叉树到二叉搜索树到平衡树到红黑树到B树到B+树到B*树)
    涨知识
    HDU 1754 I Hate It 【线段树单点修改 维护区间最大值】
    POJ 1632 Vase collection【状态压缩+搜索】
    POJ 1011 Sticks 【DFS 剪枝】
    POJ 1088 滑雪 【记忆化搜索经典】
  • 原文地址:https://www.cnblogs.com/cheyunhua/p/14195518.html
Copyright © 2020-2023  润新知