注意
本文档适用于 Ceph 的开发版本。
Argonaut
Argonaut 是 Ceph 的第一个稳定版本。它以一种章鱼属的名称命名,有时也被称为纸鹦鹉螺。
v0.48.3 “argonaut”
此版本包含一个关键修复程序,可以防止在断电或内核崩溃事件后发生数据丢失或损坏。请立即升级。
升级
如果您正在使用未记录的
ceph-disk-prepare和ceph-disk-activate工具,它们具有几个新功能和一些附加功能。请在升级前仔细查看行为更改。.deb 包现在需要 xfsprogs。
值得注意的更改
filestore: 修复 op_seq 写入顺序(修复断电后的日志重放)
osd: 修复偶尔无限期挂起的“慢速”请求
osd: 修复与 pre-v0.48 客户端通信时 pool_snap_info_t 的编码
osd: 修复心跳检查
osd: 减少关于 rbd watch 的日志噪音
log: 修复内部日志记录代码中的死锁
log: 使日志缓冲区大小可调整
init script: 修复跨机器的“ceph status”问题
radosgw: 修复 swift 错误处理
radosgw: 修复 swift 身份验证并发错误
radosgw: 不缓存大对象
radosgw: 修复一些内存泄漏
radosgw: 修复读取时的时区转换
radosgw: 放宽日期格式限制
radosgw: 修复多分段覆盖
radosgw: 在客户端断开连接时停止处理请求
radosgw: 避免向已有端口的 url 添加端口
radosgw: 修复复制时不覆盖 ETAG
common: 使 IP 地址列表解析更具容错性
common: 修复 admin socket 与旧协议的兼容性(用于 collectd 插件)
mon: 在 paxos 重置时丢弃重复命令
mds: 修复多客户端工作负载的孤立选择
mds: 修复兼容性位检查
ceph-fuse: 修复密钥环丢失时启动时的段错误
ceph-authtool: 修复用法
ceph-disk-activate: 杂项反向移植
ceph-disk-prepare: 杂项反向移植
debian: 依赖 xfsprogs(我们默认使用 xfs)
rpm: 构建 rpms,一些相关的 Makefile 更改
有关更详细的信息,请参阅 完整的 变更日志。
v0.48.2 “argonaut”
升级
密钥环文件的默认搜索路径现在包括 /etc/ceph/ceph.$name.keyring。如果集群上存在此类文件,请注意默认情况下现在可能会使用它们。
upstart init 文件有几处更改。这些以前没有记录或推荐过。任何现有用户都应在升级前查看更改。
ceph-disk-prepare 和 ceph-disk-active 脚本已进行了重大更新。这些以前没有记录或推荐过。任何现有用户都应在升级前查看更改。
值得注意的更改
mkcephfs: 修复 mds、osd 在使用默认路径时密钥环生成问题
radosgw: 修复导致每桶统计信息偶尔损坏的错误
radosgw: 变通方法以避免以前损坏的统计信息变为负数
radosgw: 修复繁忙桶上使用情况统计信息报告中的错误
radosgw: 修复大于 2 GB 对象的 Content-Range: 标头。
rbd: 避免在命令行工具出错时留下 watch acting(避免后续操作延迟 30 秒)
rbd: 对 import 使用 --pool/--image 选项更友好(旧的调用约定仍然有效)
librbd: 修复罕见的快照创建竞争(当创建并发时可能会“丢失”快照)
librbd: 修复跨越孔时的丢弃处理
librbd: 修复启用缓存时丢弃的内存泄漏
objecter: 杂项修复 op 重新排序
objecter: 修复启动时罕见的死锁,等待 osdmap
ceph: 修复用法
mon: 减少关于“check_sub”的日志噪音
ceph-disk-activate: 杂项修复和改进
ceph-disk-prepare: 自动分区和格式化 osd 磁盘
upstart: 在重启时启动所有进程
upstart: 如果在配置中指定,则在启动时始终更新 osd crush 位置
config: 将 /etc/ceph/ceph.$name.keyring 添加到默认密钥环搜索路径
ceph.spec: 不打包 crush 头文件
有关更详细的信息,请参阅 完整的 变更日志。
v0.48.1 “argonaut”
升级
v0.48 中的 radosgw 使用情况修剪功能实际上已损坏。之前它会删除比请求更多使用数据。这在 v0.48.1 中得到修复,但此修复不兼容。v0.48 radosgw-admin 工具不能用于启动修剪;请使用 v0.48.1 版本。
v0.48.1 现在明确表明支持 CRUSH_TUNABLES 功能。目前还没有其他版本的 Ceph 需要它,但未来的版本在调整了历史默认值后会需要。
v0.48.1 和 v0.48 之间没有其他兼容性更改。
值得注意的更改
mkcephfs: 在未指定 conf 时使用默认的“keyring”、“osd data”、“osd journal”路径
msgr: 对 socket 错误处理的各种修复
osd: 减少 scrubbing 开销
osd: 杂项对等修复(past_interval 共享,pgs 停留在“peering”状态)
osd: 在读取路径中 EIO 时失败(不要默默忽略来自故障磁盘的读取错误)
osd: 通过将一些大事务分解来避免内部心跳错误
osd: 修复启动期间 osdmap 追赶(追赶,然后将守护程序添加到 osdmap)
osd: 修复虚假的“misdirected op”消息
osd: 通过“pg … query”报告 scrubbing 状态
rbd: 修复重新发送 watch 注册时的竞争
rbd: 修复 rbd 镜像 ID 分配方案(新镜像数据对象名称略有不同)
rbd: 修复缓存命中率的 perf 统计信息
rbd tool: 修复键名中的 off-by-one(指定空键时崩溃)
rbd: 更健壮的 udev 规则
rados tool: copy object, pool 命令
radosgw: 修复使用情况统计信息修剪
radosgw: 杂项 API 兼容性修复(日期字符串、ETag 引用、swift 标头等)
ceph-fuse: 修复读/写路径中的锁定
mon: 修复罕见的竞争导致磁盘数据损坏
config: 修复 admin socket 'config set' 命令
log: 修复内存中日志事件收集
debian: 删除 crush 头文件,包括 librados-config
rpm: 添加 ceph-disk-{activate, prepare}
有关更详细的信息,请参阅 完整的 变更日志。
v0.48 “argonaut”
升级
此版本包含磁盘格式升级。每个 ceph-osd 守护程序在启动时都会将其本地存储的数据迁移到新格式。此过程可能需要一段时间(对于大量对象,甚至需要数小时),尤其是在非 btrfs 文件系统上。
为了在升级过程中保持集群可用,我们建议您一次升级一个存储节点或机架,并等待集群每次恢复。为了防止集群在 OSD 守护程序停机数分钟或数小时时移动数据,您可能需要
ceph osd set noout
这将防止集群将停机的 OSD 标记为“out”并重新复制数据到其他位置。如果您这样做,请务必在升级完成后清除该标志
ceph osd unset noout
监视器集群内部的编码格式有所更改。监视器守护程序会小心翼翼地仅在仲裁的所有成员都支持新格式时才切换到新格式。然而,这意味着具有新代码的部分仲裁可能会切换到新格式,而运行旧代码的恢复监视器将无法加入(它会崩溃)。如果发生这种情况,只需升级剩余的监视器即可解决问题。
早期版本的 ceph 工具的 -s 和 -w 命令与此版本不兼容。如果您依赖这些命令,请在升级监视器时同时升级客户端工具。
无法从 v0.48 降级到以前的版本。
值得注意的更改
osd: 稳定性改进
osd: 功能模型简化
osd: 更简单/更安全的 --mkfs(不再删除所有文件;在活动的 osd 上重新运行是安全的)
osd: 默认禁用潜在错误的 FIEMAP 行为
rbd: 缓存改进
rbd: 改进的检测
rbd: 错误修复
radosgw: 新的、可扩展的使用情况日志记录基础结构
radosgw: 每用户桶限制
mon: 设置身份验证密钥的简化流程
mon: 稳定性改进
mon: 日志消息限制
doc: 改进的文档(ceph、rbd、radosgw、chef 等)
config: 守护程序密钥环的新默认位置
config: 任意变量替换
改进的“admin socket”守护程序管理界面(ceph --admin-daemon …)
chef: 支持多个监视器集群
upstart: 对监视器、mds、radosgw 的基本支持;osd 支持仍在进行中。
新的默认密钥环位置意味着在启用身份验证 (auth supported = cephx) 时,如果密钥环文件位于守护程序的数据目录中(默认情况下为 /var/lib/ceph/$type/ceph-$id),则无需指定密钥环位置。
此版本中还有许多 librbd 代码正在为即将推出的分层功能奠定基础,但尚未实际使用。同样,upstart 支持仍不完整且不推荐;如果它不具有破坏性,我们稍后会反向移植该功能。