使用与 Amazon S3 或 OpenStack Swift 兼容的后端来模拟磁带驱动器的项目或软件包?

使用与 Amazon S3 或 OpenStack Swift 兼容的后端来模拟磁带驱动器的项目或软件包?

我有一些数据正在通过 bacula 备份到磁带上,很快我将需要迁移到非磁带存储。

Bacula 支持磁盘归档,但我突然想到,如果只有一些到 S3 或 openstack Swift 的虚拟磁带库接口,或者一些其他对象存储服务,我就可以交换配置并无缝维护预先存在的归档、老化和调度配置。

我使用谷歌搜索,发现 Amanda(使用设备 API)和一堆备份产品都有 S3 对象存储后端,但我没有看到任何可以使用 *nix /dev/st0 设备接口语义进行替换的项目。

这很可能是因为我不知道,而且这个想法是荒谬和不可能的,等等,然而,在我深入研究一些被破解的替代品之前,我很想知道我是否错过了任何显而易见的事情。

因此,请明确平台选项 - 它不托管在 AWS 上,目前没有可用的 EBS,目标是内部 S3 兼容的 openStack Swift 对象存储,因此带宽和存储成本是内部的。

答案1

对于任何可以考虑备份的人来说,这都是一种值得怀疑的方法,但你应该可以尝试一下。你首先需要的是任何在 S3 之上呈现块接口的东西。类似于带有 S3 后端的 NBD 服务器 - 看看

完成这些工作后,您需要一个可以在块设备上显示文件并为您的系统提供 SCSI 目标/虚拟 HBA 以及转换器和磁带驱动器的东西。请查看此项目这里

请参阅 S3NBD 项目(第一个链接)来了解更多有关为什么使用 S3 运行备份和恢复可能不是一个好主意(使用当前的 S3 定价方案)的理由。

答案2

在 EC2 上模拟磁带的坏处是,为了模拟磁带,您必须模拟所有方面。这包括当您加载磁带并且不打算在开始时写入时,您必须查找所有数据。

我相信一个更简单的做法是将 EBS 卷作为 Bacula 中的块设备进行连接。

更简单的操作方法是使用Media Type = Fifo并链接到一个写入 EBS 的程序。对于恢复,您必须想出其他办法,但它会移动您的数据。

答案3

您可以尝试 MHVTL,它模拟虚拟磁带库并使用文件/目录作为存储。您可以使用 S3FS 或其他机制来模拟 MHVTL 可以放置的文件/目录。您还可以修改 MHTL,使其文件在挂载/卸载时像目标一样移入/移出 S3/Swift。它看起来像 /dev/tapedevice 和 scsi 媒体转换器,因此备份产品可能无需更改即可工作。不知道是否支持。

相关内容