为Linux操作系统所在的logical volumn扩容
感谢Lieven和Tom的协助,这个问题才得以解决。我在这里把解决问题的步骤总结一下,帮助自己学习。
问题描述
===========
笔者有一台linux的物理机,其上名为centos-root的logical volume没有空间了,

可以看到centos-root是mount在Linux系统的根目录的。也就是说,我的linux操作系统没空间了。
问题解决后的效果
============

达到这个结果可不容易呢。
第一次尝试-失败
============
由于logical volume,volume group, 和physical volume之间的关系如下:

所以,我们先想到的是直接修改当前centos-root这个lv的大小。
我的环境里,只有一个volume group,名叫centos。而这个vg也只包含一个physical volume,名为/dev/sda3. 大概长这个样子。

具体如下:


于是就想,如果直接增大/dev/sda3这个physical volume,那么centos这个volume group就自动扩大了,之后再扩大/dev/centos/root这个logical volume,那么我们的操作系统不就有空间了吗。
我们直接通过命令pvresize,扩大了/dev/sda3这个physical volume的大小. 之后运行了lvresize, 扩大了/dev/centos/root这个logical volume,之后就收到提示:logical volume is suspended。操作系统直接宕机了。
后来分析,发生这个问题的原因是,虽然pv和lv的大小都变大了,但是操作系统所在分区的分区大小并没有变大。相当于装东西的篮子没变大,东西却变大了,自然就装不下了。
通过插入Linux的启动盘,进入rescue mode,把lv的大小恢复回去,pv的大小恢复回去,系统才被救回来。
这里还涉及到一个紧张有趣的计算。我们往回改lv的时候,怕制定的大小过小了从而截断了原本的数据卷,所以制定的lv偏大了一些,系统提示了原来的lv的sector的数量,还有现在的sector的数量。通过这个提示,我们才精确的还原了LV和PV。
第二次尝试
============
这次换了方法,决定原来的pv不去动它,再加一个新的pv,然后把新建的pv加入vg里,之后再把lv扩容,一样可以解决问题。
开门就碰壁,fdisk居然无法创建新的分区,报错如下:

使用parted这个分区工具就可以了。网上讨论fdisk和parted哪个好,额,我这里投parted一票。
1. 使用parted工具创建分区的过程如下。注意这里为了追求保险,从17G处开始新分区。

2. 运行一下partprobe,让操作系统重新读取分区表,让新分区生效,避免重启。网上的文章解释如下:
|
If you are using hot swappable hard disk and created a new partition using the fdisk, then you need to reboot Linux based system to get partition recognized. Without reboot, you will NOT be able to create a filesystem on your newly created or modified partitions with the mke2fs command. |

3. 之后再进入fdisk把分区的类型修改为Linux LVM。

修改好了,检查一下。

4. 创建pv:/dev/sda4.

5. 扩展vg。

6. 使用lvresize命令扩展lv。

7. 尝试用resize2fs命令来扩展文件系统的大小,失败。报错:Bad magic number in super-block while trying to open /dev/centos/root. Couldn’t find valid filesytem superblock.

8. LV已经扩大了,只剩下最后一步,扩大其上的文件系统了。改用xfs_growfs /dev/centos/root来扩展文件系统的大小,因为我们的文件系统在第1步的时候,配了文件系统为xfs,所以要用这个工具才可以修改。

9.大功告成。

