网盘迁移前,先分清逻辑大小、磁盘占用和可用空间

举报
某酱 发表于 2026/10/26 11:23:12 2026/10/26
【摘要】 用字节数统一GB/GiB,区分文件逻辑长度、分配块与磁盘可用空间,说明网盘迁移时如何避免漏算数据库和误算运行日志。

迁移网盘时,我发现一个很容易算错的问题:网页里显示的文件容量、目录统计的大小和系统磁盘已用空间,并不是同一笔账。把三个数字混着看,就容易把运行日志当成网盘数据,或者低估目标盘需要的容量。

本文整理容量核查的方法,示例采用演示数字,不包含实际服务器地址、账号或业务文件。文章由 AI 协助整理,结论需要结合自己的文件系统和部署方式验证。

一、先把单位统一

GB 通常按十进制计算,1 GB 是 1,000,000,000 字节;GiB 按二进制计算,1 GiB 是 1,073,741,824 字节。因此,同样 35,855,570,407 字节,可以表示为约35.86 GB,也可以表示为约33.39 GiB。数字不同,数据没有变少。

容量记录最好同时保留字节数和显示单位。只有“33G”这一项,很难判断是在说 GB、GiB,还是命令默认的显示方式。

size = 35_855_570_407
print(f"{size / 10**9:.2f} GB")
print(f"{size / 2**30:.2f} GiB")

二、三个口径分别回答三个问题

文件的逻辑长度回答“这个文件有多少字节”,磁盘分配量回答“文件系统给它分配了多少块”,磁盘可用空间回答“目前还能写多少数据”。它们可能不同。

在支持相关字段的 Unix 环境,可以查看单个文件:

import os

s = os.stat("sample.bin")
print("logical_bytes:", s.st_size)
if hasattr(s, "st_blocks"):
    print("allocated_bytes:", s.st_blocks * 512)

st_blocks 的计量单位是512字节,不能再乘系统文件系统的块大小。小文件、稀疏文件、压缩、快照和共享数据块,都可能让逻辑长度与实际空间表现出差异。尤其在支持写时复制的文件系统上,逐文件分配量相加不一定等于独占的物理空间。

三、迁移的是业务状态,不是整个 Docker 运行目录

网盘迁移通常需要用户文件、数据库、配置、头像及部署参数。容器标准输出日志是另一类数据,应当单独核算。不能因为某个容器目录很大,就直接把它全部归为用户文件;也不应据此直接删除运行中的日志文件。

我更倾向于先建立一张表:每个挂载目录属于什么、占多大、是否被业务引用、迁移后怎样验收。下载临时目录和运行日志也要检查,但检查结果应与用户文件分开记录。

四、空间下降不等于已经完整验收

删除后,系统可用空间的增加量只是一个观察结果。同期仍可能有日志增长、其他进程写入,或者文件被打开而暂未释放。它不能单独证明目标目录里的每一项都删除成功。

类似地,迁移后两个目录容量相同,也不能单独证明文件内容一致。建议至少对照相对路径、文件数量、长度,再对重要文件做内容哈希校验。源目录在清单生成后继续变化时,还需要最后一次增量核对。

我会在报告里明确区分“本轮实测”“依据旧清单扣减的估算”和“尚未验证”。这样后续决定删除或迁移时,才知道哪些数字可以作为依据。

实际操作顺序

  1. 从只读核查开始,确认服务器和挂载目录,先不删东西。
  2. 所有容量保留原始字节数,展示时注明 GB 或 GiB。
  3. 将正文、数据库、配置、日志和缓存分别统计。
  4. 目标盘除正文外还要预留数据库、校验中转和正常增长空间。
  5. 复制后核对内容,最后再决定源文件清理。

容量核查的目的,是让迁移范围可解释、验收结果可复核。单个漂亮的总容量数字,代替不了这几步。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。