backup-01

Machine

  • Partie matérielle
    • Serveur dédié
    • 1 processeur 8 cœursIntel Core i7-7700
    • 2 barrettes pour un total de 32 Go de mémoire RAM DDR4
    • 2 disques SATA Enterprise de 4 To
    • 1 carte réseau 1 Gbit/s Intel I219-LM
  • Partie logicielle
    • Système d'exploitation : Debian stable

Configuration

Système d'exploitation

Debian stable (Debian 11 « Bullseye » au moment de la rédaction de cette page)

Adressage IP

# cat /etc/network/interfaces
### Hetzner Online GmbH installimage

source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback
iface lo inet6 loopback

auto enp0s31f6
iface enp0s31f6 inet static
  address 95.216.12.179
  netmask 255.255.255.192
  gateway 95.216.12.129
  # route 95.216.12.128/26 via 95.216.12.129
  up route add -net 95.216.12.128 netmask 255.255.255.192 gw 95.216.12.129 dev enp0s31f6

iface enp0s31f6 inet6 static
  address 2a01:4f9:2a:cc8::2
  netmask 64
  gateway fe80::1

Paquets installés

La liste des paquets :

# dpkg -l | grep '^i' |awk '{ print $2 }' | sed '/^$/d'| sort
acl
acpid
adduser
amd64-microcode
apt
aptitude
aptitude-common
apt-utils
at
base-files
base-passwd
bash
bash-completion
bind9-dnsutils
bind9-host
bind9-libs:amd64
binutils
binutils-common:amd64
binutils-x86-64-linux-gnu
bsdextrautils
bsdutils
btrfs-progs
busybox
bzip2
ca-certificates
console-setup
console-setup-linux
coreutils
cpio
cpp
cpp-10
cron
cryptsetup
cryptsetup-bin
cryptsetup-initramfs
curl
dash
dbus
dctrl-tools
debconf
debconf-i18n
debian-archive-keyring
debianutils
diffutils
discover
discover-data
distro-info-data
dkms
dmeventd
dmidecode
dmsetup
dnsutils
dosfstools
dpkg
dpkg-dev
e2fsprogs
efibootmgr
ethtool
fail2ban
fdisk
file
findutils
firmware-bnx2x
gcc
gcc-10
gcc-10-base:amd64
gcc-9-base:amd64
gdisk
gettext-base
gpgv
grep
groff-base
grub2-common
grub-common
grub-efi-amd64
grub-efi-amd64-bin
grub-pc-bin
gzip
hostname
htop
iftop
ifupdown
init
initramfs-tools
initramfs-tools-core
init-system-helpers
intel-microcode
iotop
iproute2
iptables
iputils-ping
isc-dhcp-client
isc-dhcp-common
iucode-tool
kbd
keyboard-configuration
klibc-utils
kmod
laptop-detect
less
libacl1:amd64
libaio1:amd64
libapparmor1:amd64
libapt-pkg6.0:amd64
libargon2-1:amd64
libasan6:amd64
libatomic1:amd64
libattr1:amd64
libaudit1:amd64
libaudit-common
libbinutils:amd64
libblas3:amd64
libblkid1:amd64
libboost-iostreams1.74.0:amd64
libbpf0:amd64
libbrotli1:amd64
libbsd0:amd64
libbz2-1.0:amd64
libc6:amd64
libc6-dev:amd64
libcap2:amd64
libcap2-bin
libcap-ng0:amd64
libc-bin
libcbor0:amd64
libcc1-0:amd64
libc-dev-bin
libc-l10n
libcom-err2:amd64
libcrypt1:amd64
libcrypt-dev:amd64
libcryptsetup12:amd64
libctf0:amd64
libctf-nobfd0:amd64
libcurl3-gnutls:amd64
libcurl4:amd64
libcwidget4:amd64
libdb5.3:amd64
libdbus-1-3:amd64
libdebconfclient0:amd64
libdevmapper1.02.1:amd64
libdevmapper-event1.02.1:amd64
libdiscover2
libdns-export1110
libdpkg-perl
libedit2:amd64
libefiboot1:amd64
libefivar1:amd64
libelf1:amd64
libestr0:amd64
libexpat1:amd64
libext2fs2:amd64
libfastjson4:amd64
libfdisk1:amd64
libffi7:amd64
libfido2-1:amd64
libfl2:amd64
libfreetype6:amd64
libfstrm0:amd64
libfuse2:amd64
libgcc-10-dev:amd64
libgcc-s1:amd64
libgcrypt20:amd64
libgdbm6:amd64
libgdbm-compat4:amd64
libgmp10:amd64
libgnutls30:amd64
libgomp1:amd64
libgpg-error0:amd64
libgssapi-krb5-2:amd64
libhogweed6:amd64
libicu67:amd64
libidn2-0:amd64
libinih1:amd64
libip4tc2:amd64
libip6tc2:amd64
libisc-export1105:amd64
libisl23:amd64
libitm1:amd64
libjansson4:amd64
libjson-c5:amd64
libk5crypto3:amd64
libkeyutils1:amd64
libklibc:amd64
libkmod2:amd64
libkrb5-3:amd64
libkrb5support0:amd64
libldap-2.4-2:amd64
libldap-common
liblinear4:amd64
liblmdb0:amd64
liblocale-gettext-perl
liblockfile-bin
liblognorm5:amd64
liblsan0:amd64
liblua5.3-0:amd64
liblvm2cmd2.03:amd64
liblz4-1:amd64
liblzma5:amd64
liblzo2-2:amd64
libmagic1:amd64
libmagic-mgc
libmaxminddb0:amd64
libmd0:amd64
libmnl0:amd64
libmount1:amd64
libmpc3:amd64
libmpdec3:amd64
libmpfr6:amd64
libncurses6:amd64
libncursesw6:amd64
libnetfilter-conntrack3:amd64
libnettle8:amd64
libnewt0.52:amd64
libnfnetlink0:amd64
libnftables1:amd64
libnftnl11:amd64
libnghttp2-14:amd64
libnl-3-200:amd64
libnl-genl-3-200:amd64
libnsl2:amd64
libnsl-dev:amd64
libnss-systemd:amd64
libnvpair3linux
libp11-kit0:amd64
libpam0g:amd64
libpam-modules:amd64
libpam-modules-bin
libpam-runtime
libpam-systemd:amd64
libpcap0.8:amd64
libpci3:amd64
libpcre2-8-0:amd64
libpcre3:amd64
libperl5.32:amd64
libpipeline1:amd64
libpng16-16:amd64
libpopt0:amd64
libprocps8:amd64
libprotobuf-c1:amd64
libpsl5:amd64
libpython3.9-minimal:amd64
libpython3.9-stdlib:amd64
libpython3-stdlib:amd64
libquadmath0:amd64
libreadline8:amd64
librtmp1:amd64
libsasl2-2:amd64
libsasl2-modules:amd64
libsasl2-modules-db:amd64
libseccomp2:amd64
libselinux1:amd64
libsemanage1:amd64
libsemanage-common
libsepol1:amd64
libsigc++-2.0-0v5:amd64
libslang2:amd64
libsmartcols1:amd64
libsqlite3-0:amd64
libss2:amd64
libssh2-1:amd64
libssl1.1:amd64
libstdc++6:amd64
libsystemd0:amd64
libtasn1-6:amd64
libtext-charwidth-perl
libtext-iconv-perl
libtext-wrapi18n-perl
libtinfo6:amd64
libtirpc3:amd64
libtirpc-common
libtirpc-dev:amd64
libtsan0:amd64
libubsan1:amd64
libuchardet0:amd64
libudev1:amd64
libunistring2:amd64
libusb-0.1-4:amd64
libuuid1:amd64
libuutil3linux
libuv1:amd64
libwrap0:amd64
libxapian30:amd64
libxml2:amd64
libxtables12:amd64
libxxhash0:amd64
libzfs4linux
libzpool4linux
libzstd1:amd64
linux-base
linux-compiler-gcc-10-x86
linux-headers-5.10.0-16-amd64
linux-headers-5.10.0-16-common
linux-headers-amd64
linux-image-5.10.0-16-amd64
linux-image-5.10.0-9-amd64
linux-image-amd64
linux-kbuild-5.10
linux-libc-dev:amd64
locales
login
logrotate
logsave
lsb-base
lsb-release
lsof
lua-lpeg:amd64
lvm2
mailcap
make
man-db
manpages
mawk
mbuffer
mdadm
media-types
mime-support
mokutil
mount
mtr-tiny
nano
ncurses-base
ncurses-bin
ncurses-term
netbase
netcat-traditional
net-tools
nftables
nmap
nmap-common
openssh-client
openssh-server
openssh-sftp-server
openssl
passwd
patch
pci.ids
pciutils
perl
perl-base
perl-modules-5.32
procps
publicsuffix
python3
python3.9
python3.9-minimal
python3-apt
python3-certifi
python3-chardet
python3-debian
python3-debianbts
python3-distutils
python3-httplib2
python3-idna
python3-lib2to3
python3-minimal
python3-pkg-resources
python3-pycurl
python3-pysimplesoap
python3-reportbug
python3-requests
python3-six
python3-urllib3
python-apt-common
readline-common
reportbug
rsync
rsyslog
runit-helper
sed
sensible-utils
shim-helpers-amd64-signed
shim-signed:amd64
shim-signed-common
shim-unsigned
sudo
systemd
systemd-sysv
systemd-timesyncd
sysvinit-utils
tar
task-english
tasksel
tasksel-data
task-ssh-server
tcpdump
traceroute
tzdata
ucf
udev
util-linux
util-linux-locales
vim-common
vim-tiny
wget
whiptail
xfsprogs
xkb-data
xxd
xz-utils
zfs-dkms
zfsutils-linux
zlib1g:amd64

