Discussione:
Il contrario di losetup
(troppo vecchio per rispondere)
s***@gmail.com
2020-10-10 07:58:50 UTC
Permalink
Ciao,

il comando losetup permette di far vedere al sistema un file come se fosse un device, ad esempio per montare una iso di un cd.

Io ho bisogno di fare esattamente il contrario, cioè far vedere al sistema un device come se fosse un semplice file.

Voi mi direte "accidenti ma è già così !!! Qualsiasi device in Linux è visto
come un file !!"

Questo è vero ma non sempre, ad esempio i comandi tar e cpio si accorgono che
un device non è un semplice file e non salvano il contenuto del device ma semplicemente ciò che occorre per ricrearlo in caso di restore.

A me servirebbe invece, durante un tar, poter salvare il contenuto di un device
(è un volume LVM).

No, non posso usare dd o simili, ho bisogno di salvarlo con il tar.

Qualche idea ?
Giovanni
2020-10-10 08:16:24 UTC
Permalink
Post by s***@gmail.com
A me servirebbe invece, durante un tar, poter salvare il contenuto di un device
(è un volume LVM).
No, non posso usare dd o simili, ho bisogno di salvarlo con il tar.
Qualche idea ?
Devi montarlo.

Ciao
Giovanni
--
A computer is like an air conditioner,
it stops working when you open Windows.
< http://giovanni.homelinux.net/ >
s***@gmail.com
2020-10-10 08:53:19 UTC
Permalink
Post by Giovanni
Devi montarlo.
Non posso, non lo gestisco io, sopra ci hanno creato dei volumi con LVM e vari filesystem
giulia
2020-10-10 14:24:56 UTC
Permalink
Post by s***@gmail.com
A me servirebbe invece, durante un tar, poter salvare il contenuto di un device
(è un volume LVM).
No, non posso usare dd o simili, ho bisogno di salvarlo con il tar.
Ok , ma puoi stampare sto device sullo stdin e darlo in pasto al tar ?

o non puoi creare nemmeno una pipe di comandi ?

Giulia
s***@gmail.com
2020-10-12 06:47:01 UTC
Permalink
Post by giulia
Ok , ma puoi stampare sto device sullo stdin e darlo in pasto al tar ?
o non puoi creare nemmeno una pipe di comandi ?
Mi pare di no, tu come faresti ?
Tieni presente che insieme a quello, il tar dovrebbe salvare altre cose.

Stefano
Piergiorgio Sartor
2020-10-10 14:47:41 UTC
Permalink
Post by s***@gmail.com
Ciao,
il comando losetup permette di far vedere al sistema un file come se fosse un device, ad esempio per montare una iso di un cd.
Io ho bisogno di fare esattamente il contrario, cioè far vedere al sistema un device come se fosse un semplice file.
Voi mi direte "accidenti ma è già così !!! Qualsiasi device in Linux è visto
come un file !!"
Questo è vero ma non sempre, ad esempio i comandi tar e cpio si accorgono che
un device non è un semplice file e non salvano il contenuto del device ma semplicemente ciò che occorre per ricrearlo in caso di restore.
Forse dovresti chiederti il perche`
fanno questo...
Post by s***@gmail.com
A me servirebbe invece, durante un tar, poter salvare il contenuto di un device
(è un volume LVM).
No, non posso usare dd o simili, ho bisogno di salvarlo con il tar.
Qualche idea ?
Si, stai sbagliando qualcosa... :-)

bye,
--
piergiorgio
s***@gmail.com
2020-10-12 07:02:06 UTC
Permalink
Post by Piergiorgio Sartor
Forse dovresti chiederti il perche`
fanno questo...
Ok, ci ho pensato, non mi viene in mente nulla di bloccante.
Post by Piergiorgio Sartor
Si, stai sbagliando qualcosa... :-)
Può darsi.
So che in un mondo perfetto non dovrei trovarmi con questa necessità,
e so anche come potrei evitarla, ma le soluzioni implicano ad esempio,
reinstallazioni o altri lunghi passaggi che per vari motivi preferirei
evitare.

Quello che cerco sarebbe per me la soluzione più semplice anche se,
mi rendo conto, non troppo elegante tecnicamente.

