it-swarm.com.de

Nicht genügend Speicherplatz '/' in der AWS-Instanz

ich führe eine Ubuntu 11.04-Instanz für meinen Webserver in der AWS-Cloud aus. Jetzt erhalte ich, dass in der / -Partition meines Servers kein Speicherplatz mehr vorhanden ist. df -ah sag das

Filesystem            Size  Used Avail Use% Mounted on
/dev/xvda1            7.9G  7.8G   97M  99% /
proc                     0     0     0   -  /proc
none                     0     0     0   -  /sys
fusectl                  0     0     0   -  /sys/fs/Fuse/connections
none                     0     0     0   -  /sys/kernel/debug
none                     0     0     0   -  /sys/kernel/security
none                  3.7G  112K  3.7G   1% /dev
none                     0     0     0   -  /dev/pts
none                  3.7G     0  3.7G   0% /dev/shm
none                  3.7G   80K  3.7G   1% /var/run
none                  3.7G     0  3.7G   0% /var/lock
/dev/xvdb             414G   16G  377G   4% /mnt

Jetzt habe ich diese Sache versucht, um etwas mehr Platz auf / Partition zu bekommen

  • Bereinigen Sie alle Protokolldateien für Apache.
  • Alle nicht benötigten Dateien vom Server entfernt.
  • Home-Verzeichnis bereinigen.

Trotzdem bekomme ich nicht genug Platz. Dieser Instanztyp ist m1.large mit 8 GB EBS. Jetzt bekomme ich genug Speicherplatz in / dev/xvdb.

Gibt es eine Möglichkeit, wie ich / aus / dev/xvdb oder anderen Möglichkeiten Speicherplatz zuweisen kann. Bitte schlagen Sie mir die mögliche Lösung dafür vor. Ist es möglich, dieselbe / dev/xvdb -Partition mit einer anderen Instanz zu verwenden.

28
Sumant

Die Antwort ist zweifach.

Umgehung: Verwenden Sie/dev/xvdb (/ mnt) für temporäre Daten

Dies ist die so genannte kurzlebige Speicherung Ihrer Amazon EC2 - Instanz, und ihre Eigenschaften unterscheiden sich erheblich von denen des andernorts verwendeten dauerhaften Amazon EBS - Speichers. Insbesondere geht diese vergängliche Speicherung bei Stopp/Start-Zyklen verloren und kann im Allgemeinen weggehen , damit Sie definitiv nichts von bleibendem Wert dort ablegen möchten, dh nur temporäre Daten dort ablegen können es sich leisten, leicht zu verlieren oder neu zu erstellen , wie eine Auslagerungsdatei oder streng temporäre Daten, die während der Berechnungen verwendet werden. Natürlich können Sie dort beispielsweise große Indizes speichern, müssen jedoch darauf vorbereitet sein, diese nach dem Löschen des Speichers erneut zu erstellen (Neustart der Instanz, Hardwarefehler usw.).

Lösung: Ändern Sie die Größe von/dev/xvda1 (/), um den gewünschten Speicherplatz zu erhalten

Dies ist das sogenannte Root Device Storage Ihrer von Amazon EBS unterstützten EC2-Instanz, das Amazon EBS insbesondere für Flexibilität und Haltbarkeit sorgt, d. H Die dort gespeicherten Daten sind einigermaßen sicher und überstehen Instanzenfehler. Sie können die Flexibilität und Haltbarkeit noch weiter erhöhen, indem Sie regelmäßige Momentaufnahmen Ihres EBS-Volumes erstellen, die auf Amazon S gespeichert sind und die bekannte Haltbarkeit von 99,999999999% aufweisen.

Mit dieser Snapshot-Funktion können Sie Ihr Problem lösen, indem Sie Ihren aktuellen 8-GB-EBS-Root-Speicher (/ dev/xvda1) durch einen mehr oder weniger großen ersetzen. Der Prozess wird in Eric Hammonds ausgezeichnetem Artikel beschrieben Ändern der Größe der Root-Festplatte auf einer laufenden EBS Boot EC2-Instanz :

Solange Sie mit einer kurzen Ausfallzeit für die EC2-Instanz (einige Minuten) einverstanden sind, können Sie das Root-EBS-Volume durch eine größere Kopie ersetzen, ohne eine neue Instanz starten zu müssen.

