幕后的对象存储,或者如何成为自己的服务提供商

1996 年,世界看到了第一个对象存储原型。 10 年后,Amazon Web Services 将推出 Amazon S3,世界将开始系统地为扁平地址空间而疯狂。 由于使用元数据及其在负载下不下降的扩展能力,对象存储很快成为大多数云数据存储服务的标准,而且不仅如此。 另一个重要功能是它非常适合存储档案和类似的很少使用的文件。 每个参与数据存储的人都欣喜若狂,并把新技术拥在怀里。

幕后的对象存储,或者如何成为自己的服务提供商

但人们的谣言充满了对象存储只是关于大云的谣言,如果你不需要该死的资本家的解决方案,那么你将很难制作自己的解决方案。 关于部署自己的云的文章已经有很多,但关于创建所谓的 S3 兼容解决方案的信息还不够。

因此,今天我们将弄清楚有哪些选项“这样它就像成人一样,而不是 CEPH 和更大的文件”,我们将部署其中之一,并使用 Veeam Backup & Replication 检查一切是否正常。 它声称支持使用 S3 兼容的存储,我们将测试这一声明。

其他人呢?

我建议首先对市场和对象存储选项进行简要概述。 公认的领导者和标准是 Amazon S3。 两个最接近的追随者是 Microsoft Azure Blob Storage 和 IBM Cloud Object Storage。

这就是全部? 真的没有其他竞争对手吗? 当然,也有竞争对手,但有些则各行其是,比如 Google Cloud 或 Oracle Cloud Object Storage,对 S3 API 的支持不完整。 有些使用旧版本的 API,例如百度云。 而有些,比如日立云,需要特殊的逻辑,这肯定会造成其自身的困难。 无论如何,大家都跟亚马逊做比较,也算是行业标准。

但在本地解决方案中,有更多的选择,所以让我们概述一下对我们来说重要的标准。 原则上,只有两个就足够了:支持S3 API和使用v4签名。 说实话,我们作为未来的客户,只对交互界面感兴趣,而对存储设施本身的内部厨房并不那么感兴趣。

许多解决方案都符合这些简单的条件。 例如,经典的企业重量级人物:

  • 戴尔易安信ECS
  • NetApp S3 存储网格
  • Nutanix 水桶
  • 纯存储 FlashBlade 和 StorReduce
  • 华为FusionStorage

有一些开箱即用的纯软件解决方案:

  • 红帽 Ceph
  • SUSE 企业存储
  • Cloudian

即使是那些喜欢在组装后仔细归档的人也没有被冒犯:

  • 最纯粹的 CEPH 形式
  • Minio(Linux版本,因为Windows版本有很多疑问)

该列表还远未完成;可以在评论中讨论。 只是不要忘记在实施之前除了 API 兼容性之外还要检查系统性能。 您最不想看到的就是由于查询卡住而丢失数 TB 的数据。 因此,不要羞于进行负载测试。 一般来说,所有处理大量数据的成人软件至少都有兼容性报告。 的情况下 Veeam公司整个节目 相互测试,这使我们能够自信地声明我们的产品与特定设备的完全兼容性。 这已经是一项双向工作,并不总是很快,但我们正在不断扩展 经过测试的解决方案。

组装我们的展位

我想谈谈选择测试对象的问题。

首先,我想找到一个开箱即用的选项。 好吧,或者至少以最大的可能性它会起作用,而不需要进行不必要的动作。 在晚上敲着手鼓跳舞并摆弄控制台是非常令人兴奋的,但有时您希望它立即工作。 而且此类解决方案的整体可靠性通常更高。 是的,冒险主义精神已经在我们身上消失了,我们不再爬进我们心爱的女人的窗户,等等(c)。

其次,说实话,使用对象存储的需求出现在相当大的公司中,因此在这种情况下寻求企业级解决方案不仅不是可耻的,甚至是值得鼓励的。 无论如何,我还不知道有任何人因购买此类解决方案而被解雇的例子。