Stefano
s***@gmail.com
2020-10-12 08:18:09 UTC
Permalink
Post by s***@gmail.com
Post by Piergiorgio Sartor
Forse dovresti chiederti il perche`
fanno questo...
Ok, ci ho pensato, non mi viene in mente nulla di bloccante.
Intendo dire che so perché il tar si comporta come si comporta,
ma che non vedo nessun impedimento a cercare, in casi particolari,
di comportarsi diversamente.

Stefano
Piergiorgio Sartor
2020-10-12 15:59:29 UTC
Permalink
Post by s***@gmail.com
Post by Piergiorgio Sartor
Forse dovresti chiederti il perche`
fanno questo...
Ok, ci ho pensato, non mi viene in mente nulla di bloccante.
Forse la dimensione.
Un device, tipo HDD o LVM, puo` essere diversi
TB, c'e` il rischio non vi sia spazio dove
salvare tutto.

Forse il fatto che il file destinazione potrebbe
essere sul device stesso che si sta copiando.

Potrei immaginare diverse ragioni per cui sia
una cattiva idea fare un tar di un device.
Post by s***@gmail.com
Post by Piergiorgio Sartor
Si, stai sbagliando qualcosa... :-)
Può darsi.
So che in un mondo perfetto non dovrei trovarmi con questa necessità,
e so anche come potrei evitarla, ma le soluzioni implicano ad esempio,
reinstallazioni o altri lunghi passaggi che per vari motivi preferirei
evitare.
Quello che cerco sarebbe per me la soluzione più semplice anche se,
mi rendo conto, non troppo elegante tecnicamente.
Cosa cerchi di fare?
E` un backup?
Perche` non puoi usare "dd" prima?
Perche` *devi* usare tar?

Tra l'altro, se e` un backup, forse servirebbe
fare uno snapshot prima...

bye,
--
piergiorgio
giulia
2020-10-12 17:33:29 UTC
Permalink
Post by Piergiorgio Sartor
Cosa cerchi di fare?
E` un backup?
Perche` non puoi usare "dd" prima?
Perche` *devi* usare tar?
Il 90% delle domande su usenet sono mezze soluzioni (che non funzionano) senza spiegare il problema,
e' un classico.

Giulia
Piergiorgio Sartor
2020-10-12 20:34:53 UTC
Permalink
On 12/10/2020 19.33, giulia wrote:
[...]
Il 90% delle domande su usenet  sono mezze soluzioni (che non
funzionano) senza spiegare il problema,
e' un classico.
Ma veramente! :-)

bye,
--
piergiorgio
s***@gmail.com
2020-10-13 07:16:15 UTC
Permalink
Post by giulia
Il 90% delle domande su usenet sono mezze soluzioni (che non funzionano) senza spiegare il problema,
e' un classico.
Hai ragione.

Purtroppo questo porta spesso la gente a pensare soltanto che chi ha posto la
domanda non sappia cosa sta dicendo invece di considerare il fatto che forse
ha le sue ragioni, per bizzarre che possano essere.

Stefano
s***@gmail.com
2020-10-13 06:48:17 UTC
Permalink
Post by Piergiorgio Sartor
Potrei immaginare diverse ragioni per cui sia
una cattiva idea fare un tar di un device.
Non vuol dire nulla, anche fare "rm -fr /" è una pessima idea
ma nulla lo vieta.
Post by Piergiorgio Sartor
Cosa cerchi di fare?
E` un backup?

Post by Piergiorgio Sartor
Perche` non puoi usare "dd" prima?
Perché dovrei fare il dd dei 30 gb del volume da qualche parte
cosa che allungherebbe i tempi del backup
Post by Piergiorgio Sartor
Perche` *devi* usare tar?
Perché devo salvare quel volume insieme a molte altre cose
che sono salvate dal tar su nastro.
Post by Piergiorgio Sartor
Tra l'altro, se e` un backup, forse servirebbe
fare uno snapshot prima...
Lo faccio.

Stefano
Marco
2020-10-11 13:02:32 UTC
Permalink
Post by s***@gmail.com
A me servirebbe invece, durante un tar, poter salvare il contenuto di un
device (è un volume LVM).
No, non posso usare dd o simili, ho bisogno di salvarlo con il tar.
Anche io ho bisogno di 100 milioni in banca, però non posto qui.
--
Cio' che si vede, e'.
s***@gmail.com
2020-10-12 07:12:18 UTC
Permalink
Post by Marco
Anche io ho bisogno di 100 milioni in banca, però non posto qui.
A me basterebbe mooolto meno, ma nemmeno io lo posto qui perché sarebbe OT.

