Zend_Service_Amazon_Ec2-Ebs.xml 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 14978 -->
  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 role="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. ]]>
  40. </programlisting>
  41. </example>
  42. <example id="zend.service.amazon.ec2.ebs.creating.volumesnapshot">
  43. <title>Ein EBS Volume von einem Snapshot erstellen</title>
  44. <para>
  45. Um ein EBS Volume von einem Snapshot zu erstellen benötigt man die snapshot_id
  46. in die Zone in der man das EBS Volume haben will.
  47. </para>
  48. <para>
  49. <code>createVolumeFromSnapshot</code> gibt ein Array mit Informationen zurück.
  50. Diese enthalten volumeId, size, zone, status, createTime und snapshotId.
  51. </para>
  52. <programlisting role="php"><![CDATA[
  53. $ec2_ebs = new Zend_Service_Amazon_Ec2_Ebs('aws_key','aws_secret_key');
  54. $return = $ec2_ebs->createVolumeFromSnapshot('snap-78a54011', 'us-east-1a');
  55. ]]>
  56. </programlisting>
  57. </example>
  58. <example id="zend.service.amazon.ec2.ebs.creating.snapshot">
  59. <title>Einen Snapshot von einem EBS Volume erstellen</title>
  60. <para>
  61. Um einen Snapshot von einem EBS Volume zu erstellen wird die volumeId des EBS
  62. Volums benötigt.
  63. </para>
  64. <para>
  65. <code>createSnapshot</code> gibt ein Array zurück das Informationen über den neuen
  66. Volume Snapshot enthält. Dieses beinhaltet snapshotId, volumeId, status, startTime
  67. und progress.
  68. </para>
  69. <programlisting role="php"><![CDATA[
  70. $ec2_ebs = new Zend_Service_Amazon_Ec2_Ebs('aws_key','aws_secret_key');
  71. $return = $ec2_ebs->createSnapshot('volumeId');
  72. ]]>
  73. </programlisting>
  74. </example>
  75. </sect2>
  76. <sect2 id="zend.service.amazon.ec2.ebs.describing">
  77. <title>EBS Volumes und Snapshots beschreiben</title>
  78. <example id="zend.service.amazon.ec2.ebs.describing.volume">
  79. <title>Ein EBS Volume beschreiben</title>
  80. <para>
  81. <code>describeVolume</code> erlaubt es Informationen über ein EBS Volume oder ein
  82. Set von EBS Volums zu erhalten. Wenn nichts angegeben wird, werden alle EBS Volums
  83. zurück gegeben. Wenn nur ein EBS Volume beschrieben werden soll, kann ein String
  84. übergeben werden, wärend ein Array von EBS Volume Id's übergeben werden können um
  85. diese zu beschreiben.
  86. </para>
  87. <para>
  88. <code>describeVolume</code> gibt ein Array mit Informationen über jedes Volume
  89. zurück. Dieses enthält die volumeId, size, status und createTime. Wenn das Volume
  90. an eine Instanz angehängt ist, wird ein zusätzlicher Wert attachmentSet
  91. zurückgegeben. Ein gesetztes Attachment enthält Informationen über die Instanz
  92. bei der das EBS Volume angehängt ist. Diese enthalten volumeId, instanceId,
  93. device, status und attachTime.
  94. </para>
  95. <programlisting role="php"><![CDATA[
  96. $ec2_ebs = new Zend_Service_Amazon_Ec2_Ebs('aws_key','aws_secret_key');
  97. $return = $ec2_ebs->describeVolume('volumeId');
  98. ]]>
  99. </programlisting>
  100. </example>
  101. <example id="zend.service.amazon.ec2.ebs.describing.attachedvolumes">
  102. <title>Angehängte Volumes beschreiben</title>
  103. <para>
  104. Um eine Liste der EBS Volumes, die einer laufenden Instanz aktuell angehängt sind,
  105. zurückzugeben kann man diese Methode aufrufen. Sie gibt nur EBS Volumes zurück die
  106. der übergebenen instanceId angehängt sind.
  107. </para>
  108. <para>
  109. <code>describeAttachedVolumes</code> gibt die gleichen Informationen wie
  110. <code>describeVolume</code> zurück, allerdings nur für die EBS Volumes die der
  111. spezifizierten instanceId aktuell angehängt sind.
  112. </para>
  113. <programlisting role="php"><![CDATA[
  114. $ec2_ebs = new Zend_Service_Amazon_Ec2_Ebs('aws_key','aws_secret_key');
  115. $return = $ec2_ebs->describeAttachedVolumes('instanceId');
  116. ]]>
  117. </programlisting>
  118. </example>
  119. <example id="zend.service.amazon.ec2.ebs.describing.snapshot">
  120. <title>Einen EBS Volume Snapshot beschreiben</title>
  121. <para>
  122. <code>describeSnapshot</code> erlaub es Informationen über einen EBS Volume
  123. Snapshot oder ein Set von EBS Volume Snapshots zu erhalten. Wenn nichts übergeben
  124. wurde, dann werden Informationen über alle EBS Volume Snapshots zurückgegeben. Wenn
  125. nur die Beschreibung eines EBS Volume Snapshot benötigt wird kann dessen snapshotId
  126. übergeben werden, wärend ein Array von EBS Volume Snapshot Id's übergeben werden
  127. kann um mehrere zu beschreiben.
  128. </para>
  129. <para>
  130. <code>describeSnapshot</code> gibt ein Array mit Informationen über jedes EBS
  131. Volume Snapshot zurück. Dieses enthält snapshotId, volumeId, status, startTime
  132. und progress.
  133. </para>
  134. <programlisting role="php"><![CDATA[
  135. $ec2_ebs = new Zend_Service_Amazon_Ec2_Ebs('aws_key','aws_secret_key');
  136. $return = $ec2_ebs->describeSnapshot('volumeId');
  137. ]]>
  138. </programlisting>
  139. </example>
  140. </sect2>
  141. <sect2 id="zend.service.amazon.ec2.ebs.attachdetach">
  142. <title>Anhängen und Entfernen von Volumes an Instanzen</title>
  143. <example id="zend.service.amazon.ec2.ebs.attachdetach.attach">
  144. <title>Ein EBS Volume anhängen</title>
  145. <para>
  146. <code>attachVolume</code> hängt ein EBS Volume an eine laufende Instanz an. Um
  147. ein Volume anzuhängen muß man die volumeId, die instanceId und das device
  148. <emphasis>(ex: /dev/sdh)</emphasis> spezifizieren.
  149. </para>
  150. <para>
  151. <code>attachVolume</code> gibt ein Array mit Informationen über über den
  152. angehängten Status zurück. Dieses enthält volumeId, instanceId, device, status
  153. und attachTime.
  154. </para>
  155. <programlisting role="php"><![CDATA[
  156. $ec2_ebs = new Zend_Service_Amazon_Ec2_Ebs('aws_key','aws_secret_key');
  157. $return = $ec2_ebs->attachVolume('volumeId', 'instanceid', '/dev/sdh');
  158. ]]>
  159. </programlisting>
  160. </example>
  161. <example id="zend.service.amazon.ec2.ebs.attachdetach.detach">
  162. <title>Ein EBS Volume entfernen</title>
  163. <para>
  164. <code>detachVolume</code> entferne ein EBS Volume von einer laufenden Instanz.
  165. <code>detachVolume</code> benötigt die Spezifikation der volumeId mit der
  166. optionalen instanceId und dem device name die beim Anhängen des Volumes angegeben
  167. wurden. Wenn man das Entfernen erzwingen will kann man den vierten Parameter
  168. auf true setzen und er wird das Volume zwangsweise entfernen.
  169. </para>
  170. <para>
  171. <code>detachVolume</code> gibt ein Array zurück das Statusinformationen über das
  172. EBS Volume enthält. Diese sind volumeId, instanceId, device, status und attachTime.
  173. </para>
  174. <programlisting role="php"><![CDATA[
  175. $ec2_ebs = new Zend_Service_Amazon_Ec2_Ebs('aws_key','aws_secret_key');
  176. $return = $ec2_ebs->detachVolume('volumeId');
  177. ]]>
  178. </programlisting>
  179. </example>
  180. <note>
  181. <title>Erzwingene Entfernung</title>
  182. <para>
  183. Man sollte eine Entfernung nur dann erzwingen wenn der vorhergehende
  184. Entfernungsversuch nicht sauber durchgeführt wurde (Loggen in eine Instanz, das
  185. Volume unmounten, und normal entfernen). Diese Option kann zu Datenverlusten oder
  186. einem beschädigten Dateisystem führen. Diese Option sollte nur als letzter Weg
  187. verwendet werden um ein Volume von einer fehlerhaften Instanz zu entfernen. Die
  188. Instanz hat keine Möglichkeit die Caches vom Dateisystem zu flushen oder die
  189. Metadaten des Dateisystems. Wenn man diese Option verwendet muß man anschließend
  190. eine Prüfung des Dateisystems und Reparatur Maßnahmen durchführen.
  191. </para>
  192. </note>
  193. </sect2>
  194. <sect2 id="zend.service.amazon.ec2.ebs.deleting">
  195. <title>EBS Volumes und Snapshots löschen</title>
  196. <example id="zend.service.amazon.ec2.ebs.deleting.volume">
  197. <title>Löschen eines EBS Volums</title>
  198. <para>
  199. <code>deleteVolume</code> löscht ein entferntes EBS Volume.
  200. </para>
  201. <para>
  202. <code>deleteVolume</code> gibt ein boolsches true oder false zurück.
  203. </para>
  204. <programlisting role="php"><![CDATA[
  205. $ec2_ebs = new Zend_Service_Amazon_Ec2_Ebs('aws_key','aws_secret_key');
  206. $return = $ec2_ebs->deleteVolume('volumeId');
  207. ]]>
  208. </programlisting>
  209. </example>
  210. <example id="zend.service.amazon.ec2.ebs.deleting.snapshot">
  211. <title>Löschen eines EBS Volume Snapshots</title>
  212. <para>
  213. <code>deleteSnapshot</code> löscht einen EBS Volume Snapshot.
  214. </para>
  215. <para>
  216. <code>deleteSnapshot</code> gibt ein boolsches true oder false zurück.
  217. </para>
  218. <programlisting role="php"><![CDATA[
  219. $ec2_ebs = new Zend_Service_Amazon_Ec2_Ebs('aws_key','aws_secret_key');
  220. $return = $ec2_ebs->deleteSnapshot('snapshotId');
  221. ]]>
  222. </programlisting>
  223. </example>
  224. </sect2>
  225. </sect1>