Should SQL Server Always-On Availability groups have storage deduplication enabled? We are using EMC and storage engineers want to save on storage and provide one big storage array for implementing synchronous AG replicas. I am not a storage expert but isn't it best practice to have two separate storage arrays when implementing AG replicas?
Otherwise, I will be introducing single point of failure by having one big de-duped storage. Am I right?
storage engineers want to save on storage and provide one big storage array for 
  implementing synchronous AG replicas.


Dump. The whole idea behind using an AOAG - instead of simple failover - is to have 2 storage backends. Because those ALSO SOMETIMES FAIL (and yes, even a big HP EVA can fail). The whole concept is that:


You can use local cheap high performance storage, not slow storage arrays. And yes, I mean slow - I can get a 2HE server these days that has literally hundred gigabyte / second IO locally on quite a lot of PCIe connected NVM drives. For a lot less cost.
You have redundant storage so you rule out any storage backend failure, because regardless what you do, that one SOMETIMES also fails. Been there, seen that. Rare but it happens.


Puttig an AOAG on an XIO already is eliminating a lot of the benefit (cost), but then using it as shared storage.... pretty much totally kills the benefit. Not EXACTLY totally because I can come up with some rare edge cases where it still is better (corruption wise), but really... not a lot left compared to normal clustering.