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 : 缩减文件系统的容量的更多相关文章
- LVM : 扩展文件系统的容量
如果发现文件系统的容量不足了,可以通过 LVM 轻松的进行扩展(当然也可以进行缩减操作).本文将紧接前文中的 demo 详细的介绍扩展文件系统的操作过程.说明:本文的演示环境为 ubuntu 16.0 ...
- CentOS7使用LVM缩减/home空间,扩大/空间
CentOS7使用LVM缩减/home空间,扩大/空间方法:把/home里的内容备份,然后将/home文件系统所在的逻辑卷删除,扩大/文件系统.新建/home,恢复/home的原内容1.查看默认分区[ ...
- 004.LVM缩减
一 缩减步骤 卸载挂载点 检查文件系统 调整分区大小 缩减LV大小 重新挂载并检查 注意: 1 减少文件的大小一定需要按照上面提高的4个规定动作顺序来做,在缩减LV大小前,首先要缩减filesyste ...
- Centos 7 LVM xfs文件系统修复
Centos 7 LVM xfs文件系统修复 今天一大早,zabbix开始报警了,一台linux主机出现问题. 登陆控制台查看,报如下错误. 解决方法如下: ls -l /dev/mapper xfs ...
- 十三、LVM 逻辑卷管理
http://note.youdao.com/noteshare?id=0252cd5dcf7f2e5f11de5b3672779201&sub=ED011464ADA3467D9424271 ...
- LVM基本应用,扩展及缩减实现!
LVM概述 [百度百科] LVM是逻辑盘卷管理(LogicalVolumeManager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和 分区之上的一个逻辑层,来提高磁 ...
- Linux系统——文件系统与LVM 逻辑
格式化命令 mkfs. mkswap mkfs格式化数据磁盘 # mkfs -t ext4 /dev/sdb1 # mkfs.ext4 /dev/sdb1 -t 指定格式化文件类型 -b 指定bloc ...
- linuxLVM之LV扩大和缩小容量(非xfs文件系统)
LVM的基础请见:https://www.cnblogs.com/wxxjianchi/p/9698089.html 一.放大LV的容量.放大容量是由内而外来操作的. 1.设置新的lvm分区:用fdi ...
- 1.1 关于LVM的创建、删除、扩容和缩减
一.新建LVM的过程 1.使用fdisk 新建分区 修改ID为8e 3.使用 pvcreate 创建 PV 4.使用 vgcreate 创建 VG 5.使用 lvcreate 创建 LV 6.格 ...
随机推荐
- [20180630]truncate table的另类恢复2.txt
[20180630]truncate table的另类恢复2.txt --//上个星期做了truncate table的另类恢复,通过修改数据块的段号,再通过rowid定位收集数据,达到修复的目的.- ...
- WindowsErrorCode
0 操作成功完成.1 功能错误.2 系统找不到指定的文件.3 系统找不到指定的路径.4 系统无法打开文件.5 拒绝访问.6 句柄无效.7 存储控制块被损坏.8 存储空间不足, 无法处理此命令.9 存储 ...
- 关于excel中的查找
弹出查找界面后,点击“选项”按钮 在范围下拉框中选择: 1.工作表:表示在当前表sheet中进行查找 2.工作簿:表示在此excel整个文件中进行查找
- little kernel 小结
其实几篇文章都是摘自freebuf安全的文章: 高通(Qualcomm)LK源码深度分析 高通(Qualcomm)LK源码深度分析(二) 高通(Qualcomm)LK源码深度分析(三) 将其整理为比较 ...
- 用Python实现数据结构之二叉搜索树
二叉搜索树 二叉搜索树是一种特殊的二叉树,它的特点是: 对于任意一个节点p,存储在p的左子树的中的所有节点中的值都小于p中的值 对于任意一个节点p,存储在p的右子树的中的所有节点中的值都大于p中的值 ...
- Servlet (HttpServletResponse)对象
1.setStatus(int status)方法:用于设置HTTP响应消息的状态码,并生成响应状态行.响应状态行中的状态描述信息直接与状态码相关,HTTP版本由服务器确定,因此只需要通过这个方法设置 ...
- Python & 机器学习之项目实践
机器学习是一项经验技能,经验越多越好.在项目建立的过程中,实践是掌握机器学习的最佳手段.在实践过程中,通过实际操作加深对分类和回归问题的每一个步骤的理解,达到学习机器学习的目的. 预测模型项目模板不能 ...
- 描述整体程序的 app
一个小程序主体部分由三个文件组成,必须放在项目的根目录,如下 app.js文件 App() 函数用来注册一个小程序.接受一个 object 参数,其指定小程序的生命周期函数等.object参数说明如下 ...
- 数据挖掘十大算法--K-均值聚类算法
一.相异度计算 在正式讨论聚类前,我们要先弄清楚一个问题:怎样定量计算两个可比較元素间的相异度.用通俗的话说.相异度就是两个东西区别有多大.比如人类与章鱼的相异度明显大于人类与黑猩猩的相异度,这是能 ...
- The Cat in the Hat POJ - 1289
题意:给你来两个数A,B .其中A=(n+1)k, B=nk 输出:(nk-1)/(n-1) 和 ∏ (n+1)k-i ni 思路:关键就是怎么求n和k.本来想这n一定是几个质因数的乘积,那 ...