{"id":4620,"date":"2024-04-16T20:54:52","date_gmt":"2024-04-17T01:54:52","guid":{"rendered":"https:\/\/www.jasemccarty.com\/blog\/?p=4620"},"modified":"2024-05-29T12:54:29","modified_gmt":"2024-05-29T17:54:29","slug":"are-vvols-easy-out","status":"publish","type":"post","link":"https:\/\/www.jasemccarty.com\/blog\/are-vvols-easy-out\/","title":{"rendered":"Are vVols an Easy Way off of vSphere?"},"content":{"rendered":"<p><a href=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/easy-button.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-medium wp-image-4638\" src=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/easy-button-221x300.png\" alt=\"\" width=\"221\" height=\"300\" srcset=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/easy-button-221x300.png 221w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/easy-button.png 351w\" sizes=\"auto, (max-width: 221px) 100vw, 221px\" \/><\/a>I remember when \u00a0vVols were introduced over a decade ago. To me, the promise of getting all the array side benefits of native volumes with the flexibility of traditional vSphere\u00a0provisioning and management was a very revolutionary approach.<\/p>\n<p>Anyone who is familiar with the history of vVols knows that they did a have a rocky start, especially since they were introduced in a similar timeframe as vSAN.<\/p>\n<p>Having worked at VMware during that time, I did see the adoption of vVols rise, especially once storage vendors decided to embrace them and VMware decided to develop replication and SRM support.<\/p>\n<p>With the current climate around the changes since VMware was purchased, I started thinking about it&#8230;<\/p>\n<p>For the VMware customers who have decided to implement vVols, the technology might be somewhat of an easy button to move data from vSphere to an alternate hypervisor (or even back to bare metal).<\/p>\n<p>I say this, because the idea of vVols is to present array volumes, with some metadata\/mapping to vSphere through the VASA service.<\/p>\n<p>Ultimately a vVol volume is a volume that contains the native file system of the virtual machine it is being presented to.<\/p>\n<p>So\u2026 A vVol volume could be copied to another volume and that volume could be presented as a passthrough disk to an alternate hypervisor or bare metal server.<\/p>\n<p>I tried this out recently with a Windows system with the \u00a0Hyper-V role and the migration was pretty painless. The HyperV VM had a passthrough disk, but Hyper-V also has a native workflow to convert a passthrough disk to a .vhdx.<\/p>\n<p>And yes, this requires some downtime, but what&#8217;s the downtime cost vs other costs?<br \/>\n<!--more--><\/p>\n<h2>The process<\/h2>\n<ol>\n<li>The VMware VM needs to be deployed to a vVol datastore.<\/li>\n<li>Determine the volume(s) you want to make copies of to present to your alternate hypervisor.<\/li>\n<li>The volumes could be snapped (VM off or running with &#8220;crash consistency&#8221;)<\/li>\n<li>Present those volumes to your alternate Hypervisor host (as you would an RDM to one or more vSphere hosts)<\/li>\n<li>Create a VM on the alternate hypervisor&#8217;s platform and attach the volume as you would a passthrough disk.<\/li>\n<li>Ensure the VM&#8217;s configuration (cpu, ram, networking) matches the original VMware VM&#8217;s configuration.<\/li>\n<li>Power on the VM.<\/li>\n<\/ol>\n<h2>My experience<\/h2>\n<p><strong>Step 1 &amp; 2.<\/strong> I took a VM on a vVol datastore and determined the volume (C: drive here) I needed a copy of<\/p>\n<p><a href=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP1-VM-ON-VVOLS.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-4624\" src=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP1-VM-ON-VVOLS-1024x429.png\" alt=\"\" width=\"1024\" height=\"429\" srcset=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP1-VM-ON-VVOLS-1024x429.png 1024w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP1-VM-ON-VVOLS-300x126.png 300w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP1-VM-ON-VVOLS-768x321.png 768w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP1-VM-ON-VVOLS-1536x643.png 1536w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP1-VM-ON-VVOLS-2048x857.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/p>\n<p>On my system, the C: drive of my Windows VM is a volume named Data-b4d8d085 in the vvol-WINDOWS-4ed98cd0-vg volume group on my array. <em>*Different platforms will have different methods to see this<\/em><\/p>\n<p><strong>Step 3.<\/strong> Took a snapshot of the volume (C: drive here)<\/p>\n<p><a href=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-3-CREATE-SNAPSHOT.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-4625\" src=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-3-CREATE-SNAPSHOT-300x204.png\" alt=\"\" width=\"500\" height=\"340\" srcset=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-3-CREATE-SNAPSHOT-300x204.png 300w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-3-CREATE-SNAPSHOT-1024x696.png 1024w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-3-CREATE-SNAPSHOT-768x522.png 768w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-3-CREATE-SNAPSHOT.png 1306w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><\/p>\n<p>Using the vSphere tools I have for my platform, I created a snapshot of the C: drive volume. <em>*Different platforms will have different methods for this<\/em><\/p>\n<p><strong>Step 4.<\/strong> Copied that snapshot to a new volume<\/p>\n<p><a href=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-4-COPY-SNAPSHOT-TO-VOLUME.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-4626\" src=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-4-COPY-SNAPSHOT-TO-VOLUME-300x168.png\" alt=\"\" width=\"450\" height=\"253\" srcset=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-4-COPY-SNAPSHOT-TO-VOLUME-300x168.png 300w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-4-COPY-SNAPSHOT-TO-VOLUME-1024x575.png 1024w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-4-COPY-SNAPSHOT-TO-VOLUME-768x431.png 768w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-4-COPY-SNAPSHOT-TO-VOLUME.png 1236w\" sizes=\"auto, (max-width: 450px) 100vw, 450px\" \/><\/a><\/p>\n<p><em>*Different platforms will have different methods for this<\/em><\/p>\n<p><strong>Step 5.<\/strong> Attached that new volume to my Hyper-V host<\/p>\n<p><a href=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-5-CONNECT-TO-HOST1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-4627\" src=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-5-CONNECT-TO-HOST1-1024x894.png\" alt=\"\" width=\"800\" height=\"698\" srcset=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-5-CONNECT-TO-HOST1-1024x894.png 1024w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-5-CONNECT-TO-HOST1-300x262.png 300w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-5-CONNECT-TO-HOST1-768x670.png 768w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-5-CONNECT-TO-HOST1.png 1526w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/a><em>*Different platforms will have different methods for this<\/em><\/p>\n<p>My Hyper-V host was already configured to use iSCSI to connect to my array, and it automatically showed up upon being presented.<\/p>\n<p><a href=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-5-CONNECT-TO-HOST2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-4629\" src=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-5-CONNECT-TO-HOST2-950x1024.png\" alt=\"\" width=\"750\" height=\"808\" srcset=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-5-CONNECT-TO-HOST2-950x1024.png 950w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-5-CONNECT-TO-HOST2-278x300.png 278w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-5-CONNECT-TO-HOST2-768x828.png 768w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-5-CONNECT-TO-HOST2.png 1342w\" sizes=\"auto, (max-width: 750px) 100vw, 750px\" \/><\/a><\/p>\n<p><strong>Step 6.<\/strong> Created a VM on my host with the Hyper-V role<\/p>\n<table>\n<tbody>\n<tr>\n<td><a href=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-6-CREATE-VM1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-4630\" src=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-6-CREATE-VM1-300x234.png\" alt=\"\" width=\"500\" height=\"389\" srcset=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-6-CREATE-VM1-300x234.png 300w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-6-CREATE-VM1-1024x797.png 1024w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-6-CREATE-VM1-768x598.png 768w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-6-CREATE-VM1.png 1446w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><br \/>\nName and Location<\/td>\n<td><a href=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-6-CREATE-VM2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-4633\" src=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-6-CREATE-VM2-300x227.png\" alt=\"\" width=\"500\" height=\"378\" srcset=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-6-CREATE-VM2-300x227.png 300w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-6-CREATE-VM2-1024x775.png 1024w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-6-CREATE-VM2-768x581.png 768w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-6-CREATE-VM2.png 1456w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><br \/>\nGeneration 2 for SCSI disks<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-6-CREATE-VM3.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-4632\" src=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-6-CREATE-VM3-300x228.png\" alt=\"\" width=\"500\" height=\"380\" srcset=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-6-CREATE-VM3-300x228.png 300w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-6-CREATE-VM3-1024x778.png 1024w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-6-CREATE-VM3-768x583.png 768w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-6-CREATE-VM3.png 1454w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><br \/>\nDon&#8217;t add a disk<\/td>\n<td><a href=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-6-CREATE-VM4.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-4631\" src=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-6-CREATE-VM4-300x229.png\" alt=\"\" width=\"500\" height=\"381\" srcset=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-6-CREATE-VM4-300x229.png 300w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-6-CREATE-VM4-1024x781.png 1024w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-6-CREATE-VM4-768x586.png 768w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-6-CREATE-VM4.png 1434w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><br \/>\nFinish<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Notice that I did not add a hard disk yet. I&#8217;ll add the local volume as a passthrough disk in the next step.<\/p>\n<p>Step 7. Modified the VM&#8217;s configuration<\/p>\n<table>\n<tbody>\n<tr>\n<td><a href=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-7-SETTINGS1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-4641\" src=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-7-SETTINGS1-300x287.png\" alt=\"\" width=\"500\" height=\"479\" srcset=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-7-SETTINGS1-300x287.png 300w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-7-SETTINGS1-1024x981.png 1024w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-7-SETTINGS1-768x736.png 768w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-7-SETTINGS1.png 1478w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a>Select the Passthrough Disk<\/td>\n<td><a href=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-7-SETTINGS2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-4642\" src=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-7-SETTINGS2-300x284.png\" alt=\"\" width=\"500\" height=\"474\" srcset=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-7-SETTINGS2-300x284.png 300w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-7-SETTINGS2-1024x970.png 1024w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-7-SETTINGS2-768x728.png 768w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-7-SETTINGS2.png 1480w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a>Disable Checkpoints<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Step 8.<\/strong> Powered on the VM.<\/p>\n<p><a href=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-8-POWER-ON.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-4644\" src=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-8-POWER-ON-300x254.png\" alt=\"\" width=\"800\" height=\"676\" srcset=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-8-POWER-ON-300x254.png 300w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-8-POWER-ON-1024x865.png 1024w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-8-POWER-ON-768x649.png 768w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-8-POWER-ON-1536x1298.png 1536w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2024\/04\/STEP-8-POWER-ON-2048x1731.png 2048w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/a><\/p>\n<h2>Some things to consider<\/h2>\n<ul>\n<li>VMware tools are very hard to remove once a Windows VM has been brought into Hyper-V.<br \/>\nThere are a few mechanisms to remove them afterwards, but removing them before the migration is easiest.<\/li>\n<li>The Hyper-V VM is using a passthrough disk. If passthrough disks aren&#8217;t desired, you&#8217;ll need to determine what the migration process is in your alternate hypervisor. Fortunately Hyper-V <span style=\"text-decoration: underline;\">makes it easy to migrate a passthrough disk to a vhdx<\/span>, albeit offline.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h2>Summary<\/h2>\n<p>This manual process shows that a VMware vSphere VM residing on vVols can be easily migrated to an alternate platform. With a little elbow grease and some time, this could be scripted if the platforms you&#8217;re using support automation tools like PowerShell or others.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I remember when \u00a0vVols were introduced over a decade ago. To me, the promise of getting all the array side benefits of native volumes with &hellip; <\/p>\n","protected":false},"author":1,"featured_media":4656,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[211,10,12,168,13],"tags":[],"class_list":["post-4620","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-microsoft","category-storage-2","category-virtualization","category-vsan","category-windows"],"_links":{"self":[{"href":"https:\/\/www.jasemccarty.com\/blog\/wp-json\/wp\/v2\/posts\/4620","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jasemccarty.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.jasemccarty.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.jasemccarty.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jasemccarty.com\/blog\/wp-json\/wp\/v2\/comments?post=4620"}],"version-history":[{"count":15,"href":"https:\/\/www.jasemccarty.com\/blog\/wp-json\/wp\/v2\/posts\/4620\/revisions"}],"predecessor-version":[{"id":4648,"href":"https:\/\/www.jasemccarty.com\/blog\/wp-json\/wp\/v2\/posts\/4620\/revisions\/4648"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.jasemccarty.com\/blog\/wp-json\/wp\/v2\/media\/4656"}],"wp:attachment":[{"href":"https:\/\/www.jasemccarty.com\/blog\/wp-json\/wp\/v2\/media?parent=4620"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jasemccarty.com\/blog\/wp-json\/wp\/v2\/categories?post=4620"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jasemccarty.com\/blog\/wp-json\/wp\/v2\/tags?post=4620"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}