Linux调整lvm逻辑分区大小
转载自:https://www.cnblogs.com/kevingrace/p/5825963.html
Linux下对lvm逻辑卷分区大小的调整(针对xfs和ext4不同文件系统)
当我们在安装系统的时候,由于没有合理分配分区空间,在后续维护过程中,发现有些分区空间不够使用,而有的分区空间却有很多剩余空间。如果这些分区在装系统的时候使用了lvm(前提是这些分区要是lvm逻辑卷分区),那么就可以轻松进行扩容或缩容!不同文件系统类型所对应的创建、检查、调整命令不同,下面就针对xfs和ext2/3/4文件系统的lvm分区空间的扩容和缩容的操作做一记录:
------------------------------------------------------------------------------------------
特别注意的是:
resize2fs命令 针对的是ext2、ext3、ext4文件系统
xfs_growfs命令 针对的是xfs文件系统
------------------------------------------------------------------------------------------
1)ext2/ext3/ext4文件系统的调整命令是resize2fs(增大和减小都支持)
|
1
2
3
4
5
|
lvextend -L 120G /dev/mapper/centos-home //增大至120Glvextend -L +20G /dev/mapper/centos-home //增加20Glvreduce -L 50G /dev/mapper/centos-home //减小至50Glvreduce -L -8G /dev/mapper/centos-home //减小8Gresize2fs /dev/mapper/centos-home //执行调整 |
2)xfs文件系统的调整命令是xfs_growfs(只支持增大)
|
1
2
3
4
5
6
|
lvextend -L 120G /dev/mapper/centos-home //增大至120Glvextend -L +20G /dev/mapper/centos-home //增加20Gxfs_growfs /dev/mapper/centos-home //执行调整就是说:xfs文件系统只支持增大分区空间的情况,不支持减小的情况(切记!!!!!)。硬要减小的话,只能在减小后将逻辑分区重新通过mkfs.xfs命令重新格式化才能挂载上,这样的话这个逻辑分区上原来的数据就丢失了。如果有重要文件,那就歇菜喽~~~ |
实例1(当系统上还有空闲空间的时候)
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
1)查看分区空间。如下可知是xfs文件系统(df的-T参数就能看出文件格式)。[root@localhost ~]# df -hT文件系统 类型 容量 已用 可用 已用% 挂载点/dev/mapper/centos-root xfs 200G 2.2G 198G 2% /devtmpfs devtmpfs 32G 0 32G 0% /devtmpfs tmpfs 32G 0 32G 0% /dev/shmtmpfs tmpfs 32G 49M 32G 1% /runtmpfs tmpfs 32G 0 32G 0% /sys/fs/cgroup/dev/sda1 xfs 197M 139M 59M 71% /boottmpfs tmpfs 6.3G 0 6.3G 0% /run/user/0/dev/mapper/centos-home xfs 628G 33M 718G 1% /home2)使用vgdisplay命令查看系统上的空闲空间root@localhost ~]# vgdisplay --- Volume group --- VG Name centos System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 6 VG Access read/write VG Status resizable MAX LV 0 Cur LV 3 Open LV 3 Max PV 0 Cur PV 1 Act PV 1 VG Size 930.80 GiB PE Size 4.00 MiB Total PE 238285 Alloc PE / Size 212736 / 831.00 GiB Free PE / Size 25549 / 99.80 GiB //这一项表示目前该系统上还存在99.80G的空闲空间(25549) VG UUID a5hiAh-LB8M-9lRv-Ps1a-z35L-J4fk-sP3KrF3) 将上面查到的空闲空间中的90G增减到/home分区上[root@localhost ~]# lvextend -L +90G /dev/mapper/centos-home //或者使用-l参数(跟PE数量),即lvextend -l +25500 /dev/mapper/centos-home Size of logical volume centos/home changed from 628.00 GiB (160768 extents) to 718.00 GiB (183808 extents). Logical volume centos/home successfully resized.[root@localhost ~]# xfs_growfs /dev/mapper/centos-homemeta-data=/dev/mapper/centos-home isize=512 agcount=4, agsize=41156608 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0 spinodes=0data = bsize=4096 blocks=164626432, imaxpct=25 = sunit=0 swidth=0 blksnaming =version 2 bsize=4096 ascii-ci=0 ftype=1log =internal bsize=4096 blocks=80384, version=2 = sectsz=512 sunit=0 blks, lazy-count=1realtime =none extsz=4096 blocks=0, rtextents=0data blocks changed from 164626432 to 1882193924)再次看着系统分区,发现home分区已经增加了90G(这种方式增加后,home分区之前的数据还不会丢失)[root@localhost ~]# df -h文件系统 容量 已用 可用 已用% 挂载点/dev/mapper/centos-root 200G 2.2G 198G 2% /devtmpfs 32G 0 32G 0% /devtmpfs 32G 0 32G 0% /dev/shmtmpfs 32G 49M 32G 1% /runtmpfs 32G 0 32G 0% /sys/fs/cgroup/dev/sda1 197M 139M 59M 71% /boottmpfs 6.3G 0 6.3G 0% /run/user/0/dev/mapper/centos-home 718G 33M 718G 1% /home |
虽然xfs文件系统只支持增加,不支持减少。但并不是说在xfs系统文件下不能减小,只是减小后,需要重新格式化才能挂载上。这样原来的数据就丢失了!
实例2: 这种情况只适用于系统刚安装好,逻辑分区内没有什么数据或数据不多且不重要可以删除或拷贝的情况下
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
系统安装好后,发现home分区过大,想从home分区中拿出100G给/分区[root@localhost ~]# df -hT文件系统 类型 容量 已用 可用 已用% 挂载点/dev/mapper/centos-root xfs 205G 2.2G 203G 2% /devtmpfs devtmpfs 32G 0 32G 0% /devtmpfs tmpfs 32G 0 32G 0% /dev/shmtmpfs tmpfs 32G 49M 32G 1% /runtmpfs tmpfs 32G 0 32G 0% /sys/fs/cgroup/dev/sda1 xfs 197M 139M 59M 71% /boottmpfs tmpfs 6.3G 0 6.3G 0% /run/user/0/dev/mapper/centos-home xfs 718G 33M 718G 1% /home [root@localhost ~]# umount /home/ [root@localhost ~]# lvreduce -L -100G /dev/mapper/centos-home WARNING: Reducing active logical volume to 618.00 GiB. THIS MAY DESTROY YOUR DATA (filesystem etc.)Do you really want to reduce centos/home? [y/n]: y Size of logical volume centos/home changed from 718.00 GiB (183808 extents) to 618.00 GiB (158208 extents). Logical volume centos/home successfully resized. 如下,很显然xfs文件系统不能执行分区减小的调整![root@localhost ~]# xfs_growfs /dev/mapper/centos-homexfs_growfs: /dev/mapper/centos-home is not a mounted XFS filesystem[root@localhost ~]# mount /dev/mapper/centos-home /home/mount: /dev/mapper/centos-home:不能读超级块 这样,只能通过重新格式化这个分区,格式化后才能再次挂载到home下[root@localhost ~]# mkfs.xfs /dev/mapper/centos-home -fmeta-data=/dev/mapper/centos-home isize=512 agcount=4, agsize=41156608 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0data = bsize=4096 blocks=164626432, imaxpct=25 = sunit=0 swidth=0 blksnaming =version 2 bsize=4096 ascii-ci=0 ftype=1log =internal log bsize=4096 blocks=80384, version=2 = sectsz=512 sunit=0 blks, lazy-count=1realtime =none extsz=4096 blocks=0, rtextents=0 [root@localhost ~]# mount /dev/mapper/centos-home /home/ 再次查看分区,发现home分区已经减小了100G,只不过这个分区里之前的数据都没有了。[root@localhost ~]# df -hT 文件系统 类型 容量 已用 可用 已用% 挂载点/dev/mapper/centos-root xfs 205G 2.2G 203G 2% /devtmpfs devtmpfs 32G 0 32G 0% /devtmpfs tmpfs 32G 0 32G 0% /dev/shmtmpfs tmpfs 32G 49M 32G 1% /runtmpfs tmpfs 32G 0 32G 0% /sys/fs/cgroup/dev/sda1 xfs 197M 139M 59M 71% /boottmpfs tmpfs 6.3G 0 6.3G 0% /run/user/0/dev/mapper/centos-home xfs 618G 73M 578G 1% /home ---------------------------------------------------------------------------上面在重新格式的时候,也可以将这个格式化为ext4格式。[root@localhost ~]# mkfs.ext4 /dev/mapper/centos-home[root@localhost ~]# cat /etc/fstab //将home分区的开机挂载设置里的xfs改为ext4--------------------------------------------------------------------------- 然后将上面从home分区拿出的100G放到/分区下[root@localhost ~]# vgdisplay --- Volume group --- VG Name centos System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 9 VG Access read/write VG Status resizable MAX LV 0 Cur LV 3 Open LV 3 Max PV 0 Cur PV 1 Act PV 1 VG Size 930.80 GiB PE Size 4.00 MiB Total PE 238285 Alloc PE / Size 211456 / 826.00 GiB Free PE / Size 26829 / 104.80 GiB VG UUID a5hiAh-LB8M-9lRv-Ps1a-z35L-J4fk-sP3KrF [root@localhost ~]# lvextend -L +100G /dev/mapper/centos-root Size of logical volume centos/root changed from 205.00 GiB (52480 extents) to 305.00 GiB (78080 extents). Logical volume centos/root successfully resized. [root@localhost ~]# xfs_growfs /dev/mapper/centos-rootmeta-data=/dev/mapper/centos-root isize=256 agcount=5, agsize=13107200 blks = sectsz=512 attr=2, projid32bit=1 = crc=0 finobt=0 spinodes=0data = bsize=4096 blocks=53739520, imaxpct=25 = sunit=0 swidth=0 blksnaming =version 2 bsize=4096 ascii-ci=0 ftype=0log =internal bsize=4096 blocks=25600, version=2 = sectsz=512 sunit=0 blks, lazy-count=1realtime =none extsz=4096 blocks=0, rtextents=0data blocks changed from 53739520 to 79953920 [root@localhost ~]# df -hT 文件系统 类型 容量 已用 可用 已用% 挂载点/dev/mapper/centos-root xfs 305G 2.2G 203G 2% /devtmpfs devtmpfs 32G 0 32G 0% /devtmpfs tmpfs 32G 0 32G 0% /dev/shmtmpfs tmpfs 32G 49M 32G 1% /runtmpfs tmpfs 32G 0 32G 0% /sys/fs/cgroup/dev/sda1 xfs 197M 139M 59M 71% /boottmpfs tmpfs 6.3G 0 6.3G 0% /run/user/0/dev/mapper/centos-home xfs 618G 73M 578G 1% /hom |
----------------------------------------温馨提示--------------------------------------------
若是减小分区空间,减小前必须要先卸载这个分区。如果卸载有问题,解决如下:
[root@localhost ~]# umount /home/
umount: /home: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
提示无法卸载,则是有进程占用/home,使用如下命令来终止占用进程:
[root@localhost ~]# fuser -m -k /home
/home: 1409 1519ce 1531e 1532e 1533e 1534e 1535e 1536e 1537e 1538e 1539e 1541e 1543e 1544e 1545e 1546e 1547e 1548e 1549e 1550e 1601m
再次卸载home分区就成功了。
[root@localhost ~]# umount /home/
-k 表示自动把霸占home分区的进程kill掉!
如果你不是很明确是否要杀死所有霸占设备的程序,还可以加一个-i 参数,这样每杀死一个程序前,都会询问!(即fuser -m -v -i -k /home)
--------------------------------------------------------------------------------------------
Linux调整lvm逻辑分区大小的更多相关文章
- lvresize 调整LVM逻辑卷的空间大小,可以增大空间和缩小空间
lvresize 相关命令:lvreduce,lvextend,lvdisplay,lvcreate,lvremove,lvscan lvresize指令:调整逻辑卷空间大小[语 法]lvr ...
- LVM逻辑分区的优缺点与步骤
一.LVM简介 1. 什么是LVM? LVM是 Logical Volume Manager(逻辑卷管理)的简写 2. 为什么使用LVM? LVM通常用于装备大量磁盘的系统,但它同样适于仅有一.两块硬 ...
- Linux系统LVM逻辑卷创建过程以及自动化脚本
转至:https://cloud.tencent.com/developer/article/1068328 Linux系统LVM逻辑卷创建过程以及自动化脚本 2018-03-21阅读 6300 ...
- linux下添加逻辑分区并挂载(手动和自动方式)
一.查看新磁盘[root@desktop61 Desktop]# fdisk -cul /dev/sdc Disk /dev/sdc: 21.5 GB, 21474836480 bytes255 he ...
- Linux LVM 逻辑分区
LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制,它由Heinz Mauelshagen在Linux 2.4内核上实现.普通 ...
- 【Linux】LVM逻辑卷管理和RAID
LVM概述: 是对磁盘分区进行管理的一种机制 是一种将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不 够使用的时候,可以继续将其它的硬盘的分区加入其中,这样可以实现一种磁盘空 ...
- Linux中LVM逻辑卷管理
一.简介 LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区 进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的 ...
- Linux:lvm磁盘分区,动态扩容
一.lvm磁盘分区: 1,查看新增的磁盘,需要使用root权限 fdisk -l 看到有一个新增的100G磁盘 2,对磁盘进行分区 fdisk /dev/xvdb 1,输入:n 表示创建一个新的分区( ...
- 【Linux】LVM 逻辑卷管理
LVM - 逻辑卷管理 简介 LVM(Logical Volume Manager), 即逻辑卷管理,是Linux环境下对磁盘分区进行管理的一种机制. 相关名词 PV(physical volume) ...
随机推荐
- 一文打尽PWM协议、PPM协议、PCM协议、SBUS协议、XBUS协议、DSM协议 | STM32的通用定时器TIM3实现PPM信号输出
PWM.PPM.PCM.SBUS.XBUS.DSM都是接收机与其他设备通信的协议. 请注意这里不要将遥控器和接收机之间的协议混淆.遥控器和接收机之间会采用某种协议来互相沟通,这些协议往往各个厂牌各自有 ...
- CSS知识点记录
1.浏览器style中显示的样式 这里面的样式,是行内样式或者是使用js添加的样式
- ASP.NET Core静态文件中间件[1]: 搭建文件服务器
虽然ASP.NET Core是一款"动态"的Web服务端框架,但是由它接收并处理的大部分是针对静态文件的请求,最常见的是开发Web站点使用的3种静态文件(JavaScript脚本. ...
- windows 上的MySQL默认字符集设置踩过的坑
前言: 前几天刚买了新电脑,装上MySQL有几天了,今天没事试了一下,发现默认字符集没有修改,还是默认的latin1,折腾了大半天,终于搞好了. 这是我成功设置后的结果图: 命令式直接在MySQL界面 ...
- CDH集群spark-shell执行过程分析
目的 刚入门spark,安装的是CDH的版本,版本号spark-core_2.11-2.4.0-cdh6.2.1,部署了cdh客户端(非集群节点),本文主要以spark-shell为例子,对在cdh客 ...
- log4j配置获取系统属性及默认值
一.使用场景 1.因某些原因,我们可能将log4j中的配置变量化,进行动态获取 2.动态获取内容不存在时,我们希望能够赋上通用的值 二.语法 单变量: ${前缀:变量:-默认值} 如: ${sys:i ...
- Yii2 给表添加字段后报错 Getting unknown property
手动在数据库中添加了image字段 然后再模型类Image中的 rule方法也将image的验证规则放进去了 但是在 $model = new Image 后,使用$model->iamge 还 ...
- 详解Python Google Protocol Buffer
为什么要使用PB? PB(Protocol Buffer)是 Google 开发的用于结构化数据交换格式,作为腾讯云日志服务标准写入格式.因此用于写入日志数据前,需要将日志原始数据序列化为 PB 数据 ...
- 制作3D小汽车游戏(下)
书接上回,这一节我们分模块说一说怎么写一个这样的游戏 1. 初始化场景.相机和渲染器 这几乎是绘制three必须做的事情,我们有两套场景和相机,一个是主场景和相机,另一个是小地图的场景和相机(用来俯视 ...
- Git 分支模型与开发规范
GitHub Flow & Git Flow 基于Git 的两种协作开发模式 01.分支模型 master:长期分支,一般用于管理对外发布版本,每个 commit 对一个 tag,也就是一个发 ...