[Openstack-operators] Swift account listing

Pete Zaitcev zaitcev at redhat.com
Thu Aug 2 19:45:45 UTC 2012


On Thu, 19 Jul 2012 16:10:06 +0100
"Juan J. Martinez" <juan at memset.com> wrote:

> I guess you can use the list of current accounts from Keystone and
> translate that into the account ring hash.

> swift-get-nodes /etc/swift/account.ring.gz myKeyStoneAcct | grep Hash |
> cut -f2 5819de5a52d5813f5ce95c9121b97652
> 
> Then you can look for hashes that are not in that list of hashes. Per
> storage node you should check:
> 
>  /srv/node/$0/accounts/$1/*/$2/

The point is to use Swift itself _and_ Keystone, in order to find
discrepancies or "orphan" accounts. I ended using listdir for now,
since our installation is very small, so directories fit in memory.
Code is here:
 https://github.com/zaitcev/swift-report

Output looks like this:

15051/4a7/3acbbe2ab55b81269ff88490a1b574a7 SK zaitcev
60690/f22/ed125debcbadbac11ef93c40dede0f22 SK glance
 5497/6ee/1579e4404e54e5edb53c00f1206696ee SK shared
52389/69e/cca50f1c92b3b7f2a15d6b8e2aaee69e S- -
 3066/787/0bfa11e194ee8889ff1c797a718cf787 SK admin
56328/3d8/dc088209ed71d08a00493c95888583d8 SK testuser

"S" is for accounts found in Swift, "K" is for accounts found in Keystone.

I have a feeling though that I must be reinventing the bicycle here.
Surely someone, somewhere, have written a Swift consistency checker
before.

-- Pete



More information about the OpenStack-operators mailing list