使用GrowPart工具完成对LVM逻辑卷的在线热扩容

news/2024/7/3 5:01:18

逻辑卷所在物理磁盘如果划分了分区,想要动态增加卷空间大小,有两种方式扩容逻辑卷。

方法一

新建一个分区,将新分区扩容至逻辑卷

# 思路如下:
lsblk 
fdisk /dev/sdb		n--》p--》回车--》回车--》回车--》w
创建PV,添加到VG,lvextend -L 容量/+容量 逻辑卷全名
df -Th
xfs_growfs /dev/mapper/centos-root
partprobe

方法二

使用growpart工具完成Linux逻辑卷扩容
Linux磁盘扩容
在最后一个分区基础上直接扩容分区

1、配置yum源,然后yum安装growpart工具

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
yum search growpart
yum install -y cloud-utils-growpart.x86_64 

2、使用growpart命令进行分区热扩展

[root@master ~]# growpart -h
growpart磁盘分区
   重写分区表,使分区占用它能占用的所有空间 
   options:
    -h | --help       打印使用和退出
         --fudge F    如果部分可以调整大小,但改变会小于'F',不要调整大小(默认值:20480) 
    -N | --dry-run    只报告将要执行的操作,并显示新的'sfdisk -d' 
    -v | --verbose    增加详细信息/调试
    -u | --update  R  增长后更新内核分区表信息 
                      这需要内核支持 and 'partx --update'
                      R is one of:
                       - 'auto'  : [default] 尽可能更新分区
                       - 'force' : 尽管进行了健全检查,仍然尝试(每次失败都失败)
                       - 'off'   : 不要尝试
                       - 'on'    : 如果完整性检查表明不支持,则失败
   Example:
    - growpart /dev/sda 1		在/dev/sda上调整分区1的大小

[root@master ~]# lsblk
[root@master ~]# growpart /dev/sdb 1	(运行growpart命令热扩容分区。1表示sdb的第一个分区)
注:
如果运行出现”unexpected output in sfdisk –version [sfdisk,来自 util-linux 2.23.2]”这个错误,就是编码的问题,运行下面这行命令可以解决
LANG=en_US.UTF-8
[root@master ~]# partprobe				(如果未生效则重启操作系统)

3、LVM分区与文件系统扩容操作

growpart扩容后只是增加了物理容量,分区和文件系统还不能使用 这时进行LVM分区与文件系统扩容操作!

pvdisplay
pvresize /dev/sdb1
vgdisplay
lvextend -l +100%FREE /dev/mapper/vg1-lv1		# 扩容逻辑卷
lvdisplay
lsblk
df -PTh
xfs_growfs /dev/mapper/vg1-lv1			# 最后进行文件系统的在线扩容 [ext*文件系统(例如ext3和ext4):运行resize2fs命令]

补充说明
本次在CentOS7中扩容的分区是这块磁盘上的最后一个分区,也就是磁盘扩展后增加的空间是加在磁盘的最后一个分区,所以可以通过growpart工具修改硬盘的分区表,将这部分空间直接append到最后一个分区;
所以如果你要扩容的分区在你的系统上并非是磁盘上的最后一个分区的话,可能无法直接无损扩充分区;
请谨慎使用此方法进行操作,建议做好数据备份再进行操作。

扩展

pvresize命令功能

用于调整一个卷组中的物理卷的大小

pvresize命令注意事项:
1.对于存在物理卷的设备,在扩增其容量之后或缩小其容量之前,须使用pvresize命令对应地增加或减少物理卷的大小
2.物理卷已分配物理区域超过了命令指定的新大小边界,pvresize命令会拒绝将物理卷缩小。若磁盘空间足够,可使用pvresize命令将物理区域重新分配至别的卷组来解决这个问题
3.当运行pvresize命令不带参数,就会将物理卷的大小调整为操作系统为底层分区报告的大小

pvresize命令的语法格式:

pvresize [参数] [物理卷]

		-----常用参数说明------
-d	调试模式
-h	帮助信息
-t	以测试模式运行
-v	制定发送消息的详细等级
-y	总是选择确定(谨慎)
--reportformat basic|json	重写当前报告的输出格式
--setphysicalvolumesize		覆盖物理卷自动检测到的尺寸

// 调整物理卷/dev/sda1的大小为磁盘
pvresize /dev/sda1
//调整物理卷/dev/sda1的大小为80GB
pvresize --setphysicalvolumesize 80G /dev/sda1

e2fsck

用于检查使用 Linux ext2 档案系统的 partition 是否正常工作。 e2fsck命令可以检查ext2、ext3、ext4文件系统,如果系统已经挂载了,那么不建议去检查,因为这样是不安全的。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。

e2fsck执行后的传回值及代表意义如下:

0 	没有任何错误发生。
1 	文件系统发生错误,并且已经修正。
2 	文件系统发生错误,并且已经修正。
4	文件系统发生错误,但没有修正。
8 	运作时发生错误。
16  使用的语法发生错误。
128 共享的函数库发生错误。

e2fsck命令的语法格式:

e2fsck (选项) (参数)

