So arbeiten Sie mit DigitalOcean Block Storage mit Doctl

Einführung

Mit Block Storage können Sie zusätzlichen Speicher für Ihre DigitalOcean Droplets auf ähnliche Weise wie mit Festplatten verwalten. Das Hinzufügen von Blockspeicher zu unseren Droplets kann mit wenigen Klicks über die optimierte grafische Benutzeroberfläche oder die grafische Benutzeroberfläche von DigitalOcean erfolgen. Dies ist jedoch keine praktische Methode, um in größeren und komplexeren Umgebungen zu arbeiten. Daher bietet DigitalOcean eine API, mit der skaliert werden kann. Wir können überdoctl, das offizielle Befehlszeilentool von DigitalOcean, direkt mit der API interagieren.

In diesem Lernprogramm erfahren Sie, wie Sie mitdoctl Blockspeichervolumes aus unseren Droplets erstellen, auflisten, anhängen, trennen und löschen.

Voraussetzungen

Bevor Sie mit diesem Lernprogramm beginnen, sollten Sie sich mitdoctl und dem Blockspeicher von DigitalOcean vertraut machen. Die folgenden Artikel werden hilfreich sein:

Sie sollten sicherstellen, dass Sie die neueste Version vondoctl (zum Zeitpunkt dieses Schreibens ist es 1.7.1) installiert und authentifiziert haben, bevor Sie fortfahren. Überprüfen Sie Ihredoctl-Version, indem Siedoctl version ausführen. Sie müssen auch einSSH key added to your DigitalOcean account haben.

Um diesem Tutorial zu folgen, benötigen Sie ein Droplet, das in einer der Regionen erstellt wurde, die die Verwendung von Blockspeicher ermöglichen (zum Zeitpunkt dieses Schreibens bieten die folgenden Regionen Blockspeicher an:BLR1,FRA1,LON1,NYC1,NYC3,SFO2,SGP1 undTOR1).

[.note] #Note: Während die oben genannten Regionen Blockspeicher unterstützen, ist diese Funktion derzeit nicht für alle Droplets in den angegebenen Regionen verfügbar. Um sicherzustellen, dass das Droplet, an dem Sie arbeiten, Blockspeicher unterstützt, müssen Sie zum Zeitpunkt der Erstellung ein Volume daran anhängen.
#

Volumes erstellen

Um ein Volume mitdoctl zu erstellen, müssen Sie dem Befehl die folgenden Parameter bereitstellen:

  • volume name: In unserem Beispiel sind esfirstvolume

  • region: Für unser Tutorial erstellen wir das Volume inNYC3

  • size (standardmäßig 4 TB): In diesem Beispiel wird100 GiB festgelegt

Sie können auch eine Beschreibung mit dem Flagdescangeben, dies ist jedoch völlig optional. Der vollständige Befehl sieht folgendermaßen aus:

doctl compute volume create firstvolume --region nyc3 --size 100GiB

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

OutputID                                      Name           Size      Region    Droplet IDs
______your_volume_ID1_______            firstvolume    100 GiB    nyc3

Zu diesem Zeitpunkt kennen Sie den Befehldoctlund wissen, welche Informationen zum Erstellen eines neuen Volumes erforderlich sind. Als Nächstes erfahren Sie, wie Sie eine vollständige Liste der vorhandenen Volumes drucken.

Auflisten von Volumes

doctl bietet uns die Möglichkeit, vorhandene Volumes in einer formatierten Liste anzuzeigen. Es gibt einige Gründe, warum Sie Ihre Volumes auflisten möchten. Die beiden häufigsten sind das Anzeigen der ID jedes Volumes, das in späteren Befehlen verwendet werden soll, und das Anzeigen der Droplets, denen Volumes zugewiesen sind.

Um alle aktuellen Blockspeicherdatenträger aufzulisten, können Sie den folgenden Befehl ausführen.

doctl compute volume list

Dies ist die Ausgabe des Befehlslist, der in unserem Beispiel ausgeführt wird:

OutputID                                      Name              Size        Region    Droplet IDs
______your_volume_ID1______             firstvolume       100 GiB     nyc3
______your_volume_ID1______             secondvolume      4096 GiB    nyc3
______your_volume_ID1_______            thirdvolume       100 GiB      nyc3      [ID]

In diesem Abschnitt haben Sie den Befehldoctlgelernt, um eine Liste der von Ihnen erstellten Volumes anzuzeigen. Im nächsten Abschnitt wird erläutert, wie ein Volume an ein Droplet angehängt wird.

Anhängen von Volumes

Manchmal benötigt Ihr Droplet zusätzlichen Speicherplatz, um Elemente wie Anwendungsdaten und Konfigurationsdateien zu verarbeiten. Das Hinzufügen eines Volumes ist eine hervorragende Möglichkeit, diesen Speicherplatz hinzuzufügen, ohne den Dienst zu unterbrechen.

Zum Anhängen von Bänden benötigen Sie zwei Informationen:

  • die Volume-ID

  • die Tröpfchen-ID