总结:为了解决这个问题,一下子pv,vg,lv,partition,file system这些概念以及他们之间的关系都差不多搞清楚了。花了这么多时间整理这个问题,感觉还是值得的。
为Linux操作系统所在的logical volumn扩容的更多相关文章
- Linux操作系统相关资料
玩转Linux操作系统 操作系统发展史 只有硬件没有软件的计算机系统被称之为"裸机",我们很难用"裸机"来完成计算机日常的工作(如存储和运算),所以必须用特定的 ...
- linux操作系统故障处理-ext4文件系统超级块损坏修复
linux操作系统故障处理-ext4文件系统超级块损坏修复 背景 前天外面出差大数据测试环境平台有7台服务器挂了,同事重启好了五台服务器,但是还有两台服务器启动不起来,第二天回来后我和同事再次去机 ...
- 解决方案-问题001:物理机、虚机等等Linux操作系统/usr/bin目录权限误操作,导致无法切换root
导语:平常运维人员会误操作一些目录权限,导致一些问题,那么如何恢复呢? 问题:物理机.虚机等等Linux操作系统/usr/bin目录权限误操作,导致无法切换root? 实验环境: ip地址 是否目录正 ...
- Linux操作系统与项目部署
Linux操作系统与项目部署 注意:本版块会涉及到操作系统相关知识. 现在,几乎所有智能设备都有一个自己的操作系统,比如我们的家用个人电脑,基本都是预装Windows操作系统,我们的手机也有Andro ...
- 安装linux操作系统
安装双操作系统; 1 0. 介绍: 1 1 实验环境: 2 2. 实验准备: 2 3.开始安装: 2 1 制作U盘启动工具: 2 2.安装LinuxOS. 3 2.1在windowOS中划分60G空间 ...
- Linux操作系统备份之一:使用LVM快照实现Linux操作系统数据的在线备份
这里我们讨论Linux操作系统的备份. 在生产环境,客户都会要求做全系统的数据备份,用于系统崩溃后的一种恢复手段.这其中就包含操作系统数据的备份恢复. 由于是生产环境,客户都会要求备份不中断业务,也就 ...
- 使用 /proc 文件系统来访问 linux操作系统 内核的内容 && 虚拟文件系统vfs及proc详解
http://blog.163.com/he_junwei/blog/static/19793764620152743325659/ http://www.01yun.com/other/201304 ...
- linux 操作系统下c语言编程入门
2)Linux程序设计入门--进程介绍 3)Linux程序设计入门--文件操作 4)Linux程序设计入门--时间概念 5)Linux程序设计入门--信号处理 6)Linux程序设计入门--消息管理 ...
- [转载]Linux LVM硬盘管理及LVM扩容
最近项目中一直在用Linux,其中涉及到了Linux的LVM,本来想自己写一篇关于LVM的文章,搜了一下,发现了一篇更好的,转载过来,也感谢作者gaojun 原文Linux LVM硬盘管理及LVM扩容 ...
随机推荐
- HEOI2018翻盘记
HEOI2018翻盘记 听说依照惯例要写一篇游记?好吧,没有退役,我已经谢天谢地了QAQ.那就用两句歌词做开头吧: "遠い遠い夢の終わり.悪夢に似た現実はもう昔日久远,梦之终结,那犹如噩梦的 ...
- UVA.1640.The Counting Problem / BZOJ.1833.[ZJOI2010]数字计数(数位DP)
题目链接 \(Description\) 求\([l,r]\)中\(0,1,\cdots,9\)每个数字出现的次数(十进制表示). \(Solution\) 对每位分别DP.注意考虑前导0: 在最后统 ...
- poj 2599 单调栈 ***
和poj2082差不多,加了一个宽度的条件 #include<cstdio> #include<cmath> #include<algorithm> #includ ...
- python调用oracle存储过程(packeage)
http://markmail.org/message/y64t5mqlgy4rogte http://www.oracle.com/technetwork/cn/articles/prez-stor ...
- j.u.c系列(03)---之AQS:AQS简介
写在前面 Java的内置锁一直都是备受争议的,在JDK 1.6之前,synchronized这个重量级锁其性能一直都是较为低下,虽然在1.6后,进行大量的锁优化策略,但是与Lock相比synchron ...
- 基于Servlet+JSP+JavaBean开发模式的用户登录注册
http://www.cnblogs.com/xdp-gacl/p/3902537.html 一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBea ...
- 通过Windows Compatibility Pack补充.net core中缺失的api
把项目往.net core上迁移的时候,一个最大的问题就是和.net framework相比,有一部分api缺失.它主要分为两类: Windows 独有的api,如注册表 未完成的功能,如System ...
- Who is YaoGe.(搞笑篇)
耀哥是google的大牛.主持google各种牛逼分布式系统的设计,比方Mapreduce之类的,关于大神的传说,如同春哥一样多,当然,有些传说仅仅有程序猿能明确! 耀哥当初面试Google时.被 ...
- C#远程调用技术WebService葵花宝典
一.课程介绍 直接开门见山吧,在学习之前阿笨想问大家一句,关于WebService远程过程调用技术(RPC) 你真的会了吗?不要跟老夫扯什么WebService技术已经过时,如果你的内心有在偷偷告诉你 ...
- 面试题07_用两个栈实现队列——剑指offer系列
题目描写叙述: 用两个栈实现一个队列. 队列的声明例如以下,请实现它的两个函数appendTail 和 deleteHead.分别完毕在队列尾部插入结点和在队列头部删除结点的功能. 解题思路: 栈的特 ...