负载平衡注意事项
您可以使用负载平衡处理来自S3和Swift客户端的载入和检索工作负载。
什么是负载平衡?
当客户端应用程序从StorageGRID 系统保存或检索数据时、StorageGRID 使用负载平衡器管理载入和检索工作负载。负载平衡通过在多个存储节点之间分布工作负载、最大限度地提高速度和连接容量。
StorageGRID 负载平衡器服务安装在所有管理节点和所有网关节点上,并提供第 7 层负载平衡。它会终止客户端请求,检查请求并与存储节点建立新的安全连接。
将客户端流量转发到存储节点时,每个节点上的负载平衡器服务会独立运行。通过加权过程,负载平衡器服务会将更多请求路由到 CPU 可用性更高的存储节点。
虽然建议使用 StorageGRID 负载平衡器服务来平衡负载,但您可能希望集成第三方负载平衡器。有关信息,请联系您的 NetApp 客户代表或参阅 "TR-4626 : StorageGRID 第三方和全局负载平衡器"。 |
我需要多少个负载平衡节点?
作为一般最佳实践, StorageGRID 系统中的每个站点都应包含两个或更多具有负载平衡器服务的节点。例如,一个站点可能包含两个网关节点,或者同时包含一个管理节点和一个网关节点。无论您使用的是 SG100 或 SG1000 服务设备,裸机节点还是基于虚拟机( VM )的节点,确保每个负载平衡节点都有足够的网络,硬件或虚拟化基础架构。
什么是负载平衡器端点?
负载平衡器端点定义了传入和传出客户端应用程序请求用来访问包含负载平衡器服务的节点的端口和网络协议(HTTPS或HTTP)。端点还可以定义客户端类型(S3或Swift)、绑定模式以及允许或阻止的租户列表(可选)。
要创建负载平衡器端点,请选择*配置*>*网络*>*负载平衡器端点*或完成FabricPool 和S3设置向导。有关说明:
端口注意事项
对于您创建的第一个端点、负载平衡器端点的端口默认为10433、但您可以指定介于1到65535之间的任何未使用的外部端口。如果使用端口80或443、则端点将仅在网关节点上使用负载平衡器服务。这些端口在管理节点上预留。如果对多个端点使用同一端口、则必须为每个端点指定不同的绑定模式。
不允许其他网格服务使用的端口。请参见 "网络端口参考"。
网络协议注意事项
在大多数情况下、客户端应用程序和StorageGRID 之间的连接应使用传输层安全(Transport Layer Security、TLS)加密。支持在不使用TLS加密的情况下连接到StorageGRID 、但不建议这样做、尤其是在生产环境中。为StorageGRID 负载平衡器端点选择网络协议时,应选择*HTTPS*。
负载平衡器端点证书的注意事项
如果选择*HTTPS*作为负载平衡器端点的网络协议,则必须提供安全证书。在创建负载平衡器端点时、您可以使用以下三个选项中的任何一个:
-
上传签名证书(建议)。此证书可以由公共信任的证书颁发机构(CA)或私有证书颁发机构(CA)签名。最佳做法是、使用公共信任的CA服务器证书来保护连接安全。与生成的证书不同、由CA签名的证书可以无干扰地轮换、这有助于避免过期问题。
在创建负载平衡器端点之前、您必须获取以下文件:
-
自定义服务器证书文件。
-
自定义服务器证书专用密钥文件。
-
(可选)来自每个中间颁发证书颁发机构的证书的CA包。
-
-
生成自签名证书。
-
使用全局StorageGRID S3和Swift证书。您必须先上传或生成此证书的自定义版本、然后才能为负载平衡器端点选择此证书。请参见 "配置 S3 和 Swift API 证书"。
我需要什么值?
要创建证书、您必须知道S3或Swift客户端应用程序将用于访问端点的所有域名和IP地址。
证书的*Subject DN*(可分辨名称)条目必须包含客户端应用程序将用于StorageGRID 的完全限定域名。例如:
Subject DN: /C=Country/ST=State/O=Company,Inc./CN=s3.storagegrid.example.com
根据需要、此证书可以使用通配符来表示运行负载平衡器服务的所有管理节点和网关节点的完全限定域名。例如: *.storagegrid.example.com
使用*通配符表示 adm1.storagegrid.example.com
和 gn1.storagegrid.example.com
。
如果您计划使用S3虚拟托管模式请求,则证书还必须为每个包含一个*备用名称*条目 "S3端点域名" 您已配置、包括任何通配符名称。例如:
Alternative Name: DNS:*.s3.storagegrid.example.com
如果域名使用通配符、请查看 "服务器证书的强化准则"。 |
您还必须为安全证书中的每个名称定义一个DNS条目。
如何管理即将到期的证书?
如果用于保护S3应用程序和StorageGRID 之间连接的证书到期、则该应用程序可能会暂时无法访问StorageGRID。 |
要避免证书到期问题、请遵循以下最佳实践:
-
请仔细监控任何警告证书到期日期即将到来的警报,例如S3和Swift API*警报的*负载平衡器端点证书到期*和*全局服务器证书到期。
-
请始终保持StorageGRID 和S3应用程序的证书版本同步。如果要替换或续订用于负载平衡器端点的证书、则必须替换或续订S3应用程序使用的等效证书。
-
使用公共签名的CA证书。如果使用由CA签名的证书、则可以无系统地替换即将到期的证书。
-
如果您已生成自签名StorageGRID 证书、并且该证书即将过期、则必须在现有证书过期之前手动替换StorageGRID 和S3应用程序中的证书。
绑定模式的注意事项
通过绑定模式、您可以控制可用于访问负载平衡器端点的IP地址。如果端点使用绑定模式、则客户端应用程序仅在使用允许的IP地址或其对应的完全限定域名(FQDN)时才能访问该端点。使用任何其他IP地址或FQDN的客户端应用程序无法访问此端点。
您可以指定以下任意绑定模式:
-
全局(默认):客户端应用程序可以使用任何网关节点或管理节点的IP地址、任何网络上任何HA组的虚拟IP (VIP)地址或相应的FQDN访问端点。除非需要限制端点的可访问性、否则请使用此设置。
-
* HA组的虚拟IP *。客户端应用程序必须使用HA组的虚拟IP地址(或相应的FQDN)。
-
节点接口。客户端必须使用选定节点接口的IP地址(或相应FQDN)。
-
节点类型。根据您选择的节点类型、客户端必须使用任何管理节点的IP地址(或相应的FQDN)或任何网关节点的IP地址(或相应的FQDN)。
租户访问注意事项
租户访问是一项可选的安全功能、可用于控制哪些StorageGRID 租户帐户可以使用负载平衡器端点来访问其分段。您可以允许所有租户访问某个端点(默认)、也可以为每个端点指定允许或阻止的租户列表。
您可以使用此功能在租户及其端点之间提供更好的安全隔离。例如、您可以使用此功能来确保一个租户所拥有的绝密或高度机密材料始终不会被其他租户完全访问。
出于访问控制的目的、租户是根据客户端请求中使用的访问密钥来确定的、如果在请求中未提供访问密钥(例如匿名访问)、则使用存储分段所有者来确定租户。 |
租户访问示例
要了解此安全功能的工作原理、请考虑以下示例:
-
您已创建两个负载平衡器端点、如下所示:
-
*公共*端点:使用端口10443并允许所有租户访问。
-
*top密钥*端点:使用端口10444并仅允许访问*top密钥*租户。系统将阻止所有其他租户访问此端点。
-
-
。
top-secret.pdf
位于*top密钥*租户拥有的存储分段中。
以访问 top-secret.pdf
,“Top SECRELE*”租户中的用户可以向其发送问题描述 GET请求 https://w.x.y.z:10444/top-secret.pdf
。由于允许此租户使用10444端点、因此用户可以访问此对象。但是、如果属于任何其他租户的用户向同一URL发出相同请求、他们将收到"立即拒绝访问"消息。即使凭据和签名有效、访问也会被拒绝。
CPU 可用性
在向存储节点转发 S3 或 Swift 流量时,每个管理节点和网关节点上的负载平衡器服务会独立运行。通过加权过程,负载平衡器服务会将更多请求路由到 CPU 可用性更高的存储节点。节点 CPU 负载信息每隔几分钟更新一次,但权重可能会更频繁地更新。即使节点报告利用率为 100% 或未能报告利用率,也会为所有存储节点分配最小基本权重值。
在某些情况下,有关 CPU 可用性的信息仅限于负载平衡器服务所在的站点。