我正在尝试使用librados克隆对象。如我所见,librados-dev中的旧版本具有我真正需要的clone_range函数。但是我相信它在版本12中已删除。我发现了有关它的信息,它是:
Samuel Just在2015年6月23日星期二写道:ObjectWriteOperations 当前允许您使用以下命令从另一个对象执行clone_range 相同的对象定位器。几年前,rgw将此作为 分段上传。今天,实施使OSD变得复杂 相当大,而且似乎没有任何用户离开。在那儿 任何人会是谁伤心地看到它从librados删除 界面?
我不会错过的。
(我真的很想念它)
在某些版本的librados.hpp中可以找到ObjectWriteOperations,但是当我使用版本14或更高版本时,只有librados.h。 (顺便说一句,即使在hpp中,我也找不到任何接近clone_range的东西)没有hpp文件。显然,功能会随着版本的变化而变化,这使我认为,即使我在当前版本上找到了解决方案(目前无法解决),也不会持续很长时间。
我看到的另一个可能的解决方案是OSD上的对象类。但是我不知道如何使用它们或在需要时调试它们。
所有这些之后,任何人都知道clone_range的等效功能或方式吗?如何合并对象? (我需要将许多小对象组合为一个。这就是为什么我需要clone_range函数的原因。)另外,我也不想引起不必要的网络流量,因此应该在ceph中完成。我不想将数据发送到服务器并写回ceph。