OpenStack Glance: 使用 Ceph RBD 时禁用缓存管理

shan

OpenStack 文档通常建议在使用默认存储 file 时启用 Glance 缓存,但使用 Ceph RBD 后端时情况略有不同。

根据您使用云平台的方式,使用 Glance 中的 keystone+cachemanagement 可能会造成极大的危害。启用此缓存会导致镜像每次进入 /var/lib/nova/instances/_base 时在您的 OpenStack 控制器下的 /var/lib/glance/image-cache/ 中被缓存。这意味着您启动了一台虚拟机,现在想象一个 50 GB 的大型 Windows 镜像,再想象 10 个这样的镜像。除非您的整个 /var/ 挂载在一个大型卷上,否则这最终可能会导致系统完全崩溃。每次频繁启动虚拟机时,此镜像都会进入缓存。

如前所述,当镜像进入 /var/lib/nova/instances/_base 时,缓存会被激活,这可能发生在多种情况下

  • 您使用的是 Juno,但您使用的是 QCOW2 镜像(对于 Ceph,我们想要 RAW 镜像
  • 您使用的是 Juno 之前的 OpenStack 版本,并且没有应用提供 COW 克隆支持的补丁

这意味着仅使用 RAW 镜像和 Nova 中的 COW 克隆的用户将不会受到影响,因为没有任何内容进入 /var/lib/nova/instances/_base。一切都在 Ceph 级别发生(镜像快照和克隆创建)。

现在假设您的缓存已启用,让我们检查缓存中存在的镜像

```bash $ glance-cache-manage list-cached 找到 1 个缓存的镜像... ID 上次访问时间 (UTC) 上次修改时间 (UTC) 大小 命中次数


2a178579-f203-4f4c-91e9-3f8012178bf5 N/A 2014-04-25T19:27:21 2361393152 0 ```

删除缓存的镜像

bash $ glance-cache-manage -f delete-all-cached-images $ glance-cache-manage list-cached 没有缓存的镜像。

现在是时候禁用它了,编辑您的 /etc/glance/glance-api.conf

[paste_deploy]
flavor = keystone

然后重启 Glance

bash $ sudo glance-control all restart

Ceph 文档影响已经 提交并合并