Atom feed of this document
  

 账户清道夫

在后台,账户清道夫从已经删除的账户中移除数据库。

通过向账户存储URL发出一个DELETE请求来标记账户要删除。此动作会设置账户数据库中的表account_stat的status一栏,以及副本为DELETED,标记账户的数据要删除。

通常,系统是不提供指定保留时间和标记不删除功能的。然而,你可以在account-server.conf 中的[account-reaper]一节设置 delay_reaping的值来延迟实际删除数据的行为。此时,要撤销删除的话,你要直接更新账户数据库副本,设置状态一栏为空字符,然后更新put_timestamp要大于delete_timestamp。

[注意]注意

执行此任务的工具还处于开发者的开发列表中,所以最好是通过REAST来调用。

在每个账户服务中均运行了账户清道夫,偶尔会扫描服务中的账户数据库,标记某些账户为删除。它仅仅是激发了那个服务是主节点上的账户,所以并不会同时影响到多个账户服务。使用多服务来删除一个账户也许会改进删除的速度,但是需要协调来避免重复。数据删除的速度并不是大的需要关心的问题,更何况大型的账户并不需要经常性的删除。

删除一个账户很简单。对于每个账户容器来说,所有的对象都删除了,那就意味着容器也被删除了。失败的删除请求将不会停止整个过程,但会导致整个过程最终失败(举例来说,如果删除一个对象超时,你就不能再去删除其容器或账户)。账户清道夫会一直尝试删除一个账户直到它为空,之后,数据库回收过程内部的db_replicator会移除数据库文件。

持久性错误状态可能会阻止删除的对象或容器。如果发生了此类事件,你可以在日志文件中看到诸如"Account <name> has not been reaped since <date>"的信息。你可以通过设置account-server.conf 文件的 [account-reaper]一节中的reap_warn_after的值来控制此种纪录。此值的默认值是30天。

Questions? Discuss on ask.openstack.org
Found an error? Report a bug against this page


loading table of contents...