GNU/Linux >> Linux Esercitazione >  >> Linux

Come ho costruito un Homelab sul budget

Nel mio precedente articolo, ho discusso di cos'è un Homelab e perché dovresti (o non dovresti) averne uno per te.

Ora, chiunque lo desideri o abbia bisogno, può avere un laboratorio domestico? Dipende da diverse cose, ma è possibile aggirare il denaro o le risorse. In questo articolo spiegherò come sono riuscito ad avere il mio Homelab senza investire una fortuna in esso. In effetti, mi è costato meno di $ 1.000 e funziona abbastanza bene da gestire i requisiti infrastrutturali della mia casa.

Detto questo, è importante menzionare come disclaimer:questo articolo non descrive il modo migliore per fare le cose. Descrive semplicemente come riesco a farlo funzionare anche sapendo che ci sono alcuni problemi e rischi con esso, ma per ora sto bene con questi.

Prima di tutto:l'hardware

La configurazione di un laboratorio domestico richiede un computer che puoi sostanzialmente utilizzare solo per ospitare continuamente. Un vecchio laptop (ma moderatamente potente) può fare il lavoro o se hai dei soldi che puoi usare, puoi acquistare le parti e costruire il tuo computer.

Se hai un po' di soldi in più, probabilmente puoi anche acquistare un piccolo server riproposto che qualsiasi azienda IT si è liberata a causa della sua età. Quei server possono comunque servire a un buon scopo per un progetto come questo, anche se potrebbe allontanarsi dal concetto di "con un budget limitato".

Puoi anche utilizzare dispositivi simili a Raspberry Pi.

La parte più importante del server principale è:provare a ottenere una scheda madre e una CPU in grado di gestire la virtualizzazione, in particolare che abbiano capacità passthrough IO. Per Intel, assicurati che il processore abbia capacità VT-x, per AMD dovrebbe avere capacità AMD-v. Senza questo, non sarai in grado di fare molto.

Se non hai intenzione di investire in una GPU separata come una scheda grafica NVIDIA o AMD, prova a procurarti una CPU che abbia almeno una GPU integrata.

Quindi, è necessario disporre di spazio su disco per questo. La dimensione del disco dipende dall'uso che ne farai. Nel mio caso, volevo avere un lettore multimediale, un PC da gioco, un server Firewall/DNS e probabilmente una console DVR molto piccola, quindi ho acquistato un disco rigido da 2 TB. Questa è la parte in cui puoi avere problemi di budget. Se i soldi non sono un problema, vuoi avere tutto lo spazio che vuoi e raddoppiarlo in modo da poter lavorare con RAID. Anche in questo caso, nel mio caso devo accontentarmi di un singolo disco rigido da 2 TB (nemmeno SSD), punto.

Avevo un paio di dischi rigidi USB da 1 TB posati lì, avevano più di 10 anni ma con un utilizzo molto ridotto (dopo il cloud, onestamente evito di archiviare troppe cose localmente). Questi sarebbero molto lenti da usare per l'elaborazione o le macchine virtuali, ma per scopi di backup lo farebbero.

Quindi vuoi concentrarti sulla RAM. Più è, meglio è. Nel mio caso potevo permettermi solo 8 GB.

Quindi, supponendo che tu voglia averlo integrato nella tua casa e interagire con il resto della rete e dei dispositivi, probabilmente avrai bisogno almeno di un piccolo router o switch di rete. Se vuoi configurare un piccolo router o un piccolo server DNS al tuo posto, devi avere almeno una seconda scheda NIC. Avevo una scheda NIC USB che usavo come secondaria per poter eseguire una soluzione firewall/routing virtualizzata.

Il software:Hypervisor

Hai bisogno della virtualizzazione e per questo hai bisogno di un hypervisor. L'hypervisor è classificato in Tipo 1 e Tipo 2. Leggi il nostro articolo per saperne di più.

Riassumendo:se utilizzi un hypervisor di tipo 1, devi essere più tecnico ma hai più controllo e quindi puoi utilizzare GPU e alcune altre risorse sulle tue macchine virtuali.

Con un hypervisor di tipo 2, diventa più facile da gestire poiché hai meno controllo delle cose, ma non puoi eseguire alcune cose come trasferire l'alimentazione della GPU alle tue VM. Se vuoi avere una VM per lavorare e modificare video o giocare, non sarai in grado di farlo con il Tipo 2. Se questo non è lo scopo, probabilmente ti basterà con un Tipo-2.

Avevo Virtualbox e usavo la macchina host principale come mio server multimediale. Questo ha funzionato bene. La macchina principale era in grado di transcodificare video. Tuttavia, quando volevo provare diversi media server per sperimentare, ho iniziato a faticare perché dovevo influenzare il mio server principale per un esperimento che poteva andare storto.

