1996年,世界上第一个对象存储原型出现了。 10年后,Amazon Web Services将推出Amazon S3,并且全世界将开始使用平坦的地址空间来系统地疯狂。 由于元数据的工作及其在不造成负载下垂的情况下进行扩展的能力,对象存储迅速成为大多数云存储服务等的标准。 另一个重要功能是其良好的存储档案和类似的很少使用的文件的能力。 参与数据存储的每个人都为之欣喜,并随身携带了这项新技术。

但是,有传言说,对象存储只是关于大片云的谣言,如果您不需要该死的资本家的解决方案,那么将很难自己制造。 关于其云部署的文章很多,但是关于创建所谓的S3兼容解决方案的信息并不多。
因此,今天我们将弄清楚“使它更像成年人,而不是CEPH和更大的文件”的选项,我们将其中之一进行扩展,并通过Veeam Backup&Replication检查一切正常。 它声称支持使用与S3兼容的存储库,我们将检查此声明。
别人呢?
我建议从对市场和对象存储选项的简短概述开始。 公认的领导者和标准是Amazon S3。 两个最接近的追求者是Microsoft Azure Blob存储和IBM Cloud Object Storage。
这就是全部吗? 真的没有其他竞争对手吗? 当然,有竞争者,但是有人像Google Cloud或Oracle Cloud Object Storage这样以自己的方式,对S3 API的支持不完整。 有人正在使用较旧版本的API,例如百度云。 还有一些,例如日立云,要求使用特殊的逻辑,这肯定会造成困难。 无论如何,每个人都可以与亚马逊进行比较,后者可以被视为行业标准。
但是本地解决方案还有很多选择,因此让我们确定对我们很重要的标准。 原则上,仅两个就足够了:支持S3 API和使用v4签名。 放心,作为未来的客户,我们只对交互界面感兴趣,而存储本身的内部厨房对我们而言并不那么有趣。
好吧,很多解决方案都适合这些简单的条件。 例如,经典的企业重量级人物:
- DellEMC ECS
- NetApp S3 StorageGrid
- Nutanix铲斗
- 纯存储FlashBlade和StorReduce
- 华为FusionStorage
开箱即用的纯软件解决方案利基市场:
甚至那些喜欢在组装后仔细处理文件的人也没有受到冒犯:
- 纯头孢
- Minio(Linux版本,对于Windows版本有很多问题)
该列表远远不够完整,可以在评论中进行讨论。 只需记住在实现之前除了兼容性API之外还要检查系统性能。 您需要做的最后一件事是由于挂起请求而导致丢失数TB的数据。 因此,随时进行压力测试。 通常,所有处理大量数据的成人软件至少都具有兼容性报告。 对于Veeam,有一个完整的相互测试程序 ,使您可以安全地声明我们的产品与特定设备的完全兼容性。 这已经是双向的工作,并不总是那么快,但是我们正在不断扩展经过测试的解决方案的列表 。
站在一起
我想谈谈选择考试科目的问题。
首先,我想找到一个立即可用的选项。 好吧,或者至少在没有做出额外手势的情况下,他将获得最大的收益。 晚上用铃鼓跳舞并拿起控制台非常令人兴奋,但有时我希望它能立即工作。 并且这种解决方案的一般可靠性通常更高。 是的,冒险主义的精神在我们里面消失了,我们不再爬上心爱的女人的窗户,等等。(c)。
其次,老实说,相当大的公司都需要使用对象存储,因此在寻求企业级解决方案不仅令人尴尬甚至受到鼓励的情况下,就是这种情况。 无论如何,我还不知道有人因购买此类解决方案而被解雇。
基于上述内容,我选择了Dell EMC ECS Community Edition 。 这是一个非常有趣的项目,我认为有必要告诉您。
查看Community Edition附加组件时,首先想到的是,它只是完整ECS的描图纸,但有些限制可以通过购买许可证来消除。 所以不!
请记住:
!!! Community Edition是一个单独的项目,旨在进行测试,并且没有Dell的技术支持!
即使您确实愿意,也无法将其转变为成熟的ECS。
让我们来了解
许多人认为,如果您需要对象存储,则Dell EMC ECS几乎是最佳的解决方案。 ECS品牌下的所有项目,包括商业和企业项目,都位于github上 。 戴尔的一种善意姿态。 除在其品牌硬件上运行的软件外,还有一个开源版本,甚至可以在云中,至少在虚拟机上,至少在容器中,至少在任何硬件上部署。 展望未来-我们还将使用OVA版本。
DELL ECS社区版本身是在Dell EMC ECS品牌服务器上运行的功能全面的软件的微型版本。
我强调了四个主要区别:
- 不支持加密。 这是一个耻辱,但并不关键。
- 缺少结构层。 这件事负责Docker映像的集群构建,资源管理,更新,监视和存储。 在这里已经很令人失望了,但是戴尔也可以理解。
- 上一段最令人讨厌的结果是:安装完成后无法扩展节点的大小。
- 没有技术支持。 这是一种用于测试的产品,不建议在小型安装中使用,但就我个人而言,我不敢在那里上传PB级的重要数据。 但是从技术上讲,没有人可以阻止您这样做。

