Transcription
Ciao ragazzi. Questo non è il primo video dell'anno, come invece mi sentirete a dire tra poco. Il fatto è che, nel frattempo, sono successe una marea di cose, alcune belle, alcune brutte. Ma soprattutto, mi sono reso conto che veniva troppo denso di informazioni, troppo lungo. Così ho pensato: perché non andare all-in? Già che ci sono, ricavarne una piccola serie. Potrebbe essere un diario di viaggio in cui vi racconto cosa ho fatto, come ho fatto e perché, e come mi sto trovando. E alla fine, vorremmo capire quanto sia fattibile rimpiazzare tutti i servizi della Google Suite e via dicendo con cose autonome, self-hosted e soprattutto Open Source.
Ora vi lascio al me del passato, che non aveva idea di tutto questo e stava semplicemente recensendo una board per farsi Cloud in casa. Quindi tenete a mente che ci saranno altri episodi. Buona visione.
Ciao ragazzi, primo video dell'anno. Sono super mega carico di annunciarvi tutta una serie di cose, tipo che ho traslocato. Quindi, come vedete, lo sfondo dietro di me è completamente diverso. Infatti, è un muro bianco, ma non sarà per a lungo. Nel frattempo, volevo parlarvi di che cosa ho in mano: ZimaBoard. Eccolo. Questo qui è un single board computer, tipo Raspberry Pi. Con la differenza che, per la maggior parte delle persone che acquistano Raspberry Pi per farci il piccolo server casalingo, potrebbe essere un'opzione più interessante. Questo qui non monta CPU ARM. Questo è un PC x86 a tutti gli effetti. Qui sopra c'è Apollo Lake, quindi Intel Celeron di nuova generazione, ed è interamente dissipato passivamente. Ma in un form factor del genere e con i bassi consumi di Apollo Lake, questa diventa un'opzione veramente interessante per via della sua espandibilità. Infatti, sul pannello frontale: due porte Gigabit Ethernet, due porte USB 3 e un Mini Display Out. E dopo aver detto che anche sull'altro lato ci sono due porte SATA, la cosa che rende speciale questa board è probabilmente l'espandibilità. Perché guardate che cosa c'è su questo lato: due slot M.2, due slot Express 2.0, 4x. Questa qui permette di espandere la funzionalità della ZimaBoard con una serie di accessori che possono essere standard di mercato, come ad esempio un'espansione per avere più porte SATA, oppure ancora una scheda Ethernet magari più veloce di un Gigabit, questa ad esempio è 2.5 GB. Oppure ancora posso collegare uno slot di espansione per collegare due dischi NVMe. Come si inserisce? Bene, anche perché molti di noi, me compreso, hanno comprato Raspberry Pi perché è efficiente dal punto di vista energetico e il più delle volte ci si va a fare dei progetti di Home Automation, server e altre cose, magari un server FTP, un NAS con Samba, un personal cloud. Raspberry Pi, però, ha dei seri limiti da questo punto di vista. Raspberry Pi non nasce con questo specifico intento. Anzi, punto di forza di Raspberry Pi è avere i PIN GPIO, cosa che questa board non ha. Per tutto quello che riguarda invece l'home computing, il personal cloud e via dicendo, un'opzione di questo tipo è sicuramente più adatta. Abbiamo più banda.
I video sono un server sul personal cloud, infatti già altri in passato, alcuni anche piuttosto di recente, sottolineando alcuni degli aspetti, dei vantaggi che ci stanno dietro questa cosa, tra cui il totale controllo sui tuoi dati, su cosa fai, e sei libero di spararti nei piedi, ma anche di mantenere la tua privacy. Perciò, quando ho scoperto questa board, non ho potuto fare a meno di cercare di sgraffignarmene una copia da recensire. Ora lo monto in assetto da guerra con due SSD in RAID 1 e vediamo se può diventare il perfetto sostituto del mio Synology. Questo qui è il kit che mi sono fatto spedire per montare il doppio hard disk. Non ho ancora capito bene come funziona, quindi cercherò di capirlo insieme. Sarà anche un po' un test della mia intelligenza. Ora dovrei cercare di capire in che modo questi supporti possono aiutarmi a montare. Che poi io ce li avrei di cacciaviti di là, però sono un po' masochista e uso quelli del kit perché mi scoccio andare di là. Da un'altra volta da io per avere un setup compatto, andare a collegare questo qua, ho i miei due connettori più l'alimentazione qua. Tac. È un po' come si dovrebbe presentare. Immagino che si potrebbe montarli uno sopra l'altro così, magari. Fatemi vedere una cosa, però. Però questo si scolla. È interessante perché sembra quasi che io possa andare a infilare qualcosa qua in mezzo. Non so se sia l'uso per cui è stato pensato. Queste vitone sono da un kit differente, quindi non erano fornite da Zima, ma sono dello stesso passo e hanno la lunghezza esatta perfetta per chiudere tutto quanto esattamente come l'avevo in mente io. Le viti, però, dovrete procurarvele voi da un'altra parte. Ma la figata di fare così è che abbiamo un setup super compatto e questo diventa veramente un NAS. Praticamente, devo vedere se ho stretto troppo le viti, magari un po' meno va bene lo stesso. Ma questo, questo è il bloccone che che mi aspettavo. Questo è quello che volevo. C'è un po' di fili qua. Ok, va bene. Però questo, questo, questo è bello, bello, bello.
Ok, ho collegato l'alimentazione, una tastiera USB e la scheda di acquisizione, così riesco a farvi vedere cosa vedo io. Questo qui, no, sono queste, sono io. Questo qui, ecco, è CasaOS. Il sistema operativo predefinito di questa ZimaBoard. In realtà, CasaOS, se ricordate, l'ho già recensito precedentemente in un altro video, non per parlare della ZimaBoard, ma per parlare di CasaOS. Proprio questa è un'interfaccia estremamente semplificata alla gestione di container Docker. In realtà, si può fare quasi tutto quello che faresti normalmente da Docker da riga di comando, però in maniera più rifinita. Quindi, se vi interessa una recensione approfondita, neanche troppo, ma comunque un po' più nel merito di cosa è e come funziona CasaOS, vi consiglio di andare a vedere quel video lì. Parliamo di specifiche tecniche. Prima di tutto, `proc/cpuinfo`. Come sapete, contiene informazioni sulla CPU, compreso le mitigazioni contro i bug noti, ma questo non ci interessa in questo momento. E il nome della CPU, come dicevo, questo è N3450. Nello specifico, ci sono tre fasce: la più base con la CPU N3350, e poi quella intermedia e quella "maxata", entrambe a 3450. Abbiamo 8 GB di RAM a bordo, cioè da 2, da 4 e da 8. A livello di disco, abbiamo un'unità eMMC integrata da 32 GB, che è la taglia più grande. Ma la cosa interessante è che, essendo Intel, ci potete mettere Linux, Windows, OpenWRT, pfSense, Android, LibreELEC, eccetera, eccetera. Se vi interessa l'argomento container, l'argomento anche personal cloud e tutte queste cosette qua, in realtà questa è un'ottima palestra, è un'ottima occasione per provare a mettere su qualcosa e fare un po' di giochini. Ho montato anche altri due dischi, entrambi da 240 GB, che tra poco formatterò e andrò a creare un volume LVM per usarli in RAID. Creo giusto un account iniziale, tanto per divertirci. Moro, passo da super mega lunga e imprevedibile. Ora la cosa interessante è che qua ci fa vedere soltanto lo storage integrato, che non è quello che vogliamo usare. Ma io penso che dal storage manager si possa configurare tutto quanto. Infatti, guardate qua: SDA, SDB. Queste sono le due periferiche che voglio configurare. Creato storage. SDA, l'ho formattato e vado a creare qua storage 11 è stato creato. Ora vado sempre qua, crea storage e lo faccio anche per SDB. Però, nel mentre, stavo riflettendo sul fatto che è veramente interessante il fatto che questa sia una Debian 11, penso completamente sbloccata. Cioè, è normale, in realtà, c'è questo servizio che permette di automatizzare, semplificare con un'interfaccia web. Ma se vuoi fare le cose nella maniera complicata, se vuoi fare le cose gestendo Docker, ad esempio, da riga di comando e basta, con tutti i parametri, con Docker Compose, eccetera, eccetera, lo puoi fare. Non ti limita. Ora, io qui non mi sembra di vedere la possibilità di creare dei RAID. Questa è un po' una mancanza, secondo me. Sarebbe stato carino avere la possibilità di almeno fare mirroring. Quindi mi costringete a usare l'artiglieria pesante. `fdisk` e `command founder`. Non è installato. `sudo apt install lvm2`. Ma prima dovrei collegarlo alla rete, effettivamente. Che grande genio, avevo dimenticato di collegare la rete. Quindi, una delle due, immagino che vada bene. Vediamo se adesso riesco a lavorare. Ora posso installare LVM2, come dicevo. Vediamo se `pvscan` ora funziona. Certo, l'unica cosa è che devo essere root. Abbiamo SDA ed SDB, ciascuno con una singola partizione, quindi va benissimo così. `sudo pvcreate /dev/sda1`. Però non deve essere montato. Scusate, vediamo dove è montato. `grep sda1`. Ok, perché l'interfaccia web ce la faceva, ce lo montava in automatico. Quindi adesso faccio `umount /data/storage11` con `sudo` davanti. Oggettivamente. E anche l'altro, che si chiamerà `storage2`. Perfetto. Li smontiamo entrambi. Ora li vado a creare. `wipefs -a /dev/sda1`. Sì. E poi la faccio la stessa cosa anche con `sdb1`. E mi sono pericoloso. Ed eccoci qua. Ora con `pvscan` dovrei vederli entrambi. Eccoli qua. Ora che abbiamo questi due physical volume, vogliamo creare un volume group che li vada ad agglomerare sostanzialmente. Voglio un gruppo. `vgscan` restituisce niente, quindi andiamo `vgcreate`. Ovviamente, questo si aspetta dei parametri. Qua suggerisce la sintassi. Il primo parametro è il nome del volume group e poi i vari physical volume puntini puntini significa più di uno. Quindi, questo lo chiamiamo `dati` e ci mettiamo `/dev/sda1` e `/dev/sdb1`. Perfetto. Ora `vgscan` dovrebbe restituire effettivamente. Eccolo qua, il volume group appena creato. Scusate, questa è la mia cena. Ora do `vgdisplay` per vedere quali volume group ci sono. Quindi, attualmente soltanto `dati`, che contiene due physical volume, sono indicati qua, per una totale dimensione di 447 GB. `vgdisplay` dovrebbe mostrarmi più dettagli sui vari volume group. E ora mi direte: "Ma Moro, non avevi detto che avresti fatto un RAID 1?". Quindi perché vedo la somma delle dimensioni di entrambi i dischi come se fosse un RAID 0 sostanzialmente? Hai unito la capienza di entrambi, non stai facendo mirroring, non è una copia. Ma in realtà, questo è perché a livello di volume group è corretto così. Il mirroring lo posso fare a livello di logical volume, cioè le cose che vado a mettere sopra al volume group. Lui dice: "A livello di volume group ho questa dimensione qua agglomerata da due hard disk, poi li gestisci come ti pare te con un logical volume". Quindi, io cosa faccio? Creo `lvcreate`. Un logical volume della dimensione che voglio io, ad esempio. Vediamo se me lo fa creare in realtà a 447 GB e col parametro `-m` vado a specificare il numero di copie che devono avere i dati. Con uno vado a creare una copia in più, quindi oltre ai dati originali ci sarà una copia e quindi di fatto un mirroring, come se fosse un RAID 1. Lo voglio chiamare `dati_mirror` e lo voglio creare sul volume group `dati`. Ora, come vedete, mi dice: "Ah, non ho abbastanza spazio". Perché ne ho bisogno di questi qua. In realtà ne ho la metà. Questo perché, come vi accennavo, se voglio un gruppo a 447 GB in totale dove la fa un'altra copia, quindi io questa logical volume lo devo andare a creare tenendo in considerazione che ci deve essere anche lo spazio per farne un'altra copia esatta. Quindi la sua dimensione non può essere 447, ma deve essere la metà, 220, diciamo 3,5, ma non fa niente, 223 GB. Così ci sto. E di fatto, se faccio `lvscan`, eccolo qua: `dati_mirror`, 223 GB. Quindi la dimensione di un singolo hard disk a tutti gli effetti, con giga effettivi, però i dati qua dentro sono mirrorati. Ecco `lvdisplay`. Eccolo qua, vedete? Questi sono qualche dettaglio in più. Volevate mappazzone tecnico? Vi ho fatto il mappazzone tecnico. Ovviamente, questa roba non sono stato a spiegarla nel minimo dettaglio con tutta la calma del mondo. Quello lo faccio all'interno dei miei corsi, ad esempio nel corso LPIC-1 Esame 101 spiego per filo e per segno a livello di qualità di certificazione come si crea, configura, gestisce, anche come si vanno ad aggiungere nuovi volumi, come si fa a migrare i dati su altri volumi, rimuovere volumi per fare la sostituzione all'interno di un volume group LVM. Questa è tutta roba che se siete sysadmin certificati, sysadmin certificati Linux, vi serve ed è parte del programma di certificazione. Quindi, se vi interessa scendere più nel dettaglio al di là di questa breve spiegazione che vi ho dato, consigliatissimo, andate a dare un'occhiata a quel corso.
Ora sarei curioso di vedere se questo qui viene visto da CasaOS dalla dashboard web. E in realtà, non ho motivo per pensare che non venga visto, però dipende. Vediamo cosa dice. Se vado qua sull'ingranaggino e non lo vede... Eh, questo è un bel problema. Però, però, però, però, a dirla tutta, non abbiamo proprio finito qui. Infatti, io qui non ho ancora creato nessun file system. Quindi, come faccio a formattare questa roba in una maniera che sia visibile dal sistema o comunque utilizzabile in generale? Beh, vediamo su `fdisk -l` come al solito, se vede qualcosa. Ignoriamo un attimo gli altri che sono creati per ragioni tecniche, metadati e quant'altro. C'è questo qui: `/dev/mapper/dati-mirror`. Questo qui è effettivamente la nostra unità. Cioè, questo si comporta come se fosse un disco, un hard disk virtuale. In realtà, però, è come se fosse un hard disk da 223 GB che in realtà sotto la scocca è ridondato. Quindi, per crearci un file system, ad esempio ext4, faccio come al solito `mkfs.ext4`, ad esempio, e poi il nome del dispositivo completo. Guardate, si comporta esattamente come un qualsiasi disco. In realtà, sotto la scocca c'è LVM che sta andando a creare file system in maniera distribuita su entrambi i dischi fisici, ma a lui questo non interessa. Ora, ora è soltanto. Ora dovremmo essere in grado di montare questo questo volume. Ecco. Quindi, se ad esempio vado qua, eccolo qua. Guardate, 239 GB. `/dev/dm-4`. Ora io ho il sospetto che a questo punto lui non abbia proprio più scuse per farmelo vedere. Dovrebbero farmelo vedere. Se non funziona significa che proprio l'hanno pensata, non voglio dire male, ma in maniera che non tiene conto di LVM. E questo può essere un problema, può essere limitativo per l'uso della dashboard grafica. Insomma, sembra che non sia integrato con LVM. Davvero un gran peccato, perché a questo punto non posso più fare le stesse considerazioni di trattarlo come se fosse un Synology nel momento in cui vado a fare qualcosa di uno schiettino più avanzato, perché voglio più flessibilità e quindi voglio per un momento trattarlo come una macchina Linux per fare quel cavolo che voglio e poi, però, per il resto del tempo voglio trattarlo come un Synology con quattro pulsanti fai due cose meccaniche normali. Questo diventa incompatibile. Questo è un gran peccato, perché se avessero integrato LVM all'interno della web UI, a questo punto da adesso in poi io potevo continuare a usarlo con la web UI e sarebbe stato veramente il top. E niente, non c'è niente su internet. Sono finito sul repo ufficiale GitHub di CasaOS, dove ho trovato questa issue aperta, ancora e mezza scritta in cinese, suppongo, in cui in realtà, però, purtroppo no, cioè viene segnalato lo stesso problema, ma purtroppo nessuno se l'è pisciato. E quindi credo di niente. O facciamo finta che CasaOS non esiste, ci gestiamo tutto manualmente in maniera server Linux, tant'è una Debian, oppure dobbiamo fare un passo indietro e usare questi due dischi separatamente, che sinceramente mi sembra un po' una cazzata. Del resto, che CasaOS fosse limitato, un po' troppo giocattoloso e di scarsa applicazione pratica quando si va su cose un po' più professionali, un po' più avanzate, l'avevo già detto, ma fino a questo punto, CasaOS non pensavo. Fa niente, fa niente. Tanto questo, però, possiamo metterci Nextcloud e gestitecelo così. Anzi, possiamo farci meglio. Possiamo metterci Proxmox, oppure possiamo metterci tutto quello che ci pare sostanzialmente. Io ormai mi sto sciogliendo sulla sedia, si è fatto tardi. Può darsi che continui domani.
[Musica]