Posto qui in cerca di idee, consigli o soluzioni, per problemi relativi al
sistema operativo Linux.

Se le trovo bene, altrimenti mi arrangio senza fare battute.

Stefano
Marco
2020-10-12 09:27:55 UTC
Permalink
Post by s***@gmail.com
Posto qui in cerca di idee, consigli o soluzioni, per problemi relativi
al sistema operativo Linux.
Se le trovo bene, altrimenti mi arrangio senza fare battute.
Guarda, risposta seria: anche se tar facesse quello che vuoi tu, sarebbe un
"backup" (non bisognerebbe nemmeno chiamarlo così) inconsistente, sia a
livello di filesystem che di applicazione. Anche se potessi fare uno
snapshot dei volumi LVM che ci sono sopra non avresti risolto nulla, in
quanto avresti un filesystem in uno stato corrispondente a uno a cui hanno
tolto la corrente brutalmente. E fin qui, ancora con un po' di fortuna
quado monti lo snapshot il fs potrebbe autoripararsi (stiamo sempre
parlando del caso in cui tu possa fare uno snapshot, cosa che se capisco
bene non puoi fare).
Ma anche così, basta che quel filesystem fosse in uso da qualche database o
app che scrive spesso ed avresti un'altra inconsistenza.

Quindi dovresti:

- fermare app/db (o almeno metterla in uno stato in cui fa il flush di
tutto a disco e non scrive niente di nuovo)
- fare snapshot LVM
- sbloccare app/db
- fare backup dello snapshot
- cancellare snapshot

Se non puoi fare tutto questo, avrai una copia che ti darà problemi.
--
Cio' che si vede, e'.
s***@gmail.com
2020-10-12 10:08:56 UTC
Permalink
Post by Marco
- fermare app/db (o almeno metterla in uno stato in cui fa il flush di
tutto a disco e non scrive niente di nuovo)
- fare snapshot LVM
- sbloccare app/db
- fare backup dello snapshot
- cancellare snapshot
Se non puoi fare tutto questo, avrai una copia che ti darà problemi.
Posso farlo, e già lo faccio.

Stefano
Marco
2020-10-12 10:09:38 UTC
Permalink
Post by s***@gmail.com
Post by Marco
- fermare app/db (o almeno metterla in uno stato in cui fa il flush di
tutto a disco e non scrive niente di nuovo)
- fare snapshot LVM
- sbloccare app/db
- fare backup dello snapshot
- cancellare snapshot
Se non puoi fare tutto questo, avrai una copia che ti darà problemi.
Posso farlo, e già lo faccio.
E allora qual è il problema?
--
Cio' che si vede, e'.
s***@gmail.com
2020-10-12 14:57:04 UTC
Permalink
Post by Marco
E allora qual è il problema?
Fare il backup dello snapshot tramite tar.

In pratica ho varie macchine virtuali (gestite da varie persone).

Su tutte, tranne una, ho un certo controllo.

Su una di queste no, l'unica cosa che posso fare è uno shutdown, snapshot, reboot.

Poi devo salvare su nastro lo snapshot del volume LVM.

Tutti i volumi virtuali delle varie macchine sono creati con LVM dall'host di virtualizzazione.

Tutte le altre macchine hanno formattato semplicemente i loro volumi in ext4 e quindi posso montare gli snapshot dal virtualizzatore e salvare con il tar.

Ma quella no, chi la gestisce ha gestito il volume virtuale a sua disposizione come ho detto.

So che se il volume della macchina virtuale non fosse stato creato come volume LVM dal virtualizzatore ma ad esempio come file raw o qcow non avrei il problema, ma ormai è stato fatto così e non mi è facile cambiare.

