Completamento prima stesura slides.

This commit is contained in:
Emiliano Vavassori 2025-05-05 00:56:55 +02:00
parent a94c949aef
commit 06a2e2b1c8
3 changed files with 1147 additions and 16 deletions

197
slides.md
View file

@ -25,19 +25,22 @@ Creative LAB, Lunetta (MN) — 10 maggio 2025
<!-- paginate: true -->
<!-- footer: "Linux Day 2025 SE - 10/05/2025 - Mantova" -->
# Agenda
## Agenda
- Cos'è Proxmox Virtual Environment
- Sostenibilità del progetto e modello di *business*
- Supporto della *community*
- Multinodo o singolo nodo
- CPU: scelte d'implementazione per *enterprise* e *home lab*
- Storage locale: scelte *enterprise* e *home lab*
- RAM: scelte *enterprise* e *home lab*
- Approccio *enterprise* e "casalingo"
- Considerazioni sullo *storage* locale
- Pro e contro delle tre modalità di configurazione dello *storage*
- Esempio avanzato di configurazione dello *storage* locale
- Considerazioni su CPU
- Considerazioni su RAM
- Meccanismi di *passthrough*
---
# Cos'è Proxmox Virtual Environment
## Cos'è Proxmox Virtual Environment
![bg left:30% w:200px Logo di Proxmox](images/proxmox_logo_name.png)
@ -54,7 +57,7 @@ Creative LAB, Lunetta (MN) &mdash; 10 maggio 2025
---
# *Feature* di Proxmox VE &mdash; 1
## *Feature* di Proxmox VE &mdash; 1
* Virtualizzazione basata su KVM/QEMU
* Containerizzazione basata su LXC
@ -69,7 +72,7 @@ Creative LAB, Lunetta (MN) &mdash; 10 maggio 2025
---
# *Feature* di Proxmox VE &mdash; 2
## *Feature* di Proxmox VE &mdash; 2
<div class="columns">
<div>
@ -96,7 +99,7 @@ Storage esterni:
---
# Sostenibilità del progetto e modello di *business*
## Sostenibilità del progetto e modello di *business*
Proxmox Server Solutions GmbH è l'azienda che sviluppa Proxmox VE dal 2005.
@ -109,7 +112,7 @@ Gli altri prodotti:
---
# Supporto della community
## Supporto della community
Il metodo principale per contattare la *community* e farsi supportare è quello
del forum ufficiale: [https://forum.proxmox.com/](https://forum.proxmox.com/).
@ -119,3 +122,177 @@ In italiano c'è un canale dedicato su Telegram: [Proxmox Italia](https://t.me/u
Un'interessante risorsa per tutti è [Proxmox VE Helper-Scripts](https://community-scripts.github.io/ProxmoxVE/), che è una raccolta di script da poter far girare direttamente su Proxmox VE per ottenere diverse applicazioni già pronte.
---
## Approccio *enterprise* o "casalingo"?
I due approcci sono quasi antitetici e tengono in considerazione esigenze
differenti
<center>
![center RadarMap esigenze](images/RadarMap_EnterpriseVSHome_add.svg)
</center>
<!--
Approccio *enterprise*:
- Consumi **non** sono un problema
- Fattore di forma: *rack*
- Potenza di calcolo massima
- Necessità di HA
- Ridondanza **necessaria**
- Storage condiviso
- Backup frequenti e rapidi
- *Budget* di qualche decina di k€ o superiore
Approccio "casalingo":
- Consumi sono **importanti**
- Il più compatto possibile
- Potenza di calcolo << Consumi
- Non c'è necessità di HA
- Ridondanza limitata/assente
- No storage costosi condivisi
- Backup non frequenti, non rapidi
- *Budget* è fattore importante, tendente a zero
-->
---
## Configurazione dello *storage* locale
* Utilizzo di un *hardware RAID controller*: non è sempre il meglio!
* Modalità di configurazione:
- LVM-Thin
- ZFS
- btrfs
* Parametri avanzati differenti per ciascuna modalità
* ZFS e btrfs sono quelli che necessitano di più RAM per poter lavorare
&rArr; tenerne conto nel dimensionamento!
* I dischi a sistema vengono usati *tutti* e per *tutta la loro dimensione* (ma: configurazione avanzata)
---
## Storage locale LVM-Thin: pro e contro
* Non supporta meccanismi di RAID (LVM non è ridondanza!)
* RAID Controller hardware
* Installazione Debian con `mdadm`, poi aggiornamento a Proxmox VE
* I dischi delle VM sono effettivamente dei *logical volume* di LVM
* Per via dell'estensione LVM-Thin, viene utilizzato solo lo spazio
effettivamente occupato dai dati all'interno del disco
* A seconda dei casi d'uso, l'installer finisce per dedicare troppo spazio al
sistema
---
## Storage locale ZFS: pro e contro
* In Proxmox VE è stato portato OpenZFS/ZFS on Linux (versione attuale: 2.3.2)
* Supporta uso di più dischi in ridondanza (RAID)
* *Just a Bunch Of Disks* (JBOD)
* con controller in modalità *Host Bus Adapter* (HBA)
* Uso della RAM considerevole (*ARC cache*, di default la metà della RAM)
* *Cache* opzionali, di lettura o scrittura, meglio se su dischi *flash*:
- Cache scrittura: *ZFS Intent Log* (ZIL) &rArr; `log`
- Cache lettura: *Level 2 ARC* (L2ARC) &rArr; `cache`
* Sicuramente il metodo più flessibile e potente
* Supporto via interfaccia web non completo
---
## Storage locale btrfs: pro e contro
* Richiede molte risorse sul sistema (RAM ma anche CPU)
* Meno utilizzato
* A parità di macchina, spesso si preferisce ZFS (per stabilità e *feature set*)
---
## Esempio di configurazione avanzata con ZFS &mdash; 1
- 2x dischi NVMe 120GB
- 3x dischi HDD 8TB
- RAM: almeno 26-32 GB dedicati a ZFS, resto per le VM
---
## Esempio di configurazione avanzata con ZFS &mdash; 2
* All'installer si indica di usare solo i due dischi NVMe, si chiede di configurare in modalità `mirror` e si lascia 60GB di spazio (diminuire `hdsize` a 60GB)
* Si partiziona lo spazio libero con due partizioni: una da 8GB e una da 52GB circa (CLI)
---
## Esempio di configurazione avanzata con ZFS &mdash; 3
* Viene creato un nuovo zpool `datastore` in modalità `raidz` (RAID 5) con i dischi rotativi; circa 16TB di spazio per i dischi delle VM e dei Container (via web)
* A questo zpool vengono agganciate le due *cache* (CLI)
* *Cache* di lettura: in modalità *striping* sulle due partizioni da 52GB circa
* *Cache* di scrittura: in modalità `mirror` sulle due partizioni da 8GB
* Si riconfigura `zfs_arc_max` per usare solo 26-32GB di RAM (CLI)
- 2-8 GB per la sola presenza di ZFS
- 1GB di RAM per ogni TB di storage "grezzo" (non considerando RAID)
---
## Considerazioni sulla CPU &mdash; 1
Caratteristiche notevoli della CPU:
* Numero di Core
* Numero di Thread - *Hyperthreading*
* Set di istruzioni (es. AVX2)
* Velocità di clock
* Consumo (*Thermal Design Point*, TDP)
<!--
Hyperthreading:
* Disabilita da BIOS
* Considerata **vulnerabilità**
Set istruzioni: verificare con massiccio uso di CT
-->
---
## Considerazioni sulla CPU &mdash; 2
In ambienti Enterprise si scelgono CPU *multicore* e *hyperthreading* e,
possibilmente, si installano più processori (*socket*).
In ambienti casalinghi, magari è preferibile utilizzare CPU appena meno
performanti ma più parsimoniose:
<center>
| Modello | Clock (GHz) | TDP (W) | Core | Thread |
|---------------------|:-----------:|:-------:|:----:|:------:|
| Intel Core i7 6700 | 3.40 | 65 | 4 | 8 |
| Intel Core i7 6700T | 2.80 | 35 | 4 | 8 |
</center>
---
## Considerazioni sulla RAM
* Dimensionamento anche sulla base del filesystem che si vuole utilizzare!
* *Ballooning*
* Condivisione della RAM su più macchine
* *Overprovisioning*: assegnare più RAM di quanta è fisicamente disponibile
sul sistema
---
## Dispositivi in *passthrough*
*Mettere in passthrough* un dispositivo hardware dell'host vuol dire **dedicarlo alla VM/CT** a cui viene associato.
Utile e ampiamente utilizzato per associare GPU a macchine virtuali specifiche:
* disegno CAD/3D, rendering, altre applicazioni grafiche
* *mining* di Cryptovalute
* Utilizzo GPU per Intelligenze Artificiali Generative
**Necessari**
* Supporto hardware dell'host (IOMMU: Intel VT-d, AMD AMD-Vi)
* Modifiche alla configurazione di Proxmox VE (non abilitato di default)