六月25,2019/ 在LINSTOR,技术博客中 / 作者DanielKaltenböck
介绍
本文旨在概述CEPH,DRBD和LINSTOR的基本功能。以下几点将帮助您比较这些产品,并了解哪种是适合您系统的解决方案。在开始之前,您应该了解LINSTOR是为DRBD设计的,并且强烈建议您同时使用DRBD来使用LINSTOR。
DRBD
DRBD通过在文件系统,缓冲区高速缓存和磁盘驱动器之间插入一个薄层来工作。DRBD内核模块捕获来自文件系统的所有请求,并将它们分成两个路径。那么,实际的交流是如何发生的呢?两个单独的服务器如何优化数据保护?
DRBD通过镜像两个单独的服务器来促进通信。一台服务器虽然是被动的,但通常是另一台服务器的直接副本。写入主服务器的任何数据都会通过实时通信系统同时复制到辅助服务器。被动服务器立即复制数据中所做的任何更改。
DRBD 8.x一次可在两个节点上工作。一个被赋予主要角色,而另一个则被赋予次要角色。读取和写入只能在主节点上进行。
DRBD 9的好处
DRBD 9.x的功能是对8.x版本的巨大改进。现在最多可以有32个副本,包括主节点。这使您能够使用我们所谓的无盘节点构建群集设置,这意味着您不必在主节点上使用存储。无盘模式下的主节点仍然具有DRBD块设备,但是可以通过网络在辅助节点上访问数据。
辅助节点不得挂载文件系统,即使处于只读模式也不得。虽然可以说辅助节点可以看到主节点上的所有更新,但是它们无法将这些更新公开给文件系统,因为DRBD完全与文件系统无关。
一次写入实际磁盘,另一次写入对等节点上的镜像磁盘。如果第一个失败,则文件系统可以显示在相对的节点之一上,并且数据将可供使用。
DRBD没有文件系统的确切知识,因此,它无法将上游的更改传达给文件系统驱动程序。一次两次的规则实际上并不限制DRBD在两个以上的节点上运行。
此外,DRBD-9.x支持多个对等节点,这意味着一个对等节点可能是本地数据中心中的同步镜像,而另一个辅助节点可能是远程站点中的异步镜像。
同样,被动服务器仅在主要服务器出现故障时才能运行。当发生此类故障时,Pacemaker会立即识别出事故并转移到辅助服务器。但是,该转换过程是可选的–可以是手动的也可以是自动的。对于喜欢使用手册的用户,需要在主服务器出现故障时授权系统转移到被动服务器。
LINSTOR
在更大的IT基础架构中,集群管理软件是最新技术。这就是为什么LINBIT开发基于 DRBD的LINSTOR软件的原因。DRBD本身是复制和访问数据的理想工具,尤其是在性能方面。LINSTOR使得在具有多个节点的系统上配置DRBD变得容易。LINSTOR 管理DRBD,并使您能够在大型系统上进行设置。
LINSTOR使用控制器服务来管理集群,并使用在每个节点上运行的卫星服务来部署DRBD。可以从每个节点访问该控制器,并使您能够快速监视和配置您的结构。可以从外部通过REST控制它,并提供非常清晰的CLI。此外,LINSTOR REST-API使您能够在Kubernetes,Proxmox VE,OpenNebula和Openstack中使用LINSTOR卷。
LINSTOR具有使系统保持工作状态的功能:控制平面与数据平面是分开的。如果要升级或维护LINSTOR,则不会出现卷停机的情况。与Ceph相比,DRBD和LINSTOR更易于故障排除,恢复,修复,调试,并且在需要时更易于手动进行干预,这也主要是由于其简单性。对于系统管理员来说,更好的可维护性和更简单的环境可能至关重要。更高的可用性还导致更好的可靠性。例如, 即使LINSTOR处于脱机状态,也可以手动启动/停止DRBD ,或者出于恢复目的,即使没有安装DRBD (只需装入后端存储),与此相比,尝试查找/停止如果您的Ceph系统关闭,则由Ceph管理的磁盘上的任何数据都可能是一个很大的挑战。
总之,如果您要为应用程序寻求提高的性能,快速的配置和基于文件系统的存储,请使用LINSTOR和DRBD。但是,如果要使用HA运行LINSTOR,则必须使用第三方软件,例如Pacemaker。
CEPH
CEPH 是一种开源软件,旨在在统一系统中提供高度可扩展的对象,块和基于文件的存储。
CEPH由RADOS群集及其接口组成。RADOS群集是一个具有用于监视和存储多个节点上的数据的服务的系统。CEPH / RADOS是一个没有单点故障的对象存储集群。通过使用一种算法可以解决此问题,该算法通过使用自我管理服务将数据切成块并将其分布在RADOS群集中。CRUSH算法用于在上传时分散数据,并在请求对象时将块放在一起。CEPH能够使用简单的数据复制以及这些带区块的擦除编码。
在RADOS群集的顶部,LIBRADOS用于从群集上载或请求数据。CEPH将LIBRADOS用于接口CEPHFS,RBD和RADOSGW。
CEPHFS使您能够在将数据存储在CEPH群集中的主机上创建文件系统。另外,为了使用CEPHFS,CEPH需要元数据服务器,该服务器管理元数据并在请求之间平衡负载。
RBD或RADOS块设备用于在具有CEPH群集的主机上创建虚拟块设备,并在后台管理和存储数据。由于RBD基于LIBRADOS构建,因此RBD继承了LIBRADOS的功能,包括只读快照并还原为快照。通过在整个群集上分割图像,CEPH可以提高大型块设备图像的读取访问性能。可以对块设备进行虚拟化,从而为虚拟化平台(例如Apache CloudStack,OpenStack,OpenNebula,Ganeti和Proxmox虚拟环境)中的虚拟机提供块存储。
RADOSGW是用于在从群集上载和请求数据时与CEPH / RADOS通信的REST-API。
通常,CEPH是一个对象存储集群,其优点是您不必担心节点或存储驱动器发生故障,因为CEPH可以识别出故障的设备并将数据立即复制到将要访问其的另一个磁盘上。如果设备出现故障,这也会导致沉重的网络负载。
条带化数据具有一个缺点,即无法通过将其安装在其他位置或没有可用的CEPH群集来访问存储驱动器上的数据。
总之,如果您要在基础架构中寻找对象存储,CEPH是正确的解决方案。由于其复杂性,与DRBD相比,您必须期望其性能有所降低,而DRBD仅受网络速度的限制。
软件工程师在LINBIT的HA解决方案公司
DanielKaltenböck在维也纳工业大学学习了技术计算机科学。他是一位专心致力于软件定义存储的软件工程师。
分享此条目
4回复
阿尔瓦罗·索托 (Alvaro Soto)说:
不错的比较和9.x版中的新功能,我是LINBIT技术的忠实拥护者,很高兴知道您使用哪种复制方案来达到32个副本而不会造成性能损失,链式复制会很慢,也许是八字形的,还是可以看作一棵树的混合体。
这个副本可以同步和异步吗?
干杯!
罗伯特·阿尔特诺德 (Robert Altnoeder)说:
感谢您的关注!关于您的问题:
DRBD当前在存储节点之间使用单播全网状网络。但是,32x复制不是典型的用例,典型的副本数在2到6的范围内,另外的节点作为客户端访问存储节点上的数据。这些客户端连接到所有存储节点,但未连接到其他客户端。DRBD默认为同步复制,但也支持异步复制。还支持混合设置,其中某些节点或资源是同步复制的,而其他节点或资源是异步复制的。
祝你有美好的一天!
Roshan说:
在哪里可以获取在两个节点(均为Ubuntu计算机)上使用DRBD进行复制的步骤?我们可以像支持LVM一样使用DRBD进行Ceph映像复制吗?
罗伯特·阿尔特诺德 (Robert Altnoeder)说:
可以从我们的文档档案库(资源> DRBD用户指南,或https://docs.linbit.com)下载《 DRBD用户指南》。DRBD可以复制任何具有读写随机访问功能的块设备。但是,LINSTOR并未随附用于Ceph卷的存储驱动程序,因为使用DRBD复制Ceph设备或使用Ceph复制DRBD设备通常没有意义。根据手头的任务,您通常会使用Ceph或DRBD(Ceph作为对象存储,DRBD用于复制块设备),而不是两者都作为堆栈使用,一个在另一个之上运行。