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      // 增大至120G
lvextend -L +20G  /dev/mapper/centos-home      // 增加20G
lvreduce -L 50G  /dev/mapper/centos-home       // 减小至50G
lvreduce -L -8G  /dev/mapper/centos-home       // 减小8G
resize2fs  /dev/mapper/centos-home             // 执行调整

2)xfs文件系统的调整命令是xfs_growfs(只支持增大)

1
2
3
4
5
6
lvextend -L 120G  /dev/mapper/centos-home     // 增大至120G
lvextend -L +20G  /dev/mapper/centos-home     // 增加20G
xfs_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%  /dev
tmpfs                   tmpfs      32G     0   32G    0%  /dev/shm
tmpfs                   tmpfs      32G   49M   32G    1%  /run
tmpfs                   tmpfs      32G     0   32G    0%  /sys/fs/cgroup
/dev/sda1                xfs       197M  139M   59M   71%  /boot
tmpfs                   tmpfs     6.3G     0  6.3G    0%  /run/user/0
/dev/mapper/centos-home  xfs       628G   33M  718G    1%  /home
 
2)使用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-sP3KrF
 
3) 将上面查到的空闲空间中的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-home
meta-data= /dev/mapper/centos-home  isize=512    agcount=4, agsize=41156608 blks
          =                       sectsz=512   attr=2, projid32bit=1
          =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=164626432, imaxpct=25
          =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=80384, version=2
          =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 164626432 to 188219392
 
4)再次看着系统分区,发现home分区已经增加了90G(这种方式增加后,home分区之前的数据还不会丢失)
[root@localhost ~] # df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   200G  2.2G  198G    2% /
devtmpfs                  32G     0   32G    0%  /dev
tmpfs                     32G     0   32G    0%  /dev/shm
tmpfs                     32G   49M   32G    1%  /run
tmpfs                     32G     0   32G    0%  /sys/fs/cgroup
/dev/sda1                 197M  139M   59M   71%  /boot
tmpfs                    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%  /dev
tmpfs                   tmpfs      32G     0   32G    0%  /dev/shm
tmpfs                   tmpfs      32G   49M   32G    1%  /run
tmpfs                   tmpfs      32G     0   32G    0%  /sys/fs/cgroup
/dev/sda1                xfs       197M  139M   59M   71%  /boot
tmpfs                   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-home
xfs_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 -f
meta-data= /dev/mapper/centos-home  isize=512    agcount=4, agsize=41156608 blks
          =                       sectsz=512   attr=2, projid32bit=1
          =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=164626432, imaxpct=25
          =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=80384, version=2
          =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =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%  /dev
tmpfs                   tmpfs      32G     0   32G    0%  /dev/shm
tmpfs                   tmpfs      32G   49M   32G    1%  /run
tmpfs                   tmpfs      32G     0   32G    0%  /sys/fs/cgroup
/dev/sda1                xfs       197M  139M   59M   71%  /boot
tmpfs                   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-root
meta-data= /dev/mapper/centos-root  isize=256    agcount=5, agsize=13107200 blks
          =                       sectsz=512   attr=2, projid32bit=1
          =                       crc=0        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=53739520, imaxpct=25
          =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal               bsize=4096   blocks=25600, version=2
          =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data 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%  /dev
tmpfs                   tmpfs      32G     0   32G    0%  /dev/shm
tmpfs                   tmpfs      32G   49M   32G    1%  /run
tmpfs                   tmpfs      32G     0   32G    0%  /sys/fs/cgroup
/dev/sda1                xfs       197M  139M   59M   71%  /boot
tmpfs                   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)
--------------------------------------------------------------------------------------------

***************当你发现自己的才华撑不起野心时,就请安静下来学习吧***************


本文转自散尽浮华博客园博客,原文链接:http://www.cnblogs.com/kevingrace/p/5825963.html,如需转载请自行联系原作者
目录
相关文章
|
1天前
|
Ubuntu Linux 开发者
Ubuntu20.04搭建嵌入式linux网络加载内核、设备树和根文件系统
使用上述U-Boot命令配置并启动嵌入式设备。如果配置正确,设备将通过TFTP加载内核和设备树,并通过NFS挂载根文件系统。
29 15
|
7天前
|
Ubuntu Unix Linux
Linux网络文件系统NFS:配置与管理指南
NFS 是 Linux 系统中常用的网络文件系统协议,通过配置和管理 NFS,可以实现跨网络的文件共享。本文详细介绍了 NFS 的安装、配置、管理和常见问题的解决方法,希望对您的工作有所帮助。通过正确配置和优化 NFS,可以显著提高文件共享的效率和安全性。
70 7
|
7天前
|
存储 运维 监控
Linux--深入理与解linux文件系统与日志文件分析
深入理解 Linux 文件系统和日志文件分析,对于系统管理员和运维工程师来说至关重要。文件系统管理涉及到文件的组织、存储和检索,而日志文件则记录了系统和应用的运行状态,是排查故障和维护系统的重要依据。通过掌握文件系统和日志文件的管理和分析技能,可以有效提升系统的稳定性和安全性。
24 7
|
28天前
|
安全 Linux 数据安全/隐私保护
深入Linux操作系统:文件系统和权限管理
在数字世界的海洋中,操作系统是连接用户与硬件的桥梁,而Linux作为其中的佼佼者,其文件系统和权限管理则是这座桥梁上不可或缺的结构。本文将带你探索Linux的文件系统结构,理解文件权限的重要性,并通过实际案例揭示如何有效地管理和控制这些权限。我们将一起航行在Linux的命令行海洋中,解锁文件系统的奥秘,并学习如何保护你的数据免受不必要的访问。
|
2月前
|
Linux 网络安全 数据安全/隐私保护
Linux 超级强大的十六进制 dump 工具:XXD 命令,我教你应该如何使用!
在 Linux 系统中,xxd 命令是一个强大的十六进制 dump 工具,可以将文件或数据以十六进制和 ASCII 字符形式显示,帮助用户深入了解和分析数据。本文详细介绍了 xxd 命令的基本用法、高级功能及实际应用案例,包括查看文件内容、指定输出格式、写入文件、数据比较、数据提取、数据转换和数据加密解密等。通过掌握这些技巧,用户可以更高效地处理各种数据问题。
130 8
|
2月前
|
监控 Linux
如何检查 Linux 内存使用量是否耗尽?这 5 个命令堪称绝了!
本文介绍了在Linux系统中检查内存使用情况的5个常用命令:`free`、`top`、`vmstat`、`pidstat` 和 `/proc/meminfo` 文件,帮助用户准确监控内存状态,确保系统稳定运行。
506 6
|
2月前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
102 3
|
2月前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
84 2
|
27天前
|
Linux Shell
Linux 10 个“who”命令示例
Linux 10 个“who”命令示例
53 14
Linux 10 个“who”命令示例
|
7天前
|
Linux
linux查看目录下的文件夹命令,find查找某个目录,但是不包括这个目录本身?
通过本文的介绍,您应该对如何在 Linux 系统中查看目录下的文件夹以及使用 `find` 命令查找特定目录内容并排除该目录本身有了清晰的理解。掌握这些命令和技巧,可以大大提高日常文件管理和查找操作的效率。 在实际应用中,灵活使用这些命令和参数,可以帮助您快速定位和管理文件和目录,满足各种复杂的文件系统操作需求。
28 8