Archivi categoria: docker

Abilitare la nested virtualization con le nuove Azure VM Dv3 ed Ev3

Sono disponibili solo da un paio di giorni (e non in tutte le Regioni di Azure) le nuove macchine virtuali della Serie Dv3 ed Ev3. Queste macchine virtuali sono le prime ad essere ospitate su host Hyper-V basati su Windows Server 2016 e sono le prime che usano la tecnologia Hyper-Threading.

L’utilizzo dell’Hyper-Threading permetterà di creare macchine virtuali con più core e quindi migliorerà le performance e l’efficienza delle VM. I processori utilizzati sono Intel® Broadwell E5-2673 v4 2.3GHz e Intel® Haswell 2.4 GHz E5-2673 v3.

Grazie all’host Windows Server 2016 è adesso possibile abilitare la Nested Virtualization, che permette di poter eseguire il ruolo di Hyper-V anche in una macchina virtuale e di farci girare macchine virtuali annidate oppure Hyper-V Containers. Per maggiori informazioni su cosa sia la virtualizzazione annidata e come abilitarla in Windows Server 2016 vi rimando alla lettura dell’articolo https://docs.microsoft.com/it-it/virtualization/hyper-v-on-windows/user-guide/nested-virtualization

Alla pagina https://azure.microsoft.com/it-it/blog/introducing-the-new-dv3-and-ev3-vm-sizes/ potrete trovare un elenco dettagliato delle nuove VM disponibili, dei tagli previsti e delle Regioni dove attualmente sono abilitate.

Creazione di una nuova VM di tipo Ev3 su Azure

Per poter sfruttare la Nested Virtualization è necessario creare una macchina virtuale di tipo Dv3 oppure Ev3 in una delle regioni abilitate. Io ho deciso di utilizzare una macchina E4s_v3 e l’ho creata in West Europe, scegliendo come sistema operativo Windows Server 2016.

Figura 1: Creazione della VM in West Europe

Figura 2: Scelta della dimensione della VM

Figura 3: Configurazione dello storage, della rete e dell’IP pubblico della VM

Figura 4: Schermata riassuntiva con le scelte selezionate

Al termine della creazione della VM potete collegarvi in desktop remoto per configurarla. Dal Server Manager aggiungete il ruolo di Hyper-V e vedrete che non riceverete nessun messaggio di errore, come mostrato in figura:

Figura 5: Abilitazione del ruolo Hyper-V nella nested VM in Azure

Abilitazione della Nested Virtualization

Per semplificare l’abilitazione e la creazione di macchine virtuali annidate, potete scaricare uno script in PowerShell realizzato da Charles Ding, ingegnere del gruppo di sviluppo Microsoft Azure, all’indirizzo https://aka.ms/azurenestedvirtualization. Lo script vi permetterà di configurare il ruolo di Hyper-V e tutte le altre caratteristiche necessarie alla creazione della Nested VM.

Eseguite lo script in PowerShell ISE (lanciato con privilegi elevati) e la prima volta lo script provvederà ad installare il ruolo di Hyper-V, come mostrato in figura:

Figura 6: Esecuzione dello script che installa Hyper-V e che crea la VM annidata

L’installazione di Hyper-V richiede un paio di riavvii, quindi verrete disconnessi dal desktop remoto. Dopo qualche minuto, potrete ricollegarvi e rilanciare lo script per creare la VM. Modificate il valore $VMName “NestedVM-Level2” scegliendo il nome che volete assegnare alla vostra Nested VM e rilanciate lo script. Lo script verificherà che i prerequisiti sia tutti rispettati e creerà la macchina virtuale, abilitando tutte le estensioni necessarie alla virtualizzazione annidata, come mostrato in figura:

Figura 7: Lo script ha creato la VM annidata

Dopo aver avviato la VM annidata, nel mio caso chiamata NestedVM-Level2, potete installare il sistema operativo, come mostrato in figura:

Figura 8: Accensione della nested VM e installazione del sistema operativo

