Working with a customer that has a 4x SQL servers running as VMs on a single host. They have set up symlinks on the SQL VMs to point to storage on the physical host. So the D: drive on the SQL1 VM has a folder called data that points to hostsqldatasql1data, and d:logs on the host points to hostsqldatasql1logs. Same thing on SQL2, SQL3, and SQL4. There is another host with another 3 or 4 SQL VMs doing the exact same thing.
Posted by7 months ago
Archived
Want to unravel this mess and get these VMs properly backing up with Veeam like the rest of the VMs on the hosts. Was looking at a shared VHD, but see that Veeam doesn't support that, but rather to use VHD Sets. There is no clustering and probably won't be. Can I set up clustered storage even though it obviously won't be clustered with a single host?
Open to other suggestions. Putting a VHD for each VM with the data, logs, and backups doesn't appear to be an option. Customer is concerned they won't carve up the space correctly, give too much space to one machine, not enough to another, etc. Shared storage or complicating the topology with something like StarWind Virtual SAN is more than likely out of the picture.
9 comments
I would like to share the VHDX file attached to my VM (Win8.1 as well) with the host System. Therefor I have enabled the advanced Feature within the VM under SCSI controller 'activate sharing of virtual harddisk' (literally translated from German).
Unfortunately when I click on Apply I receive:
Which means something like: The storage that contains the vhdx file does not Support sharing. Then what criteria does my storage has to fullfil? The vhdx files are stored on my SSD NTFS and Basic..
MatzeMatze
migrated from serverfault.comMar 9 '14 at 3:03
This question came from our site for system and network administrators.
2 Answers
The docs that Zoredache links to in the comments also specify that it this feature is also only meant to share virtual disks between virtual machines - not between the virtual machine and the host.
But to directly answer your question, there are some hard requirements to support this feature:
RexRex
Sharing a virtual disk isn't the same thing as sharing a file system. You're looking for a shared file system. If you want that, enable a file share on one machine or the other and then use the files through networking.
If you do share a virtual disk between two VMs (which can, as the others have noted, only happen when the VHDX is stored on a clustered file system) you need to then use clustering within the group of VMs to arbitrate access to the disk, so that the various VMs don't clobber each others' block writes to the disk and corrupt the file system on the virtual disk. This pretty much requires clustering software running within the set of guest VMs, which is the reason that this feature doesn't work at all for Windows 8.1, even within a VM.
It is actually possible for more than one VM to be writing to the shared VHDX simultaneously. You can enable the CSV file system within the guest cluster and it will allow multiple cluster nodes to write at the same time, as long as the writing is happening to files that already exist on disk and to regions of the files that already exist. This makes sense for workloads like SQL Server using a file server as backend storage. For other workloads, it makes more sense to avoid CSV and let one VM use the disk at a time. A Windows file server cluster will still be highly available, by the way, in that one VM can die without interrupting file service. The ownership of the disk will seamlessly shift to another member of the file server cluster.
This, by the way, points to the reason why the shared VHDX needs to be on CSV at the hosting layer. The entire feature makes no sense unless the shared VHDX is on storage that has no single point of failure.
Jake OshinsJake Oshins
Not the answer you're looking for? Browse other questions tagged hyper-v or ask your own question.-->
Applies To: Windows Server 2012 R2
Starting in Windows Server 2012 R2, Hyper-V makes it possible to share a virtual hard disk file between multiple virtual machines. Sharing a virtual hard disk file (.vhdx) provides the shared storage that is necessary for a Hyper-V guest failover cluster. This is also referred to as a virtual machine failover cluster. For information on creating and enabling a shared virtual hard disk, see Configure a Shared Virtual Hard Disk.
Key benefits
Sharing a virtual hard disk file (.vhdx) means that you can create and manage a guest failover cluster to protect the application services running inside your virtual machines. Before Windows Server 2012 R2, if you wanted to create a Hyper-V guest failover cluster, you needed to expose your storage topology to the virtual machine.
Cyberpunk the game font. There are tons of fonts that fall into 'cyberpunk' as a category, but none that I can. Cyberpunk 2077 is an upcoming role-playing video game.
Starting in Windows Server 2012 R2, you can deploy a Hyper-V guest failover cluster that is no longer bound to your storage topology. You can implement a guest failover cluster by using a shared virtual hard disk, Fibre Channel, Server Message Block (SMB), Storage Spaces, or iSCSI storage options. Shared virtual hard disks are only available in Windows Server 2012 R2. Hyper-V makes it possible to share a virtual hard disk file between multiple virtual machines. Sharing a virtual hard disk file (.vhdx) provides the shared storage that is necessary for a Hyper-V guest failover cluster.
Using a shared virtual hard disk is ideal for the following situations:
Note
When you share a virtual hard disk file, these tasks aren't supported:
Guest Failover Clusters
The following information will help you understand and deploy a guest failover cluster by using a shared virtual hard disk.
Shared virtual hard disk format
Shared virtual hard disk functionality in guest failover clusters exclusively uses the .vhdx file format. Although the shared virtual hard disk must use the .vhdx file format for the data drive, the operating system disk for a virtual machine can use either the .vhd or the .vhdx file format.
Supported virtual machines
Generation 1 and Generation 2 virtual machines are supported in a guest failover cluster using a shared virtual hard disk.
Supported guest operating systems
Supported guest operating systems for guest clusters that use a shared virtual hard disk include Windows Server 2012 R2 and Windows Server 2012. To support Windows Server 2012 as a guest operating system, Windows Server 2012 R2 Integration Services must be installed within the guest (virtual machine).
Deploying a shared virtual hard disk in a guest failover cluster
A Hyper-V guest failover cluster that uses a shared virtual hard disk has two preferred deployment models. The shared virtual hard disk for the guest failover cluster can be deployed on:
A Hyper-V guest failover cluster can be configured and deployed by using Hyper-V Manager and Failover Cluster Manager. You can also use Windows PowerShell.
Note
When you use shared VHDX with local block storage, synchronization must occur for shared VHDX file access. If the virtual machines are running on different nodes, this involves network redirection for the synchronization activity. If you have fast block connectivity combined with slow intra-cluster network communication, this synchronization activity results in I/O variance (either redirected or direct) based on the node. This happens on a per file basis. (The entire CSV is not in redirected mode.) To increase performance, we recommend that you scale the intra-cluster network.Be aware that this is not a consideration when you use file-based storage. When you use a compute layer of file-based storage over SMB together with a remote Scale-Out File Server (SOFS), this shared file access orchestration is performed by the SOFS. With a SOFS, SMB sessions are transitioned to optimize file access. The SMB sessions co-exist on the same node that performs the synchronization. As a result, there is no network communication.
For deployment steps, see Deploy a Guest Cluster Using a Shared Virtual Hard Disk.
Using Cluster Shared Volume
One option for using virtual hard disk sharing is to use Cluster Shared Volumes. The following graphic provides an example configuration. You can also use other types of shared storage if required.
Using Scale-Out File Server with SMB 3.0
A second option for virtual hard disk sharing is to use a Scale-Out File Server. The following graphic provides an example configuration. You can also use other types of shared storage if required.
Requirements
To configure a guest failover cluster that uses shared virtual hard disks, you require the following:
See Also
Virtual hard disk format
Virtual hard disk resizing Here's what I've done so far: On VM1 created new virtual disk on new SCSI1 controller. disk is set to independent-persistent SCSI1 controller is set to virtual and LSI Logic Parallel On VM2 created disk pointing to disk created on VM1 - on new SCS1 controller disk is set to independent-persistent SCSI1 controller is set to virtual and LSI Logic Parallel Both machines will power on - there's no locking issues. Convert Vhdx To VhdsI created an extended partition in the disk on VM1 to start with and put some test files on it.When I powered on VM2 I see the disk and its contents - but it seems to be a copy - adding new files or dirs on either VM doesn't get replicated on the other VM. I've experimented with the following lines in the vmx after reading many articles: disk.locking = 'false' diskLib.dataCacheMaxSize = '0' and scsi1:0.shared = 'TRUE' but to no avail Can anyone give me the correct way to achieve this please? Comments are closed.
|
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |