<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Stefano Marinelli's Blog (Articoli su borg)</title><link>https://www.dragas.net/</link><description></description><atom:link href="https://www.dragas.net/categories/borg.xml" rel="self" type="application/rss+xml"></atom:link><language>it</language><lastBuildDate>Thu, 19 Jan 2023 08:25:50 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Backup efficienti di container LXC in Proxmox - ZFS</title><link>https://www.dragas.net/posts/backup-efficienti-di-container-lxc-in-proxmox-zfs/</link><dc:creator>Stefano Marinelli</dc:creator><description>&lt;p&gt;&lt;em&gt;NOTA: Il seguente post è la traduzione dell'equivalente in inglese &lt;a href="https://it-notes.dragas.net/2022/01/20/efficient-backup-of-lxc-containers-in-proxmox-zfs/"&gt;sul blog it-notes&lt;/a&gt;. L'originale sarà sempre più aggiornato.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Ho già scritto relativamente ad alcune delle mie strategie di backup in Proxmox. Proxmox Backup Server è un valido strumento, ma non è sempre l'opzione migliore, soprattutto se si utilizzano container lxc.&lt;/p&gt;
&lt;p&gt;I container LVM e Ceph RBD sono già stati trattati &lt;a href="https://www.dragas.net/posts/backup-efficienti-lxc-proxmox/"&gt;in un altro post&lt;/a&gt;, ma una delle (molte) ottime opzioni, se si usa Proxmox, è ZFS. Utilizzo ampiamente ZFS sia su &lt;a href="https://www.dragas.net/posts/perche-migrare-i-server-da-linux-a-freebsd/"&gt;FreeBSD&lt;/a&gt; che su Linux (e ho sempre desiderato che &lt;a href="https://www.dragas.net/posts/effettuare-backup-remoti-btrfs/"&gt;BTRFS potesse raggiungere lo stesso livello di affidabilità&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Quando non ho bisogno di un file system in rete (come Ceph) o voglio superare i limiti di LVM, tendo a installare le VM di Proxmox e i container lxc su ZFS. Concentriamoci ora sul backup dei container lxc.&lt;/p&gt;
&lt;p&gt;Proxmox utilizza i dataset ZFS per lo storage dei container lxc, quindi tutti i file si trovano su &lt;em&gt;/nome-pool/subvol-x-disk-y&lt;/em&gt;. Possiamo eseguire facilmente il backup come abbiamo fatto nel mio precedente articolo, abbiamo solo bisogno di un modo diverso per eseguire le snapshot di tutti questi dataset.&lt;/p&gt;
&lt;p&gt;I dataset ZFS forniscono una directory &lt;em&gt;.zfs&lt;/em&gt;, nascosta, che contiene tutte le istantanee attualmente esistenti di quel dataset specifico. "&lt;em&gt;ls&lt;/em&gt;" non la mostrerà, ma si può fare un "&lt;em&gt;cd&lt;/em&gt;" e sarà utilizzabile.&lt;/p&gt;
&lt;p&gt;Naturalmente si può usare zfs send/receive in maniera nativa (o un utile software che uso quotidianamente, &lt;a href="https://github.com/psy0rz/zfs_autobackup"&gt;zfs-autobackup&lt;/a&gt;, sia per le istantanee locali che per la replica remota), ma vogliamo salvare i file, non il dataset zfs, in modo da poter eseguire il backup su un file system diverso. &lt;strong&gt;Qualsiasi file system&lt;/strong&gt;. Quindi useremo &lt;a href="https://www.borgbackup.org"&gt;borg backup&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Supponiamo che il nostro pool ZFS sia chiamato "proxzfs". Ecco uno script di esempio. Naturalmente, questo è il mio script, funziona per me e non sono responsabile se non funziona per voi/distrugge tutti i vostri dati/mangia il vostro server/ecc.&lt;/p&gt;
&lt;pre class="code literal-block"&gt;&lt;span class="ch"&gt;#!/bin/bash&lt;/span&gt;

/usr/sbin/zfs snapshot -r proxzfs@forborg

&lt;span class="nv"&gt;REPOSITORY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;yourpath/server/whatever:borgrepository/
&lt;span class="nv"&gt;TAG&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;mytag
borg create -v --stats --compression zstd --progress    &lt;span class="se"&gt;\&lt;/span&gt;
   &lt;span class="nv"&gt;$REPOSITORY&lt;/span&gt;::&lt;span class="nv"&gt;$TAG&lt;/span&gt;&lt;span class="s1"&gt;'-{now:%Y-%m-%dT%H:%M:%S}'&lt;/span&gt;          &lt;span class="se"&gt;\&lt;/span&gt;
   /proxzfs/*/.zfs/snapshot/forborg/  &lt;span class="se"&gt;\&lt;/span&gt;
   --exclude &lt;span class="s1"&gt;'*subvolYouMayWantToExclude-disk-0*'&lt;/span&gt;

/usr/sbin/zfs destroy -vrR proxzfs@forborg

borg prune -v &lt;span class="nv"&gt;$REPOSITORY&lt;/span&gt; --stats --prefix &lt;span class="nv"&gt;$TAG&lt;/span&gt;&lt;span class="s1"&gt;'-'&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
   --keep-daily&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;31&lt;/span&gt; --keep-weekly&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;4&lt;/span&gt; --keep-monthly&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;12&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;Questo piccolo script creerà un'istantanea @forborg per qualsiasi dataset che troverà sotto "proxzfs", quindi avvierà borg e gli chiederà di attraversare le snapshot &lt;em&gt;forborg&lt;/em&gt; montate automaticamente all'interno della directory .zfs di qualsiasi dataset.&lt;/p&gt;
&lt;p&gt;Quindi distruggerà le istantanee "forborg" ed eseguirà un prune di borg. Questo eliminerà i vecchi backup, in base alla politica impostata. Questo passaggio può essere evitato, ma io preferisco eseguirlo dopo un backup, in modo che il mio repository sia sempre coerente con la mia politica di data retention.&lt;/p&gt;</description><category>backup</category><category>borg</category><category>container</category><category>linux</category><category>lxc</category><category>proxmox</category><category>snapshot</category><category>tecnologici</category><category>zfs</category><guid>https://www.dragas.net/posts/backup-efficienti-di-container-lxc-in-proxmox-zfs/</guid><pubDate>Wed, 18 Jan 2023 08:34:19 GMT</pubDate></item><item><title>Backup efficienti di container LXC in Proxmox (e non solo)</title><link>https://www.dragas.net/posts/backup-efficienti-lxc-proxmox/</link><dc:creator>Stefano Marinelli</dc:creator><description>&lt;div&gt;&lt;p&gt;&lt;img alt="Proxmox" src="https://images.unsplash.com/photo-1549299096-56b3ebc3259a?ixlib=rb-1.2.1&amp;amp;q=80&amp;amp;fm=jpg&amp;amp;crop=entropy&amp;amp;cs=tinysrgb&amp;amp;w=2000&amp;amp;fit=max&amp;amp;ixid=eyJhcHBfaWQiOjExNzczfQ"&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;NOTA: Il seguente post è la traduzione dell'equivalente &lt;a href="https://it-notes.dragas.net/2020/10/06/efficient-backup-of-lxc-containers-in-proxmox/"&gt;sul blog it-notes&lt;/a&gt;. L'originale sarà sempre più aggiornato.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;A volte un &lt;a href="https://linuxcontainers.org/"&gt;container lxc&lt;/a&gt; può essere un'alternativa più valida rispetto ad ad una macchina virtuale KVM. Ha un overhead inferiore, una gestione delle risorse più semplice ed efficiente e un minore impatto sulla macchina fisica.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.dragas.net/posts/backup-efficienti-lxc-proxmox/"&gt;Continua la lettura…&lt;/a&gt; (ulteriori 4 minuti di lettura)&lt;/p&gt;&lt;/div&gt;</description><category>backup</category><category>borg</category><category>linux</category><category>proxmox</category><category>server</category><category>tecnici</category><guid>https://www.dragas.net/posts/backup-efficienti-lxc-proxmox/</guid><pubDate>Thu, 10 Sep 2020 12:25:19 GMT</pubDate></item><item><title>Alla Ricerca del Backup Perfetto: Borg e Restic</title><link>https://www.dragas.net/posts/alla-ricerca-del-backup-perfetto-borg-e-restic/</link><dc:creator>Stefano Marinelli</dc:creator><description>&lt;div&gt;&lt;nav class="contents" id="indice-dell-articolo" role="doc-toc"&gt;
&lt;p class="topic-title"&gt;Indice dell'articolo&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://www.dragas.net/posts/alla-ricerca-del-backup-perfetto-borg-e-restic/#backup-tecniche-principali" id="toc-entry-1"&gt;Backup: tecniche principali&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://www.dragas.net/posts/alla-ricerca-del-backup-perfetto-borg-e-restic/#backup-le-basi-di-partenza" id="toc-entry-2"&gt;Backup: le basi di partenza&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://www.dragas.net/posts/alla-ricerca-del-backup-perfetto-borg-e-restic/#backup-snapshot" id="toc-entry-3"&gt;Backup: Snapshot&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://www.dragas.net/posts/alla-ricerca-del-backup-perfetto-borg-e-restic/#backup-push-o-pull" id="toc-entry-4"&gt;Backup: push o pull?&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://www.dragas.net/posts/alla-ricerca-del-backup-perfetto-borg-e-restic/#borg-backup-1" id="toc-entry-5"&gt;Borg Backup&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://www.dragas.net/posts/alla-ricerca-del-backup-perfetto-borg-e-restic/#restic-1" id="toc-entry-6"&gt;Restic&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://www.dragas.net/posts/alla-ricerca-del-backup-perfetto-borg-e-restic/#esempio-script-utilizzato-per-effettuare-il-backup-del-mio-portatile-usando-borg-e-restic" id="toc-entry-7"&gt;Esempio: Script utilizzato per effettuare il backup del mio portatile usando Borg e Restic&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://www.dragas.net/posts/alla-ricerca-del-backup-perfetto-borg-e-restic/#conclusioni" id="toc-entry-8"&gt;Conclusioni&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/nav&gt;
&lt;a class="reference external image-reference" href="https://www.dragas.net/images/backup.png"&gt;&lt;img alt="/images/backup.thumbnail.png" src="https://www.dragas.net/images/backup.thumbnail.png"&gt;&lt;/a&gt;
&lt;p&gt;English version &lt;a class="reference external" href="https://it-notes.dragas.net/2020/06/30/searching-for-a-perfect-backup-solution-borg-and-restic/"&gt;here&lt;/a&gt;&lt;/p&gt;
&lt;section id="backup-tecniche-principali"&gt;
&lt;h2&gt;&lt;a class="toc-backref" href="https://www.dragas.net/posts/alla-ricerca-del-backup-perfetto-borg-e-restic/#toc-entry-1" role="doc-backlink"&gt;Backup: tecniche principali&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;In passato &lt;a class="reference external" href="https://www.dragas.net/posts/alla-ricerca-del-backup-perfetto/"&gt;ho già affrontato l'argomento backup&lt;/a&gt; ponendo alcune basi e dando alcune indicazioni sulle principali modalità e sul &lt;em&gt;perché è fondamentale farlo&lt;/em&gt;, sul perché &lt;em&gt;il RAID non può essere considerato una forma di backup&lt;/em&gt; e su alcuni software da me presi in esame e utilizzati in precedenza. Invito dunque a leggere l'articolo collegato, per una base di partenza. Questa volta, però, daro delle guide su come io realizzo i backup e su come io riesca a garantire un certo grado di sicurezza.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="backup-le-basi-di-partenza"&gt;
&lt;h2&gt;&lt;a class="toc-backref" href="https://www.dragas.net/posts/alla-ricerca-del-backup-perfetto-borg-e-restic/#toc-entry-2" role="doc-backlink"&gt;Backup: le basi di partenza&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Proporrò l'argomento sotto forma di elenco puntato, onde coprire le principali problematiche da gestire:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;Sistema Operativo e dati da salvare: ogni sistema operativo è un universo. E' ragionevole pensare che non esista una soluzione universale, anche se molti dei principali software open source sono multi-piattaforma. Il principale divario è tra i sistemi Unix-Like (GNU/Linux, BSD, MacOS, ecc.) e Windows. Lo stesso software, pur essendo disponibile per più piattaforme, potrebbe non essere il migliore per la propria o per le proprie necessità.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Tipo di dati da salvare: ogni tipo di backup richiede soluzioni diverse. Ci sono situazioni in cui si ha la necessità di copie pressoché sempre incrementali in quanto i file crescono ma non vengono modificati. In questo caso, un qualunque sistema appunto incrementale (es: &lt;a class="reference external" href="http://duplicity.nongnu.org/"&gt;Duplicity&lt;/a&gt; ) può essere sufficiente. Nel caso, invece, di backup sempre diversi (es: un database che cambia costantemente), un sistema come quello precedente può essere estremamente inefficiente, specialmente nel lungo periodo.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Necessità di crittografia o meno: i backup delle mie fatture, ad esempio, potrei anche evitare di crittarli...&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Rapidità di esecuzione e di recupero: ci sono strumenti che sono estremamente efficienti nell'effettuare l'operazione di copia, ma che rendono estremamente lento il recupero. Una delle (poche) carenze da me riscontrate in &lt;a class="reference external" href="https://burp.grke.org/"&gt;BURP Backup&lt;/a&gt;, di cui ho parlato &lt;a class="reference external" href="https://www.dragas.net/posts/alla-ricerca-del-backup-perfetto/"&gt;nell'articolo precedente&lt;/a&gt; e che utilizzo ancora con successo in certe situazioni, è che richiede &lt;em&gt;il restore dei file e non consente, per lo meno direttamente, di navigare nel backup come fosse un file system locale&lt;/em&gt;. Stesso discorso vale, ad esempio, per il backup nativo di &lt;a class="reference external" href="https://www.dragas.net/posts/un-assaggio-di-proxmox/"&gt;Proxmox&lt;/a&gt;: è comodissimo da impostare, completo e nativo ma il tempo di recupero può essere importante, specialmente se effettuato in postazioni remote e su connessioni lente. Recuperare un file richiederà, molto spesso, il recupero totale della macchina.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Snapshot: ultima in lista, ma questione di primaria importanza. Un backup di un file system "live" avrà un momento di inizio e un momento di fine. Nel frattempo, i dati cambieranno all'interno di esso e potrebbe generarsi incoerenza. In passato ho avuto problemi del genere: un database (mysql) di qualche GB è stato rovinato da un cliente e me ne è stato chiesto il recupero. Ho preso, con baldanza, l'ultimo backup e ho ripristinato i vari file (non un dump). Inutile dire che è stato impossibile farlo ripartire: il file molto grande era cambiato &lt;em&gt;troppo&lt;/em&gt; tra l'inizio del backup dello stesso e la fine, per cui era incoerente. Per i maliziosi: avevo anche il dump, ovviamente, per cui ho recuperato quello. Ma la questione resta chiara: &lt;strong&gt;fare un backup di un file system live è pericoloso&lt;/strong&gt;, a meno che non si stia copiando la cartella "Documenti" o "Immagini". Un database aperto, come anche semplicemente quello del browser, ha altissime probabilità di corrompersi e rendere inutile la copia di sicurezza fatta. La tecnica è &lt;em&gt;fare uno snapshot&lt;/em&gt; dell'intero file system prima di iniziare la copia. Ci sono margini di rischio anche in questo (il backup avrà all'incirca lo stesso stato che avrebbe la macchina se venisse improvvisamente staccata la spina), ma largamente inferiori. Ad oggi, utilizzando snapshot, sono stato in grado di recuperare tutto.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="https://www.dragas.net/posts/alla-ricerca-del-backup-perfetto-borg-e-restic/"&gt;Continua la lettura…&lt;/a&gt; (ulteriori 9 minuti di lettura)&lt;/p&gt;&lt;/section&gt;&lt;/div&gt;</description><category>attic</category><category>backup</category><category>backuppc</category><category>borg</category><category>burp</category><category>data</category><category>linux</category><category>obnam</category><category>recensioni</category><category>recovery</category><category>restic</category><category>restore</category><category>rsync</category><category>sicurezza</category><category>tecnici</category><category>urbackup</category><category>windows</category><guid>https://www.dragas.net/posts/alla-ricerca-del-backup-perfetto-borg-e-restic/</guid><pubDate>Wed, 23 May 2018 07:42:37 GMT</pubDate></item></channel></rss>