我对nova启动实例时创建的qcow2交换文件有些怀疑。
我启动了两个实例,分别具有 1G 和 8G 的交换内存。因此,我验证了_bare
目录中创建了四个磁盘:
$ ls -lh _base/swap*
-rw-r--r-- 1 libvirt-qemu kvm 1.0G Jun 16 18:18 swap_1024
-rw-r--r-- 2 nova nova 1.0T Jun 16 18:18 swap_1024_1024
-rw-r--r-- 1 libvirt-qemu kvm 8.0G Jun 16 18:18 swap_8192
-rw-r--r-- 2 nova nova 8.0T Jun 16 18:18 swap_8192_8192
$ du -h _base/swap*
4.0K swap_1024
4.0K swap_1024_1024
4.0K swap_8192
4.0K swap_8192_8192
并且disk.swap
在实例目录中分别创建了两个文件:
$ ls -lh */disk.swap
-rw-r--r-- 1 libvirt-qemu kvm 246M Jun 17 13:18 7fc49638-ae40-4f69-ac48-cf4ed330b61d/disk.swap
-rw-r--r-- 1 libvirt-qemu kvm 2.3M Jun 12 23:54 f3dfa134-4f7a-4cb3-af40-b4d43a5c2942/disk.swap
$ du -h */disk.swap
246M 7fc49638-ae40-4f69-ac48-cf4ed330b61d/disk.swap
2.2M f3dfa134-4f7a-4cb3-af40-b4d43a5c2942/disk.swap
$ qemu-img info 7fc49638-ae40-4f69-ac48-cf4ed330b61d/disk.swap
image: 7fc49638-ae40-4f69-ac48-cf4ed330b61d/disk.swap
file format: qcow2
virtual size: 1.0G (1073741824 bytes)
disk size: 245M
[...]
backing file: /var/nova-data/instances/_base/swap_1024
[...]
$ qemu-img info f3dfa134-4f7a-4cb3-af40-b4d43a5c2942/disk.swap
image: f3dfa134-4f7a-4cb3-af40-b4d43a5c2942/disk.swap
file format: qcow2
virtual size: 8.0G (8589934592 bytes)
disk size: 2.2M
[...]
backing file: /var/nova-data/instances/_base/swap_8192
[...]
因此,笔者有以下几点疑惑:
- 为什么将
swap_1024
和swap_8192
文件创建为文件的 qcow2 支持文件disk.swap
?- 使用 qcow2 磁盘和 CoW(写时复制)不会节省空间。看来交换文件的 CoW 方法确实没有给我们带来任何实际优势;
- 为什么要创建
swap_1024_1024
和swap_8192_8192
?- 创建 1T 和 8T qcow2 文件有意义吗?nova-compute 会随时使用它们吗?