[archlinux] snapshot & btrfs

e_ale92

Utente Èlite
17,011
5,013
CPU
Intel® Core™ i7-920 Processor - @3.33GHz
Dissipatore
Stock Intel
Scheda Madre
Asus P6T - socket LGA 1366
HDD
Samsung 830 128GB + Samsung Spinpoint F4 320GB + Seagate Barracuda 1,5 TB
RAM
Corsair DDR3 1333MHz CL9 XMS3 DHX (3x2GB) - @1674MHz
GPU
MSI R6970 Lightning
Audio
Realtek ALC 1200
Monitor
HP 2310i
PSU
XFX Pro 750W Core Edition
Case
Cooler Master HAF 922
Periferiche
R.A.T. 5 Cyborg Mad Catz - Keycool KC84
OS
Arch Linux + Windows 10 Pro
salve ragazzi,

sono alla ricerca del "miglior" modo per eseguire/ripristinare gli snapshot eseguiti sotto btrfs.

fino ad ora ho snappato con timeshift-btrfs, ma non è ufficialmente supportato e per di più non mi ha salvato dal casino, costringendomi ad una formattazione totale :muro:

configurazione:
@
@home

vorrei:
1. snappare solo @ corrispondente a /
2. gestire il mount e l'umount della cartella (es.) /mnt/snapshot contente gli snapshot, in modo che se / venga piallata, gli snapshot restino al sicuro (timeshift-btrfs gestiva in automatico questa cosa).
3. automatizzare il più possibile il tutto. snapshot weekly, pulizia automatica degli snapshot molto vecchi e snapshot ad ogni aggiornamento del sistema (pacaur - Syu).

grazie in anticipo :)
 

Mario Liguori

Nuovo Utente
121
5
salve ragazzi,

sono alla ricerca del "miglior" modo per eseguire/ripristinare gli snapshot eseguiti sotto btrfs.

fino ad ora ho snappato con timeshift-btrfs, ma non è ufficialmente supportato e per di più non mi ha salvato dal casino, costringendomi ad una formattazione totale :muro:

configurazione:
@
@home

vorrei:
1. snappare solo @ corrispondente a /
2. gestire il mount e l'umount della cartella (es.) /mnt/snapshot contente gli snapshot, in modo che se / venga piallata, gli snapshot restino al sicuro (timeshift-btrfs gestiva in automatico questa cosa).
3. automatizzare il più possibile il tutto. snapshot weekly, pulizia automatica degli snapshot molto vecchi e snapshot ad ogni aggiornamento del sistema (pacaur - Syu).

grazie in anticipo :)
Provato snapper?

Inviato dal mio ALE-L21 utilizzando Tapatalk
 

EmanueleC

Utente Èlite
5,638
1,841
CPU
Ryzen 5 2600x
Dissipatore
stock
Scheda Madre
ROG STRIX B450-F GAMING
HDD
OS: WD BLue SN570 500GB, Dati: 1TB Toshiba p300, Game: 2TB Toshiba P300
RAM
Corsair DDR4 3000 Mhz 2x8 GB
GPU
AMD Radeon RX 6600
PSU
Seasonic Focus Gold 450W
Case
BitFenix Neos
OS
Fedora Linux
Fatti uno script dfa mettere sotto systemd-timer.

snapshot automatici, manuali e pulizia
Questo script ci permette di automatizzare, in modo semplice, la creazione di snapshot, in base al tempo.

Se invece vogliamo qualcosa da lanciare una volta ogni tanto, possiamo utilizzare qualcosa di simile:

#!/bin/bash
pool_btrfs=`mount -t btrfs | grep " / " | cut -d " " -f 1` && \
tmp=`mktemp -p /tmp -d bsnap-XXXX` && \
mount $pool_btrfs $tmp && \
btrfs subvol snapshot $tmp/@ $tmp/@bsnap_`date '+%Y-%m-%d_%H.%M'`${1} && \
umount $tmp && \
rmdir $tmp
view rawbsnap.shhosted with ❤ by GitHub
Inoltre potremmo snellire la lista dei backup automatici fatti da apt-btrfs-snapshot con uno script del genere, magari mettendolo in cron anziché usando gli hook di APT.

Fonte: http://nerdrug.org/blog/btrfs-in-debian-con-apt-btrfs-snapshot/
 

EmanueleC