大版本有什么?
我们奔赴欧洲寻求铁解决方案,以更全面地了解生态系统。
我不会确认或驳斥DELL ECS是最好的本地对象存储的说法,但是如果您对此主题有任何意见,我将在评论中愉快地阅读。 无论如何,根据IDC MarketScape 2018的数据,戴尔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 RAM
- 操作系统16GB
- 1TB直接用于存储
- 最新的CentOS最低发行版
如果您想一开始就自己安装所有内容,则可以使用此选项。 对于我们来说,此选项不相关,因为 我将使用OVA映像进行部署。
但是无论如何,即使对于一个节点,要求也非常苛刻,如果严格遵守法律,则有四个这样的节点。
但是,ECS CE开发人员生活在现实世界中,即使使用单个节点也可以成功安装,并且最低要求如下:
- 4个vCPU
- 16 GB RAM
- 操作系统16 GB
- 104 GB自我存储
部署OVA映像需要这些资源。 已经更加人性化和现实化了。
安装节点本身可以在官方github中获取 。 还提供了有关多合一部署的详细文档,但是您仍然可以阅读官方的readthedocs 。 因此,我们不会详细介绍OVA的部署,没有技巧。 最主要的是-启动前不要忘记,将磁盘扩展到所需的卷,或连接必要的卷。
我们启动汽车,打开控制台并使用最佳默认信用:
然后,我们启动sudo nmtui并配置网络接口-IP /掩码,DNS和门。 记住CentOS minimal没有网络工具,我们通过ip addr检查设置。

并且由于海洋只大胆地提交,因此我们进行yum更新,然后重新启动。 实际上,这很安全,因为 所有部署都通过剧本完成,所有重要的docker软件包都锁定在当前版本上。
现在是时候编辑安装脚本了。 没有适合您的漂亮窗口或伪UI,这些都通过您喜欢的文本编辑器完成。 纯粹从技术上讲,有两种方法:您可以使用句柄启动每个命令,也可以立即启动videploy配置器。 它将简单地在vim中打开配置,并在退出时运行其检查。 但是刻意简化生活并不有趣,因此我们将再组两个团队。 虽然没有意义,但我警告过您=)
因此,我们使用ECS-CommunityEdition / deploy.xml进行了最佳的最小更改,以使ECS可以正常工作。 参数列表可以缩短,但我确实这样做:
- License_Accepted:true您不能更改它,然后在部署时将明确要求您接受它并显示一个漂亮的短语。 也许这甚至是一个复活节彩蛋。

- 取消自动名称和自定义行的注释:为节点输入至少一个所需的名称-主机名将在安装过程中被替换。
- install_node:192.168.1.1指定真实IP节点。 在本例中,我们表示与nmtui中的相同
- dns_domain:输入您的域。
- dns_servers:输入您的dns。
- ntp_servers:您可以指定任何一个。 我从池0.pool.ntp.org中获取了第一个(它变成了91.216.168.42)
- 自动命名:自定义如果不取消注释,月球将称为Luna。
- ecs_block_devices:
/开发/ SDB
由于某些未知的原因,可能不存在块存储设备/ dev / vda - storage_pools:
成员:
192.168.1.1这里我们再次指出真实的IP节点 - ecs_block_devices:
/ dev / sdb重复剪切不存在的设备的操作。
通常,整个文件在文档中有详细描述,但谁会在如此忙碌的时间内阅读它。 它还说,最小值足以指定IP和掩码,但是在我的实验室中,这种设置并不理想,因此我不得不扩展到上面。

退出编辑器后,运行update_deploy /home/admin/ECS-CommunityEdition/deploy.yml,如果一切正确完成,将明确报告该情况。

然后,您仍然必须启动videploy,等待环境更新,然后可以使用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备份和复制中,此功能称为“容量层”。
让我们通过将Dell ECS CE添加到Veeam界面开始设置。 在“备份基础结构”选项卡上,启动“添加新存储库向导”,然后选择“对象存储”项。

我们选择所有内容-S3兼容。

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

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

我们经历了向导的最后并享受了结果。

在下一步中,您需要创建一个新的横向扩展备份存储库,或将S3添加到现有存储库中-它将用作归档存储的容量层。 当前版本中不包含直接使用与S3兼容的存储库的功能,例如常规存储库。 为此,必须解决太多而不明显的问题,但是一切都可以。
我们进入存储库设置并打开“容量层”。 那里的一切都是透明的,但是有一个有趣的细微差别:如果您希望将所有数据尽快发送到对象存储,只需将其设置为0天即可。

传递向导后,如果不想等待,可以单击存储库上的ctrl + RMB,强制启动Tiering作业并观察图表爬网。

现在就这些了。 我认为,该任务表明,块存储并不像我通常认为的那样可怕。 是的,有针对货车和小型手推车的解决方案和选项,但您无法在一篇文章中涵盖所有内容。 因此,让我们在评论中分享经验。