基于以上所有,我的选择是 Dell EMC ECS 社区版。 这是一个非常有趣的项目,我认为有必要向大家介绍一下。

当你看到插件时第一个想到的就是 社区版 - 这只是一个完整的 ECS 的副本,其中一些限制可以通过购买许可证来消除。 所以不行!

请记住:

!!!社区版是一个为测试而创建的独立项目,没有戴尔的技术支持!
即使您真的想要,它也无法转变为成熟的 ECS。

我们明白了

许多人认为,如果您需要对象存储,Dell EMC ECS 几乎是最佳解决方案。 ECS品牌下的所有项目,包括商业和企业项目,均基于 吉萨贝。 这是戴尔的一种善意姿态。 除了在其品牌硬件上运行的软件之外,还有一个开源版本,可以部署在云中、虚拟机上、容器中或您自己的任何硬件上。 展望未来,甚至还有 OVA 版本,我们将使用它。
DELL ECS 社区版本身是成熟软件的迷你版本,可在品牌 Dell EMC ECS 服务器上运行。

我发现了四个主要区别:

  • 不支持加密。 这是一种耻辱,但并不重要。
  • 织物层缺失。 这个东西负责构建集群、资源管理、更新、监控和存储Docker镜像。 这是已经很令人反感的地方了,但戴尔也可以理解。
  • 上一点最恶心的后果:安装完成后无法扩展节点大小。
  • 没有技术支持。 这是一个用于测试的产品,不禁止在小型安装中使用,但我个人不敢在那里上传PB级的重要数据。 但从技术上讲,没有人可以阻止你这样做。

幕后的对象存储,或者如何成为自己的服务提供商

大版本里有什么?

让我们驰骋欧洲,探寻铁定的解决方案,以便对生态系统有更全面的了解。

我不会以某种方式确认或反驳 DELL ECS 是最好的本地对象存储这一说法,但如果您对这个主题有什么话要说,我很乐意在评论中阅读。 至少根据版本 2018 年 IDC 市场景观 Dell EMC 自信地跻身 OBS 市场前五名领导者之列。 尽管其中没有考虑基于云的解决方案,但这是一个单独的对话。

从技术角度来看,ECS是一种对象存储,通过云存储协议提供对数据的访问。 支持 AWS S3 和 OpenStack Swift。 对于启用文件的存储桶,ECS 支持 NFSv3 进行逐文件导出。

记录信息的过程非常不寻常,尤其是在经典的块存储系统之后。

  • 当新数据到达时,会创建一个具有名称、数据本身和元数据的新对象。
  • 对象被分为 128 MB 的块,每个块一次写入三个节点。
  • 索引文件被更新,其中记录了标识符和存储位置。
  • 日志文件(日志条目)被更新并写入三个节点。
  • 向客户端发送录音成功的消息
    数据的所有三个副本都是并行写入的。 仅当所有三个副本都写入成功时,才认为写入成功。

幕后的对象存储,或者如何成为自己的服务提供商

阅读更容易:

  • 客户端请求数据。
  • 索引查找数据的存储位置。
  • 数据从一个节点读取并发送到客户端。

幕后的对象存储,或者如何成为自己的服务提供商

服务器本身有相当多,所以让我们看看最小的 Dell EMC ECS EX300。 它从 60TB 开始,可以增长到 1,5PB。 它的老兄 Dell EMC ECS EX3000 允许您每个机架存储多达 8,6PB 的数据。

部署

从技术上讲,Dell ECS CE 可以根据您的需要进行部署。 无论如何,我没有发现任何明确的限制。 然而,通过克隆第一个节点来完成所有缩放是很方便的,为此我们需要:

  • 8个vCPU
  • 64GB内存
  • 16GB 用于操作系统
  • 1TB直接存储
  • CentOS 最小化最新版本

当您想从一开始就自己安装所有内容时,这是一个选项。 这个选项与我们无关,因为...... 我将使用 OVA 映像进行部署。

但无论如何,即使是一个节点,要求也是非常邪恶的,如果你严格遵守法律条文,那么你需要四个这样的节点。