Questo mi ha fatto migrare su un hypervisor di tipo 1 e ricominciare da capo. Sono passato a Proxmox come hypervisor, poiché amo l'Open Source. Ho trovato VMWare ESXI troppo difficile da implementare perché non ho nemmeno una macchina Windows a casa, quindi non ho nemmeno potuto rielaborare le immagini ISO per permettermi di iniettare i driver hardware corretti per installarlo.

Homelab è attivo, e adesso?

L'ho impostato e ho iniziato a creare l'insieme iniziale di cose in base a ciò che volevo usare. Volevo un server multimediale, ma sono limitato sulla potenza (Intel i5 con GPU interna) e voglio ospitare diverse cose. Quindi, ho dovuto decidere (e ricercare) come farlo funzionare per me.

Se volevo una macchina virtuale che ospitasse il mio server Plex o Jellyfin ed era in grado di transcodificare, dovevo passare la GPU a questo server multimediale. Ciò mi impedirebbe di usarlo per un PC da gioco, almeno non contemporaneamente. Puoi passare la GPU solo a una singola macchina virtuale alla volta.

Questo è stato un problema perché potrei voler giocare nello stesso momento in cui mio figlio o mia moglie vogliono guardare un film o un programma TV. Quindi ci ho lavorato.

Ho impostato un server NFS di base usando Debian (per la sua leggerezza) dove avrei ospitato i miei file. Elaborerei semplicemente tutti i file video che possiedo, per essere in un formato universale da cui la maggior parte dei dispositivi non avrebbe bisogno di transcodificare:MP4.

Ciò richiederebbe di essere in cima ai file e assicurarmi di convertirli sempre prima di indicizzarli nel mio server multimediale. Puoi automatizzare facilmente usando cron e handbrake-cli. Non ho nemmeno dovuto scrivere lo script cron, ho cercato uno dei tanti disponibili su GitHub.

Con i miei file centralizzati in un server NFS, non avevo più bisogno di una VM. Ho utilizzato un container solo per eseguire il mio server multimediale e la quantità di risorse utilizzate è stata la minima possibile. Ho appena mappato il server NFS come cartella all'interno del mio container!

Quindi, per il Firewall, ho configurato pFSense, ancora una volta, per avere quante più risorse ottimali condivise, ho usato un contenitore per esso.

Successivamente, per la macchina da gioco, l'ho appena impostato su una VM Windows. Il motivo è che volevo configurare Steam ed essere anche in grado di giocare ai giochi di GOG.com, entrambi hanno molto più supporto per Windows rispetto a qualsiasi altro sistema. Quindi, ho configurato una VM per questo e l'ho configurata con passthrough GPU, in modo che la macchina virtuale potesse ottenere la potenza della GPU che il mio Intel i5 aveva all'interno.

Problemi noti e rischi assunti

Come ho detto all'inizio di questo articolo, non ho necessariamente fatto le cose nel modo ottimale o migliore. Mi sono semplicemente adattato a quello che era il mio budget e da lì ho risolto problemi e problemi.

Avere un solo hard disk, mi mette in pericolo se succede qualcosa al disco (e gli hard disk sono come gli umani:nascono e iniziano a morire da quel preciso momento). Perderei molte cose se non faccio il backup. Non eseguo il backup di tutte le VM poiché non ho spazio su disco sufficiente per archiviare tutto.

Inoltre, avendo un solo disco, la velocità di lettura non è così veloce. L'utilizzo di una configurazione RAID renderebbe la lettura del disco ottimale e quindi più veloce. In aggiunta a ciò, in alcuni punti ho un sacco di ritardo IO. Ciò è dovuto al fatto che diverse macchine virtuali e container accedono allo stesso server NFS. Se non sto attento a impostare attività automatizzate o cron in momenti diversi per evitare la sovrapposizione, potrei finire con il danneggiamento dei dati.

La mia GPU è solo quella integrata di Intel, è semplicemente decente per cose molto basilari, quindi sarebbe l'ideale avere una vera GPU, anche una vecchia NVIDIA. Tuttavia, non solo i soldi sono un problema, sto usando una piccola custodia mini-ITX, quindi dovrei cercare un modello piccolo che possa adattarsi.

Infine, l'utilizzo del mio hardware in queste condizioni, specialmente del disco rigido, ne riduce l'aspettativa di vita, ma poiché non ho intenzione di avere molto utilizzo ma solo un uso domestico moderato, penso che per ora valga la pena mantenere questa architettura.


Linux
  1. Come è stata costruita un'azienda sui podcast per Linux:la storia di Jupiter Broadcasting

  2. Come Linux è arrivato al mainframe

  3. Come installare R 3.3.1 nella propria directory?

  4. Come eseguire il tail -f dell'ultimo file di registro con un dato modello

  5. Come sapere che la libreria condivisa data è costruita con simboli di debug o no?

Come usare il comando Linux grep

Come usare il comando cronologia in Linux

Come impostare il nome host Pretty

Come modificare il nome host?

Come ottenere l'orologio per mostrare la data?

Come emulare il Raspberry Pi 2 su QEMU?