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 容量

  • 相关阅读:
    1093 Count PAT's(25 分)
    1089 Insert or Merge(25 分)
    1088 Rational Arithmetic(20 分)
    1081 Rational Sum(20 分)
    1069 The Black Hole of Numbers(20 分)
    1059 Prime Factors(25 分)
    1050 String Subtraction (20)
    根据生日计算员工年龄
    动态获取当前日期和时间
    对计数结果进行4舍5入
  • 原文地址:https://www.cnblogs.com/sparkdev/p/10213655.html
Copyright © 2011-2022 走看看