Zend_Service_Amazon_Ec2-Ebs.xml 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 24249 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.service.amazon.ec2.ebs">
  5. <title>Zend_Service_Amazon_Ec2: Elastischer Block Speicher (EBS)</title>
  6. <para>
  7. Amazon Elastischer Block Speicher (Amazon EBS) ist ein neuer Typ an Speicher der speziell
  8. für Amazon EC2 Instanzen entwickelt wurde. Amazon EBS erlaubt es ein Volume zu erstellen
  9. das als Device von Amazon EC2 Instanzen gemountet werden kann. Amazon EBS Volums verhalten
  10. sich wie rohe unformatierte externe Block Devices. Sie haben einen vom Benutzer angegebenen
  11. Device Namen und bieten ein Block Device Interface. Man kann ein File System auf Amazon EBS
  12. Volums laden, oder Sie genauso verwenden wie man ein Block Device verwenden würde.
  13. </para>
  14. <para>
  15. Man kann bis zu zwanzig Amazon EBS Volums jeder Größe erstellen (von einem GiB bis zu einem
  16. TiB). Jedes Amazon EBS Volume kann jeder Amazon EC2 Instanz angehängt werden welche in der
  17. selben Availability Zone ist, oder kann auch un-angehängt bleiben.
  18. </para>
  19. <para>
  20. Amazon EBS bietet die Möglichkeit einen Snapshot der eigenen Amazon EBS Volums auf Amazon
  21. S3 zu erstellen. Man kann diese Snapshots als Startpunkt für neue Amazon EBS Volums
  22. verwenden und kann eigene Daten auf diese Art für eine lange Zeit schützen.
  23. </para>
  24. <sect2 id="zend.service.amazon.ec2.ebs.creating">
  25. <title>EBS Volums und Snapshots erstellen</title>
  26. <example id="zend.service.amazon.ec2.ebs.creating.volume">
  27. <title>Ein neues EBS Volume erstellen</title>
  28. <para>
  29. Um ein brandneues EBS Volume zu erstellen benötigt man die Größe und die Zone in
  30. der das EBS Volume sein soll.
  31. </para>
  32. <para>
  33. <code>createNewVolume</code> gibt ein Array zurück das Informationen über das neue
  34. Volume enthält. Diese beinhalten volumeId, size, zone, status und createTime.
  35. </para>
  36. <programlisting language="php"><![CDATA[
  37. $ec2_ebs = new Zend_Service_Amazon_Ec2_Ebs('aws_key','aws_secret_key');
  38. $return = $ec2_ebs->createNewVolume(40, 'us-east-1a');
  39. ]]></programlisting>
  40. </example>
  41. <example id="zend.service.amazon.ec2.ebs.creating.volumesnapshot">
  42. <title>Ein EBS Volume von einem Snapshot erstellen</title>
  43. <para>
  44. Um ein EBS Volume von einem Snapshot zu erstellen benötigt man die snapshot_id
  45. in die Zone in der man das EBS Volume haben will.
  46. </para>
  47. <para>
  48. <code>createVolumeFromSnapshot</code> gibt ein Array mit Informationen zurück.
  49. Diese enthalten volumeId, size, zone, status, createTime und snapshotId.
  50. </para>
  51. <programlisting language="php"><![CDATA[
  52. $ec2_ebs = new Zend_Service_Amazon_Ec2_Ebs('aws_key','aws_secret_key');
  53. $return = $ec2_ebs->createVolumeFromSnapshot('snap-78a54011', 'us-east-1a');
  54. ]]></programlisting>
  55. </example>
  56. <example id="zend.service.amazon.ec2.ebs.creating.snapshot">
  57. <title>Einen Snapshot von einem EBS Volume erstellen</title>
  58. <para>
  59. Um einen Snapshot von einem EBS Volume zu erstellen wird die volumeId des EBS
  60. Volums benötigt.
  61. </para>
  62. <para>
  63. <code>createSnapshot</code> gibt ein Array zurück das Informationen über den neuen
  64. Volume Snapshot enthält. Dieses beinhaltet snapshotId, volumeId, status, startTime
  65. und progress.
  66. </para>
  67. <programlisting language="php"><![CDATA[
  68. $ec2_ebs = new Zend_Service_Amazon_Ec2_Ebs('aws_key','aws_secret_key');
  69. $return = $ec2_ebs->createSnapshot('volumeId');
  70. ]]></programlisting>
  71. </example>
  72. </sect2>
  73. <sect2 id="zend.service.amazon.ec2.ebs.describing">
  74. <title>EBS Volumes und Snapshots beschreiben</title>
  75. <example id="zend.service.amazon.ec2.ebs.describing.volume">
  76. <title>Ein EBS Volume beschreiben</title>
  77. <para>
  78. <code>describeVolume</code> erlaubt es Informationen über ein EBS Volume oder ein
  79. Set von EBS Volums zu erhalten. Wenn nichts angegeben wird, werden alle EBS Volums
  80. zurück gegeben. Wenn nur ein EBS Volume beschrieben werden soll, kann ein String
  81. übergeben werden, während ein Array von EBS Volume Id's übergeben werden können um
  82. diese zu beschreiben.
  83. </para>
  84. <para>
  85. <code>describeVolume</code> gibt ein Array mit Informationen über jedes Volume
  86. zurück. Dieses enthält die volumeId, size, status und createTime. Wenn das Volume
  87. an eine Instanz angehängt ist, wird ein zusätzlicher Wert attachmentSet
  88. zurückgegeben. Ein gesetztes Attachment enthält Informationen über die Instanz
  89. bei der das EBS Volume angehängt ist. Diese enthalten volumeId, instanceId,
  90. device, status und attachTime.
  91. </para>
  92. <programlisting language="php"><![CDATA[
  93. $ec2_ebs = new Zend_Service_Amazon_Ec2_Ebs('aws_key','aws_secret_key');
  94. $return = $ec2_ebs->describeVolume('volumeId');
  95. ]]></programlisting>
  96. </example>
  97. <example id="zend.service.amazon.ec2.ebs.describing.attachedvolumes">
  98. <title>Angehängte Volumes beschreiben</title>
  99. <para>
  100. Um eine Liste der EBS Volumes, die einer laufenden Instanz aktuell angehängt sind,
  101. zurückzugeben kann man diese Methode aufrufen. Sie gibt nur EBS Volumes zurück die
  102. Instanzen angehängt sind, welche die übergebene instanceId haben.
  103. </para>
  104. <para>
  105. <code>describeAttachedVolumes</code> gibt die gleichen Informationen wie
  106. <code>describeVolume</code> zurück, allerdings nur für die EBS Volumes die der
  107. spezifizierten instanceId aktuell angehängt sind.
  108. </para>
  109. <programlisting language="php"><![CDATA[
  110. $ec2_ebs = new Zend_Service_Amazon_Ec2_Ebs('aws_key','aws_secret_key');
  111. $return = $ec2_ebs->describeAttachedVolumes('instanceId');
  112. ]]></programlisting>
  113. </example>
  114. <example id="zend.service.amazon.ec2.ebs.describing.snapshot">
  115. <title>Einen EBS Volume Snapshot beschreiben</title>
  116. <para>
  117. <code>describeSnapshot</code> erlaub es Informationen über einen EBS Volume
  118. Snapshot oder ein Set von EBS Volume Snapshots zu erhalten. Wenn nichts übergeben
  119. wurde, dann werden Informationen über alle EBS Volume Snapshots zurückgegeben. Wenn
  120. nur die Beschreibung eines EBS Volume Snapshot benötigt wird kann dessen snapshotId
  121. übergeben werden, während ein Array von EBS Volume Snapshot Id's übergeben werden
  122. kann um mehrere zu beschreiben.
  123. </para>
  124. <para>
  125. <code>describeSnapshot</code> gibt ein Array mit Informationen über jedes EBS
  126. Volume Snapshot zurück. Dieses enthält snapshotId, volumeId, status, startTime
  127. und progress.
  128. </para>
  129. <programlisting language="php"><![CDATA[
  130. $ec2_ebs = new Zend_Service_Amazon_Ec2_Ebs('aws_key','aws_secret_key');
  131. $return = $ec2_ebs->describeSnapshot('volumeId');
  132. ]]></programlisting>
  133. </example>
  134. </sect2>
  135. <sect2 id="zend.service.amazon.ec2.ebs.attachdetach">
  136. <title>Anhängen und Entfernen von Volumes an Instanzen</title>
  137. <example id="zend.service.amazon.ec2.ebs.attachdetach.attach">
  138. <title>Ein EBS Volume anhängen</title>
  139. <para>
  140. <code>attachVolume</code> hängt ein EBS Volume an eine laufende Instanz an. Um
  141. ein Volume anzuhängen muß man die volumeId, die instanceId und das device
  142. <emphasis>(ex: /dev/sdh)</emphasis> spezifizieren.
  143. </para>
  144. <para>
  145. <code>attachVolume</code> gibt ein Array mit Informationen über über den
  146. angehängten Status zurück. Dieses enthält volumeId, instanceId, device, status
  147. und attachTime.
  148. </para>
  149. <programlisting language="php"><![CDATA[
  150. $ec2_ebs = new Zend_Service_Amazon_Ec2_Ebs('aws_key','aws_secret_key');
  151. $return = $ec2_ebs->attachVolume('volumeId', 'instanceid', '/dev/sdh');
  152. ]]></programlisting>
  153. </example>
  154. <example id="zend.service.amazon.ec2.ebs.attachdetach.detach">
  155. <title>Ein EBS Volume entfernen</title>
  156. <para>
  157. <code>detachVolume</code> entfernt ein EBS Volume von einer laufenden Instanz.
  158. <code>detachVolume</code> benötigt die Spezifikation der volumeId mit der
  159. optionalen instanceId und dem device name die beim Anhängen des Volumes angegeben
  160. wurden. Wenn man das Entfernen erzwingen will kann man den vierten Parameter
  161. auf <constant>TRUE</constant> setzen und er wird das Volume zwangsweise entfernen.
  162. </para>
  163. <para>
  164. <code>detachVolume</code> gibt ein Array zurück das Statusinformationen über das
  165. EBS Volume enthält. Diese sind volumeId, instanceId, device, status und attachTime.
  166. </para>
  167. <programlisting language="php"><![CDATA[
  168. $ec2_ebs = new Zend_Service_Amazon_Ec2_Ebs('aws_key','aws_secret_key');
  169. $return = $ec2_ebs->detachVolume('volumeId');
  170. ]]></programlisting>
  171. </example>
  172. <note>
  173. <title>Erzwungene Entfernung</title>
  174. <para>
  175. Man sollte eine Entfernung nur dann erzwingen wenn der vorhergehende
  176. Entfernungsversuch nicht sauber durchgeführt wurde (Loggen in eine Instanz, das
  177. Volume unmounten, und normal entfernen). Diese Option kann zu Datenverlusten oder
  178. einem beschädigten Dateisystem führen. Diese Option sollte nur als letzter Weg
  179. verwendet werden um ein Volume von einer fehlerhaften Instanz zu entfernen. Die
  180. Instanz hat keine Möglichkeit die Caches vom Dateisystem zu flushen oder die
  181. Metadaten des Dateisystems. Wenn man diese Option verwendet muß man anschließend
  182. eine Prüfung des Dateisystems und Reparatur Maßnahmen durchführen.
  183. </para>
  184. </note>
  185. </sect2>
  186. <sect2 id="zend.service.amazon.ec2.ebs.deleting">
  187. <title>EBS Volumes und Snapshots löschen</title>
  188. <example id="zend.service.amazon.ec2.ebs.deleting.volume">
  189. <title>Löschen eines EBS Volums</title>
  190. <para>
  191. <code>deleteVolume</code> löscht ein entferntes EBS Volume.
  192. </para>
  193. <para>
  194. <code>deleteVolume</code> gibt ein boolsches <constant>TRUE</constant> oder
  195. <constant>FALSE</constant> zurück.
  196. </para>
  197. <programlisting language="php"><![CDATA[
  198. $ec2_ebs = new Zend_Service_Amazon_Ec2_Ebs('aws_key','aws_secret_key');
  199. $return = $ec2_ebs->deleteVolume('volumeId');
  200. ]]></programlisting>
  201. </example>
  202. <example id="zend.service.amazon.ec2.ebs.deleting.snapshot">
  203. <title>Löschen eines EBS Volume Snapshots</title>
  204. <para>
  205. <code>deleteSnapshot</code> löscht einen EBS Volume Snapshot.
  206. </para>
  207. <para>
  208. <code>deleteSnapshot</code> gibt ein boolsches <constant>TRUE</constant> oder
  209. <constant>FALSE</constant> zurück.
  210. </para>
  211. <programlisting language="php"><![CDATA[
  212. $ec2_ebs = new Zend_Service_Amazon_Ec2_Ebs('aws_key','aws_secret_key');
  213. $return = $ec2_ebs->deleteSnapshot('snapshotId');
  214. ]]></programlisting>
  215. </example>
  216. </sect2>
  217. </sect1>