Stefano
Piergiorgio Sartor
2020-10-12 16:03:09 UTC
Permalink
Post by s***@gmail.com
Post by Marco
E allora qual è il problema?
Fare il backup dello snapshot tramite tar.
In pratica ho varie macchine virtuali (gestite da varie persone).
Su tutte, tranne una, ho un certo controllo.
Su una di queste no, l'unica cosa che posso fare è uno shutdown, snapshot, reboot.
Ma quindi su questa non puoi fare tutto
quello che Marco diceva, cioe` i vari
shutdown dei programmi.
Post by s***@gmail.com
Poi devo salvare su nastro lo snapshot del volume LVM.
Tutti i volumi virtuali delle varie macchine sono creati con LVM dall'host di virtualizzazione.
Tutte le altre macchine hanno formattato semplicemente i loro volumi in ext4 e quindi posso montare gli snapshot dal virtualizzatore e salvare con il tar.
Ma quella no, chi la gestisce ha gestito il volume virtuale a sua disposizione come ho detto.
Qui non capisco questa cosa...
Post by s***@gmail.com
So che se il volume della macchina virtuale non fosse stato creato come volume LVM dal virtualizzatore ma ad esempio come file raw o qcow non avrei il problema, ma ormai è stato fatto così e non mi è facile cambiare.
Avresti lo stesso problema.

bye,
--
piergiorgio
s***@gmail.com
2020-10-13 06:58:37 UTC
Permalink
Post by Piergiorgio Sartor
Post by s***@gmail.com
Su una di queste no, l'unica cosa che posso fare è uno shutdown, snapshot, reboot.
Ma quindi su questa non puoi fare tutto
quello che Marco diceva, cioe` i vari
shutdown dei programmi.
Posso fare lo shutdown della macchina virtuale.
Post by Piergiorgio Sartor
Post by s***@gmail.com
Ma quella no, chi la gestisce ha gestito il volume virtuale a sua disposizione come ho detto.
Qui non capisco questa cosa...
Sul virtualizzatore è stato creato un volume LVM che è stato assegnato
come secondo disco alla macchina viruale.
Chi gestisce la macchina virtuale ha creato su quel disco, sempre con
LVM vari volumi e su questi dei filesystem.

Il backup lo fa il virtualizzatore, che fa lo shutdown della macchina virtuale,
lo snapshot del volume e il boot della macchina virtuale.
A questo punto per il virtualizzatore andare a leggere quei filesystem è un casino.
Post by Piergiorgio Sartor
Post by s***@gmail.com
So che se il volume della macchina virtuale non fosse stato creato come volume LVM dal virtualizzatore ma ad esempio come file raw o qcow non avrei il problema, ma ormai è stato fatto così e non mi è facile cambiare.
Avresti lo stesso problema.
No, perchè per il virtualizzatore il volume sarebbe un semplice file.

Stefano
Marco
2020-10-13 16:50:27 UTC
Permalink
Post by s***@gmail.com
No, perchè per il virtualizzatore il volume sarebbe un semplice file.
Cos'è "il virtualizzatore"? Possiamo fare nomi?
--
Cio' che si vede, e'.
s***@gmail.com
2020-10-14 06:27:53 UTC
Permalink
Post by Marco
Cos'è "il virtualizzatore"? Possiamo fare nomi?
qemu-kvm

Stefano
Marco
2020-10-14 20:57:12 UTC
Permalink
Post by s***@gmail.com
Post by Marco
Cos'è "il virtualizzatore"? Possiamo fare nomi?
qemu-kvm
E come fa a fare backup? Hai detto che "il backup lo fa il virtualizzatore".
--
Cio' che si vede, e'.
s***@gmail.com
2020-10-15 06:28:55 UTC
Permalink
Post by Marco
E come fa a fare backup? Hai detto che "il backup lo fa il virtualizzatore".
"virtualizzatore" nel senso del computer host.

Uno shell bash nel crontab spegne le macchine virtuali, fa gli snapshot dei volumi, riaccende le macchine virtuali, monta gli snapshot dei volumi e fa il tar, infine cancella gli snapshot.

Stefano
Marco
2020-10-15 10:44:59 UTC
Permalink
Post by s***@gmail.com
Post by Marco
E come fa a fare backup? Hai detto che "il backup lo fa il
virtualizzatore".
"virtualizzatore" nel senso del computer host.
Uno shell bash nel crontab spegne le macchine virtuali, fa gli snapshot
dei volumi, riaccende le macchine virtuali, monta gli snapshot dei volumi
e fa il tar, infine cancella gli snapshot.
Scusa, allora sarò duro ma non capisco cos'è esattamente che ti impedisce
di includere anche la macchina incriminata nel processo. Il fatto che il
volume sia partizionato? Con kpartx puoi trovare tutte le partizioni
dell'immagine ed usarle e montarle come qualunque altro device (ovviamente
se sono a loro volta volumi LVM devi stare attento a non fare casino coi
nomi).

