VMware Cloud Community
dornfm94
Contributor
Contributor

Virtual RDM Version

I am currently running vSphere 4, ESX 4, all VM's hardware v7, fully patched.

A number of VM's have virtual RDM's.

I have a backup software package "Veeam" that takes advantage of changed block tracking via the vSphere Backup API, but the changed block tracking only works with version 2 virtual RDM's.

I'm told the following from their support "Changed block tracking is supported in build 77, but there are 2 generations of vRDM disks, v1 and v2, and changed block tracking is only supported for v2 vRDMs."

When I asked how to see what version my RDM's are, I got this response "there is a way, but it inlvolves browsing deep through ESX MOB (managed object browser) and I would not try to repeat the sequence of click even after I saw devs doing this a few times."

I need to find out what version of RDM's I have, and if I do have the earlier version, I have to find out how to update or recreate them as version 2...?

Any help would be much appreciated. Thank you. Matt

0 Kudos
4 Replies
lamw
Community Manager
Community Manager

I'm not aware there is a RDM v2? afaik, the various version of a disk backing are documented here in the vSphere API reference guide

It's not unheard of that this data object could exists, there are lots that isn't publicly documented but within the API themselves. I've updated this script: to also printout the specific disk backing and it's version for all VMs, you could use the modified script to see what version your RDMs are (unfortunately I don't have any setup right now to test) .. though from what I remember, I've only seen version 1 ...

Here's a quick example of what the output would look like:

[vi-admin@scofield ~][http://reflex.primp-industries.com|http://reflex.primp-industries.com]$ ./getVMDiskInfo.pl --server reflex.primp-industries.com
test-pvscsi
        Hard disk 1 = [http://himalaya-local-SAS.Savvio|http://himalaya-local-SAS.Savvio] test-pvscsi/test-pvscsi.vmdk
        Hard disk 1 = isThinProvsioned
        Hard disk 1 = persistent
        Hard disk 1 = VirtualDiskFlatVer2BackingInfo
        Hard disk 2 = [http://himalaya-local-SAS.Constellation|http://himalaya-local-SAS.Constellation] test-pvscsi/test-pvscsi.vmdk
        Hard disk 2 = isNotThinProvisioned
        Hard disk 2 = persistent
        Hard disk 2 = VirtualDiskFlatVer2BackingInfo
        Hard disk 3 = [http://himalaya-local-SAS.Savvio|http://himalaya-local-SAS.Savvio] test-pvscsi/test-pvscsi_2.vmdk
        Hard disk 3 = isNotThinProvisioned
        Hard disk 3 = persistent
        Hard disk 3 = VirtualDiskFlatVer2BackingInfo
        Hard disk 4 = [http://dlgCore-iSCSI.test|http://dlgCore-iSCSI.test] test-pvscsi/test-pvscsi.vmdk
        Hard disk 4 = isNotThinProvisioned
        Hard disk 4 = persistent
        Hard disk 4 = VirtualDiskFlatVer2BackingInfo
        Hard disk 5 = [http://himalaya-local-SAS.Savvio|http://himalaya-local-SAS.Savvio] test-pvscsi/test-pvscsi_1.vmdk
        Hard disk 5 = isThinProvsioned
        Hard disk 5 = persistent
        Hard disk 5 = VirtualDiskFlatVer2BackingInfo

vMA-2
        Hard disk 1 = [http://himalaya-local-SAS.Constellation|http://himalaya-local-SAS.Constellation] vMA-2/vMA-2.vmdk
        Hard disk 1 = isNotThinProvisioned
        Hard disk 1 = persistent
        Hard disk 1 = VirtualDiskFlatVer2BackingInfo

vm-1
        Hard disk 1 = [esxi40-1-local-storage] vm-1/vm-1.vmdk
        Hard disk 1 = isThinProvsioned
        Hard disk 1 = persistent
        Hard disk 1 = VirtualDiskFlatVer2BackingInfo

vm-2
        Hard disk 1 = [esxi40-1-local-storage] vm-2/vm-2.vmdk
        Hard disk 1 = isThinProvsioned
        Hard disk 1 = persistent
       Hard disk 1 = VirtualDiskFlatVer2BackingInfo


Hopefully this helps you out

=========================================================================

William Lam

VMware vExpert 2009

VMware ESX/ESXi scripts and resources at:

VMware Code Central - Scripts/Sample code for Developers and Administrators

VMware Developer Comuunity

Twitter: @lamw

If you find this information useful, please award points for "correct" or "helpful".

0 Kudos
lamw
Community Manager
Community Manager

Actually while poking around the API documents, I just found what Veeam was referring to as vRDM v2: VirtualDiskRawDiskVer2BackingInfo, it looks like it has further information which is used for change block tracking.

Again, I'm not exactly sure how one would setup a vRDM to be either v1 or v2? Perhaps this is standard from vSphere? I'm not 100% sure, but hopefully the script provided should display the version and maybe you can let me know if you have any v2 and if that is specific to creating vRDMs on vSphere with ESX(i) 4.

=========================================================================

William Lam

VMware vExpert 2009

VMware ESX/ESXi scripts and resources at:

VMware Code Central - Scripts/Sample code for Developers and Administrators

VMware Developer Comuunity

Twitter: @lamw

If you find this information useful, please award points for "correct" or "helpful".

0 Kudos
dornfm94
Contributor
Contributor

I tried running the script on my ESX server, but it just spat out errors as seen below. I suspect I shouldn't either be running it from ESX or I should have something special installed on the server? I'm not very linux savvy.. I was able to get the file over to the ESX server, fire up a putty session, chmod 755 it and run it, and that's about the extent of my knowledge these days.

# ./getVMDiskInfo.pl --server esx12.generac.com

Can't locate VMware/VIRuntime.pm in @INC (@INC contains: /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi /usr/lib64/perl5/site_perl/5.8.7/x86_64-linux-thread-multi /usr/lib64/perl5/site_perl/5.8.6/x86_64-linux-thread-multi /usr/lib64/perl5/site_perl/5.8.5/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl/5.8.7 /usr/lib/perl5/site_perl/5.8.6 /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi /usr/lib64/perl5/vendor_perl/5.8.7/x86_64-linux-thread-multi /usr/lib64/perl5/vendor_perl/5.8.6/x86_64-linux-thread-multi /usr/lib64/perl5/vendor_perl/5.8.5/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl/5.8.7 /usr/lib/perl5/vendor_perl/5.8.6 /usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/5.8.8 .) at ./getVMDiskInfo.pl line 10.

BEGIN failed--compilation aborted at ./getVMDiskInfo.pl line 10.

Any suggestions on how I should run the script?

0 Kudos
lamw
Community Manager
Community Manager

The requirements on noted on the document, you do not run this on Service Console, this uses the VMware SDK and specifically the vSphere SDK for Perl. Please download the vCLI on either Windows or Linux ( I prefer Linux, since the script was developed on vmA ). You can also just download the vMA which is a VMware RHEL virtual appliance which contains the vCLI and other useful tools and you can just deploy as a new VM and upload the script and connect.

=========================================================================

William Lam

VMware vExpert 2009

VMware ESX/ESXi scripts and resources at:

VMware Code Central - Scripts/Sample code for Developers and Administrators

VMware Developer Comuunity

Twitter: @lamw

If you find this information useful, please award points for "correct" or "helpful".

0 Kudos