实战给Linux系统动态扩容,不停机处理!

Linux IT敢客 4周前 (10-19) 487次浏览 已收录 0个评论 扫描二维码
文章目录[隐藏]

一、前言

       在实际应用中,给服务器扩容这是经常需要做的,由于随着时间的推进,服务器的容量扩张,已经满足不了之前的容量规划了,这时候就需要给服务器扩容来处理,常见的扩容有扩容存储,扩容内存,扩容 CPU 等等。今天就说一下实际扩容存储的做法!

       考虑一些扩容的影响问题:

       1、要尽可能的不影响生产业务;

       2、要保证数据的安全性;

       基于以上两点要求,我们这里选择 LVM 的方式来动态扩容,如果没有做 LVM 的话就比较麻烦了,可能要新建挂载分区到另一个路径下,或者重新安装系统这种方式等等!

二、准备工作

       2.1 检查服务器是否 LVM 方式的分区

使用 lvdisplay、vgdisplay 或者 df -h 命令来查看系统是否是 LVM 方式分区的!

 [root@muban ~]# lvdisplay 
  --- Logical volume ---
  LV Path                /dev/centos/swap
  LV Name                swap
  VG Name                centos
  LV UUID                u0Vdwq-4VSb-Zh4U-muTn-FlCu-qlo5-m4oY32
  LV Write Access        read/write
  LV Creation host, time muban, 2018-10-19 10:08:13 +0800
  LV Status              available
  # open                 2
  LV Size                4.00 GiB
  Current LE             1024
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:1
[root@muban ~]# vgdisplay
  --- Volume group ---
  VG Name               centos
  System ID             
  Format                lvm2
  Metadata Areas        2
  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                2
  Act PV                2
  VG Size               109.60 GiB
  PE Size               4.00 MiB
  Total PE              28058
  Alloc PE / Size       28058 / 109.60 GiB
  Free  PE / Size       0 / 0   
  VG UUID               AI0wcS-hvHO-vP8I-UDZ9-LjTl-pIVM-b1PRNz
[root@muban ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root  106G  1.5G  105G    2% /
devtmpfs                 911M     0  911M    0% /dev
tmpfs                    921M     0  921M    0% /dev/shm
tmpfs                    921M  8.5M  912M    1% /run
tmpfs                    921M     0  921M    0% /sys/fs/cgroup
/dev/sda1                397M  120M  278M   31% /boot
tmpfs                    185M     0  185M    0% /run/user/0

       解释一下使用 lvdisplay 和 vgdisplay 明显显示出有数据就表示是 VLM 方式的,df -h 方式显示有/dev/mapper 这个信息也表示是 LVM 方式的。用 lvdisplay 和 vgdisplay 可以看出许多详细信息,包括 lv name,lv path,vg name 等。

       2.2 准备好实验机器

如下图准备一个服务器环境,实战给 Linux 系统动态扩容,不停机处理! 实战给 Linux 系统动态扩容,不停机处理!

三、实验操作

       3.1 添加挂载硬盘

上图中,我们原先只有 56G 的根目录空间,现在想增加 50G 进去!那么添加一块 50G 的硬盘进去。我们在不停机的情况下,点击虚拟机,点击编辑设置,选择添加,选择硬盘,创建新的虚拟磁盘磁盘,容量 50G,一直下一步知道完成。如下图所示,增加一块新的硬盘!实战给 Linux 系统动态扩容,不停机处理!

       3.2 记录 lvm 的相关信息

我们使用 df -h 和 lvdisplay 命令记录下 LV 的相关信息,VG Name,LV Path 等信息

[root@do1 ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   56G  1.5G   55G    3% /
devtmpfs                 911M     0  911M    0% /dev
tmpfs                    921M     0  921M    0% /dev/shm
tmpfs                    921M  8.5M  912M    1% /run
tmpfs                    921M     0  921M    0% /sys/fs/cgroup
/dev/sda1                397M  120M  278M   31% /boot
tmpfs                    185M     0  185M    0% /run/user/0

[root@do1 ~]# lvdisplay
  --- Logical volume ---
  LV Path                /dev/centos/swap
  LV Name                swap
  VG Name                centos
  LV UUID                k3TPNs-vUuJ-vmcy-SPzS-xxMA-jWhq-JFP95Z
  LV Write Access        read/write
  LV Creation host, time do1, 2018-10-19 18:59:22 +0800
  LV Status              available
  # open                 2
  LV Size                4.00 GiB
  Current LE             1024
  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                BqhdTf-yzgq-HaJi-fU6o-HbIn-WoAU-8tleaE
  LV Write Access        read/write
  LV Creation host, time do1, 2018-10-19 18:59:22 +0800
  LV Status              available
  # open                 1
  LV Size                55.61 GiB
  Current LE             14235
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0
 

LV Path /dev/centos/root    #也就是根目录/挂载点
LV Name root
VG Name centos

上面三个信息记录下来,后面要用。

       3.3 格式化新挂载的磁盘

先用 fdisk -l 查看新的磁盘是否挂载

实战给 Linux 系统动态扩容,不停机处理!

注意:这里如果没有发现新添加的磁盘,那么请查看记一次服务器增加磁盘不识别的问题这篇文章进行解决!

格式化分区操作‘fdisk /dev/sdb

实战给 Linux 系统动态扩容,不停机处理!实战给 Linux 系统动态扩容,不停机处理!

       3.4 新分区增加到 LV

将新加的分区 /dev/sdb1 创建为物理卷

[root@do1 ~]# pvcreate /dev/sdb1 
  Physical volume "/dev/sdb1" successfully created

给卷组‘centos’扩容,将物理卷 /dev/sdb1 扩展至‘centos’卷组

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

此时卷组‘centos’有50G空余空间即 /dev/sdb1,将其全部扩展至 /

[root@do1 ~]# lvextend -l +100%FREE /dev/mapper/centos-root 
  Size of logical volume centos/root changed from 55.61 GiB (14235 extents) to 105.60 GiB (27034 extents).
  Logical volume root successfully resized.

此时50G磁盘虽已扩展至 /,但并没写入文件系统;进入 /etc/fstab 确认 / 文件系统—>xfs

实战给 Linux 系统动态扩容,不停机处理!

写入文件系统,使扩容生效(如果是 ext4 文件系统,则使用命令 resize2fs /dev/mapper/centos-root)

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

查看/根目录大小是否变化,扩容前是 56G,扩容后是 106G,此时大功告成!

实战给 Linux 系统动态扩容,不停机处理!

总结:以上是没有停机的情况下完成扩容磁盘,当然一切前提还是要做好安全备份!做好相应的备份快照,这样就实现了上述两点要求!

本次扩容指令汇总:

1.创建分区                                                #fdisk /dev/sdb

2.创建物理卷                                             #pvcreate /dev/sdb1

3.查看卷组名称及使用情况                         #vgdisplay

4.将物理卷扩展到卷组                               #vgextend cl /dev/sdb1   (此处‘cl’是卷组名称)

5.将卷组中空闲空间扩展到 /home           #lvextend -l +100%FREE /dev/mapper/centos-root

6.刷新文件系统是扩容生效                     #resize2fs /dev/mapper/centos-root

使用 reiserfs 文件系统代替 ext2/ext3    #resize_reiserfs /dev/mapper/centos-root

Centos7 默认文件系统是 ‘xfs’,其他系统注意是否是‘ext4’等


IT 敢客 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:实战给 Linux 系统动态扩容,不停机处理!
喜欢 (7)
[313176056@qq.com]
分享 (0)
IT敢客
关于作者:
“我所做的一切都是为了方便我的生活~~~“
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址