Archivi categoria: Azure

Verificare la data di creazione di una Virtual Machine su Azure

Esistono due modi per verificare la data di creazione di una Virtual Machine su Azure… o almeno che io conosca

Metodo 1 – Azure Portal

Se la virtual machine è stata creata negli ultimi 90 giorni, è possibile verificare la data di creazione dal portale Azure tramite il pannello “Activity Log” della VM stessa:

  1. Autenticarsi sul portale Azure (https://portal.azure.com)
  2. Cercare la VM che ci interessa
  3. Dal menù di sinistra, selezionare Activity Log ed eventualmente utilizzare i filtri per filtrare l’intervento di date interessate

Metodo 2 – Azure Powershell

Tramite l’Activity Log possiamo risalire fino a 90 giorni prima. Nel caso la VM sia stata creata da più 90 giorni, bisogna ricorrere a Powershell:

Get-AzVm -name "name.of.virtual.machine" | select timecreated

L’output sarà come quello sotto:

Output “Get-AzVm”


Come scegliere il corretto dimensionamento delle VM in Azure

La vasta disponibilità di configurazioni di VM su Azure non aiuta a capire immediatamente quale sia la migliore per le nostre esigenze. Sapere le differenze delle diverse offerte agevolerà identificare meglio quale dimensionamento potrà fare al caso nostro.

Tipologia e sizing delle VM

Microsoft ha suddiviso le tipologie di virtual machine per tipologia di utilizzo. Quindi, in base a quello che è il workload da configurare, possiamo avere un’idea di quale taglio di macchina andare ad utilizzare.

TypeSizesDescription
General purposeB, Dsv3, Dv3, Dasv4, Dav4, DSv2, Dv2, Av2, DC, DCv2, Dv4, Dsv4, Ddv4, Ddsv4Balanced CPU-to-memory ratio. Ideal for testing and development, small to medium databases, and low to medium traffic web servers.
Compute optimizedF, Fs, Fsv2High CPU-to-memory ratio. Good for medium traffic web servers, network appliances, batch processes, and application servers.
Memory optimizedEsv3, Ev3, Easv4, Eav4, Ev4, Esv4, Edv4, Edsv4, Mv2, M, DSv2, Dv2High memory-to-CPU ratio. Great for relational database servers, medium to large caches, and in-memory analytics.
Storage optimizedLsv2High disk throughput and IO ideal for Big Data, SQL, NoSQL databases, data warehousing and large transactional databases.
GPUNC, NCv2, NCv3, NCasT4_v3 (Preview), ND, NDv2 (Preview), NV, NVv3, NVv4Specialized virtual machines targeted for heavy graphic rendering and video editing, as well as model training and inferencing (ND) with deep learning. Available with single or multiple GPUs.
High performance computeHB, HBv2, HC, HOur fastest and most powerful CPU virtual machines with optional high-throughput network interfaces (RDMA).
Fonte: https://docs.microsoft.com/en-us/azure/virtual-machines/sizes

Il taglio delle VM identifica le “caratteristiche hardware” della macchina virtuale.

Dal nome del taglio della macchina è possibile risalire alle caratteristiche ed alle feature che caratterizzano la VM. Infatti, tutti I nomi utilizzano la seguente nomenclatura:

[Family] + [Sub-family]* + [# of vCPUs] + [Additive Features] + [Accelerator Type]* + [Version]

Dove:

ValueExplanation
FamilyIndicates the VM Family Series
*Sub-familyUsed for specialized VM differentiations only
# of vCPUsDenotes the number of vCPUs of the VM
Additive FeaturesOne or more lower case letters denote additive features, such as:
a = AMD-based processor
d = disk (local temp disk is present); this is for newer Azure VMs, see Ddv4 and Ddsv4-series
h = hibernation capable
i = isolated size
l = low memory; a lower amount of memory than the memory intensive size
m = memory intensive; the most amount of memory in a particular size
t = tiny memory; the smallest amount of memory in a particular size
r = RDMA capable
s = Premium Storage capable, including possible use of Ultra SSD (Note: some newer sizes without the attribute of s can still support Premium Storage e.g. M128, M64, etc.)
*Accelerator TypeDenotes the type of hardware accelerator in the specialized/GPU SKUs. Only the new specialized/GPU SKUs launched from Q3 2020 will have the hardware accelerator in the name.
VersionDenotes the version of the VM Family Series
Fonte: https://docs.microsoft.com/bs-latn-ba/azure/virtual-machines/vm-naming-conventions

Differenze tra CORE e vCPU in Azure e Azure Compute UNIT (ACU)

Con la serie V3, Microsoft ha introdotto l’utilizzo dell’hyper-trading per la virtualizzazione delle VM andando così ad abbattere leggermente I costi (e un pò anche le prestazioni). Dove è utilizzato l’hypertrading, c’è un rapporto 2:1 vCPU/CORE.

Per sapere su quali serie di VM è abilitato l’hyper-trading, è possibile andare su questo link ed identificare dove il valore nella colonna vCPU:Core è 2:1.

Un modo per valutare le performance di una virtual machine su Azure rispetto ad un’altra, è andare a vedere il valore ACU delle VM.

Microsoft ha introdotto il concetto di Azure Compute Unit (ACU) per poter compare le prestazioni di calcolo dei vari tagli delle VM in Azure. Il parametro è statao standardizzato su una VM Standard_A1 alla quale è stato assegnato il punteggio ACU 100. In base a questi valori è possibile capire approssimativamente la velocità di calcolo degli altri SKU. In questa pagina è possibile verificare le ACU dei vari SKU.

Conclusioni

Scegliere la VM giusta non è immediato, come hai visto. Fortunatamente lavorando con Azure si ha la possibilità di essere elastici in alcune scelte. Questo permette di rivedere le scelte fatte inizialmente. Si può così pensare di partire con taglio leggermente più basso rispetto a quello che si è pensato o a quello che si ha on-premise (nel caso si stia effettuando una migrazione), anche per ottimizzare i costi, ed effettuare uno scaling delle risorse in caso di necessità.

Azure: copiare una VM utilizzando gli snapshot dei dischi “managed”

In questo articolo vediamo come copiare (clonare) un Virtual Machine in Azure utilizzando le snapshot dei dischi di tipo managed.

Questa procedura può risultare utile per:

  • spostare una VM tra vNet
  • clonare un piccolo ambiente composto da poche VM. Per ambiente più grossi meglio utilizzare altre soluzioni

In macro step, le operazioni da fare sono:

Creare la snapshot

  1. Assicurarsi che la VM da copiare sia deallocata
  2. Identificati i dischi che compongono la macchina, creare le snapshot:
    Create snapshot
  3. Seguire le indicazione del wizard
  4. Eseguire i punti 2 e 3 per tutti i dischi che compongono la macchina

Creare i dischi

  1. Creare una nuova risorsa “managed disk”
  2. Compilare tutte le informazioni richieste. Indicare come sorgente la snapshot precedentemente creata
  3. Eseguire il punto 1 e 2 per tutti i dischi che compongono la macchina

Configurare la VM

Posizionarsi sul disco del sistema operativo configurato nello step precedente, e cliccare su “+ Create VM”.

Terminata la procedura di creazione della macchina virtuale, procedere con l’aggiungere tutti i dischi che componevano la macchina originale.

Active Directory Domain Services (AD DS), Azure Active Directory (Azure AD) e Azure Active Directory Domain Services (Azure AD DS): differenze ed integrazione tra loro

Microsoft mette a disposizione tre identity services:

  • Active Directory Domain Services (AD DS)
  • Azure Active Directory (Azure AD o AAD)
  • Azure Active Directory Domain Service (Azure AD DS o AAD DS)

Questo può portare confusione nella scelta della soluzione da adottare in quanto il nome Active Directory compare in tutti e tre i servizi, nonostante le tre soluzioni siano differenti tra di loro.

In questo post analizzerò i servizi, come si integrano tra di loro e quando adottarli.

Active Directory Domain Services (AD DS)

Active Directory Domain Services è la versione tradizionale del servizio per la gestione centralizzata delle risorse.

Tra le caratteristiche del servizio:

  • gestione gerarchiale delle risorse;
  • gestione di utenze e risorse tramite group policies;
  • on-premises idendity & authenitcation;
  • autenticazione tramite Kerberos, NTLM o LDAP;
  • trust di domini e foreste

AD DS, dominio autogestito, richiede un alto utilizzo di risorse per la gestione del servizio stesso: gestione dei backup, patching del sistema, upgrade, repliche, etc.

Azure Active Directory (Azure AD)

Se sono utilizzati servizi di Office 365 o di Azure, Azure AD è utilizzata.

A differenza del servizio AD DS, che utilizza l’autenticazione network-based, Azure AD utilizza l’autenticazione web-based.

Tra le caratteristiche del servizio :

  • cloud-based identification & authentication;
  • servizio di gestione account per:
    • accesso al portale Azure
    • Office 365
    • applicazioni SaaS
  • Mobile Device Management (MDM)

Con Azure AD non è possibile:

  • joinare computer al dominio;
  • effettuare autenticazione tramite protocollo Kerberos o NTLM;
  • implementare organization unit;
  • utilizzare implementare\utilizzare account di tipo domain o enterprise admin

Il servizio è garantito, gestito ed ospitato da Microsoft. La gestione delle risorse avviene tramite portale web.

Azure Active Directory Domain Services (Azure AD DS)

Azure AD DS è una soluzione simile alla soluzione on-premise AD DS, con la differenza che è erogato come servizio PaaS in Azure.

Tra le caratteristiche del servizio:

  • servizio PaaS;
  • Autenticazione tramite Kerberos, NTLM o LDAP (read only);
  • trust di domini e foreste non supportata;
  • nessun account “domain admin” o “enterprise admin”

Azure AD DS è integrato con Azure AD: creando un utente in Azure AD automaticamente sarà replicato in Azure AD DS.

Integrazione dei servizi

Come detto sopra, Azure Active Directory è in costante replica con Azure Active Directory Services

Azure AD e Azure AD DS

Azure AD, a sua volta, può essere sincronizzato con l’ambiente on premise di Active Directory Domain Services tramite AD Connect

AD DS, Azure AD e Azure AD DS

Quanto implementare AD DS, Azure AD o Azure AD DS

Active Directory Domain Services se:

  • necessità di configurare relazioni di trust ;
  • necessità di estendere lo schema;
  • la connettività internet è limitata o instabile;
  • necessità di utilizzare account domain o enterprise admin

Azure Active Directory se:

  • l’infrastruttura è interamente sul cloud, senza server configurati on premise;
  • vengono utilizzati solo servizi di tipo PaaS o SaaS;
  • vengono utilizzati solo sistemi di modern authentication

Azure Active Directory Domain Services se:

  • l’infrastruttura è cluod native;
  • utilizzo di servizi IaaS

Azure File Sync: limitare la banda utilizzata

Azure File Sync (AFS) è il servizio di Microsoft che permette di centralizzare i file aziendali in Azure tramite l’installazione di un agente di sincronizzazione installato sul server, sia in Azure che on-premise.

Una volta installato, di default, AFS sfrutta tutta la banda internet disponibile per la sincronizzazione dei dati (sia in upload che in download). Questo comportamento potrebbe però portare a dei malfunzionamenti agli altri workload, nasce quindi la necessità di limitare la banda utilizzata dal servizio.

E’ possibile limitare l’utilizzo della banda da parte di Azure File Sync tramite comandi Powershell (non è possibile da interfaccia grafica).

  1. Importare il modulo AFS
    Import-Module “C:\Program Files\Azure\StorageSyncAgent\StorageSync.Management.ServerCmdlets.dll”
  2. Configurare la regola di QoS. In questo esempio la banda viene limitata dal lunedì al venerdì e dalle 09 alle 19 a 2 Mpbs:
    New-StorageSyncNetworkLimit -Day Monday, Tuesday, Wednesday, Thursday, Friday -StartHour 7 -EndHour 19 -LimitKbps 2000
  3. Verifica della regola configurata:
    Get-StorageSyncNetworkLimit

NOTA: le regole che si configurano influenzano solo il download del dato e non è possibile governare il download del dato, almeno nella data in cui scrivo (16 – 01 – 2010)

Azure: come rimanere aggiornati

Il mondo di Azure è in continua e veloce evoluzione e rimanere aggiornati sulle ultime novità non sempre è semplice.

In questo articolo, alcuni suggerimenti per come non perdere nessuna novità sul cloud targato Microsoft.

Tutte le novità e aggiornamenti vengono pubblicati sul sito Azure Updates. Iscrivendosi ai feed RSS si può rimanere costantemente aggiornati.

Azure Heat Maps è uno strumento scritto da non di Microsoft che visualizza gli ultimi aggiornamenti in maniera grafica ed avere una panoramica immediata delle ultime novità. E’ possibile filtrare gli aggiornamenti per tecnologia, paese e altro.

Schermata di Azure Heat Map

Un altro metodo per rimanere aggiornati è quello di seguire sui social come LinkedIn le pagine ufficiali.

Troubleshooting: Azure Application Gateway e “Inbound Anomaly Score Exceeded”

Scenario:
In Azure, un Application Gateway gestisce gli accessi ad un sito web.
Provando ad accedere al sito dall’esterno, la pagina non viene visualizzata correttamente

Soluzione:
Andando ad analizzare i log dell’Application Gateway (vedere il seguente link per abilitare la diagnostica: https://docs.microsoft.com/en-us/azure/application-gateway/application-gateway-diagnostics) è presente questo evento:

[…]
"ruleSetType": "OWASP",
"ruleSetVersion": "3.0",
"ruleId": "0",
"ruleGroup": "Default",
"message": "Mandatory rule. Cannot be disabled. Inbound Anomaly Score Exceeded (Total Score: 5)",
"action": "Blocked",
"site": "Global",
[…]


Generalmente, questo evento è generato quando la richiesta è stata bloccata da una o più cause. Il problema è quindi da ricercare nei log precedenti.

Powershell: script autenticazione su Azure CSP con scelta customer e subscription

Lo script sotto esegue l’autenticazioni su sottoscrizioni Azure di tipo CSP e la selezione della sottoscrizione da utilizzare tramite due menù di scelta.

<#
Requirement:
Powershell 5.1
Module: 
- Partner Center
- Az
#>

Import-Module PartnerCenter

Connect-PartnerCenter  
# Select customer
$customer = Get-PartnerCustomer | Out-GridView -Title "Select the partner and click OK" -PassThru

Login-Azaccount -TenantId $customer.CustomerId

# Select subscription
$Subscription = Get-AzSubscription | Out-GridView -Title "Select the Subscription and click OK" -PassThru
Select-AzSubscription -SubscriptionId $Subscription.Id -TenantId $Subscription.TenantId

Volendo, è possibile memorizzare le credenziali per evitare che vengano richieste due volte tramite il cmdlet “get-credential”. Nel momento in cui sto scrivendo, parrebbe che il comando “connect-partnercenter” generi un errore nel passaggio delle variabili (nonostante il fatto che l’autenticazione si concluda comunque con successo).

Disclaimer: nessuna garanzia è fornita con questo script. Lo scrivente non è responsabile di qualunque danno possa eventualmente derivarne – lo utilizzate a vostro rischio.

DPM (o Azure Backup Server): leggere il file di log FailedFilesLog.txt

In caso di errore ID 32538, il DPM generera un log in \?\Volume{VolumeGUID}\someID.
Il volume è posizionato in
– per il server Azure Backup
C:\Program Files\Microsoft Azure Backup Server\DPM\DPM\Volumes\Replica
– Per il DPM “classico”
C: \Program Files\Microsoft DPM\DPM\Volumes\Replica\servername\File System

Se si prova ad accedere al volume, può dare un errore di “access deny”

Per poter quindi aprire il file:

  • scariacre il tool PSEXEC (www.sysinternals.com)
  • da una command line con privilegi amministrativi eseguire il comando “psexec64 -I -d -s c:\windows\explorer.exe
  • dalla nuova finestra, accedere al file FailedFilesLog.txt

Creare lista delle VM configurate in Azure Resource Manager con Powershell

Il seguente script esporta in un file CSV la lista e le configurazioni delle VM configurate in Azure Resource Manager.

Configurazioni esportate:

  • Nome macchina
  • Resource Group
  • Utenza amministratrice locale
  • Indirizzo IP
  • Informazioni dischi
$vms = get-azurermvm
$nics = get-azurermnetworkinterface | where VirtualMachine -NE $null 
$VMArray = @()

foreach($nic in $nics)
    {
        $vm = $vms | where-object -Property Id -EQ $nic.VirtualMachine.id
        $IPprv =  $nic.IpConfigurations | select-object -ExpandProperty PrivateIpAddress
        $AlMeth =  $nic.IpConfigurations | select-object -ExpandProperty PrivateIpAllocationMethod
        
        $VMArray += New-Object PSObject -Property @{`
        Name = $vm.Name;
        ResourceGroup = $vm.ResourceGroupName;
        AdminUserName = $vm.AdminUsername;
        PrivateIPAddress = $IPprv ;
        IPAllocation = $AlMeth;
        Location = $vm.Location;
        Size = $vm.HardwareProfile.VmSize;
        ImageSKU = $vm.StorageProfile.ImageReference.Sku;
        OSType = $vm.StorageProfile.OsDisk.OsType;
        DataDiskCount = $vm.StorageProfile.DataDisks.Count;
        DataDisks = $vm.StorageProfile.DataDisks;
        }
    

}
$VMArray | export-csv "AzureRMInventory.csv"

Disclaimer: Nessuna garanzia è fornita con questo script. Lo scrivente non è responsabile di qualunque danno possa eventualmente derivarne – lo utilizzate a vostro rischio.