记一次极限Linux分区扩容

kali
2019-05-23 / 0 评论 / 11,116 阅读 / 正在检测是否收录...

这次操作可谓是争分夺秒啊~
记录下来,一遍后面忘了能找到。。
在写这篇文章的时候,之前扩容的100G还剩80G,还不够啊~~

操作环境

内网虚拟机
系统:centos 7
硬盘:20G

扩容原因

因为在跑数据,没有提前预算到,硬盘很快就满了

当时发现这个问题的时候数据没办法中断,而且所剩空间大概还有200多M的时候,我迅速上母鸡服务器给虚拟机挂载了一块100G的硬盘,接着就是一顿骚操作。。

操作步骤

大致分为以下几步

  1. 挂载足够容量的硬盘到服务器上
  2. 创建分区
  3. 格式化分区
  4. 创建物理卷
  5. 将物理卷加入到要扩容的分区组
  6. 扩容

好吧,一步一步来。。

1. 挂载硬盘这个就不细说了,很简单的东西

2. 创建分区

首先,我们将硬盘挂载好之后,可以通过

fdisk -l

查看硬盘信息,红色框是之前加的硬盘,蓝色框是才加。对比可以发现,红色框比蓝色框多了一个 /dev/sdb1 的分区
QQ截图20190523230644.png
接下来我们就开始创建分区,使用 fdisk 命令创建

fdisk /dev/sdc # 注意哦,这里的 /dev/sdc 是我蓝色框里面硬盘的位置,你们的可能不太一样,注意区分一下

执行以后会进入到如下的操作环境中
QQ截图20190523231111.png
可以输入 m 看看有那些操作
QQ截图20190523231452.png
等会儿我们就会用到上面的三个功能
首先输入 n ,创建分区。它会提示你是创建主分区还是扩展分区,我们要创建的是主分区,所以输入 p
QQ截图20190523231746.png
接下来会提示你设置一个分区号,因为这个硬盘是空的,所以默认就好,直接回车
QQ截图20190523231936.png
然后提示你设置扇区,这里也默认
QQ截图20190523232019.png
接下来是设置分区大小,默认是使用所有容量,也可以根据自己的情况设定大小,例如:20G啊,100M啊,都可以的。我这里是使用全部,所以用默认的设置
QQ截图20190523232208.png
到这里,我已经完成了分区的创建,不过还没完,我们需要更改这个分区的系统编码,所以这里用到了上面提到的三个命令之一,t 命令,输入 t 然后回车
QQ截图20190523232439.png
这里输入 8e ,然后确定
QQ截图20190523232535.png
提示将

分区“Linux”的类型更改为“Linux LVM”

最后在输入 w 将上面所有的修改写入分区表就创建成功了
QQ截图20190523232737.png

格式化分区

格式化分区比较简单,但是需要根据你现有的文件系统格式来格式化,否则会出现用不了的问题。
所以首先就是查看自己当前的文件系统格式

df -hT

会输出类似以下内容

[root@Web-Server ~]# df -hT
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs       117G   35G   83G   30% /
devtmpfs                devtmpfs  908M     0  908M    0% /dev
tmpfs                   tmpfs     920M   48K  920M    1% /dev/shm
tmpfs                   tmpfs     920M  8.9M  911M    1% /run
tmpfs                   tmpfs     920M     0  920M    0% /sys/fs/cgroup
/dev/sda1               xfs      1014M  189M  826M   19% /boot
tmpfs                   tmpfs     184M     0  184M    0% /run/user/0
[root@Web-Server ~]#

其中“类型”这一列下面的信息就是我们需要的文件系统格式
可以看到我们挂载在我们根路径的文件系统格式是 xfs 格式
也就是这一行

文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs       117G   35G   83G   30% /

所以我们要把刚才创建的分区格式化为 xfs 。
通过 fdisk -l 查询到我们刚才创建的分区路径为 /dev/sdc1
QQ截图20190523233422.png
格式化为 xfs 分区

mkfs.xfs /dev/sdc1

会输出类似以下内容

[root@Web-Server ~]# mkfs.xfs /dev/sdc1
meta-data=/dev/sdc1              isize=512    agcount=4, agsize=6553536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=26214144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=12799, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

到这里,分区就格式化好了。

创建物理卷

这一步很简单,直接执行下面的命令即可

pvcreate /dev/sdc1

它会提示你是否要清空这个分区,输入 y 确定即可

[root@Web-Server ~]# pvcreate /dev/sdc1
WARNING: xfs signature detected on /dev/sdc1 at offset 0. Wipe it? [y/n]: y
  Wiping xfs signature on /dev/sdc1.
  Physical volume "/dev/sdc1" successfully created

将物理卷加入到要扩容的分区组

首先我们要查看根的分组是什么

lvdisplay # 查看卷的一些信息
[root@Web-Server ~]# lvdisplay
  --- Logical volume ---
  LV Path                /dev/centos/swap
  LV Name                swap
  VG Name                centos
  LV UUID                kg2lNU-Zmhg-Dllf-GbN1-f082-6yxq-s2jKHb
  LV Write Access        read/write
  LV Creation host, time localhost, 2019-03-05 09:20:20 +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                ML1fEX-ArTy-Iwrl-1OJB-8mDU-FyNk-U7XHwe
  LV Write Access        read/write
  LV Creation host, time localhost, 2019-03-05 09:20:20 +0800
  LV Status              available
  # open                 1
  LV Size                116.99 GiB
  Current LE             29950
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0

可以看到根的分组在 centos 下,所以我们只需要把创建好的分区扩展到该分组下就行了

vgextend centos /dev/sdc1

提示成功

[root@Web-Server ~]# vgextend centos /dev/sdc1
  Volume group "centos" successfully extended

最后一步,扩容

先查看一下物理卷的空间情况

vgdisplay

QQ截图20190523234509.png
可以很明显的看到,可用空间多了 100G
最后,将所有的可用空间都分配给根

lvextend -l +100%FREE /dev/mapper/centos-root #全部分配/root分区

提示已经重置了根的大小

[root@Web-Server ~]# lvextend -l +100%FREE /dev/mapper/centos-root
  Size of logical volume centos/root changed from 116.99 GiB (29950 extents) to <216.99 GiB (55549 extents).
  Logical volume centos/root successfully resized.

接下来就直接调整即可

xfs_growfs /dev/mapper/centos-root

可以看到数据块已经更改了

[root@Web-Server ~]# xfs_growfs /dev/mapper/centos-root 
meta-data=/dev/mapper/centos-root isize=512    agcount=28, agsize=1113856 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=30668800, 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 30668800 to 56882176

确认一下是否扩容成功

df -h
[root@Web-Server ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root  217G   35G  183G   16% /
devtmpfs                 908M     0  908M    0% /dev
tmpfs                    920M   48K  920M    1% /dev/shm
tmpfs                    920M  8.9M  911M    1% /run
tmpfs                    920M     0  920M    0% /sys/fs/cgroup
/dev/sda1               1014M  189M  826M   19% /boot
tmpfs                    184M     0  184M    0% /run/user/0

可以看到已经增加了100G,之前还剩80多G左右吧

最后

说一下为什么标题要加“极限”两字?
因为第一次扩容的时候,系统还剩500多kb左右的容量,虽然导入的数据量很庞大,但是这些数据需要经过一些运算才能写入数据库,所以给我了一点点时间完成了扩容。(要是动作慢一点的话,服务器直接就“炸开”)
写这篇文章的时候是第二次扩容,边写边操作~~

希望记录的这篇文章能帮到需要的人吧~

0

评论 (0)

取消