\documentclass{beamer}
\usetheme{FUZ}



%dependances
\usepackage[utf8]{inputenc}
\usepackage[absolute, overlay]{textpos} % Arbitrary placement
\setlength{\TPHorizModule}{\paperwidth} % Textpos units
\setlength{\TPVertModule}{\paperheight} % Textpos units
\usepackage{listings} %verbatim

%theme lstlistings
\lstdefinestyle{lstjj}{
	backgroundcolor=\color{uibgreen},
	%basicstyle=\scriptsize,
	basicstyle=\tiny,
	breaklines=true,
	texcl=true,
	literate={é}{{\"e}}1
		 {à}{{\"a}}1
}
\lstset{style=lstjj}

%title page:
\title{Backups}
\author{Jeanjack \& Joseki}
\institute{FUZ}
\date{nov. 2023}

%%
%	Ceci est un exemple du template FUZ pour beamer, il est (vraiment) très grandement inspiré de celui de l'UiB
%%

\begin{document}

\begin{frame}
\frametitle{intro}
  \begin{block}{quote}
  "There are only two types of persons, those who backup and those who ever have data loss"
  \end{block}
  \begin{block}{Pourquoi ?}
    \begin{itemize}
    \item Tout matériel finit par mourir
    \item Perte / Vol
    \item Panne système
    \item Bitrot ( data rot, disc rot, scrubing )
    \item Retrouver un état antérieur ( bourde, upgrade, etc... )
    \end{itemize}
  \end{block}
\end{frame}

\begin{frame}
 \begin{block}{Matériel et coût}
    \begin{itemize}
    \item clé usb 10€
    \item disque dur (ssd ou à plateau) 50€+
    \item serveur dédié avec 2 disque ~75€
    \item Caractéristiques matérielles différentes ( disque dûr, SSD, carte mémoire, etc... ).
    \end{itemize}
 \end{block}
 \begin{block}{Logiciel et coût}
    \begin{itemize}
    \item Abonnement cloud 5To ~30€
    \item RAID (Redundant Array of Independent Disks): découpage en fragments de données répartis sur différents supports de stockage (hdd ou ssd)
    \item RAID is not backup
    \end{itemize}
 \end{block}
\end{frame}

\begin{frame}
 \begin{block}{Réflexion coût / service}
    \begin{itemize}
    \item Réflexion sur la stratégie à adopter ( coût vs criticité des données )
    \item Le moins cher en ressources humaine, coûts de mise en place est probablement le cloud (beurk)
    \item Sinon les clé usb bien rangées ( Archivage )
    %TODO
    %\item On peux faire un tableau avec un prix au To backup et le danger @TODO
    \end{itemize}
 \end{block}
 \begin{block}{Règle 3-2-1 (théorie old-school)}
    \begin{itemize}
    \item 3 copies de la donnée (pour pouvoir perdre un peer sans danger perdre la redondance)
    \item 2 différents types de stockage
    \item 1 copie hors site (limiter les soucis en cas d'inaccessibilité d'un site, redondance géo)
    \item Backups par jwz: https://www.jwz.org/doc/backups.html
    \end{itemize}
 \end{block}
\end{frame}

\begin{frame}
  \begin{block}{la rache}
    \begin{itemize}
    \item Copie sur plusieurs disque / clé usb
    \item On lance les copies manuellement
    \end{itemize}
  \end{block}
  \begin{block}{Debrouille}
    \begin{itemize}
    \item automatique (tous les jours, avec cron ou timer systemd)
    \item léger (on évite les downtime à chaque backup)
    \item rapide (au minimum plus rapide que la fréquence souhaitée)
    \item rsync ou rclone vers plusieurs machines quotidiennement (c'est mieux que rien donc go)
    \end{itemize}
  \end{block}
\end{frame}

\begin{frame}
  \begin{block}{Sympa}
    \begin{itemize}
    \item compression
    \item déduplication
    \item chiffrement
    \item conservation roulante chaque heure (24J / 7 semaine / 4 mois / 12 année)
    \item par exemple borgbackup
    \end{itemize}
  \end{block}
  \begin{block}{Exemple}
    \begin{itemize}
    \item Utilisation de borgbackup, burp ou autre appli
    \item On lance les copies automatiquement (cron ou timer systemd)
    \item Plus simple pour comparer les résultats
    \end{itemize}
  \end{block}
\end{frame}

\begin{frame}
  \begin{block}{La version pro® (zfs / btrfs)}
    \begin{itemize}
    \item snapshot immutable niveau FS
    \item Transfert des snapshots niveau FS (zfs-send | zfs-receive, pareil en btrfs)
    \item Possibilité de transferts incrémentaux (seulement le diff par rapport au parent)
    \item rapide et léger (On privilégie le code kernel plus rapide)
    \item déduplication au niveau des blocks (Peux être couteux mais économie d'espace dans le temps)
    \item Résistance au client qui se fait pwner (append only+ro, "do not trust the client")
    \item Résistance au serveur qui se fait pwner (scrub coté client ? "do not trust the server")
    \end{itemize}
  \end{block}
\end{frame}

\begin{frame}
  \begin{block}{Exemple}
    \begin{itemize}
    \item Utilisation de btrbk par exemple
    \item On lance les copies automatiquement (cron ou timer systemd)
    \end{itemize}
  \end{block}
\end{frame}

\begin{frame}{synchronisation}
\begin{block}{rsync}
  \begin{itemize}
  \item un grand classique, présent presque partout, dépends de SSH
  \item permet de ne pas retransférer des fichier déjà existant
  \item synchronisation : on perds les éditions précédentes
  \end{itemize}
\end{block}
\begin{block}{rclone}
  \begin{itemize}
  \item rsync évolué
  \item transfert vers "cloud" : dropbox, google drive, webDAV etc...
  \end{itemize}
\end{block}
\end{frame}

\begin{frame}[fragile]%{roulement}
\begin{block}{borgbackup}
  \begin{itemize}
  \item beaucoup de features
  \item revenir à un état précédent tout en évitant de prendre trop d'espace disque
  \item fonctionnement par "dépôts"
  \end{itemize}
  \begin{lstlisting}
Creating archive at "/data/backup/grolem::grolem-2023-10-30"
------------------------------------------------------------------------------
Repository: /data/backup/grolem
Archive name: grolem-2023-10-30
Time (start): Mon, 2023-10-30 03:00:03
Time (end):   Mon, 2023-10-30 03:00:22
------------------------------------------------------------------------------
                       Original size      Compressed size    Deduplicated size
This archive:                3.60 GB              1.93 GB            184.49 kB
All archives:               20.18 GB             10.79 GB              1.24 GB

                       Unique chunks         Total chunks
Chunk index:                   62784               741059
------------------------------------------------------------------------------
Keeping archive (rule: weekly #1):       grolem-2023-10-30                    Mon, 2023-10-30 03:00:03 [66ff9009686bdb24e2b602f67ecd59f4463b7518aac8f9d62f387ca70f43726e]
Keeping archive (rule: weekly #2):       grolem-2023-10-29                    Sun, 2023-10-29 03:00:02 [f309d84b1d127fee5e6a05ef65df2458d72ef874a4a93756a9819231ed9ad8a2]
Pruning archive (1/1):                   grolem-2023-10-22                    Sun, 2023-10-22 03:00:04 [fd4923bc1eaaae348870219d7d232138e5065adaaa66dd6fe9b84d87f01b05fa]
Keeping archive (rule: monthly #1):      grolem-2023-09-30                    Sat, 2023-09-30 03:00:03 [c09faa0dc065283492cd7d29afbd61096c04c11641afc601afd512ba35b99403]
Keeping archive (rule: monthly #2):      grolem-2023-08-31                    Thu, 2023-08-31 03:00:03 [29e872676ffb3befc569912aedbde0aff95aee4611276195a67e64e6c57564da]
Keeping archive (rule: monthly #3):      grolem-2023-07-31                    Mon, 2023-07-31 03:00:03 [639ff1e8d401b0c81be6487053cc4c150fcee802210084f3f3560bf0f85e2a15]
Keeping archive (rule: monthly #4):      grolem-2023-06-30                    Fri, 2023-06-30 03:00:02 [bb17a1108891315838443b05388775cdf127204276e27751e33a00e1e378c27d]
  \end{lstlisting}
\end{block}
\end{frame}
\begin{frame}[fragile]
\begin{block}{burp}
  \begin{itemize}
  \item proche borgbackup mais utilise un serveur de backup central
  \item "timer" + heure à laquelle le serveur opère : le serveur décide de si c'est le môment de faire un backup
  \end{itemize}
  \begin{lstlisting}
--------------------------------------------------------------------------------
Start time: 2023-02-27 18:05:01
  End time: 2023-02-27 23:53:14
Time taken: 05:48:13
                         New   Changed Duplicate   Deleted     Total |  Scanned
                   ------------------------------------------------------------
             Files:        0         6        12         0        18 |       18
         Meta data:        6         0         0         6         6 |        6
       Directories:        0         0         1         0         1 |        1
       Grand total:        6         6        13         6        25 |       25
                   ------------------------------------------------------------

             Messages:             0
             Warnings:             0

      Bytes estimated:   209214636032 (194.85 GB)
      Bytes in backup:   209214637062 (194.85 GB)
       Bytes received:    1873139099 (1.74 GB)
           Bytes sent:      19359725 (18.46 MB)
--------------------------------------------------------------------------------
2023-02-27 23:53:14 +0100: burp[335114] Backup completed.
  \end{lstlisting}
\end{block}
\end{frame}


\begin{frame}
\begin{block}{Conclusion}
  \begin{itemize}
  \item Beaucoup de solutions, des approches différentes
  \item rsync, rclone : synchronisation
  \item borgbackup, burp : roulement
  \item ZFS, btrfs : optimal, mais demande de l'infra
  \item Quelles données sont importantes ? Quel moyens pour assurer leur cycle ?
  \end{itemize}
\end{block}
\end{frame}

\end{document}
