[Golem] NAS, Backup, Streaming

Tommaso - Nexus Arti e Didattica nexustm@protonmail.com
Sab 9 Nov 2019 15:48:34 CET


Tempo fa (2017!) scrissi chiedendo indicazioni sull'argomento in oggetto.
Ho continuato ad applicarmici, compiendo vari tentativi, di cui molti infruttuosi, per inesperienza mia e/o scarsità di documentazione.
Condivido qui in breve i piú recenti risultati.

Backup.
Mi sono orientato su una soluzione non automatizzata ma semplice ed economica, inserendo nel case del pc fisso principale un cassetto per hard disk con accesso frontale (removable hard drive bay/enclosure).
Lí viene inserito il disco di backup di turno, effettuato il quale lo stesso disco viene poi estratto e riposto altrove.
Quali programmi di copia/sincronizzazione ho individuato (fra i tanti):
[luckybackup](http://luckybackup.sourceforge.net) (gui di rsync),
[unison](https://www.cis.upenn.edu/~bcpierce/unison/) ,
[Déjà Dup](https://wiki.gnome.org/Apps/DejaDup) (gui di duplicity).

Inoltre sullo spazio (non server, purtroppo) web originariamente acquistato per il sito dell'associazione, accanto a Wordpress, ho installato [Nextcloud](https://nextcloud.com) (e altro software).
Un'ulteriore copia criptata dei documenti piú utili è in corso di trasferimento.

Streaming.
Per motivi di praticità, qualità della connessione, economia, ho scartato l'idea di un server/nas locale perennemente attivo e connesso. Invece, ancora usando le possibilità offerte da Nextcloud, è stato caricato un certo numero di file audio in un'apposita cartella web.
I file sono quindi raggiungibili tramite diversi protocolli. Nella fattispecie, al momento lo streaming in Android (su un telefono) viene realizzato da [PowerAmpache](https://f-droid.org/en/packages/com.antoniotari.reactiveampacheapp), un player in grado di connettersi a un'istanza Ampache; l'istanza viene fornita da un plug-in di Nextcloud, Music, dopo una piccola configurazione.
Un altro plug-in, Flowupload, è usato per trasferire efficacemente i file in Nextcloud (i tentativi iniziali usando il protocollo webdav con l'interfaccia di thunar, file manager di Xfce, non sono stati felici: interfaccia rallentata e frequenti interruzioni nel trasferimento).

Il punto debole dell'architettura è lo spazio web, uno spazio su un server condiviso, per di piú privo di cache (non installabile secondo il fornitore, Aruba), quindi definitivamente non ottimizzato per lo streaming. Però, accettando latenze varie, il tutto funziona e rimane, salvo attacchi, privato; last but not least, è stato usato soltanto software libero!

Spero di scrivere nelle prossime settimane un resoconto dettagliato dell'avventura sul sito dell'associazione.
Intanto grazie per aver letto sin qui.

─────────────────────────

   

Tommaso

   
[associazione Nexus Arti e Didattica](https://www.nexusartiedidattica.org/wpnaed)

Il 11/07/2017 16:22, Nexus Arti e Didattica - Tommaso ha scritto:

> Buongiorno a tutti/e.

Ciao! Benvenuto in lista GOLEM

> Vorrei dedicare i mesi estivi ad un progetto d’archiviazione, riguardante:
> NAS, Backup, Streaming, naturalmente da gestire con software libero,
> e vi chiedo consiglio e aiuto.
>
> 1) Nello specifico vorrei realizzare un nas composto di vari hard disk,
> accessibili in rete a livello locale e sul web.
> Dispongo di un case big tower che può ospitare numerosi dischi; sulla
> scheda madre c’è un Core Duo a 3Gh e 6gb di ram, credo più che
> sufficienti per gestire le varie operazioni richieste.

Penso sia perfettamente adeguato.

> 2) In più, il nas dovrebbe avere -su richiesta di un client- la capacità
> di convertire file audio presenti in vari formati (wave, flac, mp3, ogg,
> ape, ecc.) verso un unico formato compresso -p. es. ogg, per risparmiare
> banda- e condividerlo sul client, quindi uno streaming vero e proprio.

Una possibile soluzione può coinvolgere programmi come ffmpeg o VLC.
ffmpeg è uno strumento di conversione audio/video da riga di comando
molto usato su Linux. È possibile anche usarlo per lo streaming [1].
VLC (penso non abbia bisogno di presentazioni) può anche fare
conversione e streaming, ed oltre alla interfaccia grafica dispone  di
una interfaccia a riga di comando [2].
Il problema di queste ultime due soluzioni è che dovresti poi
implementare una interfaccia web che consenta di richiamare uno dei due
precedenti strumenti.

Probabilmente conviene, invece, sfruttare soluzioni già impacchettate.
Premetto che non ho ancora avuto occasione di provarli, ma esistono
suite per Linux orientate a sistemi MediaCenter che consentono la
gestione di librerie di media (e la relativa compressione) e lo
streaming (Media Server). Cercando un po' in giro ho trovato Emby [3] e
Plex [4].
Il primo

_

sembra

_

essere completamente software libero (c'è il
repository GitHub), mentre il secondo contiene dichiaratamente una
percentuale di software proprietario (sicuramente relativa a particolari
codec audio video).
Entrambi gestiscono la libreria media e forniscono un interfaccia web
(multipiattaforma) per lo streaming).

> 3a) Ad intervalli regolari, uno script (tramite cron?) dovrebbe avviare
> un backup incrementale su un’altra serie di hard disk (nel medesimo case);
> 3b) lo script dovrebbe anche controllare un’unità Arduino (o simile) che
> disconnetta fisicamente il cavo di rete, dia corrente ai dischi di
> backup, li monti, quindi -terminato il trasferimento dei dati- smonti
> questi dischi, tolga loro corrente, riconnetta il cavo di rete.
> In questo modo il backup sarà sempre offline e -a meno che non venga
> compromesso il sistema operativo del nas- spero al sicuro da attacchi.

Non ho ben chiara la dinamica... il backup avviene, sì, offline, ma
ipotizziamo il seguente scenario: il sistema viene infettato da un virus
mentre è online, e il virus avvia la propria (a volte lenta) procedura.
Ad un certo punto il sistema va offline e collega il disco con il metodo
da te descritto, ed avvia il backup. Oramai il sistema è stato
compromesso e il virus potrebbe rilevare la connessione di un nuovo
disco compromettendo anche eventuali backup precedenti.

Secondo me, ti converrebbe utilizzare una seconda unità di calcolo anche
meno potente, connessa solo alla rete locale. Questa unità non deve far
altro che contattare il server principale (con rsync [5], per esempio) e
chiedere una copia di dati per il backup effettuando l'incremento. In
questo modo anche se il sistema del server è infettato e viene fatto il
backup nello storico rimangono le N modifiche precedenti non infettate.

> Potete consigliarmi distribuzioni appropriate, siti di riferimento,
> letture e quant’altro disponibile a vostra conoscenza? Se poi qualcuno
> volesse darmi una mano direttamente, avrà tutta la mia gratitudine! E se
> mai arriverò alla fine dell’impresa non mancherò di condividere il
> risultato con la comunità.

Ho citato qua e là qualche pagina di manuale. Di solito per applicazioni
server noi usiamo Debian e poi la personalizziamo con i pacchetti di cui
abbiamo bisogno.

Ultimo consiglio: è un progetto bello grosso (anche in base alle
conoscenze che hai di amministrazione Linux (rsync, ssh, etc),
programmazione web, gestione dei media/compressione e (nella tua
ipotesi) elettronica e programmazione Arduino). Scegli bene cosa fare,
magari focalizzati su uno dei particolari tool per provarlo ed imparare
bene ad usarlo, per poi passare agli step successivi.

> Grazie.

Di nulla, per qualsiasi altra domanda scrivi pure!

~ Giulio

-- Links --
[1]
https://trac.ffmpeg.org/
[2]
https://wiki.videolan.org/Documentation:Streaming_HowTo_New/
[3]
https://emby.media
[4]
http://plex.tv/
[5]
http://lugscandiano.org/index.php/Backup_con_rsync_via_ssh


Maggiori informazioni sulla lista golem