更新时间:2024-05-09
预分配
开启,虚拟磁盘初始化时就占用了配置的全部空间,这样可以大幅提升该虚拟机的IOPS和吞吐量,但会浪费一些存储空间。
如果不开启预分配,就是在虚拟机写磁盘时按需分配,这样可以节省存储空间。因为在写磁盘时要先申请存储空间,这个过程对写性能有一定影响,相比来说磁盘性能不如预分配。
小于4TB的虚拟磁盘才能用预分配方式。预分配方式初始化时会把虚拟磁盘数据块全部置0,就是把整个虚拟磁盘qcow2镜像的元数据写一遍,初始化一块1TB大小的预分配虚拟磁盘大概需要7分钟。
最佳实践建议:对于数据库及对IO要求高的重要应用使用预分配,一般虚拟机不建议用,太浪费磁盘空间。
动态分配
动态分配实现了空间的按需取用,磁盘空间可以动态增长,有利于节省存储空间,减少不必要的空间浪费。小于16T的虚拟磁盘才能选择动态分配的方式。
精简分配是在创建虚拟磁盘时不分配存储空间,不分配元数据,在写数据时进行1.分配元数据;2.分配数据空间;3. 空间格式化;4. 写入数据。
动态分配是在创建虚拟磁盘时分配元数据,但不为数据分配任何空间,在写入数据时1.分配数据空间;2. 空间格式化;3.写入数据。
因为大部分性能影响都归结于分配和管理元数据, 所以动态分配这里相比精简分配的区别在于提前写入了元数据. 所以动态分配这里相比精简分配性能会提升如此明显。
最佳实践建议:除数据库以及对IO要求高的重要应用使用预分配之外,其他虚拟机均可使用动态分配,默认为动态分配。