然而,ECS CE开发者生活在现实世界中,即使只有一个节点也能安装成功,最低要求是:

  • 4个vCPU
  • 16 GB的RAM
  • 16 GB 用于操作系统
  • 本身存储容量为 104 GB

这些是部署 OVA 映像所需的资源。 已经更加人性化和现实了。

安装节点本身可以​​从官方获取 github上。 还有关于一体化部署的详细文档,但您也可以阅读官方 阅读文档。 因此,我们不会详细讨论OVA的展开,那里没有任何技巧。 最重要的是,在启动之前,不要忘记将磁盘扩展到所需的卷,或附加必要的卷。
我们启动机器,打开控制台并使用最佳的默认凭据:

  • 登录: 管理员
  • 密码: 更改我

然后我们运行 sudo nmtui 并配置网络接口 - IP/掩码、DNS 和网关。 请记住,CentOSminimal 没有网络工具,我们通过 ip addr 检查设置。

幕后的对象存储,或者如何成为自己的服务提供商

由于只有勇敢者才能征服海洋,因此我们进行了 yum 更新,然后重新启动。 实际上相当安全,因为... 所有部署都是通过 playbook 完成的,所有重要的 docker 软件包都锁定为当前版本。

现在是时候编辑安装脚本了。 没有花哨的窗口或伪用户界面 - 一切都是通过您最喜欢的文本编辑器完成的。 从技术上讲,有两种方法:您可以手动运行每个命令或立即启动 videoploy 配置器。 它只会在 vim 中打开配置,退出时它将开始检查它。 但刻意简化你的生活并不有趣,所以让我们再运行两个命令。 虽然这毫无意义,但我警告过你 =)

因此,让我们创建 vim ECS-CommunityEdition/deploy.xml 并进行最佳的最小更改,以便 ECS 启动并运行。 参数列表可以缩短,但我是这样做的:

  • Licensed_accepted: true 您不必更改它,那么在部署时将明确要求您接受它,并会显示一个不错的短语。 也许这甚至是一个复活节彩蛋。
    幕后的对象存储,或者如何成为自己的服务提供商
  • 取消注释 autonames: 和 custom: 至少输入一个所需的节点名称 - 主机名将在安装过程中替换为该名称。
  • install_node: 192.168.1.1 指定节点的真实IP。 在我们的例子中,我们指示与 nmtui 中相同的内容
  • dns_domain:输入您的域名。
  • dns_servers:输入您的 DNS。
  • ntp_servers:您可以指定任何一个。 我从 0.pool.ntp.org 池中找到了第一个(它变成了 91.216.168.42)
  • autonaming: custom 如果不取消注释,月亮将被称为 Luna。
  • ecs_块_设备:
    的/ dev / sdb的
    由于某些未知原因,可能存在不存在的块存储设备 /dev/vda
  • 存储池:
    成员:
    192.168.1.1 这里再次表示节点的真实IP
  • ecs_块_设备:
    /dev/sdb 我们重复删除不存在设备的操作。

一般来说,整个文件非常详细地描述在 文件资料但谁会在这样的乱世里读它呢。 它还说,至少指定 IP 和掩码就足够了,但在我的实验室中,这样的一组启动效果相当差,我不得不将其扩展为上面指定的。

幕后的对象存储,或者如何成为自己的服务提供商

退出编辑器后,您需要运行 update_deploy /home/admin/ECS-CommunityEdition/deploy.yml,如果一切都正确完成,则会明确报告这一点。

幕后的对象存储,或者如何成为自己的服务提供商

然后您仍然需要运行 videoploy,等待环境更新,您可以使用 ova-step1 命令开始安装本身,并在成功完成后使用 ova-step2 命令。 重要提示:不要手动停止脚本! 某些步骤可能需要花费大量时间,第一次尝试可能无法完成,并且可能看起来一切都已损坏。 无论如何,你需要等待脚本自然完成。 最后您应该会看到与此类似的消息。

