感谢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.
The kernel still uses the old table. The new table will be utilized at the next reboot or after you run partprobe or kpartx command. Both of these programs informs the operating system kernel of partition table changes, by requesting that the operating system re-read the partition table.

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扩容的更多相关文章

  1. Linux操作系统相关资料

    玩转Linux操作系统 操作系统发展史 只有硬件没有软件的计算机系统被称之为"裸机",我们很难用"裸机"来完成计算机日常的工作(如存储和运算),所以必须用特定的 ...

  2. linux操作系统故障处理-ext4文件系统超级块损坏修复

    linux操作系统故障处理-ext4文件系统超级块损坏修复   背景 前天外面出差大数据测试环境平台有7台服务器挂了,同事重启好了五台服务器,但是还有两台服务器启动不起来,第二天回来后我和同事再次去机 ...

  3. 解决方案-问题001:物理机、虚机等等Linux操作系统/usr/bin目录权限误操作,导致无法切换root

    导语:平常运维人员会误操作一些目录权限,导致一些问题,那么如何恢复呢? 问题:物理机.虚机等等Linux操作系统/usr/bin目录权限误操作,导致无法切换root? 实验环境: ip地址 是否目录正 ...

  4. Linux操作系统与项目部署

    Linux操作系统与项目部署 注意:本版块会涉及到操作系统相关知识. 现在,几乎所有智能设备都有一个自己的操作系统,比如我们的家用个人电脑,基本都是预装Windows操作系统,我们的手机也有Andro ...

  5. 安装linux操作系统

    安装双操作系统; 1 0. 介绍: 1 1 实验环境: 2 2. 实验准备: 2 3.开始安装: 2 1 制作U盘启动工具: 2 2.安装LinuxOS. 3 2.1在windowOS中划分60G空间 ...

  6. Linux操作系统备份之一:使用LVM快照实现Linux操作系统数据的在线备份

    这里我们讨论Linux操作系统的备份. 在生产环境,客户都会要求做全系统的数据备份,用于系统崩溃后的一种恢复手段.这其中就包含操作系统数据的备份恢复. 由于是生产环境,客户都会要求备份不中断业务,也就 ...

  7. 使用 /proc 文件系统来访问 linux操作系统 内核的内容 && 虚拟文件系统vfs及proc详解

    http://blog.163.com/he_junwei/blog/static/19793764620152743325659/ http://www.01yun.com/other/201304 ...

  8. linux 操作系统下c语言编程入门

    2)Linux程序设计入门--进程介绍 3)Linux程序设计入门--文件操作 4)Linux程序设计入门--时间概念 5)Linux程序设计入门--信号处理 6)Linux程序设计入门--消息管理  ...

  9. [转载]Linux LVM硬盘管理及LVM扩容

    最近项目中一直在用Linux,其中涉及到了Linux的LVM,本来想自己写一篇关于LVM的文章,搜了一下,发现了一篇更好的,转载过来,也感谢作者gaojun 原文Linux LVM硬盘管理及LVM扩容 ...

随机推荐

  1. 有多少种JVM

    https://en.wikipedia.org/wiki/Comparison_of_Java_virtual_machines 在这个类别下,主流选择有:(按流行程度递减) HotSpot VM ...

  2. leetcode 树的锯齿形状遍历

    二叉树的锯齿形层次遍历     给定一个二叉树,返回其节点值的锯齿形层次遍历.(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行). 例如:给定二叉树 [3,9,20,null,n ...

  3. 内存缓存 ehcache

    内存缓存需要对内存缓存每个参数的配置意义搞明白,才能很好地去使用,例如失效时间.存活时间. 是否存储在磁盘.是否永久有效,参数要了解清楚后进行使用,不要在不清楚时盲目使用,会导致意想不到 的问题发生. ...

  4. 洛谷T21778 过年

    题目描述 有 n(1 \leq n \leq 10^5)n(1≤n≤105) 个小朋友,过年了,要发放 m(1 \leq m \leq 10^5)m(1≤m≤105) 次礼物. 每次发放,会给出三个参 ...

  5. CSS 设计理念

    今天整理CSS2.1的规范,发现这个,分享给大家. CSS2.1 作为 CSS2 和 CSS1 的后序版本,基于一下一组设计理念: 向前和向后兼容.CSS2.1 的用户代理能够理解 CSS1 的样式表 ...

  6. Hystrix简单介绍

    Netflix的Hystrix是一个帮助解决分布式系统交互超时处理和容错的类库,同样拥有保护系统的能力. 服务隔离 服务降级 1.服务隔离 在一个系统中,一个业务通常会依赖多个服务,且这若干个服务的调 ...

  7. hdu 5821 Ball 贪心

    Ball 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5821 Description ZZX has a sequence of boxes nu ...

  8. 【面试虐菜】—— JAVA面试题(2)

    前篇推荐:http://www.cnblogs.com/xing901022/p/3975626.html 1 String = 与 new 的不同 使用“=”赋值不一定每次都创建一个新的字符串,而是 ...

  9. StatCounter

    StatCounter provides free customisable hit counters, visitor tracking, web analytics and website sta ...

  10. leetcode 题解 || Valid Parentheses 问题

    problem: Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if ...