DOMANDA Build Server/NAS

Pubblicità

vikthor95

Nuovo Utente
Messaggi
7
Reazioni
0
Punteggio
18
Ciao a tutti,
vorrei chiedere un consiglio su una build che vorrei fare per utilizzare vari servizi che per circa 2 anni ho hostato su un vecchio Dell SFF comprato usato a 100€ in cui ho aggiunto vari pezzi che mi sono passati per le mani (due SSD e 1 HDD).
Dopo questo tempo trascorso utilizzando un'hardware "improvvisato" molto low budget ho deciso di investirci qualcosa consapevole che un'infrastruttura del genere sia quella che mi calza meglio.


CasaPelle-SilvioPellico.drawio.webp


Come descritto nello schema l'hardware che ho in mente di assemblare è:
- 4 HDD da mettere in RAID (devo ancora decidere che tipo di RAID)
- 1 SSD per OS
- 1 SSD per cache
- 1(o 2) NVME SSD per la cache del RAID
- 1 scheda video o, in alternativa un processore con Quick Sync, e possibilità di aggiungere scheda video nel futuro.

Le parti evidenziate in verde sono quelle che già possiedo, quindi l'elenco delle cose che mi mancano sono:
- CPU
- CPU Cooler
- Motherboard
- Memoria (almeno 16gb)
- NVME SSD (1 o 2)
- Case
- Power Supply
- Cavi Sata (6x)

Ho fatto una lista su pcpartpicker, ma sono mesi che continuo a domandarmi se la scelta delle componenti sia la più adatta, mi sono fatto guidare molto da questo sito e non so se sto facendo la scelta giusta.
Dato che intendo fare un buon investimento iniziale per poi non avere problemi nell'utilizzo futuro (nei prossimo 5/6 anni) volevo chiedere un vostro parere su questa build: cosa ne pensate? avete già messo sù un sistema simile? come vi siete trovati?
 
Vediamo, in base al tuo schema, se ho capito bene e come farei io:
  • virtualizzi con proxmox, ok
  • ci tiri su una VM truenas a cui fai passthrough dei dischi meccanici come pool di storage
  • tiri su una VM e ci fai lo stack k8s
Fin qui ci ho azzeccato?

Consigli a livello di struttura
  • gaming vm con passthrough della GPU? No grazie, si può fare ma lo sconsiglio, il server virtualizzato tienilo a fare il server e basta, se vuoi un pc da gaming ti fai un pc da gaming a parte
  • se hai possibilità di "sprecare" spazio con gli HDD meccanici, fai uno zpool tipo RAID-10 ovvero fai due vdev nello zpool ognuno composto da 2 HDD in mirror, in questo modo non perdi in velocità per il RAID-5/6, hai maggiore ridondanza (si può rompere un disco per ogni mirror), puoi ampliarlo in futuro con altri dischi più grandi, ecc
  • i due SSD li prendi abbastanza grandi, li metti in pool mirror e ci installi proxmox definendo in fase di installazione la grandezza del pool rpool, di solito io sto intorno ai 30-40GB, il resto dello spazio sugli SSD creo due partizioni per ogni SSD, una come swap space e una con tipo BF01 con le quali poi creo un pool mirror chiamato generalmente fastpool, ssdpool o simile, creo un volume per proxmox (esempio zfs create fastpool/data poi imposti compression=on, sync=standard, atime=on, relatime=on) e lì sopra ci metto i dischi virtuali dei sistemi operativi delle VM, quindi ci installi truenas, ci installi la VM che gestirà lo stack k8s, ecc
  • crea un piccolo ZRAM per lo swap (io faccio 2GB), così in caso serva una quantità limitata di swap lo fa in memoria compressa senza scrivere sullo swap su SSD
  • NVMe come cache, ZFS prevede già la ARC cache in RAM, poi hai la L2ARC che puoi impostare su un device ma per funzionare consuma comunque parte della ARC cache in RAM per tenere la mappa e i metadati, in poche parole, la L2ARC ha senso solo se hai tanta RAM e comunque conviene in ogni caso aumentare la RAM e ampliare la ARC cache in RAM (esempio a 16GB: parametro options zfs zfs_arc_max=17179869184 in /etc/modprobe.d/zfs.conf)