幕后的对象存储,或者如何成为自己的服务提供商

现在我们终于可以使用我们知道的IP打开WebUI控制面板了。 如果当前未更改配置,则默认帐户将为root/ChangeMe。 您甚至可以立即使用我们的 S3 兼容存储。 它可在 HTTP 端口 9020 和 HTTPS 端口 9021 上使用。 同样,如果没有任何更改,则 access_key: object_admin1 和 Secret_key: ChangeMeChangeMeChangeMeChangeMeChangeMe。

但我们不要操之过急,按顺序开始吧。

幕后的对象存储,或者如何成为自己的服务提供商

当您第一次登录时,您将被强制将密码更改为正确的密码。 主仪表板非常清晰,所以让我们做一些比解释明显指标更有趣的事情。 例如,让我们创建一个用于访问存储的用户。 在服务提供商的世界中,这些人被称为租户。 这是在“管理”>“用户”>“新对象用户”中完成的

幕后的对象存储,或者如何成为自己的服务提供商

创建用户时,我们需要指定一个命名空间。 从技术上讲,没有什么可以阻止我们创建尽可能多的用户。 反之亦然。 这使您可以独立管理每个租户的资源。

因此,我们选择我们需要的功能并生成用户密钥。 S3/Atmos 对我来说就足够了。 并且不要忘记保存密钥😉

幕后的对象存储,或者如何成为自己的服务提供商

用户已创建,现在是时候为他分配一个存储桶了。 转至管理 > 存储桶并填写必填字段。 这里一切都很简单。

幕后的对象存储,或者如何成为自己的服务提供商

现在我们已做好一切准备,可以在战斗中使用 S3 存储了。

设置 Veeam

因此,正如我们所记得的,对象存储的主要用途之一是长期存储很少访问的信息。 一个理想的例子是需要在远程站点存储备份。 在 Veeam Backup & Replication 中,此功能称为容量层。

让我们开始设置,将 Dell ECS CE 添加到 Veeam 界面。 在“备份基础架构”选项卡上,启动“添加新存储库向导”并选择“对象存储”。

幕后的对象存储,或者如何成为自己的服务提供商

让我们选择这一切的初衷——S3 兼容。

幕后的对象存储,或者如何成为自己的服务提供商

在出现的窗口中,输入所需的名称并转到“帐户”步骤。 此处您需要在表格中指定服务点 https://your_IP:9021,可以保留该区域并添加创建的用户。 如果您的存储位于远程站点,则需要门服务器,但这已经是优化基础设施的主题和单独的文章,因此您可以安全地在此处跳过它。

幕后的对象存储,或者如何成为自己的服务提供商

如果所有内容均指定并配置正确,则会出现有关证书的警告,然后出现一个带有存储桶的窗口,您可以在其中为我们的文件创建文件夹。

幕后的对象存储,或者如何成为自己的服务提供商

我们完成向导直至最后并享受结果。

幕后的对象存储,或者如何成为自己的服务提供商

下一步是创建一个新的横向扩展备份存储库,或者将我们的 S3 添加到现有备份存储库中 - 它将用作归档存储的容量层。 当前版本中没有像常规存储库那样直接使用 S3 兼容存储的功能。 要实现这一目标,需要解决太多相当不明显的问题,但一切皆有可能。
转到存储库设置并启用容量层。 那里的一切都是透明的,但有一个有趣的细微差别:如果您希望所有数据尽快发送到对象存储,只需将其设置为 0 天即可。

幕后的对象存储,或者如何成为自己的服务提供商

完成向导后,如果您不想等待,可以在存储库上按 ctrl+RMB,强制启动 Tiering 作业并观察图表爬行。

幕后的对象存储,或者如何成为自己的服务提供商

目前为止就这样了。 我认为我成功地表明了块存储并不像人们想象的那么可怕。 是的,有针对货车和小型推车的解决方案和选项,但您无法在一篇文章中涵盖所有内容。 那么让我们在评论中分享我们的经验。

来源: habr.com

添加评论