自从 OpenStack H 版开始,为 Nova 写了第一个 Ceph RBD 驱动至今已有两年,在上个月结束的 OpenStack Summit 上 Sébastien Han 和 Josh Durgin 这两个老搭档又总结了一次 J 版 OpenStack 与 Ceph 的进展,Sébastien Han 是个活跃的 Ceph 生态系统开发者,提供了诸如 Ceph-Docker , Ceph-Ansible 这些项目,同时本身也是 OpenStack 运维开发。而 Josh Durgin 是 Ceph 负责 RBD 的 CTL,也是 Cinder/Ceph RBD 的开发者。本文也会主要依据他们的 Topic 并且结合本人对 OpenStack & Ceph 的理解阐述。
其实 OpenStack 跟 Ceph 的大部分现在做了的和至今没完成的工作都在 13 年的 blog 中提到了,如 OpenStack H版与 Ceph 整合的现状 ,14 年又老生常谈的话题 OpenStack I 版与 Ceph 的现状 。那么我们这次 Kilo Release 到底哪些事:
总而言之,看上去实际上就推动了 RBD Snapshot 和 Ceilometer 对 RadosGW 的支持,至于之前文章提到的:
仍然会成为 Liberty 的 Blueprint 的一部分。
另外还有一些 RBD 能够收益的来自 OpenStack 通用的进展,比如 fsfreeze 特性。使得在打 Snapshot 时通过 QemuGuestAgent 发出 fsfreeze 指令冻结 VM 的操作,获得一个一致安全的快照。这对于云平台来说帮助很大,解决热快照的实用性问题。
虽然这个站点也会写一些 Ceph 开发和特性的进展和解析,但是大多数 OpenStack 用户并不关心 Ceph 本身,或者不太了解 Ceph 这些进展哪些能被 OpenStacker 用起来,下面就讨论一下在 OpenStack Kilo 期间 Ceph 特别是 Hammer 版本对于 OpenStack 用户会有哪些增益。
首先是三个性能相关的特性:
另外是几个有利于云提供商的特性:
Ceph.conf :
[client] rbd cache = true rbd cache writethrough until flush = true rbd concurrent management ops = 20 admin socket = /var/run/ceph/$cluster-$type.$id.$pid.$cctid.asok log file = {{ rbd_client_log_file }}
GLANCE
Disable local cache: s/flavor = keystone+cachemanagement/flavor = keystone/ Expose images URL: show_image_direct_url = T w_scsi_model=virtio-scsi # for discard and perf hw_disk_bus=scsi
Nova:
hw_disk_discard = unmap # enable discard support (be careful of perf) inject_password = false # disable password injection inject_key = false # disable key injection inject_partition = -2 # disable partition injection disk_cachemodes = "network=writeback" # make QEMU aware so caching works live_migration_flag="VIR_MIGRATE_UNDEFINE_SOURCE,VIR_MIGRATE_PEER2PEER, VIR_MIGRATE_LIVE,VIR_MIGRATE_PERSIST_DEST"
Cinder:
glance_api_version = 2