我对卡夫不太了解。据我所知,RBD是ceph的分布式块存储设备,相同的数据应该存储在几台组成ceph集群的计算机上。那么,这个分布式块设备(Ceph)具有负载平衡的能力吗?换句话说,如果多个客户端(在我的情况下是QEMU)使用这个RBD块存储,并且他们同时读取相同的数据,那么ceph会平衡通信量并从集群中的不同计算机同时发送到客户端,还是只需要一台计算机将其数据发送给多个客户端?如果我有一个由6台计算机和3台计算机组成的ceph集群。这些RBD的性能有什么不同吗?
发布于 2020-08-19 07:37:23
这不是一个负载平衡,但ceph的分布式特性允许许多客户端并行地服务。如果我们关注大小为3的复制池,就会有3个不同的磁盘(在不同的主机上)存储完全相同的对象。但是总有一个主要的OSD将写请求转发给其他副本。这使得写请求稍微慢一点,但是读请求只由主OSD提供,所以比写快得多。而且,由于客户直接与OSD“交谈”(他们从MON获得地址),许多客户可以并行地服务。特别是因为OSD不将RBDs存储为单个对象,而是拆分成由"Placement组“分组的许多对象。但是,如果您真的谈到多个客户端正在读取的完全相同的对象,则必须知道RBD上有watchers锁住它们,以便只有一个客户端可以更改数据。如果您能够更详细地描述您的场景,我们可以提供更多的信息。
如果我有一个由6台计算机和3台计算机组成的
集群。这些RBD的性能有什么不同吗?
这取决于实际的配置(合理数量的PG,粉碎规则,网络等)。但一般来说,答案是肯定的,您拥有的ceph节点越多,您可以并行地服务的客户端就越多。与其他存储系统相比,Ceph可能没有最好的性能(当然,这取决于实际的设置),但是它的扩展性非常好,以至于随着客户数量的增加,性能保持不变。
https://stackoverflow.com/questions/63451686
复制相似问题