问题现象:
您在ECS实例内删除文件后再创建快照,发现快照容量并没有变小,或者快照比从文件系统查询到的云盘占用空间大。

原因分析:
格式化文件系统操作、删除文件操作以及写入数据操作都会使得云盘空块数量不断减少,减弱了创建快照时消除空块的能力。因此,您看到快照容量比文件系统内展示的数据量要大。以下原因可能造成文件系统与快照大小不一致:

  • 文件系统的元数据会占用磁盘空间。
  • 文件系统在初始化阶段被写入大量数据块(Block,指磁盘的逻辑块地址LBA被块存储划分为相同大小的块),写入数据操作会占用磁盘空间。
  • 文件系统为了降低性能消耗,删除文件时只在文件属性中创建弃用标记。磁盘无法感知删除指令,数据块仍然是已分配状态,同时数据块会被拷贝到快照中,导致快照容量大于文件系统。
  • 虚拟化驱动KVM的Virtio-block和Xen的Block-front等模块不支持TRIM指令(磁盘I/O指令,提示逻辑块地址LBA上的某段数据不再使用,可以被删除),磁盘无法感知数据可以被删除。