前段时间写了关于VMware下LVM是否还具有优势的帖子,后边写了一个磁盘直接扩展partation的帖子,今天就写写最后剩下的一种情况。

其实前面帖子里边提到过现在好多人做pv的时候不给磁盘划分partation ,直接用整个磁盘创建PV。然后最近工作上就遇到一个需求,一个lv挂载到单独的目录下,现在需要给这个目录扩容,恰巧这个lv所在的vg是由一个单独磁盘做的PV组成的,然后工程师没看明白就直接fdisk了这个磁盘尝试创建partation,然后整个的pv vg lv信息都看不到了。

下面还是通过测试环境演示一下。

首先演示一下正常的扩容操作流程:

 测试环境中sdb最开始是11G,直接做成了PV,pv创建了vg,vg上创建了lv,lv上创建了文件系统挂载到了/mnt目录,目前整个流程下来都是11G大小。

现在需要把/mnt目录扩容到15G

首先直接把sdb的磁盘从11G扩容到15G

然执行partprobe命令扫描一下磁盘,可以看到磁盘已经扩容到15G了,但是里边的lv还是11G

执行pvresize -t测试一下扩容是否可以,测试成功后直接执行pvresize,可以看到pv,vg都已经扩容到15G了,但是LV还是11G

剩下的操作就是比较常规的了,扩容lv,扩容文件系统。

下面演示一下出现我最开始说的那种操作失误以后怎么处理:(我就直接在我测试环境上做了,现在需求是把/mnt目录扩容到20G)

这是磁盘扩容后的环境,磁盘扩容到20G了,lv还是15G。

上面这段操作就是我在sdb上创建了一个LVM格式的partation,成功的把原来的PV,vg和LV信息搞没了,现在就需要来研究一下怎么恢复回来。

首先,需要抽根烟冷静一下

要确认上面的操作其实只是修改了磁盘上的磁盘头文件,真正的数据目前看还是都可以正常访问的,所以最重要的首先是要进行数据备份。

备份完成以后,先把刚才创建的partation删掉

可以看到刚创建的partation删除掉了,但是原来的pv信息还是不在。继续尝试修复lvm。

在/etc/lvm/archive和/etc/lvm/backup目录下其实是有每次pv、vg、lv的操作记录,通过这些记录尝试修复vg。

使用 vgcfgrestore --list testvg查看每个操作文件中记录的步骤。

可以看到最后一次lv操作记录的日志是在/etc/lvm/backup/testvg文件

首先查看备份文件中pv的UUID,重建PV(这步骤如果不做,操作系统每次重启一下LV都是非激活状态)

执行第一次恢复VG的命令(这次命令主要是把sdb的配置找回来)

执行重建pv命令

第一次执行重建pv的时候报错了,因为当时的vg在执行恢复以后是active状态,需要先给他设置成not active,然后就可以执行成功。

第二次执行VG修复命令

可以看到原来的vg信息已经恢复成功。LV激活后,后面扩容就按照上个章节的步骤扩就可以了

再谈Linux磁盘扩容(pvresize直接扩容PV)相关推荐

  1. 劫起|再谈Linux epoll惊群问题的原因和解决方案

    原作者:dog250,授权发布 重新整理: 极客重生 文章有点长,可以三连收藏慢慢看 缘起 近期排查了一个问题,epoll惊群的问题,起初我并不认为这是惊群导致,因为从现象上看,只是体现了CPU不均衡 ...

  2. 再谈Linux epoll惊群问题的原因和解决方案

    差别是什么?差别只是西装! 缘起 近期排查了一个问题,epoll惊群的问题,起初我并不认为这是惊群导致,因为从现象上看,只是体现了CPU不均衡.一共fork了20个Server进程,在请求负载中等的时 ...

  3. linux如何使用物理内存_10 张图解再谈 Linux 物理内存和虚拟内存

    (给Linux爱好者加星标,提升Linux技能) 转自:LemonCoder 今天继续来学习Linux内存管理,什么?你更想学时间管理,我不配,抱个西瓜去微博学吧. img 言归正传,上一篇文章 别再 ...

  4. 浅谈Linux磁盘存储管理续【逻辑卷管理(LVM)】

    一.LVM的基本概念 在对磁盘进行分区大小规划时,有时往往不能确定这个分区要使用的总空间大小,而用fdisk对磁盘分区后,每个分区的大小已经固定了,如果分区设置的过大,就白白浪费了磁盘空间,而分区设置 ...

  5. 再谈 Linux下的nanosleep函数

    int nanosleep(const struct timespec *req,struct timespec *rem); struct timespec { time_t  tv_sec;    ...

  6. 再谈 Linux下的nanosleep函数【转】

    (转自:https://blog.csdn.net/hbuxiaofei/article/details/46416605?utm_medium=distribute.pc_relevant.none ...

  7. 再谈Linux修改应用程序获得root权限

    我之前写过一篇关于怎样就可以使你的应用程序获得root权限运行,那个对于一些测试程序或小工程的程序时比较实用,但如果你的工程文件多达几十个甚至上百,那么这种方法就不太适用了. 在Ubuntu下面,我选 ...

  8. df命令能够实现linux系统磁盘管理中,Linux_linux磁盘命令中df命令的作用,linux磁盘命令中df命令的使用, - phpStudy...

    linux磁盘命令中df命令的作用 linux磁盘命令中df命令的使用,系统管理员想要知道df命令的功能,看完本文相信您能得到一个满意的答案.磁盘配额:问题是他们没有表达同时想获得磁盘配额管理工具的愿 ...

  9. linux df命令none,linux磁盘命令中df命令的作用

    linux磁盘命令中df命令的作用,df命令可显示所有文件系统对i节点和磁盘块的使用情况.该命令各个选项的含义:-a 显示所有文件系统的磁盘使用情况,包括0块(block)的文件系统,如/proc文件 ...

最新文章

  1. springboot 优雅停机_Spring Boot 2.3 新特性优雅停机详解
  2. 软件开发本质论——自然之路
  3. 基于Laravel开发博客应用系列 —— 构建博客后台管理系统
  4. PostgreSql入门命令
  5. CF1101D GCD Counting
  6. Python之数据分析(Numpy数据可视化:等高线图、热力图、饼图)
  7. 小米5如何支持ATT网络运营商
  8. WinAPI-命令规则
  9. 点餐系统源码|点餐系统小程序源码
  10. 聊天室私人聊天原理_如何设置极其安全的私人群组聊天
  11. RapidMiner 数值调整
  12. 矩阵卷积、矩阵相乘以及频域相乘之间的关系
  13. cad计算机土方软件,CAD土方工程量算量插件(土方工程量计算工具)V1.1 正式版
  14. DataFactory造数-常用的数据产生方式
  15. debugger位置不对_console / debugger / alter
  16. 同属开源Linux 移动市场MeeGo独到之秘
  17. python main.py是什么意思_什么是__main__.py?
  18. 多源异构数据整合在多规合一中的应用
  19. npm ERR! Error: tunneling socket could not be established的解决问题
  20. regsvr32.exe使用详解

热门文章

  1. 自然语言处理中的文本分类
  2. 45 个常用Linux 命令
  3. JQuery-jq属性操作、jq文本属性值、jq元素(创建、添加、移除)操作、jq尺寸、位置操作
  4. 关于mid=(low+high)/2与mid=low+(high-low)/2的区别
  5. 长城bois设置raid阵列
  6. 机械臂协同搬运中的阻抗控制
  7. 奥地利机器人编程软件AUTOMAPPPS使用教程
  8. datahub文档_实现datahub
  9. 自定义弹框 :visible.sync
  10. Linux安装图形界面