Riepilogo
In questo post del blog, esploriamo un approccio che sfrutta gli strumenti del sistema operativo Windows per estrarre dati metrici critici direttamente dai server Windows. In Amazon Web Services (AWS), offriamo Valutatore della migrazione collezionista senza agente e Servizio di scoperta delle applicazioni AWS per facilitare la scoperta del carico di lavoro. Tuttavia, alcuni clienti eseguono carichi di lavoro altamente sicuri in cui non è fattibile distribuire strumenti di valutazione, abilitare l’accesso remoto o monitorare protocolli come SNMP e WMI.
Panoramica della soluzione
Per recuperare le metriche di Windows Server, sfrutteremo i servizi nativi di Windows come PowerShell e Performance Monitor. Gli script di PowerShell possono recuperare dati di provisioning come CPU, memoria, capacità del disco e informazioni sulle licenze del sistema operativo. Inoltre, estrarremo anche le metriche delle prestazioni utilizzando Performance Monitor, concentrandoci sull’utilizzo di CPU e memoria. Combinando questi risultati, possiamo fornire dati per il modello di importazione dati di Migration Evaluator per procedere con una valutazione dei costi gratuita. In questo modo, puoi dimensionare correttamente le tue risorse AWS con sicurezza, assicurando prestazioni ottimali ed efficienza dei costi. Vedi quanto segue esempio di rapporto di caso aziendale generato da Migration Evaluator.
Questa soluzione comprende tre parti per la valutazione. Le parti 1 e 2 recuperano i dati di provisioning e utilizzo per un singolo server e devono essere ripetute per ogni server.
- Parte 1 – Recupero dei dettagli del provisioning del server tramite PowerShell.
- Parte 2 – Misurazione dell’utilizzo della CPU e della memoria con Windows Performance Monitor.
- Parte 3 – Valutazione del dimensionamento corretto utilizzando il modello di importazione dati di Migration Evaluator.
Prerequisiti
Per eseguire la valutazione utilizzando Migration Evaluator, sono necessari tre prerequisiti.
- Richiedi una valutazione. Inizia richiedendo una valutazione per accedere alla console Migration Evaluator (Figura 1).
Figura 1. Modulo di richiesta di valutazione della migrazione
- Convalida la versione di PowerShell nel tuo ambienteLo script di PowerShell fornito è stato convalidato su PowerShell versione 5.1 e 7.4. Se il tuo ambiente utilizza una versione di PowerShell diversa che non è stata ancora convalidata, lo script visualizzerà un messaggio di avviso che chiede conferma prima dell’esecuzione.
- Scarica un file modello di importazione dati di Migration EvaluatorIl collegamento al file modello è disponibile da entrambi Console di valutazione della migrazione dopo la valutazione richiesta e l’autorizzazione di accesso concessa o da Pagina delle risorse di Migration Evaluator nella sezione Modello di importazione dati.
Procedura dettagliata
Parte 1 – Recupero dei dettagli del provisioning del server tramite PowerShell
Per recuperare i dettagli dei dati di provisioning di Windows Server, puoi utilizzare PowerShell. Questo processo ti consente di raccogliere informazioni come nome del server, CPU, memoria, capacità del disco e sistema operativo.
1. Creare lo script PowerShell.
a) Salvare il seguente frammento di codice come un file denominato ottenere_provisioning.ps1 nella directory utente sul server di origine. Questo script di PowerShell serve a recuperare i dati di provisioning da Windows Server.
# Validate Powershell version qualified for version 5.1 or 7.4, if not then show warning message.
[string]::Concat("[INFO]Powershell version " , $PSVersionTable.PSVersion.Major, ".", $PSVersionTable.PSVersion.Minor, " detected in your environment.")
if ( -not ( ( ( 5 -eq $PSVersionTable.PSVersion.Major ) -and ( 1 -eq $PSVersionTable.PSVersion.Minor ) ) -or
( ( 7 -eq $PSVersionTable.PSVersion.Major ) -and ( 4 -eq $PSVersionTable.PSVersion.Minor ) ) ) )
{
[string]::Concat("[WARNING]Powershell version 5.1 or 7.4 is supported, for other Powershell versions it is not validated.")
$confirmation = Read-Host "Not a validated Powershell version, Are you Sure You Want To Proceed? [y/n]"
while($confirmation -ne "y")
{
if ($confirmation -eq 'n') {exit}
$confirmation = Read-Host "Not a validated Powershell version, Are you Sure You Want To Proceed? [y/n]"
}
}
# Retrieve Server Name/CPU Cores/Memory/Storage/OS etc. provisioning metrics
try {
$Server_Name = hostname
$CPU_Cores = (Get-CimInstance Win32_ComputerSystem).NumberOfLogicalProcessors
[int]$Memory_MB = (Get-CimInstance Win32_ComputerSystem).TotalPhysicalMemory / 1GB * 1024
$Storage = Get-CimInstance -ClassName Win32_LogicalDisk | ? {$_. DriveType -eq 3} # 3:'Local Disk'
[int]$Provisioned_Storage_GB = 0
[int]$Free_Storage_GB = 0
foreach ($s in $Storage){
$Provisioned_Storage_GB = $s.Size / 1GB + $Provisioned_Storage_GB
$Free_Storage_GB = $s.FreeSpace / 1GB + $Free_Storage_GB
}
$Storage_Type = (Get-PhysicalDisk | Select FriendlyName, MediaType).MediaType
$Operating_System = (Get-CimInstance Win32_OperatingSystem).Caption
$Is_Virtual? = "please update value to FALSE/TRUE"
$Cpu_String = (Get-CimInstance Win32_processor).Name
}
catch {
Write-Error "[ERROR]Failed to fetch part of metrics, please try to break down command to row to solve the error first."
Exit
}
# Print out the detected provisioning information to terminal screen
[string]::Concat("Server Name :" , $Server_Name)
[string]::Concat("CPU Cores :" , $CPU_Cores)
[string]::Concat("Memory (MB) :" , $Memory_MB)
[string]::Concat("Provisioned Storage (GB):" , $Provisioned_Storage_GB)
[string]::Concat("Used Storage (GB) :" , $Provisioned_Storage_GB - $Free_Storage_GB)
[string]::Concat("Storage Type :" , $Storage_Type)
[string]::Concat("Operation System :" , $Operating_System)
[string]::Concat("Is_Virtual? :" , $Is_Virtual?)
[string]::Concat("CPU String :" , $Cpu_String)
# Export detected provisioning information to CSV file
$data = @(
[PSCustomObject]@{
"Server Name" = $Server_Name
"CPU Cores" = $CPU_Cores
"Memory (MB)" = $Memory_MB
"Provisioned Storage (GB)" = $Provisioned_Storage_GB
"Operating System" = $Operating_System
"Is Virtual?" = $Is_Virtual?
"Hypervisor Name" = ""
"Cpu String" = $Cpu_String
"Environment" = ""
"SQL Edition" = ""
"Application" = ""
"Cpu Utilization Peak (%)" = ""
"Memory Utilization Peak (%)" = ""
"Time In-Use (%)" = ""
"Annual Cost (USD)" = ""
"Storage Type" = $Storage_Type
"Used Storage (GB)" = $Provisioned_Storage_GB - $Free_Storage_GB
}
)
try {
$OutFile = [string]::Concat($Server_Name , "_Provisioning.csv")
[string]::Concat("OutFile:" , $OutFile)
if (!(Test-Path $OutFile)) {
New-Item -Path $OutFile -ItemType File
}
$data | Export-Csv -Path $OutFile -NoTypeInformation
}
catch {
Write-Error "[ERROR]Error occured while trying to export data to CSV file"
Exit
}
2. Eseguire lo script PowerShell.
a) Aprire PowerShell con privilegi amministrativi.
b) Passare alla directory in cui è stato salvato il file script ottenere_provisioning.ps1 ed eseguire lo script (Figura 2).
Figura 2. Esecuzione dello script PowerShell con ruolo di amministratore
3. Rivedere e aggiornare l’output.
a) Un file CSV denominato {nome_server}_provisioning.csv verrà generato nella stessa directory utente. Il nome del file sarà composto dal nome effettivo del server.
b) Esaminare le metriche di provisioning raccolte nel file CSV (Figura 3).
Figura 3. Esempio di output CSV con metriche di provisioning
c) La colonna È virtuale? deve essere aggiornato correttamente in base alle impostazioni ambientali effettive del cliente.
d) La colonna Tipo di archiviazione potrebbe non essere popolato per il valore SSD o HDD. Se esistono più unità e l’unità C è SSD e l’unità D è HDD, il valore sarà SSD Disco rigidosi consiglia di correggere manualmente il valore.
e) La colonna Spazio di archiviazione utilizzato (GB) il valore verrà ignorato poiché Migration Evaluator utilizzerà di default il 50% di utilizzo dello storage fornito per stimare il costo dello storage. Per utilizzare i valori di storage effettivamente utilizzati, chiarire questo requisito con il team AWS.
Parte 2 – Misurazione dell’utilizzo della CPU e della memoria con Windows Performance Monitor
Utilizzeremo Windows Performance Monitor per raccogliere dati di utilizzo tramite contatori delle prestazioni. Questi contatori tracciano varie metriche di sistema. Per stimare in modo efficace i requisiti delle risorse, consigliamo di raccogliere dati di utilizzo durante il periodo di picco del carico di lavoro e durante un ciclo di carico di lavoro tipico per tenere conto delle variazioni. Queste informazioni aiuteranno a determinare le risorse appropriate durante l’esercizio di ridimensionamento corretto.
1. Creare un nuovo set di raccolta dati.
a) Aprire Windows Performance Monitor con privilegi amministrativi.
b) Nel riquadro di sinistra, seleziona Set di raccolta dati.
c) Nel riquadro destro, fare clic con il pulsante destro del mouse Definito dall’utenteseleziona Nuovo, quindi seleziona Set di raccolta dati.
d) Nel Crea un nuovo set di raccolta dati procedura guidata, immettere un nome per il set di raccolta dati. Ad esempio, Modello di importazione dati di Migration Evaluator Data Set.
e) Selezionare Crea manualmente (Avanzato) e poi seleziona Prossimo.
f) Sotto Creare registri datiSelezionare Contatore delle prestazionie seleziona Prossimo.
2. Selezionare i contatori delle prestazioni (Figura 4).
a) Impostare l’intervallo di campionamento su 9 minutiCiò è in linea con l’impostazione del raccoglitore di Migration Evaluator, ma puoi definire un intervallo di raccolta personalizzato.
b) Selezionare Aggiungere.
c) Selezionare i contatori delle prestazioni % Utilità del processore nella sezione Informazioni sul processore e % Byte impegnati in uso nella sezione Memoria dell’elenco.
Figura 4. Impostazione dei contatori delle prestazioni in Windows Performance Monitor
d) Selezionare AggiungereSelezionare OK poi Prossimo.
3. Salvare ed eseguire il set di raccolta dati.
a) Passare alla directory in cui si desidera memorizzare i dati e quindi selezionare ProssimoPotresti voler archiviare i dati su una condivisione di file di rete per aggregare i dati raccolti in un luogo centrale.
b) Selezionare Fine.
c) Nel riquadro sinistro della finestra principale Monitoraggio delle prestazioni finestra, espandere la Definito dall’utente menu e seleziona il set di raccolta dati che hai creato.
d) Nel riquadro destro, fare clic con il pulsante destro del mouse sul contatore delle prestazioni Collezionista di dati01 e poi seleziona Proprietà.
e) Selezionare Separato da virgola come formato del registro e quindi selezionare OK.
f) Nel riquadro di sinistra, fare clic con il pulsante destro del mouse sul nome del set di raccolta dati creato, quindi selezionare Proprietà.
g) Ai sensi dell’art. Condizione di arresto scheda, seleziona Durata complessiva e imposta la durata a 7 giorni come periodo consigliato per la raccolta dati. Ciò fermerà automaticamente il raccoglitore, ma puoi definire il tuo periodo di raccolta. Quindi, seleziona OK.
h) Nel riquadro di sinistra, fare clic con il pulsante destro del mouse sul nome del set di raccolta dati creato e selezionare InizioLo strumento Windows Performance Monitor avvia il monitoraggio del server e memorizza le informazioni nella posizione specificata.
4. Verificare i dati raccolti (Figura 5).
a) Accedere alla cartella in cui sono archiviati i dati del registro delle prestazioni.
b) Aprire il file CSV per verificare i dati delle metriche raccolti dai contatori delle prestazioni.
Figura 5. Esempio di output CSV dai contatori delle prestazioni
Parte 3 – Valutazione del dimensionamento corretto utilizzando il modello di importazione dati di Migration Evaluator
Dopo aver raccolto i dati utilizzando i meccanismi nativi di PowerShell e Performance Monitor, aggregherai questi dati di provisioning e utilizzo nel modello di importazione dati di Migration Evaluator per ogni server. Infine, condividi il modello di importazione dati completato con AWS per elaborare il report di valutazione di Migration Evaluator.
1. Aggregare i dati raccolti nel modello di importazione dati di Migration Evaluator.
Di seguito, introdurremo un metodo di base per aggregare i dati utilizzando Microsoft Excel, per aiutare a comprendere come Migration Evaluator gestisce queste metriche. Se hai più dati server da aggregare, puoi mettere i dati di provisioning e di utilizzo raccolti in due cartelle separate, comprimere i file e caricare il file compresso su Console di valutazione della migrazione per il consolidamento di AWS.
a) Aprire il file CSV dei dati di provisioning introdotto nella Parte 1 per ciascun server utilizzando Microsoft Excel, copiare e incollare i dati di ciascun server nel modello di importazione dati di Migration Evaluator con il metodo di download descritto nella sezione Prerequisiti.
b) Aprire il file CSV dei dati di utilizzo introdotto nella Parte 2 utilizzando Microsoft Excel e aggregare i dati di utilizzo per server nel modo seguente.
i. Ordinare la colonna nel file csv dei dati di utilizzo per identificare il P95 di utilizzo CPU/Memoria. Ad esempio, ci sono 100 record. Il 95° record dopo l’ordinamento del % Byte impegnati in uso la colonna ascendente sarà l’utilizzo della memoria P95 e il 95° record dopo l’ordinamento % Utilità del processore la colonna in ordine crescente mostrerà l’utilizzo della CPU P95.
ii. Calcolare il Tempo di utilizzo metriche identificando la percentuale di record in cui l’utilizzo della CPU è superiore al 5%. Ad esempio, ci sono 100 record e 20 record in % Utilità del processore le colonne hanno un valore maggiore del 5%, quindi la percentuale di Tempo di utilizzo durante il periodo di riscossione completa è del 20%.
c) Aggiornare le seguenti colonne di utilizzo nel file modello di importazione dati preparato con lo stesso server:
-
- Picco di utilizzo della CPU (%).
- Picco di utilizzo della memoria (%).
- Tempo di utilizzo (%).
2. Finalizzare e condividere il modello di importazione dati di Migration Evaluator con AWS
a) Se applicabile, aggiornare colonne aggiuntive, come SQL Edition, in base alle indicazioni del glossario del modello di importazione dati.
b) Caricare il modello completamente compilato contenente i dati di tutti i server nella Migration Evaluator Console.
c) Il team di valutatori della migrazione fornirà tempestivamente il rapporto di valutazione entro pochi giorni, supponendo che non manchino dati.
Ripulire
Nella Parte 2, hai implementato un meccanismo per interrompere automaticamente la raccolta dati, ma questo non pulirà il data collector. Per eliminare esplicitamente il data collector, apri Windows Performance Monitor con privilegi amministrativi e fai clic con il pulsante destro del mouse sul nome del data collector, seleziona Eliminare.
Conclusione
La chiave per dimensionare correttamente i carichi di lavoro Windows sta nell’utilizzare dati precisi. In questo post, abbiamo dimostrato come recuperare dati di metriche senza distribuire uno strumento di valutazione sui carichi di lavoro Windows. Inoltre, abbiamo illustrato come puoi incorporare questi dati nel file Migration Evaluator Data Import Template per una stima dei costi direzionali basata su dati di provisioning e utilizzo accurati.
Sebbene introduciamo questa soluzione per i carichi di lavoro di Windows Server in cui non è possibile distribuire strumenti di valutazione o abilitare l’accesso remoto o protocolli di monitoraggio standard, i clienti dovranno eseguire script di PowerShell e configurare Performance Monitor per raccogliere i dati richiesti. Consigliamo di prendere in considerazione la distribuzione dello strumento di raccolta senza agente Migration Evaluator se non ci sono blocchi. In questo modo verranno forniti dati di metriche altamente accurati e verranno utilizzati protocolli standard sulla rete, consentendo la raccolta da migliaia di server con il minimo sforzo. Per ulteriori informazioni, fare riferimento a Pagina delle risorse del valutatore della migrazione.