Esempio (qui VG0-LV0 ha due partizioni con fs ext4):

# lvcreate --snapshot --size 1GB --name mysnapshot /dev/mapper/VG0-LV0
Logical volume "mysnapshot" created.
# kpartx -l /dev/VG0/mysnapshot
VG0-mysnapshot1 : 0 1024000 /dev/VG0/mysnapshot 2048
VG0-mysnapshot2 : 0 1062912 /dev/VG0/mysnapshot 1026048
# kpartx -a /dev/VG0/mysnapshot
# mount /dev/mapper/VG0-mysnapshot1 /mnt/vol1
# mount /dev/mapper/VG0-mysnapshot2 /mnt/vol2

# faccio backup...

# umount /mnt/vol1 /mnt/vol2
# kpartx -d /dev/VG0/mysnapshot
# lvremove /dev/VG0/mysnapshot
Do you really want to remove and DISCARD active logical volume VG0/mysnapshot? [y/n]: y
Logical volume "mysnapshot" successfully removed


Un'altra opzione per accedere al disco della VM è libguestfs.
--
Ciò che si vede, è.
Marco
2020-10-15 11:29:57 UTC
Permalink
Esempio se dentro al volume ci sono PV di LVM (non sono sicuro che servano
tutti e tre i comandi pvscan, vgscan e lvscan, ma farli tutti non fa male):

# lvcreate --snapshot --size 1GB --name mysnapshot /dev/mapper/VG0-LV0
Logical volume "mysnapshot" created.
# kpartx -a /dev/mapper/VG0-mysnapshot
# pvscan
PV /dev/mapper/VG0-mysnapshot1 VG GUESTVG lvm2 [484.00 MiB / 0 free]
PV /dev/mapper/VG0-mysnapshot2 VG GUESTVG lvm2 [532.00 MiB / 0 free]
...
# vgscan
Reading all physical volumes. This may take a while...
Found volume group "GUESTVG" using metadata type lvm2
...
# lvscan
ACTIVE '/dev/GUESTVG/GUESTLV' [1016.00 MiB] inherit
...
# mount /dev/GUESTVG/GUESTLV /mnt/vol1

# faccio backup...

# umount /mnt/vol1
# lvremove /dev/GUESTVG/GUESTLV
Do you really want to remove active logical volume GUESTVG/GUESTLV? [y/n]: y
Logical volume "GUESTLV" successfully removed
# vgremove GUESTVG
Volume group "GUESTVG" successfully removed
# pvremove /dev/mapper/VG0-mysnapshot1
Labels on physical volume "/dev/mapper/VG0-mysnapshot1" successfully wiped.
# pvremove /dev/mapper/VG0-mysnapshot2
Labels on physical volume "/dev/mapper/VG0-mysnapshot2" successfully wiped.
# kpartx -d /dev/mapper/VG0-mysnapshot
# lvremove /dev/mapper/VG0-mysnapshot
Do you really want to remove active logical volume VG0/mysnapshot? [y/n]: y
Logical volume "mysnapshot" successfully removed
--
Ciò che si vede, è.
s***@gmail.com
2020-10-15 16:10:54 UTC
Permalink
Ecco !

Queste sono le idee di cui andavo in cerca!

Ai vari kpartx ..scan eccetera non avevo pensato anche
perché non mi era mai capitato di usarli.

Dovrei riuscire a cavarmela.

GRAZIE.

P.S. Giulia, avevi ragione, mi cospargo il capo di cenere,

Stefano
Piergiorgio Sartor
2020-10-12 19:17:29 UTC
Permalink
Post by s***@gmail.com
Post by Marco
E allora qual è il problema?
Fare il backup dello snapshot tramite tar.
Sei puoi fare lo snapshot, allora
puoi anche montarlo da qualche
parte e fare il backup dei file.

Oppure non e` _permesso_ montarlo?
Cioe` e` vietato vedere cosa vi
sia dentro? E` crittografato?

