Ask Your Question

Revision history [back]

IF a physical machine suffers a drive failure. Swift will replicate data which was present upon this failed drive to functioning hardware to ensure every object has the correct amount of replicas. If left indefinitely in this state the system loses only the storage capacity of that drive; IMPORTANTLY : * data integrity will be exactly as if the drive was functioning. *

Yes this is true. Swift uses eventual consistency model, if any device fails the data will be eventually replicated to other devices. More than that: if write fails it will be retried asynchronously and will be replicated if fails. Data integrity will be degraded only in the case where all devices for specific zone are failed and there are not enough "spare" zones to copy the replicated data to. E.g. if replication level is N and you have less than N zones intact.

1) As soon as that server goes down swift starts replicating data from all those disks to live disks

Correct

2) If left down indefinitely everything would be fine, we would just lose the capacity of those disks

Partially true, if you still have at least 1 device in each zone. If the whole zone fails and you have no spare zone the state will be degraded.

3) If we enliven those disks on a newly built node with the same IP then objects replicated away will be deleted and object which are awaiting update will be updated

Correct. Objects will be replicated back from handoff nodes and deleted on the handoff nodes.

I realise that on larger deployments this is of little consequence, but for the rest of us paying very high €€ for each amp we consume we have to try and work out if 5 servers with 100 disks or 50 servers with 10 disks is better. The latter is significantly higher in cost! (throughput is not an issue, only reliance)

Because swift essentially replicates data between devices, the first scenario (5X100) is indeed possible and should have no problems.