GNU/Linux >> Linux Esercitazione >  >> Linux

LVM e clonazione di HD

Sono d'accordo con una delle risposte precedenti:l'esecuzione di dd sull'intero disco non è un'ottima soluzione qui. Se il motivo per cui sei bloccato su dd ha a che fare con il backup di un altro sistema operativo, allora puoi usare dd solo per quelle altre partizioni del sistema operativo e rsync per le partizioni linux.

Parte del problema è che se si esegue dd dell'intero disco mentre i filesystem sono attivi e montati da esso, non c'è modo di garantire che il backup sia coerente. Potrebbe funzionare 9 volte su 10, ma con qualsiasi carico il backup risultante potrebbe essere danneggiato. L'unico modo per garantire che ciò non accada è smontare tutti i filesystem e disattivare tutti i gruppi di volumi per l'intero periodo di esecuzione di dd. Non molto comodo se il tuo / è montato da LVM.

In ogni caso, se insisti a seguire questo approccio, lo strumento che stai cercando per rinominare un vg duplicato si chiama "vgimportclone". È pensato per l'uso con snapshot a livello di dispositivo, ma funzionerà anche con dd.


Chiudo questo numero, dopo un anno. Ho scritto la risposta nel mio sito web personale. Spero sia utile a qualcun altro.

Uso diversi livelli di backup, da rsync su un disco esterno a rsync+ZFS su un computer remoto. Uno dei backup che eseguo è, di tanto in tanto, un "dd" dal disco rigido del mio laptop a una USB esterna collegata (connessa solo per la durata della procedura di backup). Lo faccio, ad esempio, prima di portare il mio laptop in viaggio.

Questa procedura ha funzionato bene per anni. Finché non ho iniziato a utilizzare LVM sul mio portatile.

Se usi LVM sul tuo computer, copi il tuo hard disk usando dd (avvio da un LiveCD) e colleghi l'hard disk esterno mentre il computer sta funzionando normalmente, in seguito, CORROMPERAI I TUOI DATI, PERDENDO ANCHE TUTTO IL TUO FILESYSTEM OLTRE QUALSIASI RIPARAZIONE!!!.

Perché?. Perché quando colleghi il disco rigido esterno, il sistema operativo vedrà la stessa configurazione LVM in entrambi i dischi e presumerà ingenuamente che entrambi i dischi siano gli stessi, accessibili tramite un collegamento multipath, quindi diffonderà letture e scritture tra entrambi i dischi, corrompendo irrimediabilmente ENTRAMBI. Spazzerai via sia i tuoi dati in tempo reale che il tuo backup!.

Mi è successo una volta. Ho perso i dati. Avevo altri backup, per alcuni giorni prima, quindi non ho perso nulla di molto importante, ma è stato piuttosto fastidioso e ha rivelato un difetto nella mia strategia di backup.

Soluzione:accertarsi che la configurazione LVM nel disco di backup sia diversa. Il problema è... Come si fa?