Stockage ZFS

Un « pool » de sauvegarde sur les 2 gros disques mécaniques a été créé en miroir (RAID1).

Nous avons ensuite créé un « pool » avec les numéros de série des disques (qu'on trouve dans /dev/disk/by-id), avons activé la compression LZ4 et avons créé un ensemble de partages ZFS pour stocker les disques durs virtuels des VM (le partage prod-01), et sur d'autres partages les données de hébergé⋅e⋅s, etc. qu'on montera plus tard dans chaque VM en NFS :

# zpool status -v
  pool: zdatabackup
 state: ONLINE
config:
 
	NAME                                        STATE     READ WRITE CKSUM
	zdatabackup                                 ONLINE       0     0     0
	  mirror-0                                  ONLINE       0     0     0
	    ata-ST4000NM0245-1Z2107_ZC137LB6-part5  ONLINE       0     0     0
	    ata-ST4000NM0245-1Z2107_ZC139JEZ-part5  ONLINE       0     0     0
 
errors: No known data errors
# zfs list
NAME                          USED  AVAIL     REFER  MOUNTPOINT
zdatabackup                  1.66M  3.47T      144K  /zdatabackup
zdatabackup/audio_data         96K  3.47T       96K  /zdatabackup/audio_data
zdatabackup/cloud_data         96K  3.47T       96K  /zdatabackup/cloud_data
zdatabackup/cryptpad_data      96K  3.47T       96K  /zdatabackup/cryptpad_data
zdatabackup/mail_data          96K  3.47T       96K  /zdatabackup/mail_data
zdatabackup/mobilizon_data     96K  3.47T       96K  /zdatabackup/mobilizon_data
zdatabackup/mysql_data         96K  3.47T       96K  /zdatabackup/mysql_data
zdatabackup/pleroma_data       96K  3.47T       96K  /zdatabackup/pleroma_data
zdatabackup/postgresql_data    96K  3.47T       96K  /zdatabackup/postgresql_data
zdatabackup/prod-01            96K  3.47T       96K  /zdatabackup/prod-01
zdatabackup/video_data         96K  3.47T       96K  /zdatabackup/video_data

Ce serveur reçoit la réplication des snapshots ZFS du serveur hypervisor-01, cf. la page dédiée.