| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 24249 -->
- <!-- Reviewed: no -->
- <sect1 id="zend.service.amazon.ec2.ebs">
- <title>Zend_Service_Amazon_Ec2: Elastischer Block Speicher (EBS)</title>
- <para>
- Amazon Elastischer Block Speicher (Amazon EBS) ist ein neuer Typ an Speicher der speziell
- für Amazon EC2 Instanzen entwickelt wurde. Amazon EBS erlaubt es ein Volume zu erstellen
- das als Device von Amazon EC2 Instanzen gemountet werden kann. Amazon EBS Volums verhalten
- sich wie rohe unformatierte externe Block Devices. Sie haben einen vom Benutzer angegebenen
- Device Namen und bieten ein Block Device Interface. Man kann ein File System auf Amazon EBS
- Volums laden, oder Sie genauso verwenden wie man ein Block Device verwenden würde.
- </para>
- <para>
- Man kann bis zu zwanzig Amazon EBS Volums jeder Größe erstellen (von einem GiB bis zu einem
- TiB). Jedes Amazon EBS Volume kann jeder Amazon EC2 Instanz angehängt werden welche in der
- selben Availability Zone ist, oder kann auch un-angehängt bleiben.
- </para>
- <para>
- Amazon EBS bietet die Möglichkeit einen Snapshot der eigenen Amazon EBS Volums auf Amazon
- S3 zu erstellen. Man kann diese Snapshots als Startpunkt für neue Amazon EBS Volums
- verwenden und kann eigene Daten auf diese Art für eine lange Zeit schützen.
- </para>
- <sect2 id="zend.service.amazon.ec2.ebs.creating">
- <title>EBS Volums und Snapshots erstellen</title>
- <example id="zend.service.amazon.ec2.ebs.creating.volume">
- <title>Ein neues EBS Volume erstellen</title>
- <para>
- Um ein brandneues EBS Volume zu erstellen benötigt man die Größe und die Zone in
- der das EBS Volume sein soll.
- </para>
- <para>
- <code>createNewVolume</code> gibt ein Array zurück das Informationen über das neue
- Volume enthält. Diese beinhalten volumeId, size, zone, status und createTime.
- </para>
- <programlisting language="php"><![CDATA[
- $ec2_ebs = new Zend_Service_Amazon_Ec2_Ebs('aws_key','aws_secret_key');
- $return = $ec2_ebs->createNewVolume(40, 'us-east-1a');
- ]]></programlisting>
- </example>
- <example id="zend.service.amazon.ec2.ebs.creating.volumesnapshot">
- <title>Ein EBS Volume von einem Snapshot erstellen</title>
- <para>
- Um ein EBS Volume von einem Snapshot zu erstellen benötigt man die snapshot_id
- in die Zone in der man das EBS Volume haben will.
- </para>
- <para>
- <code>createVolumeFromSnapshot</code> gibt ein Array mit Informationen zurück.
- Diese enthalten volumeId, size, zone, status, createTime und snapshotId.
- </para>
- <programlisting language="php"><![CDATA[
- $ec2_ebs = new Zend_Service_Amazon_Ec2_Ebs('aws_key','aws_secret_key');
- $return = $ec2_ebs->createVolumeFromSnapshot('snap-78a54011', 'us-east-1a');
- ]]></programlisting>
- </example>
- <example id="zend.service.amazon.ec2.ebs.creating.snapshot">
- <title>Einen Snapshot von einem EBS Volume erstellen</title>
- <para>
- Um einen Snapshot von einem EBS Volume zu erstellen wird die volumeId des EBS
- Volums benötigt.
- </para>
- <para>
- <code>createSnapshot</code> gibt ein Array zurück das Informationen über den neuen
- Volume Snapshot enthält. Dieses beinhaltet snapshotId, volumeId, status, startTime
- und progress.
- </para>
- <programlisting language="php"><![CDATA[
- $ec2_ebs = new Zend_Service_Amazon_Ec2_Ebs('aws_key','aws_secret_key');
- $return = $ec2_ebs->createSnapshot('volumeId');
- ]]></programlisting>
- </example>
- </sect2>
- <sect2 id="zend.service.amazon.ec2.ebs.describing">
- <title>EBS Volumes und Snapshots beschreiben</title>
- <example id="zend.service.amazon.ec2.ebs.describing.volume">
- <title>Ein EBS Volume beschreiben</title>
- <para>
- <code>describeVolume</code> erlaubt es Informationen über ein EBS Volume oder ein
- Set von EBS Volums zu erhalten. Wenn nichts angegeben wird, werden alle EBS Volums
- zurück gegeben. Wenn nur ein EBS Volume beschrieben werden soll, kann ein String
- übergeben werden, während ein Array von EBS Volume Id's übergeben werden können um
- diese zu beschreiben.
- </para>
- <para>
- <code>describeVolume</code> gibt ein Array mit Informationen über jedes Volume
- zurück. Dieses enthält die volumeId, size, status und createTime. Wenn das Volume
- an eine Instanz angehängt ist, wird ein zusätzlicher Wert attachmentSet
- zurückgegeben. Ein gesetztes Attachment enthält Informationen über die Instanz
- bei der das EBS Volume angehängt ist. Diese enthalten volumeId, instanceId,
- device, status und attachTime.
- </para>
- <programlisting language="php"><![CDATA[
- $ec2_ebs = new Zend_Service_Amazon_Ec2_Ebs('aws_key','aws_secret_key');
- $return = $ec2_ebs->describeVolume('volumeId');
- ]]></programlisting>
- </example>
- <example id="zend.service.amazon.ec2.ebs.describing.attachedvolumes">
- <title>Angehängte Volumes beschreiben</title>
- <para>
- Um eine Liste der EBS Volumes, die einer laufenden Instanz aktuell angehängt sind,
- zurückzugeben kann man diese Methode aufrufen. Sie gibt nur EBS Volumes zurück die
- Instanzen angehängt sind, welche die übergebene instanceId haben.
- </para>
- <para>
- <code>describeAttachedVolumes</code> gibt die gleichen Informationen wie
- <code>describeVolume</code> zurück, allerdings nur für die EBS Volumes die der
- spezifizierten instanceId aktuell angehängt sind.
- </para>
- <programlisting language="php"><![CDATA[
- $ec2_ebs = new Zend_Service_Amazon_Ec2_Ebs('aws_key','aws_secret_key');
- $return = $ec2_ebs->describeAttachedVolumes('instanceId');
- ]]></programlisting>
- </example>
- <example id="zend.service.amazon.ec2.ebs.describing.snapshot">
- <title>Einen EBS Volume Snapshot beschreiben</title>
- <para>
- <code>describeSnapshot</code> erlaub es Informationen über einen EBS Volume
- Snapshot oder ein Set von EBS Volume Snapshots zu erhalten. Wenn nichts übergeben
- wurde, dann werden Informationen über alle EBS Volume Snapshots zurückgegeben. Wenn
- nur die Beschreibung eines EBS Volume Snapshot benötigt wird kann dessen snapshotId
- übergeben werden, während ein Array von EBS Volume Snapshot Id's übergeben werden
- kann um mehrere zu beschreiben.
- </para>
- <para>
- <code>describeSnapshot</code> gibt ein Array mit Informationen über jedes EBS
- Volume Snapshot zurück. Dieses enthält snapshotId, volumeId, status, startTime
- und progress.
- </para>
- <programlisting language="php"><![CDATA[
- $ec2_ebs = new Zend_Service_Amazon_Ec2_Ebs('aws_key','aws_secret_key');
- $return = $ec2_ebs->describeSnapshot('volumeId');
- ]]></programlisting>
- </example>
- </sect2>
- <sect2 id="zend.service.amazon.ec2.ebs.attachdetach">
- <title>Anhängen und Entfernen von Volumes an Instanzen</title>
- <example id="zend.service.amazon.ec2.ebs.attachdetach.attach">
- <title>Ein EBS Volume anhängen</title>
- <para>
- <code>attachVolume</code> hängt ein EBS Volume an eine laufende Instanz an. Um
- ein Volume anzuhängen muß man die volumeId, die instanceId und das device
- <emphasis>(ex: /dev/sdh)</emphasis> spezifizieren.
- </para>
- <para>
- <code>attachVolume</code> gibt ein Array mit Informationen über über den
- angehängten Status zurück. Dieses enthält volumeId, instanceId, device, status
- und attachTime.
- </para>
- <programlisting language="php"><![CDATA[
- $ec2_ebs = new Zend_Service_Amazon_Ec2_Ebs('aws_key','aws_secret_key');
- $return = $ec2_ebs->attachVolume('volumeId', 'instanceid', '/dev/sdh');
- ]]></programlisting>
- </example>
- <example id="zend.service.amazon.ec2.ebs.attachdetach.detach">
- <title>Ein EBS Volume entfernen</title>
- <para>
- <code>detachVolume</code> entfernt ein EBS Volume von einer laufenden Instanz.
- <code>detachVolume</code> benötigt die Spezifikation der volumeId mit der
- optionalen instanceId und dem device name die beim Anhängen des Volumes angegeben
- wurden. Wenn man das Entfernen erzwingen will kann man den vierten Parameter
- auf <constant>TRUE</constant> setzen und er wird das Volume zwangsweise entfernen.
- </para>
- <para>
- <code>detachVolume</code> gibt ein Array zurück das Statusinformationen über das
- EBS Volume enthält. Diese sind volumeId, instanceId, device, status und attachTime.
- </para>
- <programlisting language="php"><![CDATA[
- $ec2_ebs = new Zend_Service_Amazon_Ec2_Ebs('aws_key','aws_secret_key');
- $return = $ec2_ebs->detachVolume('volumeId');
- ]]></programlisting>
- </example>
- <note>
- <title>Erzwungene Entfernung</title>
- <para>
- Man sollte eine Entfernung nur dann erzwingen wenn der vorhergehende
- Entfernungsversuch nicht sauber durchgeführt wurde (Loggen in eine Instanz, das
- Volume unmounten, und normal entfernen). Diese Option kann zu Datenverlusten oder
- einem beschädigten Dateisystem führen. Diese Option sollte nur als letzter Weg
- verwendet werden um ein Volume von einer fehlerhaften Instanz zu entfernen. Die
- Instanz hat keine Möglichkeit die Caches vom Dateisystem zu flushen oder die
- Metadaten des Dateisystems. Wenn man diese Option verwendet muß man anschließend
- eine Prüfung des Dateisystems und Reparatur Maßnahmen durchführen.
- </para>
- </note>
- </sect2>
- <sect2 id="zend.service.amazon.ec2.ebs.deleting">
- <title>EBS Volumes und Snapshots löschen</title>
- <example id="zend.service.amazon.ec2.ebs.deleting.volume">
- <title>Löschen eines EBS Volums</title>
- <para>
- <code>deleteVolume</code> löscht ein entferntes EBS Volume.
- </para>
- <para>
- <code>deleteVolume</code> gibt ein boolsches <constant>TRUE</constant> oder
- <constant>FALSE</constant> zurück.
- </para>
- <programlisting language="php"><![CDATA[
- $ec2_ebs = new Zend_Service_Amazon_Ec2_Ebs('aws_key','aws_secret_key');
- $return = $ec2_ebs->deleteVolume('volumeId');
- ]]></programlisting>
- </example>
- <example id="zend.service.amazon.ec2.ebs.deleting.snapshot">
- <title>Löschen eines EBS Volume Snapshots</title>
- <para>
- <code>deleteSnapshot</code> löscht einen EBS Volume Snapshot.
- </para>
- <para>
- <code>deleteSnapshot</code> gibt ein boolsches <constant>TRUE</constant> oder
- <constant>FALSE</constant> zurück.
- </para>
- <programlisting language="php"><![CDATA[
- $ec2_ebs = new Zend_Service_Amazon_Ec2_Ebs('aws_key','aws_secret_key');
- $return = $ec2_ebs->deleteSnapshot('snapshotId');
- ]]></programlisting>
- </example>
- </sect2>
- </sect1>
|