This commit is contained in:
Zack Meier
2026-04-15 15:42:41 -05:00
parent 74edcc4d9a
commit 03dba08135
146 changed files with 9119 additions and 1 deletions
+53
View File
@@ -0,0 +1,53 @@
Connect-VIServer itdvmvc2.nd.gov -Credential $PrvCred
$MdnSQLVMs = [System.Collections.ArrayList]@()
$MdnSQLVMs += Get-DatastoreCluster WINDOWS2* | Get-VM -Tag 'SQL MSDN' -Server itdvmvc2.nd.gov | sort-object Name
$MdnSQLVMs += Get-DatastoreCluster WINDOWS2* | Get-VM -Tag 'SQL Enterprise Academic' -Server itdvmvc2.nd.gov | sort-object Name
$MdnSQLVMs += Get-DatastoreCluster WINDOWS2* | Get-VM -Tag 'SQL Standard' -Server itdvmvc2.nd.gov | sort-object Name
$MdnSQLVMs = $MdnSQLVMs | sort-object -Descending ProvisionedSpaceGB
# SQL / IndPer first
ForEach ($VM in $MdnSQLVMs) {
$DatastoreDestination = Get-DatastoreCluster WINDOWS2_FS92_SQL
$DatastoreHighestFreeSpaceGB = $DatastoreDestination | Get-Datastore | Sort-Object -Descending FreeSpaceGB | Select -First 1
If($VM.ProvisionedSpaceGB -lt $DatastoreHighestFreeSpaceGB.FreeSpace)
{
$VM | Move-VM -DiskStorageFormat Thick -Datastore $DatastoreDestination
}
Else
{
Write-Error ("Not enough free space available for " + $VM.Name + ". Available: " + $DatastoreHighestFreeSpaceGB.FreeSpaceGB + "GB available, " + $VM.UsedSpaceGB + "GB required.") -ErrorAction Stop
Stop
Exit
}
}
$MdnVMs = Get-DatastoreCluster WINDOWS2_A9K_General | Get-VM | Sort-Object -Descending UsedSpaceGB
$DatastoreDestination = Get-DatastoreCluster WINDOWS2_FS9_General
ForEach ($VM in $MdnVMs) {
$wait = $true
$DatastoreHighestFreeSpaceGB = $DatastoreDestination | Get-Datastore | Sort-Object -Descending FreeSpaceGB | Select -First 1
If($VM.UsedSpaceGB -gt $DatastoreHighestFreeSpaceGB.FreeSpace)
{
While ($wait -eq $true) {
$tasks = Get-Task | where-object { $_.Name -like "Relocate*" -or $_.Name -like "ApplyStorageDrsRecommendation*" } | where-object { $_.State -eq "Running" }
If (@($tasks).count -lt 3) {
$wait = $false
}
else {
$wait = $true
Write-Warning ("[$VM]:Start sleep " + (Get-Date))
Write-Verbose @($tasks).count
Start-Sleep -Seconds 20
}
}
$VM | Move-VM -Datastore $DatastoreDestination
Start-Sleep -Seconds 10
}
Else
{
Write-Error ("Not enough free space available for " + $VM.Name + ". Available: " + $DatastoreHighestFreeSpaceGB.FreeSpaceGB + "GB available, " + $VM.UsedSpaceGB + "GB required.") -ErrorAction Stop
Stop
Exit
}
}