Utente Èlite
5,638
1,841
CPU
Ryzen 5 2600x
Dissipatore
stock
Scheda Madre
ROG STRIX B450-F GAMING
HDD
OS: WD BLue SN570 500GB, Dati: 1TB Toshiba p300, Game: 2TB Toshiba P300
RAM
Corsair DDR4 3000 Mhz 2x8 GB
GPU
AMD Radeon RX 6600
PSU
Seasonic Focus Gold 450W
Case
BitFenix Neos
OS
Fedora Linux
Qui altri metodi, script: https://btrfs.wiki.kernel.org/index.php/UseCases#Snapshots_and_subvolumes

E questo(ovviamente lo personalizzi per il subvol che vuoi, nel tuo caso: @ o nomedelsubvol che dai a root:
ve already done something similar. I take hourly, daily, weekly, and
monthly
snapshots of my /home subvolume. Here's the script I've created for this:
Codice:
#! /bin/bash

if [ "$#" -ne 2 ]; then
   echo Usage $0 SNAPSHOT_PREFIX NUM_SNAPSHOTS
   exit 1
fi

SNAPS=/var/lib/btrfs-root/__snapshot/home

btrfs subvolume snapshot -r /home $SNAPS/$1_$(date +%F_%T.%N)

num_snaps=$(ls -1d $SNAPS/$1_* | sort | wc -l)

if [ "$num_snaps" -gt "$2" ]; then
   let over=$num_snaps-$2
   ls -1d $SNAPS/$1_* | head -n $over | while read s; do
      btrfs subvolume delete $s
   done
fi


Here's my crontab:
0 * * * * /usr/local/bin/snapshot hourly 6
0 0 * * * /usr/local/bin/snapshot daily 7
0 0 * * 0 /usr/local/bin/snapshot weekly 4
--
-=[dave]=-

Entropy isn't what it used to be.
 

e_ale92

Utente Èlite
17,011
5,013
CPU
Intel® Core™ i7-920 Processor - @3.33GHz
Dissipatore
Stock Intel
Scheda Madre
Asus P6T - socket LGA 1366
HDD
Samsung 830 128GB + Samsung Spinpoint F4 320GB + Seagate Barracuda 1,5 TB
RAM
Corsair DDR3 1333MHz CL9 XMS3 DHX (3x2GB) - @1674MHz
GPU
MSI R6970 Lightning
Audio
Realtek ALC 1200
Monitor
HP 2310i
PSU
XFX Pro 750W Core Edition
Case
Cooler Master HAF 922
Periferiche
R.A.T. 5 Cyborg Mad Catz - Keycool KC84
OS
Arch Linux + Windows 10 Pro
Provato snapper?

Inviato dal mio ALE-L21 utilizzando Tapatalk
ni... quando ho fatto i test su un disco di prova, non sono riuscito a ripristinare xD

@lele.deb (abbi pazienza) e @Mario Liguori
snapper andrebbe bene. senza ricorrere a script vari, ad automatizzare non sarebbe un problema... dovrei gestire la rimozione degli snapshot vecchi, ma non è un problema.
il problema grosso (e che ancora non mi è del tutto chiaro di btrfs) è come gestire l'umount.
non ho capito come e dove cavolo snappare e cosa smontare e montare all'occorrenza :grrrr: :muro:
 

EmanueleC

Utente Èlite
5,638
1,841
CPU
Ryzen 5 2600x
Dissipatore
stock
Scheda Madre
ROG STRIX B450-F GAMING
HDD
OS: WD BLue SN570 500GB, Dati: 1TB Toshiba p300, Game: 2TB Toshiba P300
RAM
Corsair DDR4 3000 Mhz 2x8 GB
GPU
AMD Radeon RX 6600
PSU
Seasonic Focus Gold 450W
Case
BitFenix Neos
OS
Fedora Linux
Devi montare la radice, in modo da snappare il suo subvol: radice -> subvol -> snap; ripristino: snap -> subvol: ma devi montare la radice: /dev/sda1 in modo da avere tutti i subvol, quindi poi sposti il subvol snap con il subvol attuale.
Gestione avanzata
Normalmente la root di sistema viene collocata in un subvolume (es.: @), per poter effettuare opzioni di snapshot etc e consigliabile montare il filesystem con l'opzione subvolid=0. Nella directory di mount saranno visibili tutti i subvolumi e le snapshot della partizione e sarà quindi possibile effettuare tutte le operazioni indicate nei passaggi successivi.

Ecco un /etc/fstab di esempio

LABEL=ROOT / btrfs defaults,compress=lzo,subvol=@ 0 0
LABEL=ROOT /home btrfs defaults,compress=lzo,subvol=@home 0 0
LABEL=ROOT /mnt/btrfs btrfs defaults,noauto,subvolid=0,compress=lzo 0 0
 

e_ale92

Utente Èlite
17,011
5,013
CPU
Intel® Core™ i7-920 Processor - @3.33GHz
Dissipatore
Stock Intel
Scheda Madre
Asus P6T - socket LGA 1366
HDD
Samsung 830 128GB + Samsung Spinpoint F4 320GB + Seagate Barracuda 1,5 TB
RAM
Corsair DDR3 1333MHz CL9 XMS3 DHX (3x2GB) - @1674MHz
GPU
MSI R6970 Lightning
Audio
Realtek ALC 1200
Monitor
HP 2310i
PSU
XFX Pro 750W Core Edition
Case
Cooler Master HAF 922
Periferiche
R.A.T. 5 Cyborg Mad Catz - Keycool KC84
OS
Arch Linux + Windows 10 Pro
con l'fstab di esempio, monto @e @home in /mnt/btrfs, snappo in /mnt/btrfs e quando ho finito, per mettere al sicuro gli snapshot fatti, smonto /mnt/btrfs... giusto?

perché se è così, ho capito come gestore tutto... finalmente!!! :cry:
 

EmanueleC

Utente Èlite
5,638
1,841
CPU
Ryzen 5 2600x
Dissipatore
stock
Scheda Madre
ROG STRIX B450-F GAMING
HDD
OS: WD BLue SN570 500GB, Dati: 1TB Toshiba p300, Game: 2TB Toshiba P300
RAM
Corsair DDR4 3000 Mhz 2x8 GB
GPU
AMD Radeon RX 6600
PSU
Seasonic Focus Gold 450W
Case
BitFenix Neos
OS
Fedora Linux
con l'fstab di esempio, monto @e @home in /mnt/btrfs, snappo in /mnt/btrfs e quando ho finito, per mettere al sicuro gli snapshot fatti, smonto /mnt/btrfs... giusto?

perché se è così, ho capito come gestore tutto... finalmente!!! :cry:
Con fstab non devi montare i subvol, ma la radice che contengono i subvol. Ovviamente tu avvia come sistema i subvol.
Sistema di avvio e dove tu lavori sono i subvol: @ e @home
Tu per far vedere i subvol, devi montare la radice, che è: /dev/sda1 o sda2 etc... Nell'esempio lui usa i LABEL.
 

e_ale92

Utente Èlite
17,011
5,013
CPU
Intel® Core™ i7-920 Processor - @3.33GHz
Dissipatore
Stock Intel
Scheda Madre
Asus P6T - socket LGA 1366
HDD
Samsung 830 128GB + Samsung Spinpoint F4 320GB + Seagate Barracuda 1,5 TB
RAM
Corsair DDR3 1333MHz CL9 XMS3 DHX (3x2GB) - @1674MHz
GPU
MSI R6970 Lightning
Audio
Realtek ALC 1200
Monitor
HP 2310i
PSU
XFX Pro 750W Core Edition
Case
Cooler Master HAF 922
Periferiche
R.A.T. 5 Cyborg Mad Catz - Keycool KC84
OS
Arch Linux + Windows 10 Pro
Con fstab non devi montare i subvol, ma la radice che contengono i subvol. Ovviamente tu avvia come sistema i subvol.
Sistema di avvio e dove tu lavori sono i subvol: @ e @home
Tu per far vedere i subvol, devi montare la radice, che è: /dev/sda1 o sda2 etc... Nell'esempio lui usa i LABEL.
aspetta lele, ho scritto male perché pensavo ad una cosa e ne ho scritta un'altra xD

io voglio semplicemente smontare il posto dove faccio gli snapshot, così da non brasarli in caso di fesserie.

in fase di installazione credo @ e @home e li metto in fstab.

poi dove snappo? come smonto il posto in cui ho snappato?

io avevo pensato di creare un subvol @snapshot in cui salvare gli snap di @ e @home e montare manualmente @snapshot in /mnt/snapshot SOLO all'occorrenza. ha senso questa cosa?

p. s. ti ricordo che io ho una partizione unica e un solo disco ssd m2
 

EmanueleC

Utente Èlite
5,638
1,841
CPU
Ryzen 5 2600x
Dissipatore
stock
Scheda Madre
ROG STRIX B450-F GAMING
HDD
OS: WD BLue SN570 500GB, Dati: 1TB Toshiba p300, Game: 2TB Toshiba P300
RAM
Corsair DDR4 3000 Mhz 2x8 GB
GPU
AMD Radeon RX 6600
PSU
Seasonic Focus Gold 450W
Case
BitFenix Neos
OS
Fedora Linux
Ed è quello che ha fatto nell'esempio:

Codice:
LABEL=ROOT /mnt/btrfs btrfs defaults,noauto,subvolid=0,compress=lzo 0 0
Guarda l'opzione "noauto".
Monti la radice, fai lo snap e smonti.
Codice:
I want to be able to do rollbacks with Btrfs

To roll back a subvolume to an earlier one, you simply need to replace one with the other. There are several ways of achieving this, depending on where you have the subvolumes, and how they're accessed (mounted or not mounted).
If your snapshots are kept alongside the original subvolume, say:
/media/btrfs
        |--- @home
        `--- snapshots
              `--- @home-20170105
then you can simply rename the snapshots:
# cd /media/btrfs
# mv @home @home.old
# mv snapshots/@home-20170105 @home
If you want to keep the snapshot, or it is read-only, make another read/write snapshot instead:
# cd /media/btrfs
# mv @home @home.old
# btrfs sub snap snapshots/@home-20170105 @home
After doing either of these, you will need to unmount and remount the subvol:
# umount /home
# mount /home
Obviously, if this is your root subvol (mounted at /), then you will have to reboot in order to do this last step.
 

e_ale92

Utente Èlite
17,011
5,013
CPU
Intel® Core™ i7-920 Processor - @3.33GHz
Dissipatore
Stock Intel
Scheda Madre
Asus P6T - socket LGA 1366
HDD
Samsung 830 128GB + Samsung Spinpoint F4 320GB + Seagate Barracuda 1,5 TB
RAM
Corsair DDR3 1333MHz CL9 XMS3 DHX (3x2GB) - @1674MHz
GPU
MSI R6970 Lightning
Audio
Realtek ALC 1200
Monitor
HP 2310i
PSU
XFX Pro 750W Core Edition
Case
Cooler Master HAF 922
Periferiche
R.A.T. 5 Cyborg Mad Catz - Keycool KC84
OS
Arch Linux + Windows 10 Pro
salve ragazzi :)