Se volete permette alla macchina annidata di navigare, poiché il MAC Address spoofing non è abilitato su Azure per motivi di sicurezza, sarà necessario creare una rete NAT nell’hypervisor (la VM su Azure) e poi assegnare alla Nested VM un indirizzo statico oppure potete usare il DHCP.

Per prima cosa create nella macchina “host” (la VM su Azure) un nuovo internal switch chiamato NAT utilizzando il comando PowerShell (lanciato con privilegi elevati):

#Creazione di uno switch di tipo Internal

New-VMSwitch -SwitchName “NAT” -SwitchType Internal

Con il comando Get-NetAdapter individuate l’indice assegnato alla nuova interfaccia di rete creata

Figura 9: Interfaccia di rete creata dallo switch di tipo Internal

A questo punto potete assegnare alla nuova scheda di rete un indirizzo IP statico (nel mio caso ho scelto 192.168.0.1), che poi verrà utilizzato dalla nested VM come gateway:

#Assegnazione dell’IP alla nuova interfaccia (sarà il gateway della rete)

New-NetIPAddress -IPAddress 192.168.0.1 -PrefixLength 24 -InterfaceIndex 13

Figura 10: Assegnazione dell’IP statico alla nuova interfaccia di rete

Create la rete di NAT utilizzando il comando PowerShell (lanciato con privilegi elevati):

#Creazione della rete di NAT

New-NetNat -Name NATnetwork -InternalIPInterfaceAddressPrefix 192.168.0.0/24

Adesso che avete completato la configurazione della rete potete collegare la Nested VM al virtual switch NAT che avete creato in precedenza, come mostrato in figura:

Figura 11: La nested VM viene collegata al virtual switch chiamato NAT

Potete installare sulla macchina Azure il servizio DHCP e quindi fare in modo che gli indirizzi vengano assegnati automaticamente. In alternativa potete configurare la scheda di rete della Nested VM con un IP statico, come mostrato in figura:

Figura 12: Configurazione dell’IP statico nella Nested VM

Come è possibile vedere dalla figura sotto, adesso la Nested VM è in grado di navigare in Internet.

Figura 13: La nested VM è connessa ad Internet

Conclusioni

La Nested Virtualization su Azure permette di utilizzare la nuova funzionalità di Windows Server 2016 e di eseguire macchine virtuali annidate oppure gli Hyper-V Containers di Docker. Un possibile caso d’uso della virtualizzazione annidata potrebbe essere la configurazione di un laboratorio di Hyper-V in un ambiente virtualizzato e il test di scenari a più computer (come ad esempio un cluster) senza la necessità di avere dei server fisici.

Le mille ragioni per amare Windows Server 2016

Windows Server 2016 è sempre più una realtà, e credo sia d’obbligo un approfondimento sulle potenzialità, novità e caratteristiche che lo distinguono in questa ultima versione super innovativa.

Prima di approfondire l’argomento, un ringraziamento all’autore di questo articolo:

Nicola Ferrini 2015 500x619  

Nicola Ferrini è un Trainer con oltre 15 anni di esperienza e le sue qualifiche sono focalizzate sull’attività sistemistica, dalle reti ai sistemi integrati, dalla virtualizzazione dei server e dei desktop a quella delle applicazioni. E’ un esperto di Private e Public Cloud e collabora con le più importanti community italiane. E’ Microsoft MVP per la categoria Windows and Devices for IT e per la categoria Microsoft Azure, nonché Regional Director per tutti gli MVP italiani.

