zoukankan      html  css  js  c++  java
  • LVM : 缩减文件系统的容量

    有扩展就有缩减,我们在前文《LVM : 扩展文件系统的容量》中介绍了通过 LVM 扩展文件系统的方法,本文我们接着前文的 demo 介绍通过 LVM 缩减文件系统的方法。说明:本文的演示环境为 ubuntu 16.04。
    前文中我们把文件系统 /dev/mapper/nickvg-nicklv00 的容量从 15G 扩充到了 65G(显示为 64G):

    接下来我们再把它重新缩减为 15G,并移除新添加的磁盘 /dev/sde。

    卸载文件系统

    与扩展文件系统的容量不同,如果是缩减文件系统的容量,需要卸载文件系统后再进行缩减操作。

    如果没有卸载文件系统,会有上图中的提示。卸载文件系统本身非常简单,使用 umount 命令就可以搞定,我们要卸载的文件系统的挂载点为 /home/doc:

    $ sudo umount /home/doc

    使用 resize2fs 命令缩减文件系统

    卸载完文件系统就可以使用 resize2fs 命令来缩减其容量了,我们的目标是把它缩回 15G:

    $ sudo resize2fs /dev/nickvg/nicklv00 15G

    提示先运行 e2fsck -f /dev/nickvg/nicklv00 命令。e2fsck 命令用于检查 ext2/ext3/ext4 文件系统的完整性,通过适当的选项可以尝试修复出现的错误。e2fsck 执行后的传回值及代表意义如下:

    • 0 没有任何错误发生。
    • 1 文件系统发生错误,并且已经修正。
    • 2 文件系统发生错误,并且已经修正。
    • 4 文件系统发生错误,但没有修正。
    • 8 运作时发生错误。
    • 16 使用的语法发生错误。
    • 128 共享的函数库发生错误。
    $ sudo e2fsck -f /dev/nickvg/nicklv00

    -f 选项表示即使文件系统没有错误迹象,仍强制检查正确性。上图中的 0 表示我们的文件系统没有被检测出错误,我们重新执行 resize2fs 命令,这次就可以成功执行了:

    使用 lvreduce 命令缩减 LV

    在缩减 LV 前先查看一下其基本信息:

    $ sudo lvs nickvg/nicklv00

    上图显示 LV nickvg/nicklv00 的容量为 65G,而我们缩减后的文件系统只有 15G,所以我们是可以缩减这个 LV 的,我们直接把它缩减到 15G:

    $ sudo lvreduce -L 15G nickvg/nicklv00
    或
    $ sudo lvreduce -L 15G /dev/nickvg/nicklv00

    查看下结果:

    $ sudo lvdisplay nickvg/nicklv00

    LV 的容量变成了 15G,Current LE 的数量为 480。

    从 VG 中移除 PV

    检查名称为 nickvg 的 VG 的信息:

    $ sudo vgdisplay nickvg

    结果显示 VG 的总容量为 69.94G,已经分配了 15G,还有 54.94G 空闲。接下来通过 pvs 命令来查看 PV 与 VG 的关系:

    $ sudo pvs

    名称为 nickvg 的 VG 由 /dev/sdd1 和 /dev/sde1 两个 PV 组成,其中 /dev/sde1 完全空闲,我们可以把这个 PV 从 VG 中移除掉。vgreduce 命令可以从 VG 中移除 PV:

    $ sudo vgreduce nickvg /dev/sde1

    从 VG 中移除 PV /dev/sde1 后再次查看 pv 的状态:

    此时 /dev/sde1 已经不属于任何 VG。

    移除 PV

    所谓的移除 PV,就是使用 pvremove 命令移除 PV 设备上的标签,让 LVM 无法识别该设备是一个 PV。下面我们就来移除 PV /dev/sde1:

    $ sudo pvremove /dev/sde1

    在 pvremove 命令移除 /dev/sde1 后,pvs 命令输出的结果中就找不到名称为 /dev/sde1 的 PV 了。

    删除磁盘分区并移除硬盘

    查看设备文件:

    $ ls /dev/sde*

    其中的 /dev/sde1 就是磁盘分区的设备文件,让我们先用 gdisk 命令查看这个分区的信息:

    $ sudo gdisk /dev/sde

    然后再删除它:

    再去查看 sde 开头的设备文件,发现 /dev/sde1 已经不见了:

    最后关机移除硬盘就可以了。
    如果没有设置开机自动挂载文件系统,还需要在开机后重新手动挂载文件系统 /dev/mapper/nickvg-nicklv00 到 /home/doc 目录。

    总结

    与扩展文件系统容量不同,在 Ubuntu 16.04 中使用 resize2fs 命令缩减文件系统的容量需要事先卸载文件系统。其实实际使用中缩减文件系统的时候并不多,大家往往宁愿牺牲一些存储空间也不愿看到折腾丢数据的情况。

    参考:
    缩小 LVM 空间
    鸟哥的私房菜:缩小 LV 容量

  • 相关阅读:
    docker-machine create ,,,
    docker run with zabbix3.0
    mysql 官网
    取模性质
    欧涛最短路【记录最短路径】
    P4568 飞行路线【分层图最短路】
    CCF201403 无线网络【限制型最短路】
    POJ2449 【第k短路/A*】
    Feeding Time 【bfs求最大连通块】
    printf特殊用法
  • 原文地址:https://www.cnblogs.com/sparkdev/p/10213655.html
Copyright © 2011-2022 走看看