Ho pubblicato la domanda su superuser.com (Stack Exchange) ma non ho ricevuto alcuna buona risposta. Quindi ho sviluppato la mia procedura e, dopo più di un anno di test di battaglia, la pubblico qui e chiudo la domanda originale:

  • Assicurati che se qualcosa va storto, il tuo computer non si avvierà automaticamente. Nel mio caso, il mio laptop non si avvia automaticamente se l'alimentazione si spegne e si riaccende. Inoltre, il disco rigido è crittografato, quindi richiederà una password.

    Ciò è necessario perché puoi danneggiare ENTRAMBI i dischi se riavvii con il disco di backup collegato prima di completare la procedura.

  • Avvia da un Live CD. Non puoi fare un "dd" da una partizione live, se prevedi di poter recuperare i tuoi dati :-).

    Qualcosa da provare in futuro sarebbe utilizzare gli snapshot LVM per poter eseguire il backup mentre sto utilizzando il computer, ma poi ho il problema LVM duplicato, che sto cercando di evitare qui. Un'altra opzione potrebbe essere quella di riconfigurare LVM per eseguire il mirroring dei dati in tempo reale sul disco rigido esterno e interrompere il mirroring al termine della sincronizzazione. Ma sembra rischioso e non farebbe il backup della mia partizione Windows o dei dati che non conservo nei volumi LVM.

  • Dopo aver avviato il LiveCD, collega il disco rigido USB esterno.

  • Accedi come "root" ed esegui vgchange -a n . Questo comando disabiliterà LVM in entrambi i dischi. Eseguo il comando un paio di volte, per sicurezza.

  • Assicurati di /dev/sda è la sorgente (disco rigido interno) e /dev/sdb è la destinazione (disco rigido esterno USB). Ad esempio, digita dd if=/dev/sdb of=/dev/null e controlla quale LED del disco rigido lampeggia.

  • Quando sei sicuro di quale disco è quale, esegui la copia con dd if=/dev/sda of=/dev/sdb bs=65536 . Con la mia configurazione, il backup richiede quattro ore. Il mio disco rigido interno è da 500 GB e la mia USB sta copiando a 35 MB/s. Lo faccio di notte, mentre dormo.

    Il tuo disco rigido USB esterno deve essere, ALMENO, grande quanto il tuo disco rigido interno. È ovvio, vero?

  • Al termine di questa copia, hai un clone esatto del tuo disco rigido interno. Il backup è terminato. Ma ora avrai un problema se colleghi questo disco rigido al tuo computer mentre stai lavorando con il tuo disco rigido interno, come già descritto. Dobbiamo cambiare la configurazione di LVM.

  • Ora, dopo che il "dd" è stato eseguito, esegui "sync" e scollega il disco rigido UDB esterno.

  • Esegui pvchange --uuid /dev/sda* . Questo comando cambierà l'UUID di tutti i volumi fisici nel tuo disco rigido interno. Questo comando è sicuro anche se hai partizioni che non sono volumi fisici per LVM, perché verranno saltate automaticamente e in modo sicuro.

    Il sistema sa quali partizioni sono volumi fisici a causa del tipo di partizione e perché hai eseguito "pvcreate" quando hai creato LVM.

  • Esegui vgchange -u LVM . Questo comando cambierà l'UUID del gruppo di volumi LVM. A proposito, il mio gruppo di volumi si chiama "LVM".

  • Esegui vgscan . Questo comando eseguirà la scansione del disco rigido interno (l'unico attualmente collegato) e individuerà lì il tuo gruppo di volumi LVM.

  • Esegui vgrename LVM LVM2 , per modificare il nome del tuo gruppo di volumi.

  • Ora collega il tuo disco rigido USB esterno.

  • Esegui nuovamente "vgscan", questa volta per individuare il gruppo di volumi nell'hard disk USB esterno. Ora avrai due gruppi di volumi. Uno chiamato "LVM2" nel tuo hard disk interno e l'altro chiamato "LVM" nel tuo hard disk esterno USB.

  • Rinominare il gruppo di volumi nel disco rigido USB esterno con vgrename LVM LVM_BACKUP .

  • E rinomina il gruppo di volumi nel disco rigido interno con il nome originale:vgrename LVM2 LVM .

  • Hai fatto. Puoi rivedere la situazione con vgdisplay -v .

    Vedrai che gli UUID dei volumi logici sono gli stessi in entrambi i gruppi di volumi, ma ciò non sembra causare alcun problema e non so come modificarli.

  • Scollega il tuo disco rigido USB esterno, conservalo in un luogo sicuro, riavvia il computer, espelli il LiveCD e torna al lavoro.


Linux
  1. Taglia / Grep e Df -h?

  2. Pthreads e Vfork?

  3. Come creare LVM usando i comandi vgcreate, lvcreate e lvextend lvm2

  4. Istantanea LVM:backup e ripristino della partizione LVM in Linux

  5. I comandi LVM falliscono con "Impossibile caricare il file di configurazione /etc/lvm/lvm.conf"

Installa Linux con LVM

Utilizzo di LVM per gestire volumi fisici, gruppi di volumi e volumi logici – Preparazione dell'obiettivo RHCSA

Crea ed estendi il filesystem XFS basato su LVM

Una guida per principianti a LVM

Backup e ripristino di snapshot LVM su Linux

Utilizzo di fsck per controllare e riparare il disco crittografato LUKS?