3.1.7 未来展望
随着云计算的发展,Ceph 乘上了 OpenStack 的春风,进而成为开源社区最受关注的分布式块存储方案,其在块存储市场上的地位是不可撼动的,Ceph 社区块存储也在不断发展,主要有以下几个方面。
1. 容灾方案更加多元化
Ceph L 版开始稳定支持 Ceph RBD journal-based mirroring,但该特性会造成严重的性能问题,开启之后卷性能下降近 50%,该方案在性能要求比较苛刻的块存储场景内难以商用落地。Ceph O 版新引入了基于 snapshot 的异步远程复制,支持通过 fast-diff 定时将增量数据推送至远端集群,虽然牺牲了一点 RPO,但是也减少了对卷性能的影响,也算是一个折中的选择。另外,Ceph 社区还实现了延展集群容灾支持,算是追平与 VMware vSAN 等商业存储的容灾能力上的差距,后续还会支持跨 3 可用区 3 副本机制,为用户提供更完美的容灾效果。
2. 支持 Windows 块存储服务
Ceph 一直以来对 Linux 平台的支持比较完善,允许 Linux 应用通过 Linux RBD driver 使用 Ceph 作为块存储后端,后续又增加了 LIO iSCSI gateway,允许 VMware、Windows 等异构平台通过 iSCSI 协议对接 Ceph,但是 iSCSI 网关的引入也一定程度上拉长了 I/O 路径,且目前仅支持 ALUA 模式。另外,受限于 iSCSI 网关能力,Ceph 存储后端性能至今无法充分发挥。Ceph P 版新增了一个原生的 Windows RBD driver,允许用户在 Windows 主机、Hyper-V 虚机上跨平台直接通过该驱动访问 Ceph 存储后端,大大优化了 I/O 路径,Ceph 努力致力于为 Linux、VMware、Windows 三种平台提供块存储服务。
3. librbd 支持客户端加密
以往 Ceph 社区推荐使用 dm-crypt 进行存储端加密,这里所谓的 OSD 端加密,其实是对硬盘进行加密的。基本原理是通过 Linux 内核 dmcrypt 模块,进行数据的加密与解密,其缺点在于不够灵活,所有的数据在写入硬盘之前,会经过 dmcrypt 模块进行加密与解密,无法针对特定的卷单独开启或关闭加密功能。因此 Ceph P 版的 librbd 新增了卷级别的客户端加密,允许用户通过自定义密钥加密指定存储卷,目前支持通过 Linux LUKS 进行加密,已支持 AES-128、AES-256 两种加密算法,加密模式为 xts-plain64。