BAG vs FCI
After a team meeting we've had on the recent occasions of power loss, it turns out that the improvement of one of our SQL Server redundancy, is crucial. After looking into all of the possible ways of achieving our task, the budget comes into play.
With the licensing models of SQL's Always-on deployment always present, the decision between BAG and FCI, is quite a difficult one. Nevertheless, our lean is more towards BAG, the only concern is - automated fail-over.
If there are any options for configuring automated fail-over in conjunction with the BAG, what's the point in FCI's existence?
Update: We will most probably end up running hyperconverged with VMware + VMware VSAN or Hyper-V with StarWind VSAN. Both of these replicate the data and we expect doubled reads with FCI.
Posted Jan 16, 2019, 9:58 PM UTC · edited
You can have automatic failover with a basic availbility group.
Failover clusters utilise shared storage while an availability group will require you have storage for each node, this does of course provide some redundancy should have have a storage failure which you don't get automatically with a FCI.
FCI has the benefit that the whole instance is moved rather than just one database (only 1 per avilability group with BAG - which could be a headache I suppose). This makes administration a little simpler in that (in particular) your logins and SQL Agent jobs need only be created once.
One potential advantage of BAG is that the SQL Server service is always running on the inactive node, which will speed up failover time vs a FCI, which has to start the services.
For an FCI, you only need one SQL Server license (as long as it's a 2-node cluster); for a BAG, you may need two.
I've never heard that before. Nothing I've been able to find online suggests that either, I don't suppose you have a link? The only relevant part of the SQL Server 2016 Licensing guide is the standard:
That's the relevant section, AFAIK. My understanding is that for an FCI, if the passive node is truly passive (sqlsvr.exe isn't running), you don't need a second license for that node and the license coverage transfers when you do a failover.
Oh right, I thought you were suggesting something specific about BAG Vs a traditional AG.
The secondary in an availability group doesn't need to be licensed if it's not active, regardless of the fact the service is running. If that weren't the case I can't imagine anyone using AGs given the cost implication, unless they were doing so specifically for the readable secondaries (as opposed to just HA/DR). When they talk about active they mention running queries (obviously), integrity checks, backups, etc, not the services.
The licensing doc does show examples of 2 node AGs which illustrate that is correct.
Also you can have an AG on top of an FCI, the FCI cluster becomes the primary node in the AG and you have a third server act as the secondary node in the AG. Not sure if BAG is supported but I have a few of these running on Enterprise Edition, one site I have 4 servers total, two in FCI, third in the same site as AG node 2, and the 4th in a DR site as AG node 3 with async.