01月11, 2017

thin和thick区别

介绍

对于linux文件系统来讲,创建文件的大小和它真实占用空间是有区别的,比如你可以创建一个1T的文件,但是实际上只占用1M的空间,这样就给文件使用带来了很大的灵活性,你可以先分配200G给一个文件,实际只给它10M,当它磁盘空间不够再扩容,做到按需分配。
在虚拟化中如果虚拟机的磁盘存放在物理机本地,也有两种选择,在创建时就分配固定大小,或者先分配一个“虚假”的,真正用到了再分配。这就是thin和thick概念的由来。

精简置备(thin provision)

精简配置就是无论磁盘分配多大,实际占用存储大小是现在使用的大小,即用多少算多少。当客户机有输入输出的时候,VMkernel首先分配需要的空间并进行清零操作,也就是说如果使用精简配置在有IO的时候需要:等待分配空间和清零,这两个步骤完成后才能进行操作,对于IO叫频繁的应用这样性能会有所下降,虽然节省了存储空间。
即:实际使用多大,就分配多大,最大不会超过实际硬盘空间的大小

厚置备延迟置零

默认的创建格式,创建过程中为虚拟磁盘分配所需空间。创建时不会擦除物理设备上保留的任何数据,没有置零操作,当有IO操作时,需要等待清零操作完成后才能完成IO
即:分配好空间,执行写操作时才会按需要将其置零。

厚置备置零(thick)

创建支持群集功能的厚磁盘。在创建时为虚拟磁盘分配所需的空间。并将物理设备上保留的数据置零。创建这种格式的磁盘所需的时间可能会比创建其他类型的磁盘长。
即:分配好空间并置零操作,有IO的时无需等待任何操作直接执行。

对于raw格式磁盘:
qemu-img默认的raw格式的文件其实是稀疏文件(sparse file)[稀疏文件就是在文件中留有很多空余空间,留备将来插入数据使用。如果这些空余空间被ASCII码的NULL字符占据,并且这些空间相当大,那么,这个文件就被称为稀疏文件,而且,并不分配相应的磁盘块。],dd命令创建的也是raw格式,不过dd一开始就让镜像实际占用了分配的空间,而没有使用稀疏文件的方式对待空洞而节省磁盘空间。尽管一开始就实际占用磁盘空间的方式没有节省磁盘的效果,不过它在写入新的数据时不需要宿主机从现有磁盘空间中分配,从而在第一次写入数据时性能会比稀疏文件的方式更好一点。

本文链接:https://www.opsdev.cn/post/thin-and-thick.html

-- EOF --

Comments

评论加载中...

注:如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理。