// 常用命令选项
-a:不询问使用者意见,便自动修复文件系统;
-b<superblock>:指定superblock,而不使用预设的superblock;
-B<区块大小>:指定区块的大小,单位为字节;
-c:一并执行badblocks,以标示损坏的区块;
-C:将检查过程的信息完整记录在file descriptor中,使得整个检查过程都能完整监控;
-d:显示排错信息;
-f:即使文件系统没有错误迹象,仍强制地检查正确性;
-F:执行前先清除设备的缓冲区;
-l<文件>:将文件中指定的区块加到损坏区块列表;
-L<文件>:先清除损坏区块列表,再将文件中指定的区块加到损坏区块列表。因此损坏区块列表的区块跟文件中指定的区块是一样的;
-n:以只读模式开启文件系统,并采取非互动方式执行,所有的问题对话均设置以"no"回答;
-p:不询问使用者意见,便自动修复文件系统;
-r:此参数只为了兼容性而存在,并无实际作用;
-s:如果文件系统的字节顺序不适当,就交换字节顺序,否则不做任何动作;
-S:不管文件系统的字节顺序,一律交换字节顺序;
-t:显示时间信息;
-v:执行时显示详细的信息;
-V:显示版本信息;
-y:采取非互动方式执行,所有的问题均设置以"yes"回答。

// 参数
文件系统或者分区:指定文件系统或者分区所对应的设备文件名。

·参考实例
检查/dev/sda1是否有问题,如发现问题便自动修复:
e2fsck -a /dev/sda1
执行e2fsck或fsck前请先umount partition,否则有机会令档案系统毁损。如果需要对根目录/进行检查及修复,便需要进入singal user mode执行。

The pain of self-discipline is as light as a feather, and the pain of regret is as heavy as mount Tai.


http://www.niftyadmin.cn/n/3615964.html

相关文章

编程珠玑--粗略估算

粗略估算是《编程珠玑》中第七章提到的内容。 这篇文章将“粗略估算”看做是一项工程技术&#xff0c;是程序员必备的一项技能之一。 本人非常同意这个观点。粗略估算是一种把复杂的事情简单化的能力。我们对某个算法的时间复杂度和空间复杂度的估算就是基于这种估算的能力。如…

SpringBoot项目部署到外部Tomcat中的方法

SpringBoot项目部署到外部Tomcat中的方法 1. 特别说明 由于SpringBoot默认访问无需项目名&#xff0c;所以打包成war的SpringBoot项目也需要部署成不需要输入项目名的方式&#xff0c;否则资源无法访问&#xff0c;后面会给部署示例官方教程地址pom.xml调整 1.1 打包方式修改 &…

曲线拟合的线性最小二乘法

最小二乘法拟合 最小二乘法拟合解方程组方法多项式拟合 解方程组方法 栗子&#xff1a;最小二乘法求一个形如&#xff1a;​ 的经验公式。 x [19 25 31 38 44]; y [19.0 32.3 49.0 73.3 97.8]; ​ r [ones(5,1),x.^2]; ab r\y; x0 19:0.1:44; y0 ab(1) ab(2)*x0.^2; plo…

对象反序列化出现类型不匹配的情况(spring-boot-devtools)

目前在做springboot项目的shiro session redis共享功能。但是有一个对象我把它放到redis中之后再取出来就会出现类型不匹配的异常 AuthorizationUser user (AuthorizationUser) cache.getSuper(key); 异常信息&#xff1a; java.lang.ClassCastException: com.ch.evaluation.a…

vuex小结

2019独角兽企业重金招聘Python工程师标准>>> store状态管理 1.认识store 每一个 Vuex 应用的核心就是 store&#xff08;仓库&#xff09;。“store”基本上就是一个容器&#xff0c;它包含着你的应用中大部分的状态 (state)。Vuex 和单纯的全局对象有以下两点不同&…

基于Java语言编写的数据库中间件Mycat

一个新颖的数据库中间件产品支持mysql集群&#xff0c;或者mariadb cluster&#xff0c;提供高可用性数据分片集群。基于Java语言编写的数据库中间件 什么是MyCat MyCat是一个开源的分布式数据库系统&#xff0c;是一个实现了MySQL协议的服务器&#xff0c;前端用户可以把它看…

git命令行操作详解

目录 1.常用操作1.1 新建代码库1.2 配置1.3 remote管理1.4 添加和撤销操作1.5 代码提交1.6 分支操作1.7 查看信息1.8 pull操作1.9 push操作1.10 tag操作2. 其他一些汇总2.1 github上初始一个项目2.2 重命名远程分支&#xff08;先删除远程分支&#xff0c;重命名本地分支&#…

Linux(Centos7)系统安装Python3.6.8教程

大坑&#xff1a; 系统自带的python2不要卸载&#xff0c;一些系统命令要用&#xff0c;2和3可以共存。 linux中Python3.6.8安装 [rootmaster ~]# cat /etc/redhat-release CentOS Linux release 7.3.1611 (Core) 1、首先要查看系统中有没有自带的gcc gcc --version2、通过wg…