Conversione del volume EBS di Amazon EC2 ext4 in filesystem XFS


8

Devo convertire il mio filesystem Amazon EC2 ext4 in XFS in modo da poter scattare istantanee coerenti e inviarle a S3. Sto usando una piccola immagine personalizzata del server Ubuntu 10.10 con architettura i686 in est-est. Il problema è che sto usando una sola unità EBS per tutti i file e ora mi sta facendo venire il mal di testa, perché non riesco davvero a smontare, formattare o fare davvero nulla sull'unità quando eseguo l'accesso all'istanza da ssh. Suppongo di dover in qualche modo dividere il volume EBS in 2 e spostare / var / www e / var / lib nel secondo volume EBS e convertirlo invece in XFS. Sto usando apache2, mysql, ispconfig, bind, postfix, corriere, pureftp ( http://www.howtoforge.com/perfect-server-ubuntu-10.10-maverick-meerkat-ispconfig-3 )

Grazie.

Risposte:


9

Puoi convertire il tuo volume di root in XFS o creare un secondo volume. Personalmente, preferirei quest'ultima poiché offre maggiore flessibilità.

Opzione 1: convertire il volume di root in XFS

  1. Ferma la tua istanza (non terminare) (chiamiamola istanza A)
  2. Avvia una nuova istanza (chiamiamola istanza B)
  3. Scollegare il volume principale dall'istanza A e collegarlo all'istanza B
  4. Creare un secondo volume EBS, collegarlo all'istanza B
  5. Formatta il nuovo volume EBS come XFS (installa xfsprogsse non già fatto)
  6. Copia tutti i dati dal primo volume a quello nuovo (es. Usando rsync -aHAXxSP /source /target)
  7. Scollegare il nuovo volume dall'istanza B e collegarlo come volume principale dell'istanza A
  8. Avviare l'istanza A
  9. Termina l'istanza B (il volume di root originale dovrebbe persistere, tienilo in giro fino a quando le cose non funzionano a tuo piacimento).

Il motivo per collegare il volume principale a un'altra istanza è quello di ottenere coerenza, il che sarebbe difficile con il volume in uso.

Opzione 2: spostare i dati su un secondo volume EBS

  1. Crea un secondo volume EBS e collegalo alla tua istanza; formattalo come XFS e montalo
  2. Identifica quali directory desideri spostare nel nuovo volume (alcune da considerare includono: / var / log, / var / lib / mysql, / var / www, / var / spool / mail, / var / vmail)
  3. Interrompere il maggior numero possibile di servizi per rimuovere i blocchi di scrittura
  4. Utilizzare lsof | grep /path/to/dirper verificare la presenza di blocchi di scrittura rimanenti
  5. Spostare la directory sul nuovo volume EBS
  6. Mount associa la nuova directory alla sua posizione precedente (ovvero mount -o bind /mnt/path/to/dir /orig/path/to/dir)
  7. Ripetere l'operazione per ciascuna directory
  8. Avvia i tuoi servizi per assicurarti che tutto funzioni
  9. Modifica il tuo /etc/fstabfile per rendere permanenti i punti di mount; per esempio:/mnt/path/to/dir /orig/path/to/dir bind defaults,noatime,bind 0 0

Riavviare per assicurarsi che tutto persista e funzioni come dovrebbe. Potresti anche considerare di ridurre leggermente il tuo volume di root poiché, si spera, non dovrebbe crescere (o cambiare) molto con tutti i dati rimossi da esso.

(Come punto di riferimento, potrebbe essere possibile congelare un file system ext4 usando fsfreeze, che è incluso in util-linux-ng).


Grazie, andrò con la prima opzione perché non sono sicuro che sarei in grado di ripristinare dal backup con il secondo metodo, se le cose dovessero andare male.
jaz,

È possibile ripristinare ogni volume EBS in modo indipendente: è possibile conservare le istantanee di entrambi i volumi separatamente, ripristinando quello di cui si ha bisogno. Le istantanee di Amazon EBS sono differenziali e compresse, quindi lo spazio totale utilizzato non dovrebbe essere molto diverso con i dati su due volumi rispetto a uno.
cyberx86,

1
Per l'opzione 1: le versioni recenti di Ubuntu non si avviano perché l'etichetta "cloudimg-rootfs" è troppo lunga per XFS. È necessario risolvere questo problema accorciando l'etichetta che utilizza; questi passaggi dal link seguente: Etichetta / dev / xvdf dispositivo come '/'. Basta eseguire: xfs_admin -L \ / / dev / xvdf Montare / dev / xvdf nella directory / xfs. Modifica il file fstab associato al nuovo volume XFS (/ xfs / etc / fstab) e assicurati che / sia associato al volume etichettato / e il file system xfs sia configurato per il mountpoint di root Da qui: jsianes.blogspot.com/2014/06/…
JaredBroad,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.