Comment 7 for bug 1659147

Revision history for this message
cindy b (cindybatt) wrote :

Here it is.. it outputs partition 78 but there is no 78...

root@hlxkvm037:/opt/swift/data/1/objects# swift-get-nodes /etc/swift/object.ring.gz swift NEWTEST2 deserts.JPG

Account swift
Container NEWTEST2
Object deserts.JPG

Partition 78
Hash 4e131dd79c51feb33071458643e60016

Server:Port Device 135.165.181.200:6000 1
Server:Port Device 135.165.181.198:6000 1
Server:Port Device 135.165.181.201:6000 1
Server:Port Device 135.165.181.199:6000 1
Server:Port Device 135.165.181.202:6000 1

curl -I -XHEAD "http://135.165.181.200:6000/1/78/swift/NEWTEST2/deserts.JPG"
curl -I -XHEAD "http://135.165.181.198:6000/1/78/swift/NEWTEST2/deserts.JPG"
curl -I -XHEAD "http://135.165.181.201:6000/1/78/swift/NEWTEST2/deserts.JPG"
curl -I -XHEAD "http://135.165.181.199:6000/1/78/swift/NEWTEST2/deserts.JPG"
curl -I -XHEAD "http://135.165.181.202:6000/1/78/swift/NEWTEST2/deserts.JPG"

Use your own device location of servers:
such as "export DEVICE=/srv/node"
ssh 135.165.181.200 "ls -lah ${DEVICE:-/srv/node*}/1/objects/78/016/4e131dd79c51feb33071458643e60016"
ssh 135.165.181.198 "ls -lah ${DEVICE:-/srv/node*}/1/objects/78/016/4e131dd79c51feb33071458643e60016"
ssh 135.165.181.201 "ls -lah ${DEVICE:-/srv/node*}/1/objects/78/016/4e131dd79c51feb33071458643e60016"
ssh 135.165.181.199 "ls -lah ${DEVICE:-/srv/node*}/1/objects/78/016/4e131dd79c51feb33071458643e60016"
ssh 135.165.181.202 "ls -lah ${DEVICE:-/srv/node*}/1/objects/78/016/4e131dd79c51feb33071458643e60016"

note: `/srv/node*` is used as default value of `devices`, the real value is set in the config file on each storage node

oot@hlxkvm037:/opt/swift/data/1/objects# ls
10 121 13 138 146 165 17 176 186 19 196 201 204 216 224 239 244 252 27 31 37 4 42 5 59 70 80 90 97
103 126 131 141 154 166 172 182 188 192 2 202 206 218 225 24 247 254 28 33 38 40 43 55 64 71 82 91 98
11 129 136 142 157 168 174 185 189 194 200 203 21 22 227 240 249 26 29 35 39 41 45 56 65 72 84 95

I'm really sorry, I find this confusing sort of..In summary: Partition dirs and their subdirs are created on demand when PUT object paths hash to them. swift-get-nodes returns the predicted file locations whether or not they yet exist on disk.

The object was already uploaded....so it may not hash yet??...and if so, could older, slower storage cause that to occur.