一、前言
在实际应用中,给服务器扩容这是经常需要做的,由于随着时间的推进,服务器的容量扩张,已经满足不了之前的容量规划了,这时候就需要给服务器扩容来处理,常见的扩容有扩容存储,扩容内存,扩容 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 准备好实验机器
如下图准备一个服务器环境,
三、实验操作
3.1 添加挂载硬盘
上图中,我们原先只有 56G 的根目录空间,现在想增加 50G 进去!那么添加一块 50G 的硬盘进去。我们在不停机的情况下,点击虚拟机,点击编辑设置,选择添加,选择硬盘,创建新的虚拟磁盘磁盘,容量 50G,一直下一步知道完成。如下图所示,增加一块新的硬盘!
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 查看新的磁盘是否挂载
格式化分区操作‘fsdisk /dev/sdb’
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
写入文件系统,使扩容生效(如果是 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,此时大功告成!
本次扩容指令汇总:
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’等