热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Linux中对lvm逻辑卷分区大小的调整教程(针对xfs与ext4不同文件系统)

这篇文章主要给大家介绍了关于Linux中对lvm逻辑卷分区大小的调整教程(针对xfs与ext4不同文件系统)的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧

前言

当我们在安装系统的时候,由于没有合理分配分区空间,在后续维护过程中,发现有些分区空间不够使用,而有的分区空间却有很多剩余空间。如果这些分区在装系统的时候使用了lvm(前提是这些分区要是lvm逻辑卷分区),那么就可以轻松进行扩容或缩容!不同文件系统类型所对应的创建、检查、调整命令不同,下面就针对xfs和ext2/3/4文件系统的lvm分区空间的扩容和缩容的操作做一记录:

------------------------------------------------------------------------------------------

特别注意的是:

  • resize2fs命令            针对的是ext2、ext3、ext4文件系统
  • xfs_growfs命令         针对的是xfs文件系统

------------------------------------------------------------------------------------------

1)ext2/ext3/ext4文件系统的调整命令是resize2fs(增大和减小都支持)

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(只支持增大)

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)查看分区空间。如下可知是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: 这种情况只适用于系统刚安装好,逻辑分区内没有什么数据或数据不多且不重要可以删除或拷贝的情况下

系统安装好后,发现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)

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。


推荐阅读
  • 本文介绍了使用CentOS7.0 U盘刻录工具进行安装的详细步骤,包括使用USBWriter工具刻录ISO文件到USB驱动器、格式化USB磁盘、设置启动顺序等。通过本文的指导,用户可以轻松地使用U盘安装CentOS7.0操作系统。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • CentOS 6.5安装VMware Tools及共享文件夹显示问题解决方法
    本文介绍了在CentOS 6.5上安装VMware Tools及解决共享文件夹显示问题的方法。包括清空CD/DVD使用的ISO镜像文件、创建挂载目录、改变光驱设备的读写权限等步骤。最后给出了拷贝解压VMware Tools的操作。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • 本文介绍了在Linux系统中设置文件ACL权限的方法和使用说明,包括在centos7.3和centos6.9中开启ACL权限的两种方法:在挂载时指定打开ACL权限和修改默认的属性信息。同时提供了对ACL权限的详细解释和应用场景。 ... [详细]
  • 本文介绍了在CentOS 6.4系统中更新源地址的方法,包括备份现有源文件、下载163源、修改文件名、更新列表和系统,并提供了相应的命令。 ... [详细]
  • Vagrant虚拟化工具的安装和使用教程
    本文介绍了Vagrant虚拟化工具的安装和使用教程。首先介绍了安装virtualBox和Vagrant的步骤。然后详细说明了Vagrant的安装和使用方法,包括如何检查安装是否成功。最后介绍了下载虚拟机镜像的步骤,以及Vagrant镜像网站的相关信息。 ... [详细]
  • Linux下安装依赖包版本高解决方法
    本文介绍了在Linux系统下,当已安装的依赖包版本高于需要安装的依赖包版本时,解决方法包括欺骗安装程序和修改相关配置文件等操作。针对不同情况,提供了不同的解决方案。 ... [详细]
  • centos安装Mysql的方法及步骤详解
    本文介绍了centos安装Mysql的两种方式:rpm方式和绿色方式安装,详细介绍了安装所需的软件包以及安装过程中的注意事项,包括检查是否安装成功的方法。通过本文,读者可以了解到在centos系统上如何正确安装Mysql。 ... [详细]
  • Centos下安装memcached+memcached教程
    本文介绍了在Centos下安装memcached和使用memcached的教程,详细解释了memcached的工作原理,包括缓存数据和对象、减少数据库读取次数、提高网站速度等。同时,还对memcached的快速和高效率进行了解释,与传统的文件型数据库相比,memcached作为一个内存型数据库,具有更高的读取速度。 ... [详细]
  • Centos7搭建ELK(Elasticsearch、Logstash、Kibana)教程及注意事项
    本文介绍了在Centos7上搭建ELK(Elasticsearch、Logstash、Kibana)的详细步骤,包括下载安装包、安装Elasticsearch、创建用户、修改配置文件等。同时提供了使用华为镜像站下载安装包的方法,并强调了保证版本一致的重要性。 ... [详细]
  • Linux下安装免费杀毒软件ClamAV及使用方法
    本文介绍了在Linux系统下安装免费杀毒软件ClamAV的方法,并提供了使用该软件更新病毒库和进行病毒扫描的指令参数。同时还提供了官方安装文档和下载地址。 ... [详细]
  • LVS实现负载均衡的原理LVS负载均衡负载均衡集群是LoadBalance集群。是一种将网络上的访问流量分布于各个节点,以降低服务器压力,更好的向客户端 ... [详细]
author-avatar
阳光明媚-在路上
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有