linux 扩展根目录

10 篇文章 1 订阅
1 篇文章 0 订阅

背景:

系统新增了一块盘50G的磁盘/dev/sdb,需对根目录进行扩容

[root@localhost ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 1.9G     0  1.9G    0% /dev
tmpfs                    1.9G     0  1.9G    0% /dev/shm
tmpfs                    1.9G   13M  1.9G    1% /run
tmpfs                    1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/mapper/centos-root   17G  4.6G   13G   27% /
/dev/sda1               1014M  185M  830M   19% /boot
tmpfs                    378M   12K  378M    1% /run/user/42
tmpfs                    378M     0  378M    0% /run/user/0

概念介绍

LVM是LogicalVolumeManager(逻辑卷管理)的简写,他是Linux环境下对磁盘分区进行管理的一中机制,在实际环境中,随着时间推移导致磁盘空间不够用,必须挂载新磁盘进行扩容和数据迁移,这导致业务会终端,不符合实际要求,因此最好的方法是零停机扩容,可以在现有文件系统上跨越不同硬盘和分区进行扩容,Liunx提供的逻辑盘管理LVM机制就是一个完美的解决方案

关键词:

PM(Physical Media):物理存储设备:比如 /dev/sda、/dev/sdb、/dev/sdb 等

PV(Physical Volume):物理卷 :类似硬盘分区

VG(Volume Group):卷组 :不太明白,可以看成是由一个或者多个 PV(物理卷)的组合

 LV(Logical Volume):逻辑卷:类似于非 LVM 系统上的磁盘分区,LV 建立在 VG 上,可以在 LV 上建立文件系统

简易结构如下

实现方法

如上图所示,我们将硬盘sda分区后对每个分区创建PV123,然后将PV123加入到VG1中,此时此刻VG1相当于一个汇聚了很多个PV的大硬盘,然后我们再VG1上划分LV,可以看成是再大硬盘上分区,但这个分区是动态的,当我们后续有新硬盘(例如上图sdb)加入到服务器,我们对sdb进行分区并对分区创建PV,然后我们可以将PV4加入到VG1中,于是扩大了VG1的实际空间,这扩大的部分空间我们就可以动态的调整给VG1下的LV,达到扩展文件系统大小的目的,以下是具体步骤

1 给新磁盘创建分区

磁盘小于2T可使用MGR分区,超过2T的需要使用GPT模式,我这里仅做测试,以下命令将sdb转换为gpt格式,然后创建了一个分区并占用所有空间

[root@centos131 ~]# parted -s /dev/sdb mklabel gpt
[root@centos131 ~]# parted -s /dev/sdb mkpart logic 0% 100%

2 创建物理卷(PV)

[root@centos131 ~]# pvcreate /dev/sdb1
WARNING: ext4 signature detected on /dev/sdb1 at offset 1080. Wipe it? [y/n]: y
  Wiping ext4 signature on /dev/sdb1.
  Physical volume "/dev/sdb1" successfully created.
[root@centos131 ~]#

查看PV

可以看见针对/dev/sdb1的pv已创建成功,且系统根目录所属PV是/etc/sda2,VG是centos

[root@centos131 ~]# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               centos
  PV Size               <19.00 GiB / not usable 3.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              4863
  Free PE               0
  Allocated PE          4863
  PV UUID               xowzcE-poPQ-mofa-zecu-9KPl-vkCu-ob4rC3
   
  "/dev/sdb1" is a new physical volume of "<50.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb1
  VG Name               
  PV Size               <50.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               q3ikhJ-1hkf-8Tr6-lV5i-QQ8w-lC7L-dv5Jh9
   

3 扩容卷组(VG)

将新的PV(/dev/sdb1)添加到当前根目录所属VG(centos)中

[root@centos131 ~]# vgextend centos /dev/sdb1
  Volume group "centos" successfully extended

查看:可以看到我们新增的PV(/dev/sdb1)的VG已被改成centos

[root@centos131 ~]# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               centos
  PV Size               <19.00 GiB / not usable 3.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              4863
  Free PE               0
  Allocated PE          4863
  PV UUID               xowzcE-poPQ-mofa-zecu-9KPl-vkCu-ob4rC3
   
  --- Physical volume ---
  PV Name               /dev/sdb1
  VG Name               centos
  PV Size               <50.00 GiB / not usable 2.00 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              12799
  Free PE               12799
  Allocated PE          0
  PV UUID               q3ikhJ-1hkf-8Tr6-lV5i-QQ8w-lC7L-dv5Jh9
   

4 扩展逻辑卷(LV)

查看当前LV:可以看出当前卷组VG(centos)中存在两个逻辑卷LV(swap、root),其中swap作为虚拟内存使用,root是我们本次需要扩展的系统根目录所在的逻辑卷

[root@centos131 ~]# lvdisplay
  --- Logical volume ---
  LV Path                /dev/centos/swap
  LV Name                swap
  VG Name                centos
  LV UUID                nqYaFO-NmDI-K1ii-Gsxi-q9wC-nPuW-2EaHTL
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2022-05-30 11:26:27 +0800
  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/root
  LV Name                root
  VG Name                centos
  LV UUID                BQ2EDi-tljG-2VhV-NGCd-nCk2-Jqh8-yJkaaH
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2022-05-30 11:26:27 +0800
  LV Status              available
  # open                 1
  LV Size                <17.00 GiB
  Current LE             4351
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0

5 扩展逻辑卷

由于前序操作已经将新的磁盘空间分区并划分给了我们系统所在的卷组VG(centos),所以现在需要对该卷组的可用容量进行分配,以下命令将centos卷组的所有剩余空间分配给逻辑卷root

[root@centos131 ~]# lvextend -l+100%FREE /dev/centos/root 
  Size of logical volume centos/root changed from <17.00 GiB (4351 extents) to 66.99 GiB (17150 extents).
  Logical volume centos/root successfully resized.
[root@centos131 ~]# xfs_growfs /dev/centos/root

6 扩展文件系统

最后在对文件系统进行扩容即可完成

[root@centos131 ~]# xfs_growfs /dev/centos/root 
meta-data=/dev/mapper/centos-root isize=512    agcount=4, agsize=1113856 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=4455424, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 4455424 to 17561600

7 验证

可以看见根目录空间从之前的17G变成了67G

df -h
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 1.9G     0  1.9G    0% /dev
tmpfs                    1.9G     0  1.9G    0% /dev/shm
tmpfs                    1.9G   13M  1.9G    1% /run
tmpfs                    1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/mapper/centos-root   67G  5.2G   62G    8% /
/dev/sda1               1014M  185M  830M   19% /boot
tmpfs                    378M     0  378M    0% /run/user/1001
tmpfs                    378M   12K  378M    1% /run/user/42
tmpfs                    378M     0  378M    0% /run/user/0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜灬狼丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值