带你读《存储漫谈Ceph原理与实践》第三章接入层3.1块存储 RBD

简介: 《存储漫谈Ceph原理与实践》第三章接入层3.1块存储 RBD

CephRBD接口提供块存储服务, 块存储是 Ceph最稳定且最常用的存储类型。RBD   块设备可以类似于本地磁盘一样被操作系统挂载,具备快照、克隆、动态扩容、多副本和一致性等特性。

3.1.1  块设备映射

Ceph块设备可以通过 librbdKRBDiSCSI等方式进行访问。librbd运行在操作系统用户态,可部署在客户端节点或存储节点;KRBD   运行在操作系统内核态,需要部署在客户端节点的操作系统内核中;iSCSI 方式则为客户端节点与存储集群服务节点之间通过iSCSI 协议进行数据的传输,客户端启动iSCSIinitiator服务端启动iSCSItarget

下面分别介绍这 3种访问方式。

 

1.  librbd

 

RBD块存储设备基于 librbd 的访问方式,按照所对接的客户端组件不同,又可进一步细分为 QEMU+librbd、SPDK+librbd以及 NBD+librbd三种。

(1) QEMU+librbd

QEMU是一款开源的虚机模拟处理器VMM,其与Linux内核中的KVM模块配合使用,可实现硬件级别的虚机加速效果,QEMU-KVM加速是目前云计算/虚拟化领域使用最为广泛的方案。QEMU通过 librbd可实现对 Ceph集群块存储服务的完美支持,其架构如图 3-1所示。

该模式也是 Ceph对接 OpenStack,作为虚机云盘后端存储的常见用法。

(2) SPDK+librbd

SPDK 最初是由英特尔开发的高性能用户态存储栈开发工具库,通过绕过内核、I/O轮询等技术,极大提升了应用层对高速存储设备的存取速度。SPDKbdev层增加RBD驱动, 通librbd 实现对Ceph 集群块存储服务的访问,其架构如图3-2所示。


 image.png

3-1   QEMU连接Ceph示意

image.png

3-2  SPOK连接Ceph示意

 

(3) NBD+librbd

NBD(NetworkBlockDevice)Linux平台下实现的一种块设备, 由 Client端和Server端组成,Client端已经集成在 Linux内核中,Ceph社区提供了 rbd-nbd工具作为Server端,通过 librbd实现对 Ceph集群块存储服务的访问,其挂载流程如图 3-3所示。

image.png

3-3CephNBO挂载流程

 

2.  KRBD

 

KRBD运行在客户端节点操作系统内核中,提供了对 Ceph集群块存储服务进行访问的机制。在功能、特性支持方面,KRBD远远落后于 Cephlibrbd方式,很多高级特性均不支持,如 KRBD模式下,挂载的逻辑卷仅支持 strippinglayering特性,但正因为如此,相较于librbd方式KRBD模式I/O路径逻辑更加简洁,在性能方面占有一定优势, 其挂载流程如图 3-4所示。

image.png

3-4CephKRBO挂载流程

 

KRBDNBD+librbd方式常用于 Ceph存储集群对接容器使用场景,kubernetes的CSI ContainerStorageInterface组件默认支持rbdrbd-nbd两种方式进行Ceph

RBD逻辑卷管理。

 

3.  iSCSI

 

OpenStack使用的KVM 虚拟化技术外,其他虚拟化平台(WindowsHyper-V、VMware无法直接通过 librbd或者 KRBD方式使用 CephRBD作为后端块存储,故 标准的 iSCSI接口就成为跨平台使用 CephRBD的最优方案。

在通过iSCSI方式使用块存储设备时,往往会提及VMwareVAAI ThevStorageAPIs

forArrayIntegration)以及 WindowsODX 等高级存储特性,下面简要对它们进行介绍。

(1)  VMwareVAAI

VMware 的 VAAI 被称为硬件加速 API,是一组用于 VMwareESXi 主机与后端存储设备通信的 API。若后端存储支持 VAAI特性,则 VMwareESXi主机可将部分存储相关操作卸载到后端存储集群执行,从而减少对VMwareESXi主机的 CPU、内存及网络等资源的开销,可大大提升 VMware虚拟化平台的工作效率。

 

VMwareVAAI主要包含如下功能。

◆  FullCopy

针对虚机克隆和文件复制等场景,把数据复制工作下沉到后端存储中,避免VMwareESXi主机参与大量数据的读取和写回操作,可有效节省CPU和带宽资源。

◆  BlockZeroing

