sparse file的文件以sparse方式存储,其优点是延迟分配磁盘空间,原理可类比于可执行文件中的.bss段。
sparse file尤其适合作为虚拟机的磁盘映像文件。它仅保留一些创建时用户指定的文件大小信息以及其他的metadata,使用allocation on demand的方式,用多少分配多少,既快又方便。
创建sparse image file主要依靠dd命令的seek参数,比如要创建一个5G的虚拟磁盘映像:
[root@jcwkyl myvms]# dd if=/dev/zero of=/vm/vm1.img bs=1 count=0 seek=5G
0+0 records in
0+0 records out
0 bytes (0 B) copied, 2e-05 seconds, 0 B/s
注:以上命令表示先跳到偏移5G的地址,然后创建大小为bs * count(即大小为1 * 0 = 0)的数据块。

查看一个sparse文件的apparent size(“看起来的大小”,用户指定的文件大小):
[root@jcwkyl myvms]# du -sh --apparent-size /vm/vm1.img
5.0G    /vm/vm1.img
查看一个sparse文件在磁盘上实际分配的大小:
[root@jcwkyl myvms]# du -sh /vm/vm1.img
0       /vm/vm1.img

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