零风险把数据盘挂载给根分区,给生产环境服务器扩容
背景
刚买服务器时,用户量不大,所以结合预算不多情况下,都是默认买个小点的系统盘挂载到服务器上,(或者默认服务器的40G),等到某一天业务量上来之后,发现抓肘见襟给自己一手措不及防的凉凉唱给自己听,这下该怎么办?
解决方案
系统盘进行扩容,将空闲的数据盘进行挂载
操作步骤
1. 卸载 /mnt/data
既然 /dev/vdb 挂载在 /mnt/data,且盘里是空的,可以先卸载:
sudo umount /mnt/data
如果 /mnt/data 没有在使用,这一步就不会对业务造成影响。
2. 清理现有分区(可选)
如果 /dev/vdb 有分区表(如 /dev/vdb1),可以用 fdisk 或 parted 删除所有分区,让 /dev/vdb 成为一个干净的整块设备。示例:
sudo fdisk /dev/vdb
# 在 fdisk 交互界面中:
# p 查看现有分区
# d 删除分区
# w 写入修改并退出
注意:这会彻底删除分区表,确认盘内无重要数据后再操作。
若你想直接在 /dev/vdb1 上做 pvcreate 也可以,但一般做法是让整块设备 /dev/vdb 成为一个 LVM PV,避免额外的分区层。
3. 创建 LVM PV
使用 pvcreate 将设备转换为 LVM 物理卷:
sudo pvcreate /dev/vdb
成功后,可用 pvs 命令查看结果。
4. 加入卷组(VG)
你的根分区 /dev/mapper/ao-root 对应某个 Volume Group(假设名字叫 ao 或 centos 或其他)。先查看:
sudo vgs
sudo lvs
假设卷组名是 ao,执行:
sudo vgextend ao /dev/vdb
查看是否成功:
sudo vgs
这时 VFree 字段会多出约 195GB(你 /dev/vdb 的容量)。
5. 在线扩容根分区
sudo lvextend -l +100%FREE /dev/mapper/ao-root
sudo xfs_growfs /
查看新大小
df -h /
你会看到根分区的容量增大了。