Here the host writes to the primary, and to the secondary, the primary acknowledges, the secondary acknowledges. If it’s synchronous it waits for both acknowledgements. If it’s asynchronous the application will move on after the primary acknowledges, but it still waits for the secondary before clearing out its buffers.
Obviously if we use host based replication this will now work with any storage vendor because as long as we can see the logical units we can mirror between them.
How much impact on the application server depends on the file system, the software, the infrastructure and the latency.
The other version we could use is the network virtualization layer because our host writes to the virtualization layer, the virtualization layer can now write to two different vendors. We’ve got different layers. If we’ve got different storage subsystems we either do it the host or the network. If it’s the same subsystem vendor we can do it inside the subsystem.