Da pochi giorni, dopo anni di sviluppo (che seguo dal lontano Aprile 2014), è stato rilasciato ufficialmente Windows Server 2016. Il nuovo sistema operativo Server, che graficamente assomiglia molto al suo predecessore, in realtà apporta delle novità tecniche davvero interessanti. Molti lo hanno definito a buon diritto il Cloud-ready OS, un sistema operativo pensato per il Cloud che ci permette di avere in azienda la possibilità di realizzare un Software Defined Datacenter.
Le novità introdotte a livello di virtualizzazione, storage e networking sono state pensate per ottimizzare le risorse hardware e per permetterci di aumentare scalabilità e performance dei sistemi.
Tra le novità introdotte in Windows Server 2012 e 2012 R2 che sono state migliorate in Windows Server 2016 possiamo citare quelle che ritengo le più interessanti:
  • Work Folders: Permettono di accedere ai file aziendali sia alle macchine in dominio che alle macchine in workgroup e permettono di sincronizzarli.
  • IPAM (IP Address Management): Permette di gestire e monitorare gli indirizzi IP rilasciati dai server DHCP e di amministrare i DNS. IPAM permette anche di poter tenere traccia degli IP rilasciati per diversi anni, a fini legali.
  • Dynamic Access Control: Permette di poter accedere alle risorse condivise in rete sfruttando la claim-based authorization, cioè usando gli attributi degli utenti, dei gruppi e dei computer, oltre al loro SID, per poter settare le permission di security.
  • Data Deduplication: Permette di conservare dati in minor spazio andando a deduplicare i chunk, cioè le singole porzioni di memorizzazione del dato sul disco. Adesso Data Deduplication supporta i file di Backup di System Center Data Protection Manager, supporta Nano Server e supporta volumi fino a 64TB e singoli file fino a 1TB.
  • Storage Spaces: Permette di aggregare più dischi fisici in storage pools e di usarli per gestire in maniera più efficiente lo storage, aumentando efficacia, alta disponibilità e scalabilità.
  • Storage Tiers: Permettono di utilizzare diversi tipi di dischi (HDD e SSD) negli Storage Spaces in modo tale da migliorare le performance. Un ottimo compromesso tra Capacity (HDD) e Performance (SSD).
  • Multiterabyte volumes: I volumi NTFS che usano MBR (master boot record) possono arrivare fino a 2TB, mentre i volumi che usano GPT (GUID partition table) possono essere grandi fino a 18 EB.
    • ReFS: Il nuovo Resilient File System introdotto in Windows Server 2012 offre la possibilità di avere integrità, disponibilità e scalabilità migliorata, oltre al controllo di errore per i file.

Tra le nuove funzionalità introdotte in Windows Server 2016 vi segnalo invece:

  • Nano Server: Una nuova modalità di installazione di Windows Server senza interfaccia grafica e senza prompt dei comandi, pensata per far girare il workload di Hyper-V e degli Scale-Out File Server.
  • Windows Server Containers e Hyper-V Containers: I Containers permettono di far girare le applicazioni in maniera isolata tra loro e rispetto al sistema operativo. Questo permette di avere maggiore flessibilità nella distribuzione delle applicazioni e maggiore sicurezza. Gli Hyper-V Containers hanno un livello di isolamento maggiore perché girano all’interno di macchine virtuali.
  • Docker: È una tecnologia studiata per la gestione dei containers che nasce nel mondo Open Source e che Microsoft ha introdotto anche in Windows Server 2016 e Windows 10.
  • Hyper-V Nested Virtualization: La nested virtualization permette di far girare macchine virtuali all’interno di macchine virtuali. La funzionalità è stata pensata per gli Hyper-V Containers.
  • Production CheckPoint: La funzionalità permette ad Hyper-V di catturare checkpoint consistenti delle macchine virtuali, non catturando più soltanto lo stato della memoria della VM ma avvisando il sistema operativo guest, tramite i provider VSS per Windows e file system freeze per Linux, in modo tale da avere storage snapshot consistenti.
  • PowerShell Direct: Questa funzionalità permette di eseguire dei comandi PowerShell direttamente dal sistema Host all’interno delle macchine virtuali, senza configurare la rete o il firewall.
  • Shielded VM: L’accesso alle macchine virtuali viene consentito solo a chi è autorizzato, crittografando di fatto la macchina virtuale e la connessione alla stessa console della VM ed impedisce agli amministratori non abilitati di potervi accedere.
  • Storage Spaces Direct: Questa funzionalità permette di usare i dischi locali delle macchine fisiche per creare un unico spazio condiviso, altamente scalabile e affidabile, in cui poterci mettere file oppure dischi delle macchine virtuali. Ciò permette di fatto di semplificare la distribuzione e la gestione dei sistemi di software-defined storage e permette l’utilizzo dei nuovi dischi SSD e NVMe. Non è più necessario infatti avere storage condiviso e i singoli server gestiscono e muovono i dati utilizzando il protocollo SMB 3.0
  • Storage Replica: Permette di replicare volumi tra server e/o cluster diversi, a livello di blocchi, sia in maniera sincrona che in maniera asincrona, per assicurare il disaster recovery. I dati possono essere così copiati tra server che si trovano in siti fisicamente distanti e i volumi possono essere crash-consistent in modo tale da non avere perdita di dati.
  • Storage Quality of Service (QoS): Con questa funzionalità è possibile creare delle policy di QoS in uno Scale-Out File Server e assegnarle ai dischi virtuali delle macchine virtuali eseguite in Hyper-V. Il QoS assicura che le performance dello storage si adattino per rispettare le policy ogni volta che il carico di lavoro sullo storage si modifica.
  • Cluster Operating System Rolling Upgrade: È ora possibile aggiornare il sistema operativo dei nodi del cluster da Windows Server 2012 R2 a Windows Server 2016 senza interrompere le funzionalità di Hyper-V o dello Scale-Out File Server.
  • Cloud Witness: Il quorum witness della funzionalità di Failover Cluster può essere ospitato in uno storage account su Microsoft Azure, permettendo di creare un cluster geografico tra due sedi diverse dell’azienda, senza necessità di avere una terza sede per l’arbitration point.
  • Microsoft Passport: Questo servizio vuole essere un valido sostituto delle password per autenticare gli utenti. Adesso è possibile autenticarsi usando Windows Hello (funzionalità biometrica) oppure usando un PIN. Interessante anche la possibilità di usare la Multi-factor Authentication.
  • Windows Defender: Per la prima volta Microsoft introduce un antimalware su un sistema operativo Server.

