Ceph 或 Gluster 用于实现大型 NAS

Ceph 或 Gluster 用于实现大型 NAS

我们计划构建 NAS 解决方案,该解决方案主要通过 NFS 和 CIFS 使用,工作量范围从各种归档应用程序到更“实时处理”。NAS 不会用作虚拟机的块存储,因此访问实际上将始终面向文件。

我们主要考虑两种设计,我想请大家提供任何想法、观点、见解和经验。

这两种设计都利用了“某种程度上的分布式存储软件”。这两种设计都将基于商用服务器构建,并应随着我们的发展而扩展。这两种设计都涉及虚拟化,用于实例化将为 NFS 和 CIFS 协议提供服务的“访问虚拟机”——因此从这个意义上讲,访问层与数据层本身是分离的。

第一个设计基于分布式文件系统,如 Gluster 或 CephFS。我们将在那些商用服务器上部署该软件,并将生成的文件系统安装在“访问虚拟机”上,它们将通过 NFS/CIFS 为安装的文件系统提供服务。

第二种设计基于使用 CEPH 的分布式块存储。因此,我们将在这些商用服务器上构建分布式块存储,然后通过虚拟化(如 OpenStack Cinder)将块存储分配到访问 VM 中。在访问 VM 内部,我们将部署 ZFS,它将块存储聚合到单个文件系统中。并且该文件系统将通过 NFS/CIFS 从同一 VM 提供服务。

非常感谢任何建议和见解。我还应该说,我们内部倾向于“怪物虚拟机”方法,因为它的架构似乎更简单(数据分布在块层而不是文件系统层)。

欢呼吧,Prema

答案1

第一个设计

Gluster + (NFS或者集群中的 GaneshaNFS

无访问虚拟机。在这种情况下,Gluster 的架构比 CephFS 更简单。Gluster 在添加节点和容量方面有一些规则。没关系,只要从一开始就做好计划即可。

第二种设计

如果您的目标是拥有单一访问虚拟机来提供 NFS/CIFS,Linux 可以将 Ceph 挂载为块设备。因此,您有如下堆栈:

Linux 中的 NFS/CIFS - Ceph RBD

如果您需要 HA 来访问虚拟机,则添加 HA 集群:

Linux HA 集群中的 NFS/CIFS——Ceph RBD

或者,你可以使用 Ceph RBDCeph iSCSI 网关

需要考虑的事项:

  1. 扩大
  2. 数据保护:2 或 3 个副本、擦除/分片
  3. 为了获得良好的性能,请使用企业级 SATA 和 SSD 磁盘
  4. 在线/离线升级
  5. 其他解决方案:例如 DRBD

相关内容