登录服务器敲一句 df -h,根分区那一行写着100%,网站开始报错,数据库也写不进去。这时候最怕两件事:不敢动,怕丢数据;乱动,怕把分区弄坏。下面按"先判断、再扩容、最后验证"的顺序来写,Linux以Ubuntu为例,Windows以Windows Server为例。命令里的磁盘名和分区号,要按你自己服务器的实际情况替换,不要整段照抄。
一、香港云主机硬盘为什么会突然满了?
上传文件持续增加: 网站图片、视频、用户上传的文件,每天都在涨,没有上限。
日志长期累积: 数据库日志和业务日志不做轮转,几个月就能攒到几十GB。
Docker占用: 镜像、已停止的容器、容器日志(默认的日志格式不限大小)和临时文件。
MySQL文件增长: 数据本身在增加,加上binlog没有设置过期时间。
备份和历史文件没清理: 备份文件就放在本机,一直不删。
分区规划不合理: 系统盘划得很小,数据又全写在系统盘上。
二、扩容前先判断:到底是哪个磁盘或分区空间不足?
Linux环境:
df -h # 各文件系统的使用情况,看哪个挂载点满了
df -i # inode使用情况;inode用尽时,显示有空间也写不进文件
lsblk # 磁盘、分区和挂载点
sudo du -sh /var/* 2>/dev/null | sort -rh | head # 定位占用最大的目录
如果是日志或临时文件占满,先清理往往比扩容更快,清理之后空间仍不够,再扩容。
Windows环境: 打开磁盘管理(运行 diskmgmt.msc),查看各分区的容量和后面有没有未分配空间,再到资源管理器里对比系统盘和数据盘的占用情况,确认是哪个卷不足。
三、香港云主机支持不关机扩容吗?
云硬盘在线扩容是什么?
在存储层把云硬盘的容量调大,实例不用关机。符合条件的云硬盘可以在云服务器运行状态下扩容,但随后仍需要在系统里扩展分区和文件系统。控制台显示扩容成功,不代表操作系统已经用上了新增的空间。
系统盘和数据盘扩容有什么区别?
系统盘上有根分区,扩的是系统正在使用的分区;数据盘有时没有分区,文件系统直接建在整块盘上,那就可以跳过扩分区这一步。两者各家服务商的支持条件也可能不同。
哪些磁盘支持在线扩容?
依赖底层存储和服务商的功能支持,要看云盘类型、实例状态和计费方式,以服务商文档为准。另外,扩容只能增大,不能缩小。
本地盘、云硬盘和特殊存储有什么区别?
本地盘绑定在宿主机上,一般不支持在线扩容,需要通过升配或迁移解决;云硬盘独立于宿主机,才有在线扩容的条件。
扩容之前为什么需要创建快照?
扩容涉及分区表和文件系统的改动,一旦操作出错,快照是唯一的回滚点。数据库业务最好在低峰期做。
恒讯科技的香港云主机的磁盘规格、系统盘和数据盘的类型、是否支持云硬盘扩容,以现行产品说明为准,并非所有实例都支持不关机扩容。
四、Linux系统在线扩容硬盘操作步骤
以下以Ubuntu为例,其他发行版的包名和命令可能有差异。
第一步:备份数据及创建快照
在控制台创建快照,重要数据另外备份一份。
第二步:登录服务商控制台扩大云硬盘容量
选择目标云硬盘,扩容到目标容量。不能缩小,选好容量再确认。
第三步:登录服务器检查磁盘容量
|----------------------------------------|
| lsblk # 此时磁盘(如vda)应已变大,但分区(如vda1)还是旧容量 |
第四步:确认分区类型
|--------------------------------------------------------------------------------------------------|
| lsblk -f # 查看文件系统类型:ext4、xfs,还是LVM成员 sudo fdisk -l /dev/vda # 看 Disklabel type:dos 是MBR,gpt 是GPT |
第五步:扩展分区
|----------------------------------------------------------------------------------------------|
| sudo apt install -y cloud-guest-utils # 提供growpart命令 sudo growpart /dev/vda 1 # 磁盘名和分区号之间有空格 |
如果文件系统直接建在整块盘上、没有分区,跳过这一步。磁盘已经100%时,growpart可能因为无法写入临时文件而失败,可以先清理几百MB的空间。
第六步:扩展文件系统
按第四步看到的类型,选择对应的一种。ext4:
|--------------------------|
| sudo resize2fs /dev/vda1 |
XFS(参数是挂载点,不是设备名):
|-------------------|
| sudo xfs_growfs / |
LVM逻辑卷: 先检查PV、VG、LV,扩分区之后再扩PV,最后调整逻辑卷。
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| sudo pvs; sudo vgs; sudo lvs # 查看当前结构和空闲空间 sudo pvresize /dev/vda3 # 扩展PV(growpart之后) sudo lvextend -r -l +100%FREE /dev/ubuntu-vg/ubuntu-lv # -r 同时扩展文件系统 df -h # 检查文件系统空间 |
注意: 实际命令必须根据磁盘名称、分区编号、文件系统类型和LVM结构来确定,不能把同一组命令直接套用到所有服务器。
五、Windows Server系统在线扩容操作步骤
第一步:在云平台扩大云硬盘容量
和Linux一样,先创建快照,再在控制台扩容。
第二步:登录Windows服务器
通过远程桌面登录,不需要重启。
第三步:打开磁盘管理工具
运行 diskmgmt.msc,在菜单里选择"操作",再选"重新扫描磁盘",让系统识别新增容量。
第四步:检查未分配空间
目标卷的右侧应该出现一块"未分配"空间,而且要紧邻目标卷。
第五步:扩展目标磁盘卷
右键目标卷,选"扩展卷",按向导操作,默认会使用全部未分配空间。也可以用命令行:
|-------------------------------------------------------------------|
| diskpart list volume select volume 2 # 编号以list volume的结果为准 extend |
第六步:确认新容量是否生效
在资源管理器里查看卷属性,容量应已变大,业务程序也要确认读写正常。
无法扩展卷时,应该检查哪些条件?
最常见的是未分配空间没有紧邻目标卷,中间隔着恢复分区或其他分区,Windows只能扩展到相邻的空间;文件系统不是NTFS或ReFS,比如FAT32,不能直接扩展;磁盘是MBR且已经接近2TB的上限;控制台的扩容还没有生效,需要重新扫描磁盘。
六、香港云主机扩容后,为什么磁盘空间还是没有变化?
只扩大了云硬盘,没有扩大分区: 控制台改的是块设备,lsblk里磁盘变大而分区没变,就是这个原因。
文件系统尚未扩展: 分区已经变大,但df -h没有变化,需要执行resize2fs或xfs_growfs。
MBR与GPT分区限制: MBR最多只能使用约2TB,超出的部分用不上,要用GPT。
LVM没有同步扩容: 分区变大后,还要依次扩展PV和逻辑卷。
扩容操作尚未完成: 先确认控制台的状态是否已显示完成,有的产品还要重新挂载或重启后才能识别,具体以服务商说明为准。
七、香港云主机扩容后,还需要检查哪些内容?
磁盘总容量: lsblk 确认磁盘和分区大小一致。
文件系统使用情况: df -h 和 df -i,确认空间和inode都正常。
数据库和业务服务: 确认MySQL、Web服务、队列等都运行正常,没有报错。
日志写入: 确认日志在正常写入,并配置好轮转,避免再次占满。
磁盘I/O性能: 用iostat等工具观察读写延迟,扩容后性能有没有变化。
系统告警: 把磁盘使用率告警阈值设在80%左右,下次提前发现。
八、如果在线扩容不适用,还有哪些替代方案?
挂载新的数据盘: 新建一块云硬盘,分区、格式化、挂载,并在fstab里用UUID写好开机挂载。
将历史数据迁移到独立存储: 备份、旧日志、历史上传文件,可以转到对象存储或其他独立存储。
使用LVM管理多块磁盘: 把多块盘并入同一个卷组,后续扩容更灵活。
优化日志和临时文件策略: 配置logrotate,限制Docker容器日志大小,给MySQL的binlog设置过期时间。
更换更大存储规格的服务器: 当磁盘、CPU、内存都吃紧时,升级整体规格更合适。
恒讯科技香港云主机的CPU、内存和磁盘的升级方式,扩容前可以联系技术支持,确认实例是否满足条件。