<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>