Centos逻辑卷扩容、合并

从CentOS7默认安装的/home中转移空间到根目录/ - LVM操作简明教程

一、基础概念

Cent0S 7默认启用LVM2(Logical Volume Manager),把机器的一块硬盘分为两个区sda1和sda2,其中分区sda1作为系统盘/boot挂载,少量空间;sda2作为一个物理卷并且完全作为逻辑卷组VG(Volume Group)centos,在这个逻辑卷组centos中建立三个逻辑卷LV(Logical Volume)root和home还有swap,分别挂载到根目录/和/home以及swap。而两个分区sda1和sda2上都建立了文件系统XFS,文件系统XFS作为RedHat的默认文件系统也有它的考虑,成为继ext3,ext4之后的主流文件系统。

几个概念的关系:M个物理硬盘HD或者物理硬盘中的分区一起组建为一个逻辑卷组VG及存储池,在卷组VG中创建N个逻辑卷LV,在一个逻辑卷LV中创建文件系统比如xfs。物理硬盘/分区、逻辑卷有最小基本寻址单元,CentOS7默认的大小为4MB,二者一一对应,类似于链接或者变量引用,但是一个二者关系并非一直不变,因为物理硬盘可能发生变化而逻辑卷自动调整。创建卷组和逻辑卷,会类似于创建分区一样在磁盘开始位置写入卷的信息VGDA(卷组描述符区域,Volume Group Descriptor Area)用于识别。逻辑卷的好处在于屏蔽物理底层支撑,可自由扩展变更,而不用担心硬盘或者分区的物理空间局限,也就不会存在为了扩展分区大小而去备份/扩展分区重新格式化硬盘等问题。

HD/分区--通过pvcreate->PV--通过vgcreate(vgchange)/vgextend-->VG--通过lvcreate/lvextend-->LV--通过mkfs-->FS--通过xfs_growfs等-->df磁盘生效

但是关键点在于,CentOS 7默认安装时/home占用太多空间,根目录相较而言就小得多(只有50G),而OpenStack安装以及存储的东西都在根目录下。上传几个镜像说不定就把你的根目录空间耗尽。不像其他文件系统ext3,ext4或者reiserfs等,有命令(resize2fs,resize_reiserfs)直接支持缩小文件系统的大小,默认安装的xfs支持扩展增大但是不支持缩小空间

 

二、步骤概览

