Weitere 80 GB in EC2 EBS kosten weniger als 12 USD pro Monat. Online-Manipulationen dauern wahrscheinlich mehr als eine Stunde Ihrer Arbeit und es besteht die Gefahr von Ausfallzeiten, wenn etwas schief geht - wie viel ist das für Sie wert?
Bezahlen Sie für zusätzliche Kapazität, fügen Sie sie Ihrer Instanz als dritte Festplatte hinzu xvdc
und initialisieren Sie sie als LVM-PV (Sie müssen nicht einmal eine Partitionstabelle darauf platzieren: reicht einfach pvcreate /dev/xvdc
aus). Fügen Sie dann die neue PV zu Ihrer rootrhel
VG ( vgextend rootrhel /dev/xvdc
) hinzu und jetzt können Sie Ihre /storetmp
mit der zusätzlichen Kapazität erweitern.
lvextend -L +80G /dev/mapper/rootrhel-storetmp
xfs_growfs /storetmp #or the appropriate tool for your filesystem type
Nachdem Ihr sofortiges Problem behoben ist, können Sie jetzt zu einem geeigneten Zeitpunkt Ausfallzeiten einplanen.
Wenn Sie XFS - Dateisystem verwenden (wie RHEL / CentOS 7 standardmäßig der Fall ist), dann bei der nächsten geplanten Ausfallzeiten, werden Sie erstellen tarballs der aktuellen Inhalt /store
und /transient
, Aushängen und die gesamte entfernen storerhel
VG, fügen Sie seine PV xvdb3
zum rootrhel
VG und Erstellen Sie dann die LVs für /store
und /transient
Dateisysteme mit realistischeren Schätzungen für ihren Kapazitätsbedarf neu und stellen Sie den Inhalt der Tarballs wieder her. Ende der Ausfallzeit.
Jetzt ist Ihre rootrhel
VG hat drei PVs: xvdb2
, xvdb3
und xvdc
, und viel Platz für Ihre Bedürfnisse.
Wenn Sie nicht mehr bezahlen möchten xvdc
, können Sie pvmove /dev/xvdc
die Daten innerhalb der VG automatisch von xvdc
und auf nicht zugewiesenen Speicherplatz innerhalb xvdb2
und / oder migrieren xvdb3
. Sie können dies online tun; Tun Sie dies nur nicht zum Zeitpunkt Ihrer maximalen E / A-Arbeitsbelastung, um Leistungseinbußen zu vermeiden. Dann vgreduce rootrhel /dev/xvdc
, um echo 1 > /sys/block/xvdc/device/delete
den Kernel zu sagen , dass das xvdc
Gerät entfernt wird, und dann Amazon sagen , dass Sie nicht brauchen , Ihre xvdc
Festplatte mehr.
Ich habe fast 20 Jahre Erfahrung in der Arbeit mit LVM-Festplattenspeicher (zuerst mit HP-UX LVM und später mit Linux LVM, sobald es so ausgereift ist, dass es in Unternehmensumgebungen verwendet werden kann). Dies sind die Faustregeln, die ich bei LVM angewendet habe:
- Sie sollten niemals zwei VGs erstellen, wenn eine ausreicht.
Insbesondere das Vorhandensein von zwei VGs auf einer einzelnen Festplatte ist höchstwahrscheinlich ein Fehler, der Kopfschmerzen verursacht. Die Neuzuweisung der Festplattenkapazität innerhalb einer VG ist so flexibel, wie es Ihr Dateisystemtyp zulässt. Das Verschieben der Kapazität zwischen VGs in Blöcken, die kleiner als eine bereits vorhandene PV sind, ist normalerweise nicht die Mühe wert.
- Wenn Ihre Speicherplatzanforderungen ungewiss sind (und dies immer der Fall ist), halten Sie Ihre LVs auf der kleinen Seite und etwas nicht zugewiesenen Speicherplatz in Reserve.
Solange in Ihrer VG nicht zugewiesene Kapazität verfügbar ist, können Sie LVs und Dateisysteme in ihnen online nach Bedarf mit ein oder zwei Schnellbefehlen erweitern. Es ist ein Ein-Bananen-Job für einen ausgebildeten Affen- Junior-Systemadministrator.
Wenn in der VG keine nicht zugewiesene Kapazität vorhanden ist, holen Sie sich eine neue Festplatte, initialisieren Sie sie als neue PV, fügen Sie sie der VG hinzu, die Kapazität benötigt, und fahren Sie dann wie gewohnt mit der Erweiterung fort. Das Verkleinern von Dateisystemen ist fehleranfälliger, erfordert möglicherweise Ausfallzeiten oder ist sogar unmöglich, ohne das Dateisystem in kleinerer Größe zu sichern und neu zu erstellen, je nach Dateisystemtyp. Sie sollten daher Situationen vermeiden, in denen Dateisysteme online so weit wie möglich verkleinert werden müssen.
- Das Mikromanagement des Speicherplatzes kann riskant sein und ist viel Arbeit. Arbeit ist teuer.
Okay. Technisch gesehen könnten Sie eine 80-GB-Datei erstellen /store
, losetup
sie in ein Loop-Gerät umwandeln und diese dann in eine PV verwandeln, die Sie Ihrer rootrhel
VG hinzufügen könnten. Dies würde jedoch zu einem System führen, das höchstwahrscheinlich in einen Wiederherstellungsmodus für einen einzelnen Benutzer übergeht beim Booten, es sei denn, Sie haben ein benutzerdefiniertes Startskript für diese Dateisysteme und VGs eingerichtet und es beim ersten Mal richtig gemacht.
Verstehen Sie es falsch, und wenn Ihr System aus irgendeinem Grund das nächste Mal neu gestartet wird, müssen Sie ungeplante Ausfallzeiten für die Fehlerbehebung und -behebung in Kauf nehmen oder die Dateisysteme realistischer von Grund auf neu erstellen und den Inhalt aus Sicherungen wiederherstellen, da dies einfacher ist als die Fehlerbehebung dieses von der Jury manipulierte Durcheinander.
Wenn Sie ein ext4
Dateisystem verwenden, das online reduziert werden kann, können Sie das /store
Dateisystem verkleinern, den LV verkleinern, pvmove --alloc anywhere
den freien Speicherplatz am hinteren Ende des xvdb3
PV konsolidieren , den PV verkleinern, die Partition verkleinern und ausführen partprobe
, um das zu erstellen Änderungen werden ohne Neustart wirksam, erstellen Sie dann eine neue Partition xvdb4
, initialisieren Sie sie als neue PV und fügen Sie sie rootrhel
VG hinzu ...
ABER wenn Sie einen Fehler in dieser Sequenz machen, so dass Ihr Dateisystem / PV über seinen LV / Partitionscontainer hinausgeht und Ihr Dateisystem in den schreibgeschützten Modus mit einem Fehlerflag geschaltet wird, das nur durch Ausführen einer Dateisystemprüfung zurückgesetzt werden kann obligatorische ungeplante Ausfallzeiten.
rootrhel-storetmp
,storerhel-store
undstorerhel-transient
leeren? (Dh kann ich Ihnen die Befehle geben, um sie zu löschen, bevor Sie sie neu erstellen?)