Skip to main content
简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。

StorageGRID Swift REST API 操作

贡献者

在 Swift REST API 中添加了特定于 StorageGRID 系统的操作。

获取容器一致性请求

"一致性控制" 在不同存储节点和站点之间的对象可用性与这些对象的一致性之间取得平衡。使用获取容器一致性请求,您可以确定应用于特定容器的一致性级别。

请求

请求 HTTP 标头 Description

X-Auth-Token

指定要用于请求的帐户的 Swift 身份验证令牌。

X-nta-sg-sg-sg-一致性

指定请求的类型、其中 true =获取容器一致性、和 false =获取容器。

主机

请求所定向到的主机名。

请求示例

GET /v1/28544923908243208806/Swift container
X-Auth-Token: SGRD_3a877009a2d24cb1801587bfa9050f29
x-ntap-sg-consistency: true
Host: test.com

响应

响应 HTTP 标头 Description

Date

响应的日期和时间。

连接

与服务器的连接是打开还是关闭。

X-Trans-ID

请求的唯一事务标识符。

内容长度

响应正文的长度。

X-nta-sg-sg-sg-一致性

应用于容器的一致性控制级别。支持以下值:

  • 全部 * :所有节点均立即接收数据,否则请求将失败。

  • 强 - 全局 * :保证所有站点中所有客户端请求的写入后读一致性。

  • 强站点 * :保证站点内所有客户端请求的写入后读一致性。

读后新写入:(默认)为新对象提供读后写入一致性、并最终为对象更新提供一致性。提供高可用性和数据保护保证。建议用于大多数情况。

可用:为新对象和对象更新提供最终一致性。对于S3存储分段、请仅在需要时使用(例如、对于包含很少读取的日志值的存储分段、或者对于不存在的密钥执行HEAD或GET操作)。S3 FabricPool 存储分段不支持。

响应示例

HTTP/1.1 204 No Content
Date: Sat, 29 Nov 2015 01:02:18 GMT
Connection: CLOSE
X-Trans-Id: 1936575373
Content-Length: 0
x-ntap-sg-consistency: strong-site

提交容器一致性请求

使用 PUT 容器一致性请求可以指定要应用于对容器执行的操作的一致性级别。默认情况下,使用 read-after-new-write 一致性级别创建新容器。

请求

请求 HTTP 标头 Description

X-Auth-Token

要用于请求的帐户的 Swift 身份验证令牌。

X-nta-sg-sg-sg-一致性

要应用于容器上的操作的一致性控制级别。支持以下值:

  • 全部 * :所有节点均立即接收数据,否则请求将失败。

  • 强 - 全局 * :保证所有站点中所有客户端请求的写入后读一致性。

  • 强站点 * :保证站点内所有客户端请求的写入后读一致性。

读后新写入:(默认)为新对象提供读后写入一致性、并最终为对象更新提供一致性。提供高可用性和数据保护保证。建议用于大多数情况。

可用:为新对象和对象更新提供最终一致性。对于S3存储分段、请仅在需要时使用(例如、对于包含很少读取的日志值的存储分段、或者对于不存在的密钥执行HEAD或GET操作)。S3 FabricPool 存储分段不支持。

Host

请求所定向到的主机名。

一致性控制和 ILM 规则如何交互以影响数据保护

您可以自由选择 "一致性控制" ILM规则会影响对象的保护方式。这些设置可以进行交互。

例如、存储对象时使用的一致性控制会影响对象元数据的初始放置、而会影响 "加热行为" 为ILM规则选择此选项会影响对象副本的初始放置。由于 StorageGRID 需要访问对象的元数据及其数据来满足客户端请求,因此为一致性级别和载入行为选择匹配的保护级别可以提供更好的初始数据保护和更可预测的系统响应。

一致性控制和 ILM 规则如何交互的示例

假设您有一个双站点网格,其中包含以下 ILM 规则和以下一致性级别设置:

  • * ILM 规则 * :创建两个对象副本,一个在本地站点,一个在远程站点。此时将选择严格的载入行为。

  • * 一致性级别 * : strong-global (对象元数据会立即分发到所有站点。)

当客户端将对象存储到网格时, StorageGRID 会创建两个对象副本并将元数据分发到两个站点,然后再向客户端返回成功。

在载入成功消息时,此对象将受到完全保护,不会丢失。例如,如果本地站点在载入后不久丢失,则远程站点上仍存在对象数据和对象元数据的副本。此对象完全可检索。

如果您改用相同的 ILM 规则和 strong-site 一致性级别,则在将对象数据复制到远程站点之后,在将对象元数据分发到该远程站点之前,客户端可能会收到一条成功消息。在这种情况下,对象元数据的保护级别与对象数据的保护级别不匹配。如果本地站点在载入后不久丢失,则对象元数据将丢失。无法检索此对象。

一致性级别和 ILM 规则之间的关系可能很复杂。如需帮助,请联系 NetApp 。

请求示例

PUT /v1/28544923908243208806/_Swift container_
X-Auth-Token: SGRD_3a877009a2d24cb1801587bfa9050f29
x-ntap-sg-consistency: strong-site
Host: test.com

响应

响应 HTTP 标头 Description

Date

响应的日期和时间。

Connection

与服务器的连接是打开还是关闭。

X-Trans-Id

请求的唯一事务标识符。

Content-Length

响应正文的长度。

响应示例

HTTP/1.1 204 No Content
Date: Sat, 29 Nov 2015 01:02:18 GMT
Connection: CLOSE
X-Trans-Id: 1936575373
Content-Length: 0