Consigli hardware:
  • I5-11400 - no è vecchio
  • Crucial P3 - no è QLC e DRAMless, tanto vale non usarlo, altrimenti prendi il P5
  • RAM devi andare almeno a 32GB io andrei direttamente con 64GB tanto ormai la RAM costa bruscolini



Questi i consigli che posso darti in base alla mia esperienza maturata in un 100inaio di server proxmox dai clienti...
 
Vediamo, in base al tuo schema, se ho capito bene e come farei io:
  • virtualizzi con proxmox, ok
  • ci tiri su una VM truenas a cui fai passthrough dei dischi meccanici come pool di storage
  • tiri su una VM e ci fai lo stack k8s
Fin qui ci ho azzeccato?

Consigli a livello di struttura
  • gaming vm con passthrough della GPU? No grazie, si può fare ma lo sconsiglio, il server virtualizzato tienilo a fare il server e basta, se vuoi un pc da gaming ti fai un pc da gaming a parte
  • se hai possibilità di "sprecare" spazio con gli HDD meccanici, fai uno zpool tipo RAID-10 ovvero fai due vdev nello zpool ognuno composto da 2 HDD in mirror, in questo modo non perdi in velocità per il RAID-5/6, hai maggiore ridondanza (si può rompere un disco per ogni mirror), puoi ampliarlo in futuro con altri dischi più grandi, ecc
  • i due SSD li prendi abbastanza grandi, li metti in pool mirror e ci installi proxmox definendo in fase di installazione la grandezza del pool rpool, di solito io sto intorno ai 30-40GB, il resto dello spazio sugli SSD creo due partizioni per ogni SSD, una come swap space e una con tipo BF01 con le quali poi creo un pool mirror chiamato generalmente fastpool, ssdpool o simile, creo un volume per proxmox (esempio zfs create fastpool/data poi imposti compression=on, sync=standard, atime=on, relatime=on) e lì sopra ci metto i dischi virtuali dei sistemi operativi delle VM, quindi ci installi truenas, ci installi la VM che gestirà lo stack k8s, ecc
  • crea un piccolo ZRAM per lo swap (io faccio 2GB), così in caso serva una quantità limitata di swap lo fa in memoria compressa senza scrivere sullo swap su SSD
  • NVMe come cache, ZFS prevede già la ARC cache in RAM, poi hai la L2ARC che puoi impostare su un device ma per funzionare consuma comunque parte della ARC cache in RAM per tenere la mappa e i metadati, in poche parole, la L2ARC ha senso solo se hai tanta RAM e comunque conviene in ogni caso aumentare la RAM e ampliare la ARC cache in RAM (esempio a 16GB: parametro options zfs zfs_arc_max=17179869184 in /etc/modprobe.d/zfs.conf)


Consigli hardware:
  • I5-11400 - no è vecchio
  • Crucial P3 - no è QLC e DRAMless, tanto vale non usarlo, altrimenti prendi il P5
  • RAM devi andare almeno a 32GB io andrei direttamente con 64GB tanto ormai la RAM costa bruscolini



Questi i consigli che posso darti in base alla mia esperienza maturata in un 100inaio di server proxmox dai clienti...
Grazie mille per i consigli,
ci hai azzeccato!
Sono ancora indeciso se montare bare metal proxmox o andare diretto con truenas scale; ho visto che gestisce VM e anche docker, potrei rinunciare al cluster K8s e andare diretto di docker compose se truenas scale lo supporta, usare container così come li gestisce lui non mi convince molto, fino ad ora ero ubuntu bare metal e tutto docker compose
 
Ho un paio di TrueNAS scale, non è che non mi piaccia, va bene, pe rcarità, anche se a livello di NAS sono innamorato di Synology e su quello ho le maggiori conoscenze.
Io andrei su baremetal con proxmox e in caso passthrough degli HDD alla VM che gestirà la parte "NAS" (hint: xpenology 😜) e una VM a parte per docker
 
