暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

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

IT敢客 2018-10-19
868

一、前言

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

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

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

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

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

二、准备工作

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

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

  1.  [root@muban ~]# lvdisplay

  2.  --- Logical volume ---

  3.  LV Path                /dev/centos/swap

  4.  LV Name                swap

  5.  VG Name                centos

  6.  LV UUID                u0Vdwq-4VSb-Zh4U-muTn-FlCu-qlo5-m4oY32

  7.  LV Write Access        read/write

  8.  LV Creation host, time muban, 2018-10-19 10:08:13 +0800

  9.  LV Status              available

  10.  # open                 2

  11.  LV Size                4.00 GiB

  12.  Current LE             1024

  13.  Segments               1

  14.  Allocation             inherit

  15.  Read ahead sectors     auto

  16.  - currently set to     8192

  17.  Block device           253:1

  18. [root@muban ~]# vgdisplay

  19.  --- Volume group ---

  20.  VG Name               centos

  21.  System ID            

  22.  Format                lvm2

  23.  Metadata Areas        2

  24.  Metadata Sequence No  5

  25.  VG Access             read/write

  26.  VG Status             resizable

  27.  MAX LV                0

  28.  Cur LV                2

  29.  Open LV               2

  30.  Max PV                0

  31.  Cur PV                2

  32.  Act PV                2

  33.  VG Size               109.60 GiB

  34.  PE Size               4.00 MiB

  35.  Total PE              28058

  36.  Alloc PE / Size       28058 / 109.60 GiB

  37.  Free  PE / Size       0 / 0  

  38.  VG UUID               AI0wcS-hvHO-vP8I-UDZ9-LjTl-pIVM-b1PRNz

  39. [root@muban ~]# df -h

  40. 文件系统                 容量  已用  可用 已用% 挂载点

  41. /dev/mapper/centos-root  106G  1.5G  105G    2% /

  42. devtmpfs                 911M     0  911M    0% dev

  43. tmpfs                    921M     0  921M    0% /dev/shm

  44. tmpfs                    921M  8.5M  912M    1% /run

  45. tmpfs                    921M     0  921M    0% sys/fs/cgroup

  46. /dev/sda1                397M  120M  278M   31% /boot

  47. 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 准备好实验机器

如下图准备一个服务器环境,

三、实验操作

       3.1 添加挂载硬盘

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


       3.2 记录 lvm 的相关信息

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

  1. [root@do1 ~]# df -h

  2. 文件系统                 容量  已用  可用 已用% 挂载点

  3. /dev/mapper/centos-root   56G  1.5G   55G    3% /

  4. devtmpfs                 911M     0  911M    0% /dev

  5. tmpfs                    921M     0  921M    0% /dev/shm

  6. tmpfs                    921M  8.5M  912M    1% /run

  7. tmpfs                    921M     0  921M    0% /sys/fs/cgroup

  8. /dev/sda1                397M  120M  278M   31% /boot

  9. tmpfs                    185M     0  185M    0% /run/user/0

  10.  

  11. [root@do1 ~]# lvdisplay

  12.  --- Logical volume ---

  13.  LV Path                /dev/centos/swap

  14.  LV Name                swap

  15.  VG Name                centos

  16.  LV UUID                k3TPNs-vUuJ-vmcy-SPzS-xxMA-jWhq-JFP95Z

  17.  LV Write Access        read/write

  18.  LV Creation host, time do1, 2018-10-19 18:59:22 +0800

  19.  LV Status              available

  20.  # open                 2

  21.  LV Size                4.00 GiB

  22.  Current LE             1024

  23.  Segments               1

  24.  Allocation             inherit

  25.  Read ahead sectors     auto

  26.  - currently set to     8192

  27.  Block device           253:1

  28.  

  29.  --- Logical volume ---

  30.  LV Path                /dev/centos/root

  31.  LV Name                root

  32.  VG Name                centos

  33.  LV UUID                BqhdTf-yzgq-HaJi-fU6o-HbIn-WoAU-8tleaE

  34.  LV Write Access        read/write

  35.  LV Creation host, time do1, 2018-10-19 18:59:22 +0800

  36.  LV Status              available

  37.  # open                 1

  38.  LV Size                55.61 GiB

  39.  Current LE             14235

  40.  Segments               1

  41.  Allocation             inherit

  42.  Read ahead sectors     auto

  43.  - currently set to     8192

  44.  Block device           253:0

  45.  

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

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

       3.3 格式化新挂载的磁盘

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

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

       3.4 新分区增加到 LV

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

  1. [root@do1 ~]# pvcreate /dev/sdb1

  2.  Physical volume "/dev/sdb1" successfully created

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

  1. [root@do1 ~]# vgextend centos /dev/sdb1

  2.  Volume group "centos" successfully extended

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

  1. [root@do1 ~]# lvextend -l +100%FREE /dev/mapper/centos-root

  2.  Size of logical volume centos/root changed from 55.61 GiB (14235 extents) to 105.60 GiB (27034 extents).

  3.  Logical volume root successfully resized.

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

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

  1. [root@do1 ~]# xfs_growfs /dev/mapper/centos-root

  2. meta-data=/dev/mapper/centos-root isize=256    agcount=4, agsize=3644160 blks

  3.         =                       sectsz=512   attr=2, projid32bit=1

  4.         =                       crc=0        finobt=0

  5. data     =                       bsize=4096   blocks=14576640, imaxpct=25

  6.         =                       sunit=0      swidth=0 blks

  7. naming   =version 2              bsize=4096   ascii-ci=0 ftype=0

  8. log      =internal               bsize=4096   blocks=7117, version=2

  9.         =                       sectsz=512   sunit=0 blks, lazy-count=1

  10. realtime =none                   extsz=4096   blocks=0, rtextents=0

  11. data blocks changed from 14576640 to 27682816

  12.  

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

 

本次扩容指令汇总:

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

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

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

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

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

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

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

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


文章转载自IT敢客,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论