Hello 고민재
Welcome to Microsoft Q&A Platform, thanks for posting your query here.
Regarding your first option, Always On and MSCS are both great options for achieving high availability for SQL Server. Always On Availability Groups provide a high-availability and disaster-recovery solution that can support multiple databases, while MSCS (Microsoft Cluster Service) provides high availability for a single instance of SQL Server.
As for your second option, VM redundancy can also provide some level of high availability. By using VM redundancy, you can ensure that if one VM fails, another VM can take over its workload. However, it's important to note that VM redundancy alone may not be enough to provide complete high availability.
In terms of securing high availability through VM redundancy and shared storage, RAID configuration can definitely help. RAID can provide redundancy and improve the reliability of your storage system. However, it's important to note that RAID alone may not be enough to provide complete high availability.
I would recommend taking a look at the following resources for more information on achieving high availability for SQL Server in a virtual machine:
https://learn.microsoft.com/en-us/azure/virtual-machines/availability
Hope this helps.