Ho un paio di TrueNAS scale, non è che non mi piaccia, va bene, pe rcarità, anche se a livello di NAS sono innamorato di Synology e su quello ho le maggiori conoscenze.
Io andrei su baremetal con proxmox e in caso passthrough degli HDD alla VM che gestirà la parte "NAS" (hint: xpenology 😜) e una VM a parte per docker
Come mai ti trovi così bene con l'os di Synology?
Io in realtà carica/scarico di file lo faccio principalmente da nextcloud, samba lo uso per i file più grossi e caricare film e serie tv nella cartella di Plex, il top sarebbe un layer che non devo gestire che si occupa di tutta la parte fisica del raid poi da sopra lo vedo come un semplice volume su cui metterci un pò di tutto, mi creo le mie cartelline, un pò per container, un pò per VM e via.
 
Io in realtà carica/scarico di file lo faccio principalmente da nextcloud, samba lo uso per i file più grossi e caricare film e serie tv nella cartella di Plex, il top sarebbe un layer che non devo gestire che si occupa di tutta la parte fisica del raid poi da sopra lo vedo come un semplice volume su cui metterci un pò di tutto, mi creo le mie cartelline, un pò per container, un pò per VM e via.
vabbè allora crei un volume zfs (di solito lo chiamo data come lo chiama di default proxmox) che fai gestire a proxmox e sopra ci crei i container o le VM che ti pare.
Per farti capire, server con 2 ssd in mirror per OS, 6 dischi sas per storage in raid-10

zpool status -L
Codice:
  pool: rpool
 state: ONLINE
  scan: scrub repaired 0B in 00:00:24 with 0 errors on Sun Sep 10 00:24:28 2023
config:

        NAME        STATE     READ WRITE CKSUM
        rpool       ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            sda3    ONLINE       0     0     0
            sdb3    ONLINE       0     0     0
pool mirror di sistema creato dall'installer proxmox specificando come size 32 GB