Wenn Sie die von ihm beschriebenen Schritte richtig vorbereiten (ich empfehle dringend, sie zuerst mit einer EC2-Wurfinstanz zu testen, um sich mit der Prozedur vertraut zu machen, oder sie sogar über ein maßgeschneidertes Skript zu automatisieren), sollten Sie in der Lage sein, den Vorgang mit wenigen Schritten abzuschließen Minuten Ausfallzeit nur in der Tat.

Die meisten der beschriebenen Schritte können auch über AWS Management Console ausgeführt werden, wodurch der Umgang mit Amazon EC2 API Tools vermieden wird. das läuft auf Folgendes hinaus:

  • stoppen (nicht beenden!) Sie die EC2-Instanz
  • trennen Sie das EBS-Volume von der gestoppten Instanz
  • erstellen Sie einen Snapshot des gelösten EBS-Volumes
  • erstellen Sie aus dem erstellten Snapshot ein neues (größeres) EBS-Volume
  • hängen Sie das neue EBS-Volume an die EC2-Instanz an ( Wichtig ! Wenn dies Ihr Root-Gerät ist, geben Sie ihm den genauen Namen des Root-Geräts der Instanz Wie bereits erwähnt, z. B. (/ dev/sda1) oder (/ dev/xdva1). Andernfalls wird die Instanz als Block-Gerät und nicht als Root-Gerät angehängt, und Sie können die Instanz nicht starten, da kein Root-Gerät aufgelistet ist für die Instanz.)
  • SSH in die laufende Instanz und bestätige, dass alles in Ordnung ist, über df -ah
    • falls Ihr System die Größe des Dateisystems nicht automatisch geändert hat, müssen Sie dies manuell tun, wie in Erics Artikel erläutert

Viel Glück!


Alternative

In Anbetracht der Vielseitigkeit und Benutzerfreundlichkeit dieser EBS-Volumes besteht eine zusätzliche Option darin, mehr EBS-Volumes an Ihre Instanz anzuhängen und klar trennbare Problembereiche dorthin zu verschieben.

Zum Beispiel verwenden wir einige ziemlich schwere Java -Anwendungen, von denen jede 1 bis 2 GB Speicherplatz pro Version beansprucht. Um das Upgrade von Versionen zu vereinfachen und diese Apps nach eigenem Ermessen auf verschiedene Instanzen verschieben zu können, habe ich sie jeweils auf dedizierten EBS-Volumes platziert, diese in eine Instanz eingebunden und sie per Softlink mit dem gewünschten Speicherort verknüpft, z. normalerweise /var/lib/<app>/<version> und /usr/local/<app>/<version>.

Mit dieser Methode führen wir derzeit EC2-Instanzen aus, wobei der Root-Gerätespeicher immer noch die Standardgröße von 8 GB aufweist (genau wie bei Ihnen), manchmal aber auch bis zu 8 EBS-Volumes mit unterschiedlichen Größen (1 bis 15 GB).

Sie müssen sich jedoch der potenziellen Netzwerkleistungsprobleme bewusst sein, sofern alle diese EBS-Volumes dasselbe LAN für ihre E/A verwenden, was in extremen Fällen sogar zu entsprechenden Leistungsgewinnen führen oder Ihr Netzwerk überlasten kann. Dies hängt also wie üblich davon ab auf den Anwendungsfall und die Arbeitsbelastung zur Hand.

26
Steffen Opel

Yep eine einfache Möglichkeit, es zu fstab und dann mounten, um/var/www/html/files2/zu sagen

dann mkdir/var/www/html/files2/website dann ln -s -d/var/www/html/website/var/www/html/files2/website

1
Daniel Chay

Heute bin ich auf das gleiche Problem gestoßen, als du die neue ec2-Intance erstellt hast. Standardmäßig ist EBS 8GB. Sie können die Größe des angehängten EBS ändern, ohne eine neue Oberfläche zu erstellen, einen Snapshot zu erstellen oder das EBS zu trennen. Sie können die folgenden drei Schritte ausführen:

  1. Ändern Sie die Größe des EBS-Volumes
  2. Partitionsgröße ändern
  3. Partitionsgröße ändern Wechseln Sie im ersten Schritt zu Ihrer AWS-Konsole und klicken Sie auf EBS, ändern Sie die gewünschte Größe und klicken Sie auf Ändern.

Für den Rest der Schritte folgen Sie bitte diesem Artikel Wenn Sie Fragen haben, wenden Sie sich bitte an uns.

Vielen Dank!

0
Narendra Sharma