ho installato arch da zero, ma sono fermo al sistema di snapshot.

il mio fstab è questo. l'idea era quella di montare @snapshot in /mnt/snapshot e snappare lì tutto, poi smontare /mnt/snapshot e fine.

#
# /etc/fstab: static file system information
#
# <file system> <dir> <type> <options> <dump> <pass>
#
#
# UUID=038bc12a-a751-4264-8861-20cbe428e5ca LABEL=archlinux
/dev/sda2 / btrfs rw,relatime,compress=lzo,ssd,space_cache,subvolid=257,subvol=/@,subvol=@ 0 0


# UUID=038bc12a-a751-4264-8861-20cbe428e5ca LABEL=archlinux
/dev/sda2 /home btrfs rw,relatime,compress=lzo,ssd,space_cache,subvolid=258,subvol=/@home,subvol=@home 0 0


# UUID=038bc12a-a751-4264-8861-20cbe428e5ca LABEL=archlinux
/dev/sda2 /snapshot btrfs rw,relatime,noauto,compress=lzo,ssd,space_cache,subvolid=259,subvol=/@snapshot,subvol=@snapshot 0 0


# UUID=BF0E-A07C
/dev/sda1 /boot vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro 0 2

i dubbi però sono nati all'atto pratico.

1. come monto @snapshot in /mnt/snapshot?
2. come gli dico di snappare in /mnt/snapshot? per me non è un problema snappare con l'utility di btrfs (btrfs-prog)
3. ha senso aver creato @snapshot? io credevo di sì, ma ora non ne sono più sicuro. potrei banalmente montare /dev/sda2 in /mnt/snapshot e snappare lì @ e @home... senza creare @snapshot. oppure poi ci sono problemi in caso di ignorante rm -r / ? u.u
4. riservato xD
 

