2

假设我使用以下命令在 swift 存储节点上创建了一个容器。

curl -v -X PUT -H 'X-Auth-Token: AUTH_tkf0685272b8f64c80a97727141a64a7ca' http://www.tempwebsite.com:8080/v1/AUTH_test/tempcontainer

如果我签入创建 swift 节点的文件系统,则会在容器文件夹下创建一个新容器。

我现在也可以通过 GET 调用看到这个容器,如下所示:

curl -v -H 'X-Auth-Token: AUTH_tkf0685272b8f64c80a97727141a64a7ca' http://www.tempwebsite.com:8080/v1/AUTH_test/

现在,当我通过 DELETE 调用删除此容器时,如下所示

curl -v -X DELETE -H "X-Auth-Token: AUTH_tkf0685272b8f64c80a97727141a64a7ca" http://www.tempwebsite.com:8080/v1/AUTH_test/tempcontainer

它似乎已被删除,因为当我在删除后进行 GET 调用时,容器不存在并且我得到 404 not found repsonse

但是,文件系统中的容器仍然存在,因为它也是在对象数据文件被转换为墓碑文件的情况下,但这些墓碑文件也不会被删除。(Swift 文档说它们最终会被收割者移除,但是请注意我已经等了超过 4 天,但对象和容器仍然存在。)

请建议。

4

1 回答 1

3

墓碑是为了确保所有副本都被 .ts 清空。reclaim_age 可以在配置文件中设置,例如https://github.com/openstack/swift/blob/master/etc/container-server.conf-sample#L106。默认值为 7 天。

希望能帮助到你。

于 2013-11-14T06:15:36.297 回答