Eucalyptus: Erstellen eines Image aus einem ISO (Xen)

[ 0 ] Juni 2, 2010 |

Dieser Artikel beschreibt, wie mittels Xen und dem ISO Image eines Gast Betriebssystems das installiert werden soll, ein Root Dateiystem für Eucalyptus erstellt wird.

Voraussetzung

  • Hardware Virtualisierung Unterstützung auf dem System (Hardware-assisted virtualization)
  • Funktionsfähige Xen Umgebung (domU muss gestartet werden können)

Zunächst muss ein ISO Image einer Distribution (Gastbetriebssystem), das installiert werden soll, vorhanden sein. Anschließend wird eine virtuelle Festplatte (virtual disk) z.B. mit der Größe von 4GB erstellt.

dd if=/dev/zero of=new.img bs=1M count=4096

Nun muss eine Xen Konfigurationsdatei (xen.cfg) erzeugt werden, um das ISO Image zu booten. Diese könnte ähnlich der Folgenden aussehen.

name = "bootFromISO"
kernel = "/usr/lib/xen/boot/hvmloader"
memory = 1024
builder = "hvm"
device_model = "/usr/lib64/xen/bin/qemu-dm"
boot = "d"
disk = ['file:PATH_TO_ISO,hdc:cdrom,r',
'file:PATH_TO/new.img,sda,w']
vif = ['mac=00:01:01:00:00:03, bridge=xenbr0']
dhcp="on"
vnc = 1
vncdisplay = 7
pae = 1

Achtung!!! Es muss auf jedenfall das device_model und der kernel so angepasst werden, damit der Pfad in der jeweiligen Distribution passt.

Als nächstes wird Xen, also der domU gestartet.

xen create xen.cfg

Anschließend kann man sich mit dem VNC Viewer verbinden.

xvncviewer localhost:7

Nun kann die Distribution wie gewöhnlich installiert werden. Dabei sollte darauf geachtet werden, das kein lvm oder md benutzt wird und die Installation innerhalb einer einzigen Partition erfolgt. Zudem sollte man sich merken, in welcher Partition die Distribution installiert wurde.

Achtung!!! Einige Distributionen merken sich die Netzwerkschnittstelle anhand der MAC Adresse. Somit ist die Schnittstelle immer dieselbe. Innerhalb von Eucalyptus muss die Distribution dazu bewegt werden, dass sie die Netzwerkschnittstelle “vergisst”, damit jede Instanz die Schnittstelle als die primäre Schnittstelle erkennt.

Im Falle von Debian / Ubuntu kann das unter /etc/udev/rules.d/*net* erfolgen. Im Falle von CentOS unter /etc/network-scripts/ifcfg-eth0. Sollten die Anpassungen nicht erfolgen, wird die Instanz keinen Netzwerkzugriff erhalten.

Jetzt wird Xen (domU) wieder beendet.

Nun müssen wir den Startblock und die Blockgröße des Root-Dateisystems identifizieren. Das kann mittels parted erfolgen.

parted new.img

Parted muss nun so konfiguriert werden, dass es die Blockgröße als Einheit verwendet. Erst “U” dann “b” drücken. (Damit wird die Einheit auf Blocks umgestellt.)

(parted) U
Unit? [compact]? b

Mit “p” kann die aktuelle Partitionstabelle ausgegeben werden.

Wir notieren uns den Startpunkt und die Größe der entsprechenden Partition. Für unser Beispiel nehmen wir an, dass sich der Startpunkt bei 32256 befindet und es sich bei der Größe um 10000000 handelt.

Nun extrahieren wir das Dateisystem.

dd if=new.img of=rootfs.img bs=1 skip=32256 count=10000000

Damit haben wir das Image ‘rootfs.img’ erhalten, welches das Root Dateisystem beinhaltet. Es sollte nun noch sichergestellt sein, dass dieses kompatibel zu dem verwendeten Kernel und der initrd innerhalb der Cloud Umgebung ist.

Quelle

Tags: , , , , , , , , , , ,

Category: Tutorials

About the Author ()

Rene Buest is Principal Analyst and Senior Advisor at renebuest research, covering cloud computing, business technology and collaboration. He is member of the GigaOm Pro Analyst Network and top cloud computing blogger in Germany. Worldwide he is one of the top 50 bloggers in this area. For more than 16 years he is focused on the strategic use of information technology in businesses and the IT impact on our society as well as disruptive technologies. Rene Buest is the author of numerous professional cloud computing and technology articles, speaker and participant of experts rounds. On CloudUser.de he writes about topics from the fields of cloud computing, it-infrastructures, technologies, management and strategies and is moving on Twitter via his account @ReneBuest. Rene Buest is organizer of numerous cloud computing and technology events. Covering the CloudCamp Hamburg 2010, CloudCamp Frankfurt 2012, CloudOps Summit 2012 and the Amazon Web Services and Windows Azure User Groups in Germany. Rene Buest is a fully qualified specialist for system integration und holds a diploma in computer engineering from the Hochschule Bremen (Dipl.-Informatiker (FH)) as well as a M.Sc. in IT-Management and Information Systems from the FHDW Paderborn. Detailed curriculum vitaes are hosted on XING and LinkedIn.

Leave a Reply

You must be logged in to post a comment.