了解本地流量管理器负载平衡器
浏览有关本地流量管理器负载平衡器的指导、并确定最佳配置。
下面介绍了配置第三方负载平衡器的一般指导。与负载平衡器管理员一起确定适合您环境的最佳配置。
创建存储节点的资源组
将StorageGRID存储节点分组到资源池或服务组中(术语可能因特定负载平衡器而异)。StorageGRID存储节点会在以下端口上提供S3 API:
-
S3 HTTPS:18082
-
S3 HTTP:18084
大多数客户选择通过标准HTTPS和HTTP端口(443和80)在虚拟服务器上提供API。
每个StorageGRID站点默认需要三个存储节点、其中两个节点必须运行状况良好。 |
运行状况检查
第三方负载平衡器需要一种方法来确定每个节点的运行状况及其接收流量的资格。NetApp建议使用HTTP OPTIONS
方法执行运行状况检查。负载平衡器会向每个存储节点发出HTTP OPTIONS
请求、并需要 200
状态响应。
如果任何存储节点未提供 200
响应、则该节点将无法处理存储请求。您的应用程序和业务要求应确定这些检查的超时时间以及负载平衡器所执行的操作。
例如、如果数据中心1中的四个存储节点中有三个已关闭、您可以将所有流量定向到数据中心2。
建议的轮询间隔为每秒一次、在三次检查失败后将节点标记为脱机。
S3运行状况检查示例
在以下示例中,我们会发送 OPTIONS
并检查 200 OK
。我们使用 OPTIONS
、因为Amazon S3)不支持未经授权的请求。
curl -X OPTIONS https://10.63.174.75:18082 --verbose --insecure * Rebuilt URL to: https://10.63.174.75:18082/ * Trying 10.63.174.75... * TCP_NODELAY set * Connected to 10.63.174.75 (10.63.174.75) port 18082 (#0) * TLS 1.2 connection using TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 * Server certificate: webscale.stl.netapp.com * Server certificate: NetApp Corp Issuing CA 1 * Server certificate: NetApp Corp Root CA > OPTIONS / HTTP/1.1 > Host: 10.63.174.75:18082 > User-Agent: curl/7.51.0 > Accept: / > < HTTP/1.1 200 OK < Date: Mon, 22 May 2017 15:17:30 GMT < Connection: KEEP-ALIVE < Server: StorageGRID/10.4.0 < x-amz-request-id: 3023514741
基于文件或内容的运行状况检查
通常、NetApp不建议执行基于文件的运行状况检查。例如,通常在具有只读策略的存储分段中创建一个小文件 —healthcheck.htm
。然后、负载平衡器会提取并评估此文件。这种方法有几个缺点:
-
*取决于单个帐户。*如果禁用了拥有该文件的帐户、则运行状况检查将失败、并且不会处理任何存储请求。
-
*数据保护规则。*默认数据保护方案采用双副本方法。在这种情况下、如果托管运行状况检查文件的两个存储节点不可用、则运行状况检查将失败、并且存储请求不会发送到运行状况良好的存储节点、从而使网格脱机。
-
*审核日志膨胀。*负载平衡器每X分钟从每个存储节点提取一次文件、从而创建许多审核日志条目。
-
*资源密集型。*每隔几秒钟从每个节点提取运行状况检查文件会占用网格和网络资源。
如果需要执行基于内容的运行状况检查、请使用具有专用S3存储分段的专用租户。
会话持久性
会话持久性(即、保持性)是指允许给定HTTP会话持续的时间。默认情况下、存储节点会在10分钟后丢弃会话。持久性越长、性能越好、因为应用程序不必为每个操作重新建立会话;但是、保持这些会话处于打开状态会占用资源。如果您确定工作负载将受益、则可以减少第三方负载平衡器上的会话持久性。
虚拟托管模式寻址
现在、虚拟托管模式已成为AWS S3的默认方法、虽然StorageGRID和许多应用程序仍支持路径模式、但最佳做法是实施虚拟托管模式支持。虚拟托管模式请求的主机名包含分段。
要支持虚拟托管模式、请执行以下操作:
-
支持通配符DNS查找:*。.s3.company.com
-
使用带有主题可选名称的SSL证书支持通配符:*。.s3.company.com一些客户已经表达了有关使用通配符证书的安全问题。StorageGRID继续支持路径模式访问、FabricPool等关键应用程序也是如此。也就是说、如果没有虚拟托管支持、某些S3 API调用会失败或行为不正确。
SSL终止
第三方负载平衡器上的SSL终止具有安全优势。如果负载平衡器受损、网格将被分割。
支持三种配置:
-
*SSL传递。*SSL证书作为自定义服务器证书安装在StorageGRID上。
-
*SSL终止和重新加密(建议)。*如果您已经在负载平衡器上执行SSL证书管理、而不是在StorageGRID上安装SSL证书、则这可能会很有用。此配置还具有将攻击面限制在负载平衡器上的其他安全优势。
-
*使用HTTP终止SSL。*在此配置中、SSL将在第三方负载平衡器上终止、负载平衡器与StorageGRID之间的通信将不进行加密、以利用SSL卸载功能(由于SSL库嵌入在现代处理器中、因此优势有限)。
直通配置
如果您要为负载平衡器配置直通、则必须在StorageGRID上安装证书。转到菜单:配置[服务器证书>对象存储API服务端点服务器证书]。
源客户端IP可见性
StorageGRID 11.4引入了可信第三方负载平衡器的概念。要将客户端应用程序IP转发到StorageGRID、必须配置此功能。有关详细信息、请参见 "如何配置StorageGRID以使用第三方第7层负载平衡器。"
要启用XFF标头以查看客户端应用程序的IP、请执行以下步骤:
-
在审核日志中记录客户端IP。
-
使用
aws:SourceIp
S3存储分段或组策略。
负载平衡策略
大多数负载平衡解决方案都提供多种负载平衡策略。以下是常见策略:
-
*循环*通用配置、但节点较少且传输量较大、从而使单个节点堵塞。
-
*最少连接。*非常适合小型对象工作负载和混合对象工作负载、从而使连接平等分布到所有节点。
随着可供选择的存储节点数量不断增加、算法的选择就不再那么重要了。
数据路径
所有数据流经本地流量管理器负载平衡器。StorageGRID不支持直接服务器路由(DSR)。
验证连接分布
要验证您的方法是否在存储节点之间均匀分布负载、请检查给定站点中每个节点上已建立的会话:
-
*用户界面方法。*转到菜单:Support[Metrics > S3 Overview > LDR HTTP S语]
-
*Metrics API.*使用
storagegrid_http_sessions_incoming_currently_established