Sie können entweder Ihr Root-Volume in XFS konvertieren oder ein zweites Volume erstellen. Persönlich würde ich Letzteres bevorzugen, da es mehr Flexibilität bietet.
Option 1: Konvertieren Sie das Root-Volume in XFS
- Stoppen Sie Ihre Instanz (nicht beenden) (nennen wir es Instanz A)
- Starten Sie eine neue Instanz (nennen wir sie Instanz B)
- Trennen Sie das Root-Volume von Instanz A und hängen Sie es an Instanz B an
- Erstellen Sie ein zweites EBS-Volume und hängen Sie es an Instanz B an
- Formatieren Sie das neue EBS-Volume als XFS (installieren,
xfsprogs
falls noch nicht geschehen)
- Kopieren Sie alle Daten vom ersten Volume auf das neue (z. B. mit
rsync -aHAXxSP /source /target
).
- Trennen Sie das neue Volume von Instanz B und hängen Sie es als Root-Volume von Instanz A an
- Instanz A starten
- Beenden Sie Instanz B (das ursprüngliche Root-Volume sollte bestehen bleiben, behalten Sie es bei, bis die Dinge nach Ihren Wünschen funktionieren).
Der Grund für das Anhängen des Root-Volumes an eine andere Instanz besteht darin, eine Konsistenz zu erreichen, die mit dem verwendeten Volume schwierig wäre.
Option 2: Verschieben Sie Daten auf ein zweites EBS-Volume
- Erstellen Sie ein zweites EBS-Volume und hängen Sie es an Ihre Instanz an. Formatieren Sie es als XFS und mounten Sie es
- Identifizieren Sie, welche Verzeichnisse Sie auf das neue Volume verschieben möchten (einige zu berücksichtigen sind: / var / log, / var / lib / mysql, / var / www, / var / spool / mail, / var / vmail)
- Beenden Sie so viele Dienste wie möglich, um Schreibsperren zu entfernen
- Verwenden Sie
lsof | grep /path/to/dir
diese Option , um nach verbleibenden Schreibsperren zu suchen
- Verschieben Sie das Verzeichnis auf das neue EBS-Volume
- Mount Binden Sie das neue Verzeichnis an seinen alten Speicherort (dh
mount -o bind
/mnt/path/to/dir /orig/path/to/dir
)
- Wiederholen Sie dies für jedes Verzeichnis
- Starten Sie Ihre Dienste, um sicherzustellen, dass alles funktioniert
- Bearbeiten Sie Ihre
/etc/fstab
Datei, um die Einhängepunkte dauerhaft zu machen. z.B:/mnt/path/to/dir /orig/path/to/dir bind defaults,noatime,bind 0 0
Starten Sie neu, um sicherzustellen, dass alles weiterhin funktioniert und ordnungsgemäß funktioniert. Möglicherweise möchten Sie auch in Betracht ziehen, Ihr Root-Volume etwas zu verkleinern, da es hoffentlich nicht stark wachsen (oder sich ändern) sollte, wenn alle Daten daraus entfernt werden.
(Als Erwähnung kann es möglich sein, ein ext4-Dateisystem mit einzufrieren fsfreeze
, das in enthalten ist util-linux-ng
).