集群架构¶
访问层¶
大规模部署会将访问层分离出来,该层被认为是对象存储系统的中央枢纽。访问层处理来自客户端的传入 API 请求,并将数据进出系统。该层由前端负载均衡器、ssl 终结器和身份验证服务组成。它运行对象存储系统的(分布式)大脑:代理服务器进程。
注意
如果您想使用 OpenStack Identity API v3 进行身份验证,您可以在 /etc/swift/dispersion.conf 中使用以下选项:auth_version、user_domain_name、project_domain_name 和 project_name。
对象存储架构
由于访问服务器位于自己的层中,您可以扩展读/写访问,而无需考虑存储容量。例如,如果集群位于公共互联网上,需要 SSL 终结,并且对数据访问的需求很高,您可以配置许多访问服务器。但是,如果集群位于专用网络上,主要用于归档目的,则您需要的访问服务器较少。
由于这是一个可以通过 HTTP 地址访问的存储服务,您可以将负载均衡器合并到访问层中。
通常,该层由一组 1U 服务器组成。这些机器使用适量的 RAM,并且网络 I/O 密集。由于这些系统处理每个传入的 API 请求,因此您应该为它们配置两个高吞吐量(10GbE)接口 - 一个用于传入的前端请求,另一个用于后端访问对象存储节点以放置和获取数据。
需要考虑的因素¶
对于大多数面向公众的部署以及在广泛的企业网络中可用的专用部署,您使用 SSL 加密到客户端的流量。SSL 为建立客户端之间的会话增加了显著的处理负载,这就是为什么您必须在访问层中配置更多容量的原因。对于受信任网络上的专用部署,可能不需要 SSL。
存储节点¶
在大多数配置中,五个区域中的每一个都应该具有相同数量的存储容量。存储节点使用合理的内存和 CPU。为了快速返回对象,需要随时可用元数据。对象存储运行服务,不仅用于处理来自访问层的传入请求,还用于运行复制器、审计器和回收器。您可以根据预期的工作负载和所需性能,使用单个千兆或 10 千兆网络接口配置存储节点,尽管使用第二个接口隔离复制流量可能更可取。
对象存储 (swift)
目前,2 TB 或 3 TB 的 SATA 磁盘可以提供良好的性价比。如果您在数据中心有响应迅速的远程操作人员,可以使用桌面级驱动器,如果您没有,可以使用企业级驱动器。
需要考虑的因素¶
您应该记住所需的单线程请求 I/O 性能。该系统不使用 RAID,因此单个磁盘处理每个对象的请求。磁盘性能会影响单线程响应速度。
为了实现更高的表观吞吐量,对象存储系统被设计为处理并发上传/下载。网络 I/O 容量(1GbE、绑定 1GbE 对或 10GbE)应与您所需的读写并发吞吐量需求相匹配。