Windows Server 2016, come Windows Server 2012/2012R2, è stato rilasciato in due versioni: Standard e Datacenter.
Mentre in Windows Server 2012/2012R2 non c’era differenza tra le funzionalità offerte dalle due versioni del sistema operativo, in Windows Server 2016 sono state introdotte delle differenze:

versions

Come si può notare dalla tabella le differenze tra le diverse versioni riguardano alcune funzionalità Azure-inspired dello Storage e del Networking.
Altra cosa da tenere in considerazione è la modifica al Pricing and Licensing delle due versioni. Windows Server 2016 non è più licenziato per socket ma per core fisico (senza hyper-threading).
In Windows Server 2016 dovrete:
  • Licenziare tutti i core fisici del server
  • Licenziare un minimo di 8 core per ogni processore fisico
  • Licenziare un minimo di 16 core per ogni server
  • Acquistare le licenze in pacchetti da 2

È bene sottolineare che dovranno essere licenziati solo i core fisici e non quelli “virtuali” (abilitati tramite l’hyper-threading) e solo quelli realmente disponibili sulla macchina fisica.
Per quanto riguarda Nano Server, essendo una modalità di installazione e non una versione diversa del sistema operativo, dovrà essere licenziata esattamente con i parametri precedentemente indicati.
Maggiori informazioni sono disponibili nel Windows 2016 licensing datasheet pubblicato da Microsoft.
Windows Server 2016 trasforma realmente il Datacenter, aumentano la flessibilità e portando in azienda delle funzionalità da Cloud pubblico, stravolgendo i modi con cui distribuiamo e gestiamo i nostri workloads e aumentando sicurezza, performance, scalabilità e integrazione.
Per provare il nuovo sistema operativo Server potete scaricare la Windows Server 2016 Evaluation.

Windows Server 2016 Highlights: Nano Server and Containers

Windows Server 2016 offre inedite ed innovative funzionalità di eccezionale impatto sulla produttività aziendale, migliorando fra l’altro le opzioni di deployment e la virtualizzazione applicativa.
In questo video targato ICTPower entriamo in dettaglio su:
– Nano Server, la nuova modalità di installazione di Windows Server 2016 con un footprint di soli 400MB
– Windows Containers, per disporre facilmente di ambienti operativi isolati, protetti e “portabili”