所以下面要做的步骤大概为:(直接root用户登录系统,本机或者ssh root过去,如果使用当前普通用户会遇到点不必要的麻烦

1. 备份/home/用户文件,要是没啥内容则忽略这步(为什么非要这个/home,删掉直接用root?还是保留它,它存在也有道理的,再说生产环境还是不要只用root)

2. umount /home 卸载并lvremove删除这个home逻辑卷,释放它的空间,vgdisplay查看卷组可用空间大小

3. lvcreate新建一个新的home卷,并在其上mkfs建立xfs文件系统,(分配挂载到/home - 不用更改/etc/fstab,重启即可,) 拷贝回来之前的内容

(这个时候空余的空间随便你分配,可以再建立别的逻辑卷,或者直接空闲下来以后使用,也可以直奔主题的走下面的第四步)

4. 把之前的home逻辑卷释放并分配新卷home之后剩下的空间,lvextend分配给root卷,并用命令xfs_growfs扩展它的文件系统空间

 

三、相关命令

看看大概的命令有哪些

# pv

pvchange   pvck       pvcreate   pvdisplay  pvmove     pvremove   pvresize   pvs        pvscan 

# vb

vgcfgbackup    vgchange       vgconvert      vgdisplay      vgextend       vgimportclone  vgmknodes      vgremove       vgs  
vgsplit        vgcfgrestore   vgck           vgcreate       vgexport       vgimport       vgmerge        vgreduce       vgrename  
vgscan  

 

# lv

lvchange     lvcreate     lvextend     lvmchange    lvmdiskscan  lvmetad      lvmsar       lvremove     lvresize     lvscan  
lvconvert    lvdisplay    lvm  

 

四、默认安装情况

# df -h //查看磁盘使用情况,逻辑卷的挂载格式为/dev/mapper/VolumeGroupName-LogicalVolumeName

Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                  24G     0   24G   0% /dev
tmpfs                     24G     0   24G   0% /dev/shm
tmpfs                     24G  8.5M   24G   1% /run
tmpfs                     24G     0   24G   0% /sys/fs/cgroup
/dev/mapper/centos-root   50G  2.4G   48G   5% /
/dev/sdb1                493G   73M  467G   1% /opt
/dev/sdb2               1020G   77M  968G   1% /data
/dev/sda1               1014M  151M  864M  15% /boot
/dev/mapper/centos-home  147G   33M  147G   1% /home
tmpfs                    4.8G     0  4.8G   0% /run/user/0

 

# cat /etc/fstab


#
# /etc/fstab
# Created by anaconda on Tue May 25 05:55:21 2021
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=36939fe0-9b73-47b9-81ca-00b259892d3e /boot                   xfs     defaults        0 0
/dev/mapper/centos-home /home                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0

 

# vgdisplay //查看逻辑卷组情况

  --- Volume group ---
  VG Name               centos
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  4
  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               <199.00 GiB
  PE Size               4.00 MiB
  Total PE              50943
  Alloc PE / Size       50942 / 198.99 GiB
  Free  PE / Size       1 / 4.00 MiB
  VG UUID               dM1lde-zQnI-twRr-fO4t-RKb7-9HcD-1qieFs


# lvdisplay //查看逻辑卷情况,默认三个,root、home和交换空间swap

  --- Logical volume ---
  LV Path                /dev/centos/swap
  LV Name                swap
  VG Name                centos
  LV UUID                S0i56M-defX-KDOR-Xxkx-Vh9s-YTHF-mq6eLM
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2021-05-25 05:55:20 -0400
  LV Status              available
  # open                 2
  LV Size                2.00 GiB
  Current LE             512
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:1
   
  --- Logical volume ---
  LV Path                /dev/centos/home
  LV Name                home
  VG Name                centos
  LV UUID                nFBbOK-430b-6zOG-77tx-W5rD-J0UG-9WcCWQ
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2021-05-25 05:55:20 -0400
  LV Status              available
  # open                 1
  LV Size                146.99 GiB
  Current LE             37630
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:2
   
  --- Logical volume ---
  LV Path                /dev/centos/root
  LV Name                root
  VG Name                centos
  LV UUID                Srxj27-n1U8-I1TV-6poJ-9qfz-WfHw-zBlQOq
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2021-05-25 05:55:21 -0400
  LV Status              available
  # open                 1
  LV Size                50.00 GiB
  Current LE             12800
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0

 

五、操作步骤

1. 备份/home中的用户数据
[root@localhost /]# mkdir /backup && mv /home/* /backup
[root@localhost /]# ls /home/

2. 卸载这个/home并删除逻辑卷home

# umount /home

# df -h //查看磁盘情况

Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                  24G     0   24G   0% /dev
tmpfs                     24G     0   24G   0% /dev/shm
tmpfs                     24G  8.5M   24G   1% /run
tmpfs                     24G     0   24G   0% /sys/fs/cgroup
/dev/mapper/centos-root   50G  2.4G   48G   5% /
/dev/sdb1                493G   73M  467G   1% /opt
/dev/sdb2               1020G   77M  968G   1% /data
/dev/sda1               1014M  151M  864M  15% /boot
tmpfs                    4.8G     0  4.8G   0% /run/user/0

 

# lvremove /dev/centos/home //删除逻辑卷home

Do you really want to remove active logical volume centos/home? [y/n]: y
  Logical volume "home" successfully removed

 

# vgdisplay //查看卷组可用空间

  --- Volume group ---
  VG Name               centos
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  5
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <199.00 GiB
  PE Size               4.00 MiB
  Total PE              50943
  Alloc PE / Size       13312 / 52.00 GiB
  Free  PE / Size       37631 / <147.00 GiB
  VG UUID               dM1lde-zQnI-twRr-fO4t-RKb7-9HcD-1qieFs

 

这里注意,Free PE / Size 中显示的空间为卷组的空闲空间147G,之前为4M,也就是刚才删除的逻辑卷home所占用的空间,我们就从这个当中拿出一部分比如50G作为home

3. 新建一个卷home,fdisk格式化为8e格式,文件系统还是搞为xfs(同样挂载到/home)

# lvcreate -L 50G -n home centos //L表示大小,默认单位为M;n表示卷名;这里的centos是CentOS7安装系统的时候就默认建立好的卷组名

WARNING: xfs signature detected on /dev/centos/home at offset 0. Wipe it? [y/n]: y
  Wiping xfs signature on /dev/centos/home.
  Logical volume "home" created.

 

# lvdisplay //查看逻辑卷home

  --- Logical volume ---
  LV Path                /dev/centos/home
  LV Name                home
  VG Name                centos
  LV UUID                zd8dDY-TyD4-R4oj-zvUr-1jmO-Kgdl-gN5vmX
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2021-06-09 07:18:03 -0400
  LV Status              available
  # open                 0
  LV Size                50.00 GiB
  Current LE             12800
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:2

 

# 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               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <199.00 GiB
  PE Size               4.00 MiB
  Total PE              50943
  Alloc PE / Size       26112 / 102.00 GiB
  Free  PE / Size       24831 / <97.00 GiB
  VG UUID               dM1lde-zQnI-twRr-fO4t-RKb7-9HcD-1qieFs

 

[# vgchange -ay centos  //可选步骤:激活卷组centos,使得这个新建的home逻辑卷生效(用vgchange而不用lvchange)]

  3 logical volume(s) in volume group "centos" now active

 

# mkfs -t xfs /dev/centos/home //在新建的逻辑卷home上建立xfs文件系统

meta-data=/dev/centos/home       isize=512    agcount=4, agsize=3276800 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=13107200, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=6400, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

 

# mount /dev/centos/home /home/ //把这个新逻辑卷home挂到之前的文件夹/home中去,直接重启机器让fstab自动挂载也行

# df -h //现在来查看磁盘使用情况

Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                  24G     0   24G   0% /dev
tmpfs                     24G     0   24G   0% /dev/shm
tmpfs                     24G  8.5M   24G   1% /run
tmpfs                     24G     0   24G   0% /sys/fs/cgroup
/dev/mapper/centos-root   50G  2.4G   48G   5% /
/dev/sdb1                493G   73M  467G   1% /opt
/dev/sdb2               1020G   77M  968G   1% /data
/dev/sda1               1014M  151M  864M  15% /boot
tmpfs                    4.8G     0  4.8G   0% /run/user/0
/dev/mapper/centos-home   50G   33M   50G   1% /home

# mv /backup/* /home/ //再把之前拷出来的东西拷回新建的/home中,拷贝完成就可以直接用这个普通用户来桌面登录系统了,不用重启

 

4. 最后再把释放出来多余的空间分配给root卷并xfs_growfs扩展文件系统
# lvextend -L +100G /dev/centos/root //或 lvextend -l +100%FREE /dev/centos/root把剩下的100G现在分配给root卷;+号表示在原来的基础上额外增加,不要加号则设定为具体额度

  Size of logical volume centos/root changed from 50.00 GiB (12800 extents) to <147.00 GiB (37631 extents).
  Logical volume centos/root successfully resized.

 

# lvdisplay //查看逻辑卷和卷组情况,这下root的空间就多达到147G,之前是才50G

  --- Logical volume ---
  LV Path                /dev/centos/root
  LV Name                root
  VG Name                centos
  LV UUID                Srxj27-n1U8-I1TV-6poJ-9qfz-WfHw-zBlQOq
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2021-05-25 05:55:21 -0400
  LV Status              available
  # open                 1
  LV Size                <147.00 GiB
  Current LE             37631
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0

 

[# vgchange -ay centos //可选步骤:再次激活下卷组centos]

  3 logical volume(s) in volume group "centos" now active

 

# df -h //不使用xfs_growfs扩展文件系统,磁盘是不认得多的空间的

Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                  24G     0   24G   0% /dev
tmpfs                     24G     0   24G   0% /dev/shm
tmpfs                     24G  8.5M   24G   1% /run
tmpfs                     24G     0   24G   0% /sys/fs/cgroup
/dev/mapper/centos-root   50G  2.4G   48G   5% /
/dev/sdb1                493G   73M  467G   1% /opt
/dev/sdb2               1020G   77M  968G   1% /data
/dev/sda1               1014M  151M  864M  15% /boot
tmpfs                    4.8G     0  4.8G   0% /run/user/0
/dev/mapper/centos-home   50G   33M   50G   1% /home

 

# xfs_growfs /dev/centos/root //扩展root卷

meta-data=/dev/mapper/centos-root isize=512    agcount=4, agsize=3276800 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=13107200, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=6400, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 13107200 to 38534144

 

# df -h //再看root大小已经生效,147G了

Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                  24G     0   24G   0% /dev
tmpfs                     24G     0   24G   0% /dev/shm
tmpfs                     24G  8.5M   24G   1% /run
tmpfs                     24G     0   24G   0% /sys/fs/cgroup
/dev/mapper/centos-root  147G  2.4G  145G   2% /
/dev/sdb1                493G   73M  467G   1% /opt
/dev/sdb2               1020G   77M  968G   1% /data
/dev/sda1               1014M  151M  864M  15% /boot
tmpfs                    4.8G     0  4.8G   0% /run/user/0
/dev/mapper/centos-home   50G   33M   50G   1% /home

 

六、命令汇总

简单总结下,就是下面几条命令:

# mkdir /backup  
# mv /home/* /backup/  
# umount /home  
# lvremove /dev/centos/home  
# lvcreate -L 50G -n home cents  
# mkfs -t xfs /dev/centos/home  
# mv /backup/* /home/  
# lvextend -L +xxxG /dev/centos/root 或 lvextend -l +100%FREE /dev/centos/root
# xfs_growfs root  
# rm -rf /backup 
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要扩充centos7逻辑卷的步骤如下: 1. 首先,使用命令`lvs`查看逻辑卷,确定要扩充的的名称和所在的组。比如,我们要扩充的是home,所在的组是centos。\[1\] 2. 使用命令`lvextend -L +19G /dev/mapper/centos-home`来扩展逻辑卷的容量。这里的"+19G"表示要增加的容量大小。执行该命令后,逻辑卷的大小会发生变化。\[2\] 3. 如果新增的容量没有完全扩展逻辑卷上,可以使用命令`lvextend -l +100%FREE /dev/mapper/centos-home`来将剩余的空间全部扩展逻辑卷上。 4. 扩展逻辑卷后,还需要对文件系统进行扩容。如果是ext4文件系统,可以使用命令`resize2fs /dev/mapper/centos-home`来扩展文件系统。 5. 如果新增的容量是来自于一个新的物理,需要将该物理添加到组中。可以使用命令`pvcreate /dev/sda3`来初始化新的物理。然后使用命令`vgextend centos /dev/sda3`将新的物理添加到centos组中。\[3\] 请注意,执行这些操作需要root权限,并且在进行任何磁盘操作之前,请务必备份重要的数据。 #### 引用[.reference_title] - *1* [关于centos7新增磁盘分区,扩容逻辑卷过程](https://blog.csdn.net/qq_40277788/article/details/124451130)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [关于虚拟机中Centos7磁盘扩容步骤](https://blog.csdn.net/escFAJ/article/details/109901381)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值