This change is backwards-compatible with existing yaml templates. We divide Swift servers among the number of zones set by the swift.zones metadata. Servers are placed in zones depending on their rank in the scaled-out list of Swift servers in the template used to build the overcloud stack. The scaleout rank N is: SwiftStorage|controller<N>. The appropriate zone is calculated as: zone = N % swift.zones + 1. The devices metadata which will be set in the overcloud yaml templates to enable the placement calculation will look like: r1z%<controller or SwiftStorage><N>%-<IP address>:%PORT%/d1 For example: r1z%SwiftStorage0%-<IP address>:%PORT%/d1 We anticipate that in future the zone placement algorithm itself will evolve. Change-Id: Ia178823a4926ae91f4fed3e8602807024e546d65
933 B
Common element for swift elements
Configuration
swift: devices: r1z-192.0.2.6:%PORT%/d1 - A comma separated list of swift storage devices to place in the ring file. - This MUST be present in order for o-r-c to successfully complete. zones: - Servers are divided amongst separate zones if the swift.zones metadata is greater than the default of 1. Servers are placed in zones depending on their rank in the scaled-out list of Swift servers in the yaml template used to build the overcloud stack. The scaleout rank N is: SwiftStorage|controller. The appropriate zone is calculated as: zone = N % swift.zones + 1. - To enable this calculation, the devices data takes the form of: r1z%%-192.0.2.6:%PORT%/d1 hash: randomstring - A hash used to salt paths on storage hosts