SHIFT-WIKI - Sjoerd Hooft's InFormation Technology
This WIKI is my personal documentation blog. Please enjoy it and feel free to reach out through blue sky if you have a question, remark, improvement or observation. See below for the latest additions, or use the search or tags to browse for content.
NetApp Reallocate
Summary: How to run reallocation on a NetApp Filer.
Date: Around 2014
Refactor: 29 March 2025: Checked links and formatting.
Storage vMotion with RDM Disks
Summary: How to do a storage vMotion with RDM disks on vSphere.
Date: Around 2014
Refactor: 29 March 2025: Checked links and formatting.
I had a use case where some VMs with Microsoft Clustering had to be moved to different datastores. That is, the normal VMDK OS disks, not the shared disks which were presented to the VMs as RDM. I first read a few articles: VMware KB article on RDM storage vMotions
An article from Scott Lowe
An article from Joep Piscaer, a former colleague of mine, definitely a recommendation to read!
VMware KB article on Microsoft clustering support
Now, all of these articles are great but they didn't specifically describe my situation. Because for Microsoft Clustering, you need a separate SCSI controller for your RDM disks with physical SCSI BUS sharing, to make sure you can share the disks between VMs on different hosts:
SCSI Bus Sharing policy | Description |
---|---|
None | Virtual disks cannot be shared between virtual machines |
Virtual | Virtual disks can be shared between virtual machines on the same server |
Physical | Virtual disks can be shared between virtual machines on any server |
Also note the support for the actual SCSI controller. I'm a big fan of the paravirtual SCSI controller but that one is not supported for Microsoft Clustering:
The shared storage SCSI adapter for Windows Server 2008 must be the LSI Logic SAS type, while earlier Windows versions must use the LSI Logic Parallel type.
So I had to test what happens with a RDM disk while in virtual and in physical compatibility mode to come with an answer on what is the best migration method.
Configure RDMs On ESXi Hosts
Summary: How to configure your RDM disks to set the IsPerenniallyReserved for a fast boot of ESXi 5 hosts.
Date: Around 2014
Refactor: 29 March 2025: Checked links and formatting.
Due to a locking problem, booting ESXi hosts takes a lot of time when MSCS are running on LUNs. Since ESXi 5 this can be solved by setting an extra option on the LUNs called perennially reserved. This setting is local to each ESXi host and should be set on each host accessing the RDM. Now if you have a lot of RDMs, or a lot of hosts in your cluster that might take some work, so… powershell!
Note that this has been rewritten here, which was especially done for Site Recovery Manager.
# This script performs the following steps # 1. Get all RDM information from your environment, listing VM, Cluster and diskinfo # 2. Export this information to a csv file # 3. Filters out RDMs that are not part of MSCS # 4. Set the IsPerenniallyReserved for each RDM on each host in the cluster to true # # Note: This scrip can be run each time a RDM or a host is added. # Script variables $timestamp = Get-Date -format "yyyyMMdd-HH.mm" $startdir = "D:\sjoerd" $csvfile = "$startdir\rdmsettings-$timestamp.csv" # Scipt functions # Note that you can suppress output from commands using | Out-Null Function logger ($message) {Write-Host -ForegroundColor Green (Get-Date -format "yyyyMMdd-HH.mm.ss") "$message" `n} Function loggeralert ($message) {Write-Host -ForegroundColor Red (Get-Date -format "yyyyMMdd-HH.mm.ss") "$message" `n} # Define csv table $myTable = @() logger "Starting to create a csv file. This might take a while." foreach ($vm in (Get-VM | Get-HardDisk -DiskType "RawPhysical","RawVirtual")){ $RDMInfo = "" |select-Object VMName,VMClusterName,DiskType,ScsiCanonicalName $RDMInfo.VMName = $vm.Parent $RDMInfo.VMClusterName = Get-VM $vm.Parent | Get-Cluster $RDMInfo.DiskType = $vm.DiskType $RDMInfo.ScsiCanonicalName = $vm.ScsiCanonicalName $myTable += $RDMInfo } $myTable |Export-csv -NoTypeInformation $csvfile logger "Finished creating csv file. Now filtering out RDMs that are not part of MSCS." $allrdms = Import-Csv $csvfile #Only get duplicates RDMs, these are part of MSCS $duprdms = Import-Csv $csvfile | Group-Object ScsiCanonicalName -noElement | where {$_.count -gt 1} logger "Starting to set the Perennially Reserved option on:" ForEach ($rdm in $duprdms){ $cluster = ($allrdms | where {$_.ScsiCanonicalName -eq $rdm.Name} | select VMClusterName | Select -First 1).VMClusterName $rdmdisk = $rdm.Name ForEach ($esxihost in (Get-Cluster $cluster | Get-VMHost)){ Write-Host "ESXihost = $esxihost `t RDM = $rdmdisk" #To set the esxcli instance, run this command: $myesxcli = get-esxcli -VMHost $esxihost #To verify the parameter updates, run this command: #$myesxcli.storage.core.device.list("$rdmdisk") #To set the device as perennially reserved, run this command: $myesxcli.storage.core.device.setconfig($false, "$rdmdisk", $true) } }
RAD Automatic Installation
Summary: A fully automated installation of Rational Application Developer, including the IBM Installation Manager and the WebSphere Application Server
Date: Around 2009
Refactor: 29 December 2024: Checked links and formatting.
We've been busy on this for more than a week but we finally got it running, a fully automated installation of Rational Application Developer, including the IBM Installation Manager and the WebSphere Application Server. We have some general tips and I'll post our configuration files and installation commands in this article.