关于 OpenStack nova 和 swap 文件的疑问

关于 OpenStack nova 和 swap 文件的疑问

我对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_1024swap_8192文件创建为文件的 qcow2 支持文件disk.swap
    • 使用 qcow2 磁盘和 CoW(写时复制)不会节省空间。看来交换文件的 CoW 方法确实没有给我们带来任何实际优势;
  • 为什么要创建swap_1024_1024swap_8192_8192
    • 创建 1T 和 8T qcow2 文件有意义吗?nova-compute 会随时使用它们吗?

相关内容