The below is the proposal for switching to XenServer HA. http://mail-archives.apache.org/mod_mbox/cloudstack-dev/201403.mbox/%3c83f77ff1bd50194ab65afa5479d082a71e4...@sjcpex01cl02.citrite.net%3E
On 04-May-2015, at 9:03 PM, Tim Mackey <tmac...@gmail.com> wrote: > Thanks for starting this thread Remi. > > From my perspective the pros of simply enabling XenServer HA are: > > - automatic election of pool master in the event of hardware failure > - automatic fencing of a host in the event of dom0 corruption > - automatic fencing of a host in the event of heartbeat failure > > The risks of simply enabling XenServer HA are: > > - additional code to detect a newly elected pool master > - acceptance of the fact an admin can force a new pool master from > XenServer CLI > - requirement for pool size to be greater than 2 (pool size of 2 results in > semi-deterministic fencing which isn't user obvious) > - understanding that storage heartbeat can be shorter than storage timeout > (aggressive fencing) > - understanding that HA plans are computed even when no VMs are protected > (performance decrease) > > One question we'll want to decide on is who is the primary actor when it > comes to creating the pool since that will define the first pool master. > During my demo build using 4.4 at CCCEU I expected to add pool members > through the CS UI, but found that adding them in XenServer was required. > This left me in an indeterminate state wrt pool members. > > I vote that if a host is added to CS and it *is* already a member of a > pool, that the pool be imported as a cluster and any future membership > changes happen using CS APIs. If a host is added which isn't a member of a > pool, then the user be asked if they wish to add it to an existing cluster > (and behind the scenes add it to a pool), or create a new cluster and add > it to that cluster. This would be a change to the "add host" semantics. > Once the host is added, we can enable XenServer HA on the pool if it > satisfies the requirements for XenServer HA (has shared storage and three > or more pool members). > > There are some details we'd want to take care of, but this flow makes sense > to me, and we could use it even with upgrades. > > -tim > > On Mon, May 4, 2015 at 6:04 AM, Remi Bergsma <r...@remi.nl> wrote: > >> Hi all, >> >> Since CloudStack 4.4 the implementation of HA in CloudStack was changed to >> use the XenHA feature of XenServer. As of 4.4, it is expected to have XenHA >> enabled for the pool (not for the VMs!) and so XenServer will be the one to >> elect a new pool master, whereas CloudStack did it before. Also, XenHA >> takes care of fencing the box instead of CloudStack should storage be >> unavailable. To be exact, they both try to fence but XenHA is usually >> faster. >> >> To be 100% clear: HA on VMs is in all cases done by CloudStack. It's just >> that without a pool master, no VMs will be recovered anyway. This brought >> some headaches to me, as first of all I didn't know. We probably need to >> document this somewhere. This is important, because without XenHA turned on >> you'll not get a new pool master (a behaviour change). >> >> Personally, I don't like the fact that we have "two captains" in case >> something goes wrong. But, some say they like this behaviour. I'm OK with >> both, as long as one can choose whatever suits their needs best. >> >> In Austin I talked to several people about this. We came up with the idea >> to have CloudStack check whether XenHA is on or not. If it is, it does the >> current 4.4+ behaviour (XenHA selects new pool master). When it is not, we >> do the CloudStack 4.3 behaviour where CloudStack is fully in control. >> >> I also talked to Tim Mackey and he wants to help implement this, but he >> doesn't have much time. The idea is to have someone else join in to code >> the change and then Tim will be able to help out on a regularly basis >> should we need in depth knowledge of XenServer or its implementation in >> CloudStack. >> >> Before we kick this off, I'd like to discuss and agree that this is the way >> forward. Also, if you're interested in joining this effort let me know and >> I'll kick it off. >> >> Regards, >> Remi >>