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品牌下的所有项目,包括商业和企业项目,均基于
DELL ECS 社区版本身是成熟软件的迷你版本,可在品牌 Dell EMC ECS 服务器上运行。
我发现了四个主要区别:
- 不支持加密。 这是一种耻辱,但并不重要。
- 织物层缺失。 这个东西负责构建集群、资源管理、更新、监控和存储Docker镜像。 这是已经很令人反感的地方了,但戴尔也可以理解。
- 上一点最恶心的后果:安装完成后无法扩展节点大小。
- 没有技术支持。 这是一个用于测试的产品,不禁止在小型安装中使用,但我个人不敢在那里上传PB级的重要数据。 但从技术上讲,没有人可以阻止你这样做。
大版本里有什么?
让我们驰骋欧洲,探寻铁定的解决方案,以便对生态系统有更全面的了解。
我不会以某种方式确认或反驳 DELL ECS 是最好的本地对象存储这一说法,但如果您对这个主题有什么话要说,我很乐意在评论中阅读。 至少根据版本
从技术角度来看,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 映像所需的资源。 已经更加人性化和现实了。
安装节点本身可以从官方获取
我们启动机器,打开控制台并使用最佳的默认凭据:
- 登录: 管理员
- 密码: 更改我
然后我们运行 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 我们重复删除不存在设备的操作。
一般来说,整个文件非常详细地描述在
退出编辑器后,您需要运行 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 兼容。
在出现的窗口中,输入所需的名称并转到“帐户”步骤。 此处您需要在表格中指定服务点
如果所有内容均指定并配置正确,则会出现有关证书的警告,然后出现一个带有存储桶的窗口,您可以在其中为我们的文件创建文件夹。
我们完成向导直至最后并享受结果。
下一步是创建一个新的横向扩展备份存储库,或者将我们的 S3 添加到现有备份存储库中 - 它将用作归档存储的容量层。 当前版本中没有像常规存储库那样直接使用 S3 兼容存储的功能。 要实现这一目标,需要解决太多相当不明显的问题,但一切皆有可能。
转到存储库设置并启用容量层。 那里的一切都是透明的,但有一个有趣的细微差别:如果您希望所有数据尽快发送到对象存储,只需将其设置为 0 天即可。
完成向导后,如果您不想等待,可以在存储库上按 ctrl+RMB,强制启动 Tiering 作业并观察图表爬行。
目前为止就这样了。 我认为我成功地表明了块存储并不像人们想象的那么可怕。 是的,有针对货车和小型推车的解决方案和选项,但您无法在一篇文章中涵盖所有内容。 那么让我们在评论中分享我们的经验。
来源: habr.com