• About me…
  • VMware
  • Powershell
  • DIY

ConfigMgr.nl

VMware, PowerShell, Automation, and more…

  • About me…
  • VMware
  • Powershell
  • DIY

Find a datastore or RDM by LUN ID

27 juli 2019 PowerCli Script VMware No Comments

Sometimes the storage team wants to clean up their LUNs but they only know the LUN ID. And they ask you, the ESXi admin, where that LUN is used… Not an easy question if you don’t have an administration of your LUNs.

You can use the UI and do some clickin’ but that is sooo much work. So let’s use some PowerCli magic!

# Ask for parameters
$lunid = Read-Host -Prompt "Which LUN ID do you want to find?"
$cluster = Read-Host -Prompt "And in which cluster?"
# Create variable for the first host in the cluster
# (assuming all hosts in the cluster have the same LUNs
$vmhost = (get-cluster $cluster | get-vmhost).Name[0]
$datastorefound = 0
$rdmfound = 0

# Create variable for datastores with the LUN ID
Write-Host
Write-Host "## Creating list of datastores..."
$datastores = Get-Cluster -Name $cluster | Get-Datastore | Select Name,
@{N="LunID";E={
$dev = $_.ExtensionData.Info.Vmfs.Extent[0].DiskName
$esxcli = Get-EsxCli -VMhost $vmhost -V2
$esxcli.storage.nmp.path.list.Invoke(@{'device'=$dev}).RuntimeName.Split(':')[-1].TrimStart('L')}
}

# Search for the LUN ID
Write-Host "## Checking datastores..."
Write-Host
foreach ($datastore in $datastores) {
if ($datastore.LunID -eq $lunid) {
Write-Warning -Message "Datastore found! $($datastore.Name) has ID $lunid"
$datastorefound += 1}
}

if ($datastorefound -eq 0) {Write-Host "No datastores found with LUN ID $lunid"}

# Create variable for RDMs with the LUN ID
Write-Host
Write-Host "## Creating list of RDMs..."
$rdms = Get-Cluster $cluster | Get-VM | Get-Harddisk -DiskType "RawPhysical","RawVirtual" | Select `
@{N="VM";E={$_.Parent.Name}},
Name,
@{N="LunID";E={(Get-ScsiLun -VmHost $vmhost -CanonicalName $_.ScsiCanonicalName).RuntimeName.Split(':')[-1].TrimStart('L')}}

# Search for the LUN ID
Write-Host "## Checking RDMs..."
foreach ($rdm in $rdms) {
if ($rdm.LunID -eq $lunid) {
Write-Warning -Message "RDM found! $($rdm.VM) has RDM with Lun ID $lunid"
$rdmfound += 1}
}

if ($rdmfound -eq 0) {Write-Host "No RDMs found with LUN ID $lunid"}
findidlunpowercli

vCenter not using SMTP smarthost but DNS

It's official!! vExpert 2019

Geef een reactie Reactie annuleren

Deze site gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.

Recente berichten
  • VCDA – Operation canceled
  • VxRail Console Commands
  • VxRail Cluster Health Monitoring disabled
  • Handy one-liners
  • Deploying Patches to VCF – RTFM
Categorieën
Proudly powered by WordPress | Theme: Doo by ThemeVS.