提交容器一致性请求
使用 PUT 容器一致性请求可以指定要应用于对容器执行的操作的一致性级别。默认情况下,使用 read-after-new-write
一致性级别创建新容器。
请求
请求 HTTP 标头 | Description |
---|---|
|
要用于请求的帐户的 Swift 身份验证令牌。 |
|
要应用于容器上的操作的一致性控制级别。支持以下值:
|
|
请求所定向到的主机名。 |
一致性控制和 ILM 规则如何交互以影响数据保护
您选择的一致性控制和 ILM 规则都会影响对象的保护方式。这些设置可以进行交互。
例如,存储对象时使用的一致性控制会影响对象元数据的初始放置,而为 ILM 规则选择的载入行为会影响对象副本的初始放置。由于 StorageGRID 需要访问对象的元数据及其数据来满足客户端请求,因此为一致性级别和载入行为选择匹配的保护级别可以提供更好的初始数据保护和更可预测的系统响应。
ILM 规则可以使用以下载入行为:
-
* 严格 * :必须创建 ILM 规则中指定的所有副本,才能将成功返回给客户端。
-
* 平衡 * : StorageGRID 尝试在载入时创建 ILM 规则中指定的所有副本;如果无法创建,则创建临时副本并将成功返回给客户端。在可能的情况下,将创建 ILM 规则中指定的副本。
-
* 双提交 * : StorageGRID 会立即为对象创建临时副本,并将成功返回给客户端。如果可能,将创建 ILM 规则中指定的副本。
在为 ILM 规则选择载入行为之前,请阅读有关通过信息生命周期管理管理对象的说明中有关这些设置的完整问题描述 。 |
一致性控制和 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 |
---|---|
|
响应的日期和时间。 |
|
与服务器的连接是打开还是关闭。 |
|
请求的唯一事务标识符。 |
|
响应正文的长度。 |
响应示例
HTTP/1.1 204 No Content Date: Sat, 29 Nov 2015 01:02:18 GMT Connection: CLOSE X-Trans-Id: 1936575373 Content-Length: 0