davethecipo

Utente Èlite
3,331
1,163
CPU
i5 4660
Scheda Madre
H97 PC Mate
HDD
qualcuno
RAM
8 GB
GPU
R9 280
Monitor
Samsung SyncMaster 940BW 19'
PSU
Enermax Liberty 620W
Case
Enermax Pandora Midi Tower Black
OS
Arch Linux con KDE...Windows 10
mi sa che fai prima a smanettare su un PC di test per risolvere i tuoi dubbi
 
  • Mi piace
Reazioni: e_ale92

e_ale92

Utente Èlite
17,011
5,013
CPU
Intel® Core™ i7-920 Processor - @3.33GHz
Dissipatore
Stock Intel
Scheda Madre
Asus P6T - socket LGA 1366
HDD
Samsung 830 128GB + Samsung Spinpoint F4 320GB + Seagate Barracuda 1,5 TB
RAM
Corsair DDR3 1333MHz CL9 XMS3 DHX (3x2GB) - @1674MHz
GPU
MSI R6970 Lightning
Audio
Realtek ALC 1200
Monitor
HP 2310i
PSU
XFX Pro 750W Core Edition
Case
Cooler Master HAF 922
Periferiche
R.A.T. 5 Cyborg Mad Catz - Keycool KC84
OS
Arch Linux + Windows 10 Pro
mi sa che fai prima a smanettare su un PC di test per risolvere i tuoi dubbi
è che non ho il tempo :(

cmq buh, vedrò di trovarlo, magari facendo qualche nottata in più xD
 

EmanueleC

Utente Èlite
5,638
1,841
CPU
Ryzen 5 2600x
Dissipatore
stock
Scheda Madre
ROG STRIX B450-F GAMING
HDD
OS: WD BLue SN570 500GB, Dati: 1TB Toshiba p300, Game: 2TB Toshiba P300
RAM
Corsair DDR4 3000 Mhz 2x8 GB
GPU
AMD Radeon RX 6600
PSU
Seasonic Focus Gold 450W
Case
BitFenix Neos
OS
Fedora Linux
salve ragazzi :)