Im vorherigen Abschnitt haben wir gesehen, wie Sie dievolume ID mit dem Befehldoctl compute volume list erhalten.

Wir können unsereDroplet ID erhalten, indem wir den folgenden Befehl ausführen, um Informationen zu den Droplets unseres Kontos anzuzeigen:

doctl compute droplet list

Sobald wir sowohl die Volume- als auch die Droplet-IDs haben, können wir mit dem folgenden Befehl fortfahren, um ein Volume an ein Droplet anzuhängen:

doctl compute volume-action attach your_volume_ID your_droplet_ID

Dies erzeugt eine Ausgabe ähnlich der folgenden:

OutputID           Status         Type             Started At                       Completed At    Resource ID    Resource Type    Region
346253669    in-progress    attach_volume    2017-12-28 19:53:28 +0000 UTC               0              backend          nyc3

Zuvor wurde in diesem Lernprogramm empfohlen, dem Droplet beim Erstellen ein Volume hinzuzufügen, um sicherzustellen, dass das Droplet eine Infrastruktur verwendet, die Blockspeicher unterstützt. Wenn Sie zu diesem Zeitpunkt ein Droplet erstellt haben, ohne ein Volume anzuhängen, wird möglicherweise der folgende Fehler angezeigt, wenn Sie versuchen, ein Volume anzuhängen:

OutputError: POST https://api.digitalocean.com/v2/volumes/your_volume_ID/actions: 422 Droplet can't attach volumes due to a region restriction

Wenn dieser Fehler auftritt, können Sie das Volume nicht an das angegebene Droplet anhängen und müssen es erneut versuchen.

Sobald Sie ein Volume erfolgreich mit einem Droplet verbunden haben, das das Volume akzeptiert, können Sie im nächsten Abschnitt erfahren, wie Sie das Volume trennen können, falls Sie keinen zusätzlichen Speicherplatz mehr benötigen.

Volumes trennen

Es kann vorkommen, dass Sie ein Volume nur vorübergehend an ein Droplet anhängen müssen, z. B. beim Debuggen eines Problems, das eine große Anzahl von Protokollen erfordert, oder beim Erstellen einer Sicherung bestimmter zeitgebundener Daten. In diesen Fällen müssen wir in der Lage sein, ein Volume zu trennen, sobald wir es verwendet haben.

Das Trennen eines Volumes ähnelt dem Anhängen eines Volumes und verwendet dieselben Informationen. Der Befehl und die Ausgabe variieren geringfügig.

doctl compute volume-action detach your_volume_ID your_droplet_ID
OutputID           Status         Type             Started At                       Completed At    Resource ID    Resource Type    Region
346254931    in-progress    detach_volume    2017-12-28 19:57:51 +0000 UTC               0              backend          nyc3

An diesem Punkt wissen Sie, wie Sie ein Volume mitdoctl trennen können. Im nächsten Abschnitt erfahren Sie, wie Sie ein nicht mehr benötigtes Volume löschen.

Datenträger löschen

Wenn Sie ein bestimmtes Blockspeicher-Volume nicht mehr benötigen, können Sie es entfernen und durch Löschen aus Ihrem Konto entfernen. Sobald Sie ein Volume getrennt haben, benötigen Sie dessen ID, um es zu löschen.

doctl compute volume delete your_volume_id

Wenn Sie diesen Befehl ausführen, werden Sie zur Bestätigung aufgefordert:

OutputWarning: Are you sure you want to delete volume (y/N) ?

Wenn Sie zufrieden sind, dass Sie das Volume löschen möchten, drücken Sie zur Bestätigungy.

Sobald das Volume gelöscht wurde, kehren Sie zur Eingabeaufforderung zurück. Mit dem Befehllist können Sie überprüfen, ob das Volume gelöscht wurde.

Informationen über ein Volume abrufen

Wenn Sie Informationen zu einem bestimmten Volume benötigen, können Sie diese durch Aufrufen des folgenden Befehls anfordern

doctl compute volume get your_volume_id

Die Ausgabe dieses Befehls ist bekannt, da sie beim Erstellen eines Volumes automatisch ausgeführt wird.

OutputID                                      Name           Size      Region    Droplet IDs
______your_volume_ID1_______      firstvolume    100 GiB    nyc3

In diesem Abschnitt haben Sie erfahren, wie Sie ein nicht mehr benötigtes Volume löschen können.

Sie haben jetzt alle Informationen, die Sie benötigen, umdoctl erfolgreich für die Arbeit mit DigitalOcean-Blockspeichervolumes zu verwenden.

Fazit

In diesem Tutorial haben wir gelernt, wie Sie mitdoctl Volumes zu unseren Droplets hinzufügen, anhängen, trennen, auflisten und löschen.

Nachdem Sie nun wissen, wie das geht, möchten Sie möglicherweise das Erstellen von Skripten und das Hinzufügen dieser Skripte zu Ihrem bevorzugten Automatisierungstool wieJenkins oderDrone untersuchen.