swift-get-nodes简单使用
在参考http://blog.csdn.net/cywosp/article/details/12850645文章对对象的具体物理磁盘位置进行查找时,发现两个问题:
1. 在使用swift+keystone认证方式时,swift-get-nodes后面所带的account参数应该是经过keystone处理过的帐号信息。比如,我使用如下命令:
curl -d '{"auth":{"tenantName": "test-newcomer","passwordCredentials":{"username": "test-swift","password": "testswift"}}}' -H "Content-type:application/json" http://172.1.1.10:35357/v2.0/tokens | python -mjson.tool
在返回值中找到swift相关的publicURL:
http://10.10.10.20:8888/v1/ff5bd8fb39a5429cbd2495576ebff5f7
那么swift-get-nodes后面所带的account参数就应该是ff5bd8fb39a5429cbd2495576ebff5f7。
2. 如果使用错误的account/container/object信息,依然会得到 Partition Hash Server:Port Device这些信息,当然这些信息没有实际意义,因此推断swift-get-nodes只是使用和存储时的相同算法计算获得的一个“should be”结果。并不保证其一定存在。
或许还有更好的查找物理位置的方法,只是我还没了解。