ho installato arch da zero, ma sono fermo al sistema di snapshot.

il mio fstab è questo. l'idea era quella di montare @snapshot in /mnt/snapshot e snappare lì tutto, poi smontare /mnt/snapshot e fine.



i dubbi però sono nati all'atto pratico.

1. come monto @snapshot in /mnt/snapshot?
2. come gli dico di snappare in /mnt/snapshot? per me non è un problema snappare con l'utility di btrfs (btrfs-prog)
3. ha senso aver creato @snapshot? io credevo di sì, ma ora non ne sono più sicuro. potrei banalmente montare /dev/sda2 in /mnt/snapshot e snappare lì @ e @home... senza creare @snapshot. oppure poi ci sono problemi in caso di ignorante rm -r / ? u.u
4. riservato xD
l'opzione "ssd,space_cache" sono inutili, perché si abilitano in automatico, il primo al rilevamento dell'ssd, il secondo è un opzione di default.
Ma perché creare un subvol per gli snapshot? Non è più semplice montare la radice su /mnt/snapbtrfs e snappare @home o @ e poi smontare?
 

e_ale92

Utente Èlite
17,011
5,013
CPU
Intel® Core™ i7-920 Processor - @3.33GHz
Dissipatore
Stock Intel
Scheda Madre
Asus P6T - socket LGA 1366
HDD
Samsung 830 128GB + Samsung Spinpoint F4 320GB + Seagate Barracuda 1,5 TB
RAM
Corsair DDR3 1333MHz CL9 XMS3 DHX (3x2GB) - @1674MHz
GPU
MSI R6970 Lightning
Audio
Realtek ALC 1200
Monitor
HP 2310i
PSU
XFX Pro 750W Core Edition
Case
Cooler Master HAF 922
Periferiche
R.A.T. 5 Cyborg Mad Catz - Keycool KC84
OS
Arch Linux + Windows 10 Pro
l'opzione "ssd,space_cache" sono inutili, perché si abilitano in automatico, il primo al rilevamento dell'ssd, il secondo è un opzione di default.
Ma perché creare un subvol per gli snapshot? Non è più semplice montare la radice su /mnt/snapbtrfs e snappare @home o @ e poi smontare?
quell'fstab è quello generato di default da arch :)

beh sì... è la stessa cosa che ho pensato io. a questo punto lo rimuovo e via :patpat:

per le altre domande?
 

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!