<div dir="ltr"><div>Hello everyone,<br>
<br><br>We have a openstack swift installation for development purposes, and <br>we are facing problems with swift not replicating properly.<br>Its supposed to save always 3 replicas. In my tests, swift places only<br> one copy of the object, and sometimes two, but never 3.<br><br>ring configuration is:<br><br>[root@openstack3 ~]# swift-ring-builder /etc/swift/object.builder <br>/etc/swift/object.builder, build version 11<br>512 partitions, 3.000000 replicas, 2 regions, 3 zones, 5 devices, 0.98 balance, 100.00 dispersion<br>The minimum number of hours before a partition can be reassigned is 1<br>The overload factor is 0.00% (0.000000)<br>Devices: id region zone ip address port replication ip replication port name weight partitions balance meta<br> 0 1 1 10.10.6.21 6000 10.10.6.21 6000 mpatha 500.00 1160 -0.31 <br> 1 1 1 10.10.6.11 6000 10.10.6.11 6000 disk1 40.00 94 0.98 <br> 3 1 2 10.10.6.13 6000 10.10.6.13 6000 disk1 40.00 94 0.98 <br> 4 2 1 10.10.6.14 6000 10.10.6.14 6000 disk1 40.00 94 0.98 <br> 5 1 2 10.10.6.12 6000 10.10.6.12 6000 disk1 40.00 94 0.98 <br><br>We have a MRC, with 2 regions, and when i place one big object (2Gb)<br> and monitor disk spaces of nodes with df, we observed that it places<br>several times the object in zones of the same region, and only two copys,<br>and sometimes only one copy.<br><br>When i test the placement with swift-get-nodes i get this:<br>[root@swift-1 ~]# swift-get-nodes dummy3<br><br>Account dummy3<br>Container None<br>Object None<br><br><br>Partition 42<br>Hash ab5f330198b6e64e76ffada05c64d6ed<br><br>Server:Port Device <a href="http://10.10.6.14:6002">10.10.6.14:6002</a> disk1<br>Server:Port Device <a href="http://10.10.6.21:6002">10.10.6.21:6002</a> mpatha<br>Server:Port Device <a href="http://10.10.6.13:6002">10.10.6.13:6002</a> disk1 [Handoff]<br>Server:Port Device <a href="http://10.10.6.12:6002">10.10.6.12:6002</a> disk1 [Handoff]<br><br><br>curl -I -XHEAD "<a href="http://10.10.6.14:6002/disk1/42/dummy3">http://10.10.6.14:6002/disk1/42/dummy3</a>"<br>curl -I -XHEAD "<a href="http://10.10.6.21:6002/mpatha/42/dummy3">http://10.10.6.21:6002/mpatha/42/dummy3</a>"<br>curl -I -XHEAD "<a href="http://10.10.6.13:6002/disk1/42/dummy3">http://10.10.6.13:6002/disk1/42/dummy3</a>" # [Handoff]<br>curl -I -XHEAD "<a href="http://10.10.6.12:6002/disk1/42/dummy3">http://10.10.6.12:6002/disk1/42/dummy3</a>" # [Handoff]<br><br><br>Use your own device location of servers:<br>such as "export DEVICE=/srv/node"<br>ssh 10.10.6.14 "ls -lah ${DEVICE:-/srv/node*}/disk1/accounts/42/6ed/ab5f330198b6e64e76ffada05c64d6ed"<br>ssh 10.10.6.21 "ls -lah ${DEVICE:-/srv/node*}/mpatha/accounts/42/6ed/ab5f330198b6e64e76ffada05c64d6ed"<br>ssh 10.10.6.13 "ls -lah ${DEVICE:-/srv/node*}/disk1/accounts/42/6ed/ab5f330198b6e64e76ffada05c64d6ed" # [Handoff]<br>ssh 10.10.6.12 "ls -lah ${DEVICE:-/srv/node*}/disk1/accounts/42/6ed/ab5f330198b6e64e76ffada05c64d6ed" # [Handoff]<br><br>note: `/srv/node*` is used as default value of `devices`, the real value is set in the config file on each storage node.<br><br>Any clues, whats going on?<br><br></div>Cheers!<br></div>