好记性不如烂笔头之Oracle 手动扩展卷volume
好记性不如烂笔头之Oracle 手动扩展卷volume

背景与核心痛点:随着在甲骨文云(OCI)上部署的容器、数据库与业务系统日渐增多,初始分配的引导卷容量(如 47GB)往往迅速告急。其实在 OCI 平台中,调整引导卷或附加块存储完全支持在线无损热扩容,无需关机或重启实例。只需在控制台调整目标卷大小,配合 Linux 内核设备重新扫描、growpart 分区拉伸与 resize2fs 文件系统重塑即可在 1 分钟内完成全盘扩容。
目录
扩容核心原理与操作流程
OCI 引导卷扩容属于标准的三层结构延伸:
- 云平台存储层:控制台修改卷大小并提交,底层虚拟磁盘空间扩充。
- 操作系统磁盘分区层:通过内核设备重新扫描(rescan),利用
growpart自动扩充根分区扇区。 - 文件系统空间层:使用
resize2fs(针对 ext4)或xfs_growfs(针对 XFS)无损扩展可用文件系统空间。
第一步:OCI 控制台在线调大卷容量
- 登录甲骨文云控制台,进入 计算 -> 实例 -> 点击目标实例。
- 在左侧资源菜单中点击 引导卷 (Boot Volume)。
- 点击引导卷右侧操作按钮 -> 选择 编辑 (Edit)。
- 在弹出窗口中,将卷大小修改为目标容量(例如由 47GB 增加至 100GB,注意免费总额度为 200GB)。
- 点击 保存更改,稍等片刻状态更新为绿色可用。
第二步:操作系统内核重新扫描块设备
通过 SSH 连接到实例终端,执行以下内核重新扫描命令以使操作系统感知到底层磁盘容量变更:
sudo dd iflag=direct if=/dev/oracleoci/oraclevda of=/dev/null count=1
echo "1" | sudo tee /sys/class/block/`readlink /dev/oracleoci/oraclevda | cut -d'/' -f 2`/device/rescan
此时执行 lsblk 命令,可以看到物理块设备(如 /dev/sda)的总大小已经成功更新为扩容后的容量。
第三步:使用 growpart 扩展根分区
- 首先执行
df -h查看当前挂载点信息,确认挂载在根目录/的分区名称(通常为/dev/sda1或/dev/sda3)。 - 安装分区扩展工具(通常 Ubuntu 已内置):
apt install cloud-guest-utils -y - 执行分区扩容(注意设备名与分区编号之间有空格):
若输出# 若根目录对应 /dev/sda 的第 1 分区 growpart /dev/sda 1CHANGED: partition=1即代表分区表边界已成功扩至磁盘末尾。
第四步:刷新文件系统并验证生效
根据文件系统类型执行空间重塑:
针对 ext4 文件系统(默认)
resize2fs /dev/sda1
针对 xfs 文件系统
xfs_growfs /
执行完毕后再次运行 df -h 检查:
df -h
此时根分区可用空间已完全同步至 100GB,且所有正在运行的业务进程与服务无任何中断。
高频避坑与多分区注意要点
- 无需关机:该流程全线支持热扩容,切勿重启或终止实例。
- 只支持单向调大:OCI 块存储目前仅支持由小调大,不支持从大容量缩减,请按需适度扩充。
- 分区序号确认:若磁盘存在 EFI、swap 或恢复分区,务必根据
lsblk输出精准锁定根分区编号。
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 zszweb
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果