Questo il partizionamento di uno dei due dischi
Codice:
GPT fdisk (gdisk) version 1.0.3

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.
Disk /dev/sda: 1953459632 sectors, 931.5 GiB
Model: LOGICAL VOLUME
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 340C828E-B3A0-4AE4-9CDE-C1A8FF364C87
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 1953459598
Partitions will be aligned on 8-sector boundaries
Total free space is 3108238 sectors (1.5 GiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1              34            2047   1007.0 KiB  EF02
   2            2048         1050623   512.0 MiB   EF00
   3         1050624        67108864   31.5 GiB    BF01  zfs rpool
   4        67108872        83886087   8.0 GiB     8200  Linux swap
   5        83886088      1950351367   890.0 GiB   BF01  zfs ssdpool


come vedi oltre alla partizione di boot e EFI, c'è la partizione da 32GB creata dall'installer, poi ho creato una partizione da 8 GB per swap e il resto dello spazio va a una partizione per il pool ssdpool
Codice:
  pool: ssdpool
 state: ONLINE
  scan: scrub repaired 0B in 00:56:47 with 0 errors on Sun Sep 10 01:20:52 2023
config:

        NAME        STATE     READ WRITE CKSUM
        ssdpool     ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            sda5    ONLINE       0     0     0
            sdb5    ONLINE       0     0     0

errors: No known data errors
in questo pool ho creato un volume ssdpool/data e messo come storage in proxmox per tutte gli OS, database, applicativi ecc nelle VM o nei container

Con i 6 hdd sas ho creato un pool di mirrored vdev

Codice:
  pool: hddpool
 state: ONLINE
  scan: scrub repaired 0B in 01:15:49 with 0 errors on Sun Sep 10 01:39:51 2023
config:

        NAME        STATE     READ WRITE CKSUM
        hddpool     ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            sdc1    ONLINE       0     0     0
            sdd1    ONLINE       0     0     0
          mirror-1  ONLINE       0     0     0
            sde1    ONLINE       0     0     0
            sdf1    ONLINE       0     0     0
          mirror-2  ONLINE       0     0     0
            sdg1    ONLINE       0     0     0
            sdh1    ONLINE       0     0     0

errors: No known data errors

creato volume zfs hddpool/data, messo come storage in proxmox e ci creo dischi virtuali per le VM che richiedono spazio storage


Ecco qua i dischi virtuali:
Codice:
zfs list -t all
NAME                         USED  AVAIL     REFER  MOUNTPOINT
hddpool                      978G   638G       96K  /hddpool
hddpool/data                 977G   638G       96K  /hddpool/data
hddpool/data/vm-100-disk-2   786G   638G      786G  -
hddpool/data/vm-101-disk-0  39.6G   638G     39.6G  -
hddpool/data/vm-101-disk-1   144G   638G      144G  -
hddpool/data/vm-105-disk-0  7.73G   638G     7.73G  -
rpool                       8.85G  21.2G       96K  /rpool
rpool/ROOT                  8.84G  21.2G       96K  /rpool/ROOT
rpool/ROOT/pve-1            8.84G  21.2G     8.84G  /
ssdpool                      698G   162G       96K  /ssdpool
ssdpool/data                 698G   162G       96K  /ssdpool/data
ssdpool/data/vm-100-disk-0  83.0G   162G     83.0G  -
ssdpool/data/vm-100-disk-1   390G   162G      390G  -
ssdpool/data/vm-102-disk-0  18.0G   162G     18.0G  -
ssdpool/data/vm-102-disk-1  31.4M   162G     31.4M  -
ssdpool/data/vm-210-disk-0  39.3G   162G     39.3G  -
ssdpool/data/vm-220-disk-0  42.7G   162G     42.7G  -
ssdpool/data/vm-230-disk-0  33.6G   162G     33.6G  -
ssdpool/data/vm-240-disk-0  31.9G   162G     31.9G  -
ssdpool/data/vm-250-disk-0  33.1G   162G     33.1G  -
ssdpool/data/vm-260-disk-0  26.4G   162G     26.4G  -




Non h oavuto bisogno di container in questo caso, nel tuo caso puoi usare vari container o un container e usarci docker, vedi te.
 
zpool status -L
Codice:
  pool: rpool
 state: ONLINE
  scan: scrub repaired 0B in 00:00:24 with 0 errors on Sun Sep 10 00:24:28 2023
config:

        NAME        STATE     READ WRITE CKSUM
        rpool       ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            sda3    ONLINE       0     0     0
            sdb3    ONLINE       0     0     0
pool mirror di sistema creato dall'installer proxmox specificando come size 32 GB

Questo il partizionamento di uno dei due dischi
Codice:
GPT fdisk (gdisk) version 1.0.3

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.
Disk /dev/sda: 1953459632 sectors, 931.5 GiB
Model: LOGICAL VOLUME
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 340C828E-B3A0-4AE4-9CDE-C1A8FF364C87
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 1953459598
Partitions will be aligned on 8-sector boundaries
Total free space is 3108238 sectors (1.5 GiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1              34            2047   1007.0 KiB  EF02
   2            2048         1050623   512.0 MiB   EF00
   3         1050624        67108864   31.5 GiB    BF01  zfs rpool
   4        67108872        83886087   8.0 GiB     8200  Linux swap
   5        83886088      1950351367   890.0 GiB   BF01  zfs ssdpool

come vedi oltre alla partizione di boot e EFI, c'è la partizione da 32GB creata dall'installer, poi ho creato una partizione da 8 GB per swap e il resto dello spazio va a una partizione per il pool ssdpool
Codice:
  pool: ssdpool
 state: ONLINE
  scan: scrub repaired 0B in 00:56:47 with 0 errors on Sun Sep 10 01:20:52 2023
config:

        NAME        STATE     READ WRITE CKSUM
        ssdpool     ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            sda5    ONLINE       0     0     0
            sdb5    ONLINE       0     0     0

errors: No known data errors
in questo pool ho creato un volume ssdpool/data e messo come storage in proxmox per tutte gli OS, database, applicativi ecc nelle VM o nei container

Con i 6 hdd sas ho creato un pool di mirrored vdev

Codice:
  pool: hddpool
 state: ONLINE
  scan: scrub repaired 0B in 01:15:49 with 0 errors on Sun Sep 10 01:39:51 2023
config:

        NAME        STATE     READ WRITE CKSUM
        hddpool     ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            sdc1    ONLINE       0     0     0
            sdd1    ONLINE       0     0     0
          mirror-1  ONLINE       0     0     0
            sde1    ONLINE       0     0     0
            sdf1    ONLINE       0     0     0
          mirror-2  ONLINE       0     0     0
            sdg1    ONLINE       0     0     0
            sdh1    ONLINE       0     0     0

errors: No known data errors
creato volume zfs hddpool/data, messo come storage in proxmox e ci creo dischi virtuali per le VM che richiedono spazio storage

Ecco qua i dischi virtuali:
Codice:
zfs list -t all
NAME                         USED  AVAIL     REFER  MOUNTPOINT
hddpool                      978G   638G       96K  /hddpool
hddpool/data                 977G   638G       96K  /hddpool/data
hddpool/data/vm-100-disk-2   786G   638G      786G  -
hddpool/data/vm-101-disk-0  39.6G   638G     39.6G  -
hddpool/data/vm-101-disk-1   144G   638G      144G  -
hddpool/data/vm-105-disk-0  7.73G   638G     7.73G  -
rpool                       8.85G  21.2G       96K  /rpool
rpool/ROOT                  8.84G  21.2G       96K  /rpool/ROOT
rpool/ROOT/pve-1            8.84G  21.2G     8.84G  /
ssdpool                      698G   162G       96K  /ssdpool
ssdpool/data                 698G   162G       96K  /ssdpool/data
ssdpool/data/vm-100-disk-0  83.0G   162G     83.0G  -
ssdpool/data/vm-100-disk-1   390G   162G      390G  -
ssdpool/data/vm-102-disk-0  18.0G   162G     18.0G  -
ssdpool/data/vm-102-disk-1  31.4M   162G     31.4M  -
ssdpool/data/vm-210-disk-0  39.3G   162G     39.3G  -
ssdpool/data/vm-220-disk-0  42.7G   162G     42.7G  -
ssdpool/data/vm-230-disk-0  33.6G   162G     33.6G  -
ssdpool/data/vm-240-disk-0  31.9G   162G     31.9G  -
ssdpool/data/vm-250-disk-0  33.1G   162G     33.1G  -
ssdpool/data/vm-260-disk-0  26.4G   162G     26.4G  -

Mi piace parecchio questa configurazione. Io non metto mano al mio server con Proxmox da un bel po' (anche perché sono saltati un paio di dischi, meno male che lo uso solo per sperimentare al momento). Magari se decido di comprare pezzi adeguati e reinstallare tutto da capo e farlo diventare così il mio server definitivo so a chi rivolgermi per consigli e aiuto :-).

La configurazione dei due SSD in mirror non mi è del tutto chiara, ma colpa mia visto che conosco pochissimo i comandi di creazione e gestione dei pool ZFS. Magari ne riparleremo al momento opportuno.
 
I5-11400 - no è vecchio
Grazie mille per i vari consigli, ritornando all'hardware:
leggendo il tuo suggerimento di evitare l'I5-11400 perché datato devo cambiare anche MOBO e quindi andare su un socket più recente? Perchè PCPArtpicker mi elenca solo quelli compatibili, evidentemente solo serie 11 è compatibile con LGA1200
 
Crucial P3 assolutamente no, o vai sul P5 o vai su altri modelli, ma poi uno solo? La scheda madre ha 3 slot NVMe, prendine 2 così li usi come dischi di sistema e per gli OS delle VM no?
 
Vero, ottimo spunto ne metto giù due, il terzo vedo nel futuro se metterlo o meno.
Direi che ora ho la build bella pronta... pensavo di fare la lista su Amazon, tenere d'occhio i prezzi con keepa e quando qualcosa scende un pochino acquisto, magari anche in vista del black friday.
 
Pubblicità
Pubblicità
Indietro
Top