<?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 zfs)</title><link>https://www.dragas.net/</link><description></description><atom:link href="https://www.dragas.net/categories/zfs.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></channel></rss>