针对创建虚拟磁盘格式化清零场景VMwareESXi主机通过下发一个标准 SCSIWRITESAME   命令来进行虚拟磁盘格式化,该命令携带待格式化的数据范围和格式化数据模板,避免了大量的写零操作。

◆  Hardware-AssistedLocking(ATS)

VMFS(VirtualMachineFileSystem)作为多主机共享的集群文件系统,需要通过加锁来避免冲突。该特性主要用到了 ATS锁,与 PR锁相比,ATS 是一种粒度更小的锁机制,它只针对写的单个数据块加锁。VMwareESXi使用 SCSICompareAndWrite命令来对LUN中的数据块进行加锁和解锁,保证块区域修改的原子性,提高了VMFSI/O并发能力。

◆  ThinProvisioning(UNMAP)

针对存储精简配置场景,VMwareESXi主机向后端存储发出一个 SCSIUNMAP令,后端存储即可将执行范围内的空间进行回收,以减少存储空间使用。

(2) WindowsODX

WindowsODX(OffloadedDataTransfer)由微软公司提出, 是在 Windows8WindowsServer2012中新增的功能,同 VAAI 设计目标一样,期望通过该功能把数据复制操作卸载到后端存储设备中执行,以此降低 Windows虚拟化服务器的 CPU、内存和网络等资源开销,ODX 功能相对简单,与 VMwareVAAI中的FullCopy 功能类似。

相关实践学习
块存储快速入门
块存储是阿里云为云服务器ECS提供的块设备产品。通过体验挂载数据盘、分区格式化数据盘(Linux)、创建云盘快照、重新初始化数据盘、使用快照回滚云盘和卸载数据盘等功能,带您快速入门块存储。
相关文章
|
存储 容灾 安全
带你读《存储漫谈:Ceph原理与实践》——3.1.3 远程复制
带你读《存储漫谈:Ceph原理与实践》——3.1.3 远程复制
带你读《存储漫谈:Ceph原理与实践》——3.1.3 远程复制
|
存储 缓存 Linux
带你读《存储漫谈:Ceph原理与实践》——3.1.4 RBD Cache
带你读《存储漫谈:Ceph原理与实践》——3.1.4 RBD Cache
带你读《存储漫谈:Ceph原理与实践》——3.1.4 RBD Cache
|
存储 Linux 虚拟化
带你读《存储漫谈:Ceph原理与实践》——3.1.1 块设备映射
带你读《存储漫谈:Ceph原理与实践》——3.1.1 块设备映射
|
存储 缓存 算法
带你读《存储漫谈:Ceph原理与实践》——3.1.2 快照与克隆
带你读《存储漫谈:Ceph原理与实践》——3.1.2 快照与克隆
|
1月前
|
存储 测试技术
阿里云块存储问题之测试不聚焦可能导致测试不稳定如何解决
阿里云块存储问题之测试不聚焦可能导致测试不稳定如何解决
29 3
|
2月前
|
存储 固态存储 大数据
阿里云服务器实例、块存储、带宽收费标准与云服务器最新活动价格参考
阿里云服务器价格通常包括云服务器实例价格、块存储价格和带宽价格组成,云服务器不同实例规格收费标准不一样,选择不同类型的块存储收费标准也不一样,选择不同的带宽收费标准也不一样。现在阿里云轻量应用服务器2核4G4M峰值带宽298元1年,云服务器2核4G5M固定带宽199元1年、2核8G1M固定带宽652.32元1年、4核8G1M固定带宽955.58元1年、4核16G10M带宽100G ESSD Entry云盘70元1个月。本文为大家整理了目前阿里云服务器实例、块存储、带宽收费标准与云服务器最新的活动价格情况,以供参考。
阿里云服务器实例、块存储、带宽收费标准与云服务器最新活动价格参考
|
1月前
|
存储
阿里云块存储问题之高效的Code Review可以发现70-90%的bug如何解决
阿里云块存储问题之高效的Code Review可以发现70-90%的bug如何解决
27 1
|
1月前
|
存储 Linux 测试技术
阿里云块存储问题之在编码和提交代码时确保代码提交的原子性如何解决
阿里云块存储问题之在编码和提交代码时确保代码提交的原子性如何解决
37 0
|
1月前
|
存储 Cloud Native Linux
阿里云块存储问题之poison发布阻塞机制实现如何解决
阿里云块存储问题之poison发布阻塞机制实现如何解决
32 0
|
1月前
|
存储 Kubernetes 测试技术
阿里云块存储问题之处理信用分低的测试用例(即不稳定Case)如何解决
阿里云块存储问题之处理信用分低的测试用例(即不稳定Case)如何解决
29 0

热门文章

最新文章

相关实验场景

更多