pve initial setup
This commit is contained in:
188
pve/003-pve-initial-setup.md
Normal file
188
pve/003-pve-initial-setup.md
Normal file
@@ -0,0 +1,188 @@
|
||||
# Initial setup
|
||||
|
||||
- Aggiornare tutti i pacchetti
|
||||
- Verificare i limiti della cache di ZFS. Altrimenti impostarli in base alle specifiche ([How to set up ZFS ARC size on Ubuntu/Debian Linux](https://www.cyberciti.biz/faq/how-to-set-up-zfs-arc-size-on-ubuntu-debian-linux/))
|
||||
|
||||
```sh
|
||||
vim /etc/modprobe.d/zfs.conf
|
||||
cat /etc/modprobe.d/zfs.conf
|
||||
|
||||
options zfs zfs_arc_min=4294967296
|
||||
options zfs zfs_arc_max=17179869184
|
||||
|
||||
arc_summary | head -n 15
|
||||
|
||||
update-initramfs
|
||||
```
|
||||
|
||||
- Aggiungere i repository community, disabilitando quelli enterprise
|
||||
|
||||
```sh
|
||||
cat /etc/apt/sources.list
|
||||
|
||||
deb http://ftp.it.debian.org/debian bookworm main contrib
|
||||
deb http://ftp.it.debian.org/debian bookworm-updates main contrib
|
||||
# Proxmox VE pve-no-subscription repository provided by proxmox.com
|
||||
# NOT recommended for production use
|
||||
deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription
|
||||
# security updates
|
||||
deb http://security.debian.org bookworm-security main contrib
|
||||
```
|
||||
|
||||
- Installare il seguente pacchetto e abilitarlo:
|
||||
|
||||
```sh
|
||||
apt install resolvconf
|
||||
systemctl enable --now resolvconf.service
|
||||
systemctl status resolvconf.service
|
||||
```
|
||||
|
||||
- Impostare i DNS corretti. Modificare il file di configurazione, aggiungendo i DNS:
|
||||
|
||||
```sh
|
||||
cat /etc/resolvconf/resolv.conf.d/head
|
||||
|
||||
nameserver 1.1.1.1
|
||||
nameserver 9.9.9.9
|
||||
```
|
||||
|
||||
- Infine, aggiornare il file `resolv.conf` coi seguenti comandi:
|
||||
|
||||
```sh
|
||||
resolvconf --enable-updates
|
||||
resolvconf -u
|
||||
```
|
||||
|
||||
## ZIL e L2ARC
|
||||
|
||||
> L’`ARC` (`Adaptive Replacement Cache`) è una cache in memoria RAM utilizzata da ZFS per memorizzare dati e metadati frequentemente accessibili. La dimensione raccomandata per l’ARC è pari al **50% della RAM totale** disponibile sul sistema. L’obiettivo è ridurre la latenza di accesso ai dati più utilizzati, migliorando le prestazioni complessive del filesystem.
|
||||
>
|
||||
> La `L2ARC` (`Level 2 Adaptive Replacement Cache`) è una cache di secondo livello, tipicamente implementata su dispositivi di archiviazione veloci come **SSD**. La sua funzione è estendere la capacità di caching oltre i limiti della RAM, memorizzando dati che non possono essere mantenuti nell’ARC a causa di vincoli di spazio. La dimensione raccomandata é di **1 o 2 volte la dimensione della RAM**, ma la scelta ottimale dipende dal carico di lavoro e dalla tipologia di dati gestiti.
|
||||
>
|
||||
> Il `ZIL` (`ZFS Intent Log`) è un log temporaneo che registra le operazioni di scrittura sincrona. Quando un’applicazione richiede una scrittura su un dataset ZFS, i dati vengono inizialmente memorizzati nel ZIL. Dopo la scrittura nel ZIL, ZFS procede con la scrittura asincrona dei dati nel pool di archiviazione principale. Questo meccanismo consente di completare le operazioni di scrittura più rapidamente, poiché il sistema non deve attendere il completamento della scrittura fisica su disco.La dimensione raccomandata é di **4-8 GB**, a seconda del carico di lavoro.
|
||||
|
||||
- Per fare un semplice esempio, se il server ha 64GB di RAM:
|
||||
|
||||
```txt
|
||||
ARC: min 4GB max 16GB
|
||||
|
||||
# disco NVME
|
||||
ZIL: 8GB (part1)
|
||||
L2ARC: 64GB (part2)
|
||||
```
|
||||
|
||||
- Formattare il disco NVME
|
||||
- Creare partizione da 8Gb per i file di log ZIL e 64GB per L2ARC
|
||||
|
||||
```sh
|
||||
fdisk /dev/nvme0n1
|
||||
|
||||
Command (m for help): d
|
||||
Selected partition 1
|
||||
Partition 1 has been deleted.
|
||||
|
||||
Command (m for help): g
|
||||
Created a new GPT disklabel (GUID: A66D8E55-F0B1-E64B-BDEF-34721FA5941F).
|
||||
|
||||
Command (m for help): n
|
||||
Partition number (1-128, default 1):
|
||||
First sector (2048-976773134, default 2048):
|
||||
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-976773134, default 976773119): +8G
|
||||
|
||||
Command (m for help): n
|
||||
Partition number (2-128, default 2):
|
||||
First sector (16779264-976773134, default 16779264):
|
||||
Last sector, +/-sectors or +/-size{K,M,G,T,P} (16779264-976773134, default 976773119): +128G
|
||||
|
||||
Command (m for help): w
|
||||
The partition table has been altered.
|
||||
Calling ioctl() to re-read partition table.
|
||||
Syncing disks.
|
||||
|
||||
fdisk -l /dev/nvme0n1
|
||||
Disk /dev/nvme0n1: 465,76 GiB, 500107862016 bytes, 976773168 sectors
|
||||
Disk model: Samsung SSD 980 PRO 500GB
|
||||
[...]
|
||||
/dev/nvme0n1p1 2048 16779263 16777216 8G Linux filesystem
|
||||
/dev/nvme0n1p2 16779264 285214719 268435456 128G Linux filesystem
|
||||
```
|
||||
|
||||
- Aggiungere i pool di log e cache
|
||||
|
||||
```sh
|
||||
# Sostituire a rpool il nome del proprio pool
|
||||
|
||||
zpool add rpool log /dev/disk/by-id/nvme-Samsung_SSD_980_PRO_500GB_S5GYNF0TC09245W_1-part1
|
||||
|
||||
zpool add rpool cache /dev/disk/by-id/nvme-Samsung_SSD_980_PRO_500GB_S5GYNF0TC09245W_1-part2
|
||||
```
|
||||
|
||||
## HDD pool
|
||||
|
||||
- Nel caso si disponda di dischi HDD, possono essere usati per il backup. Per creare un pool, dare il comando seguente:
|
||||
|
||||
```sh
|
||||
zpool create pool_name /dev/disk/by-id/scsi-serial-disk1 /dev/disk/by-id/scsi-serial-disk2 -f
|
||||
|
||||
zpool import pool_name
|
||||
```
|
||||
|
||||
- Nel casi si volesse rimuovere un pool: `zpool export pool_name`
|
||||
- Oppure, da interfaccia Web di PVE
|
||||
|
||||

|
||||
|
||||
## Volume di swap e swappiness
|
||||
|
||||
```sh
|
||||
zfs create -V 8G -b $(getconf PAGESIZE) -o compression=zle -o logbias=throughput -o sync=always -o primarycache=metadata -o secondarycache=none -o com.sun:auto-snapshot=false rpool/swap
|
||||
|
||||
mkswap -f /dev/zvol/rpool/swap
|
||||
Setting up swapspace version 1, size = 8 GiB (8589930496 bytes)
|
||||
no label, UUID=52676e07-30d9-4e74-b972-43c7eea6cf33
|
||||
|
||||
swapon /dev/zvol/rpool/swap
|
||||
|
||||
swapon
|
||||
NAME TYPE SIZE USED PRIO
|
||||
/dev/zd16 partition 8G 0B -2
|
||||
```
|
||||
|
||||
- Per rendere la swap permanete
|
||||
|
||||
```sh
|
||||
cat /etc/fstab
|
||||
# <file system> <mount point> <type> <options> <dump> <pass>
|
||||
proc /proc proc defaults 0 0
|
||||
/dev/zvol/rpool/swap none swap sw,discard 0 0
|
||||
```
|
||||
|
||||
- Configurare lo `swappiness=10`. Aggiungere la seguente righe al file `sysctl.conf`
|
||||
|
||||
```sh
|
||||
cat /etc/sysctl.conf
|
||||
vm.swappiness=10
|
||||
```
|
||||
|
||||
- Infine, dare i comandi seguenti:
|
||||
|
||||
```sh
|
||||
sysctl vm.swappiness=10
|
||||
update-initramfs -u
|
||||
```
|
||||
|
||||
## Tool megaraid/sas2ircu
|
||||
|
||||
> Il tool `megaraid` (solo per R630) o `sas2irq` indica quale disco (in base al seriale) sta in quale slot
|
||||
|
||||
```sh
|
||||
cat > /etc/apt/sources.list.d/raid.list << EOF
|
||||
deb http://hwraid.le-vert.net/debian bookworm main
|
||||
EOF
|
||||
|
||||
wget -O - https://hwraid.le-vert.net/debian/hwraid.le-vert.net.gpg.key | sudo apt-key add -
|
||||
|
||||
apt update && apt install megaclisas-status / apt install sas2ircu
|
||||
|
||||
systemctl disable megaclisas-statusd.service
|
||||
```
|
||||
BIN
pve/asset/img/zfs-create-pool.png
Normal file
BIN
pve/asset/img/zfs-create-pool.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 154 KiB |
Reference in New Issue
Block a user