bye,
--
piergiorgio
giulia
2020-10-12 18:06:19 UTC
Permalink
Post by Marco
Ma anche così, basta che quel filesystem fosse in uso da qualche database o
app che scrive spesso ed avresti un'altra inconsistenza.
Dai questa no, sono 20 anni ormai che i motori DBMS piu scarsi fanno operazioni atomiche sui FS , solo
i pst(leggi access) fa questi numeri, ovvio che anche l'applicazione deve usare transazioni e quant altro ed essere scritta come dio
comanda, ma i motori DBMS non ti daranno mai un inconsistenza se non la programmi tu.

Giulia
Marco
2020-10-13 11:38:45 UTC
Permalink
Post by giulia
Post by Marco
Ma anche così, basta che quel filesystem fosse in uso da qualche
database o app che scrive spesso ed avresti un'altra inconsistenza.
Dai questa no, sono 20 anni ormai che i motori DBMS piu scarsi fanno
operazioni atomiche sui FS , solo i pst(leggi access) fa questi numeri,
ovvio che anche l'applicazione deve usare transazioni e quant altro ed
essere scritta come dio comanda, ma i motori DBMS non ti daranno mai un
inconsistenza se non la programmi tu.
Non mi riferisco a quello. COn MySQL, per esempio, se hai delle tabelle
MyISAM e fai uno snapshot brutale senza prima fare "flush tables with read
lock", è molto probabile che si perdano dati. Con InnoDB, se al momento
dello snapshot hai molte dirty pages, ti becchi un crash recorvery quando
cerchi di usare quelle tabelle, e probabilmente avrai problemi con il
binlog se fai replicazione. Questo almeno da quello che mi ricordo, adesso
per fortuna non ci lavoro più; se è migliorato, meglio così.

Poi ovviamente ci sono i casi in cui il db usa partizioni senza fs, come mi
pare facesse o potesse fare oracle, anche lì non mi stupirei se uno
snapshot brutale desse problemi (mai provato comuque).
--
Cio' che si vede, e'.
Enrico Bianchi
2020-10-12 09:20:46 UTC
Permalink
Post by s***@gmail.com
No, non posso usare dd o simili, ho bisogno di salvarlo con il tar.
Domanda sciocca: perché non puoi usare dd?

Comunque, dump potrebbe essere quello che cerchi

Enrico
s***@gmail.com
2020-10-12 10:02:42 UTC
Permalink
Post by Enrico Bianchi
Domanda sciocca: perché non puoi usare dd?
Perché devo salvare quello, in aggiunta ad un sacco di altra roba, che sto
già salvando su nastro con un tar.

Stefano
Enrico Bianchi
2020-10-13 14:50:55 UTC
Permalink
Post by s***@gmail.com
Perché devo salvare quello, in aggiunta ad un sacco di altra roba, che sto
già salvando su nastro con un tar.
E allora sei fregato, tar non permette di prendere in standard input un file e
buttarlo in un archivio. Usa dump o, ancora meglio, qualche sistema di backup
più avanzato

Enrico
s***@gmail.com
2020-10-13 15:32:41 UTC
Permalink
Post by Enrico Bianchi
E allora sei fregato
Ne ero quasi certo, ma ho provato a chiedere, non si sa mai.....
Post by Enrico Bianchi
tar non permette di prendere in standard input un file e
buttarlo in un archivio.
Questo lo so, appunto cercavo il contrario di losetup.
Post by Enrico Bianchi
Usa dump o, ancora meglio, qualche sistema di backup
più avanzato
Implica troppi cambiamenti, ci penserò se non trovo altre soluzioni.

Stefano
Leonardo Serni
2020-10-15 20:49:13 UTC
Permalink
Post by s***@gmail.com
il comando losetup permette di far vedere al sistema un file come se fosse un device, ad esempio per montare una iso di un cd.
Io ho bisogno di fare esattamente il contrario
Vedo che hai gia' risolto nel modo corretto.

Comunque, per farlo nel modo non corretto, "il contrario di losetup" è
squashfs.

https://github.com/plougher/squashfs-tools/blob/master/RELEASE-READMEs/pseudo-file.example

Leonardo
--
"You all presumably know why" :-) :-(
Continua a leggere su narkive:
Loading...