ESXi (iso) per GRUB auf Remote-Server booten/installieren

Du mußt es nicht mounten :)

Mounten kann man lediglich bestehende Dateisysteme, nicht jedoch die Blockdevices, auf denen sie sich befinden.
Im Gegenteil - um ein Image zu schreiben darf die Platte nicht gemountet sein (kann man mittels "mount" überprüfen).

Letzendlich ausführen mußt Du
Code:
dd if=imagedd of=/dev/sda bs=1M
Also
  • Rettungssystem starten
  • Schauen, daß keine partition von sda gemountet ist (notfalls umount)
  • Image irgendwie auf den Server bringen (z.B. per FTP in die RAM-Disk)
  • Image kopieren (dd if=image of=/dev/sda bs=sehr groß)
  • per fdisk -l /dev/sda prüfen
 
Ok, da war ich wohl bisschen vorschnell mit meiner eigenen Umsetzung...

Rettungssystem starten
Schauen, daß keine partition von sda gemountet ist (notfalls umount)
Image irgendwie auf den Server bringen (z.B. per FTP in die RAM-Disk)
Image kopieren (dd if=image of=/dev/sda bs=sehr groß)
per fdisk -l /dev/sda prüfen

Das Image ist nicht direkt ein Image, sondern viel mehr der Inhalt des Images in Form von mehreren Dateien, also inkl. der Partitionen. Ich habe zwar gelesen, dass man Clonezilla auch sagen kann, man möchte nur eine Datei als Image (welches Format wäre da gut? ISO? IMG?). Aber ich hatte es jetzt eben so probiert, dass ich die einzelnen Dateien hochgeladen habe (wget von anderem Server).
Diese sind natürlich so gesehen kein Image. Darum hatte ich die Bootpartition (1GB) im Rescue gemountet, gelöscht und die Dateien dort rauf gespielt, um dann ein 1GB großes Image zu ziehen. Dieses Image wollte ich dann per
Code:
dd lf=/home/esxi.img of=/dev/sda
schreiben.

Aber ich vermute, dass das ein ganz schönes Rumgewurschtel ist. Der Server ist auch nicht korrekt neugestartet bzw. musste ich das Linux neu installieren. Ich lade gerade eine IMG-Datei mit dem USB-Image hoch und versuche es dann mit diesem "echten" Image noch mal. Dieses Image habe ich mit ImgBurn erstellt...

Wenn das nicht geht, werde ich das Image nochmal mit CloneZilla ziehen, aber dann als eine Image-Datei. Ich hoffe aber, dass es auch so klappt.

Muss ich irgendwas in Sachen Dateisystem beachten, wenn ich das Image auf sda schreibe?


Vielen Dank nochmal :)
Martin
 

Attachments

  • fdisk.jpg
    fdisk.jpg
    61.2 KB · Views: 178
Last edited by a moderator:
Du machst Dir das Leben zu kompliziert. Gebraucht wird lediglich ein byteweise vollständiges Image der Platte ohne irgendwelche zusätzlichen Header oder Extrainformationen. Also auf keinen Fall soetwas wie ISO. IMG klingt gut.
Ich kenne Clonezilla nicht, aber gleich der erste Menüpunkt (clonezilla-save-disk) klingt nicht schlecht.

Ziel muß es sein, einen kompletten MBR mit Bootcode und die Partitionen für den VMkernel und das Root-Filesystem genauso wiederherzustellen wie auf Deiner Testmaschine. Wenn nach Abschluß der Kopieraktion "fdisk -l /dev/sda" die oben gepostete Tabelle ergibt, ist alles richtig. Die Partitionsgrößen gelten übrigens für die aktuelle ESXi-Version (4.1u1, Build 348481) bei anderen Versionen (3.5 oder 4.0) sind die einzelnen Partitionen anders angeordnet.

Später wirst Du dann jenseits Zylinder 900 noch eine VMFS-Partition für die Datastores der virtuellen Maschinen anlegen (das geht dann in der graphischen Oberfläche des Clienten), aber dazu muß der Kernel erstmal laufen.

Der Erfolg oder Mißerfolg der Aktion hängt ganz wesentlich davon ab, daß die von Dir gewählte Konfiguration auf den Strato-Server paßt.

Was mir einfällt:
- Unbedingt SSH enablen. Das nennt sich bei VMware "Tech Support Mode" und ist per Default erstmal aus.
- Netzwerkkonfiguration muß passen. Insbesondere IP, Netzmaske, Default-Gateway und DNS müssen stimmen. Andere Werte (z.B. NTP-Server kann man später noch glattziehen, ohne die vorgenannten wirst Du aber keine Verbindung aufbauen können. Alternativ kann man sich diese Werte auch per DHCP zuweisen lassen.
- MAC muß passen. Die von VMware verwendete MAC ist nicht zwangsläufig die Hardwareaddresse der Netzwerkkarte, sondern kann in einer Konfigurationsdatei (/etc/vmware/esx.cfg, dort die Zeile /net/pnic/child[0000]/mac = "...") überschrieben werden. Hier darf keinesfalls etwas anderes als die MAC des Strato-Servers drinstehen, da sonst verschiedene Strato-interne Sicherheitsmechanismen (MAC-Lockdown) anspringen und den Server ganz disablen, um ein Spoofing und damit feindliche Übernahmen anderer Serveraddressen zu unterbinden.
- Wenn Du einen anderen Server im Strato-RZ hast, kann es sinnvoll sein, diesen als Syslog-Server zu konfigurieren. Damit hat man u.U. eine zusätzliche Diagnosemöglichkeit, falls im Bootmoment etwas schiefgeht und der VMware-Server nicht erreichbar ist (serielle Konsole hat Du in diesem Fall nicht).
 
Aus dem Urlaub zurück... ^^

Hallo Whistler.

Vielen Dank für Deine neuen Hinweise!

Nach anderthalb Wochen Ostsee bin ich nun wieder fit und hoffe, das Problem nun bald endgültig zu lösen.

Ich hatte vor dem Urlaub ein kleines Erfolgserlebnis, als ich spaßeshalber mal das Original-Image von ESXi (dd-Datei aus ISO extrahiert) auf den Server kopiert habe und per dd-Befehl auf dev/sda gebracht habe.
Mit "fdisk -l dev/sda" wurde mir dann doch tatsächlich die Tabelle angezeigt, wie sie korrekterweise sein muss.
Nur war das wie gesagt das Original-Image, ohne Netzwerkkonfiguration, weshalb ich als nächstes versucht habe, aus dem USB-Stick auch eine dd-Datei zu ziehen.

Nur leider scheint CloneZilla nicht in der Lage zu sein, ein Image in eine einzelne Datei zu schreiben, sondern es schreibt das Image in Form von mehreren Dateien in ein Verzeichnis und fertig.

Deshalb werde ich jetzt nach einem (verlässlichen) Tool suchen, mit dem ich unter Windows 7 ein für Linux einwandfreies Image vom USB-Stick ziehen kann. Falls jemand so ein Tool kennt, wäre ich sehr dankbar für einen Namen ;)

Ansonsten wünsche ich allen einen frohen Montag und hoffe wie immer auf hilreiche Antworten.
Vielen Dank schonmal! :)

Martin
 
Es gibt Neuigkeiten... sprich wir sind einen Schritt weiter - und stehen vor dem nächsten Problem ;)

Wir haben am Montag einen Linux-Fachmann zu Rate gezogen, mit dem wir in der Lage waren (ehrlich gesagt hat er sich allein darum gekümmert), das konfigurierte Image korrekt auf den Server zu spielen. So weit so gut, könnte man meinen!

Aber ratet mal, was passiert ist, nachdem wir den Server rebootet haben?
.... Naa? - Nix! Was auch sonst -.-

Die RemoteConsole arbeitet nicht so, wie wir es wollen. Wenn man nicht gerade von Normal zu Normal bootet oder von Rescue zu Rescue, wird einfach nichts angezeigt beim Systemstart. Eine KVM wäre möglich, kostet aber extra, weshalb wir uns noch dagegen sträuben.
Stattdessen konnten wir einen Blick auf die Logfiles vom Systemstart werfen:

Code:
Jul 26 20:47:52 Hostd: [2011-07-26 20:47:52.070 FFA98E90 error 'App'] Failed to read header on stream TCP(local=127.0.0.1:51842, peer=127.0.0.1:0): N7Vmacore15SystemExceptionE(Connection reset by peer)
Jul 26 20:49:11 Hostd: [2011-07-26 20:49:11.645 FFA98E90 verbose 'Cimsvc'] Ticket issued for CIMOM version 1.0, user root
Jul 26 20:50:41 Hostd: [2011-07-26 20:50:41.724 3C840B90 verbose 'Cimsvc'] Ticket issued for CIMOM version 1.0, user root
Jul 26 20:52:11 Hostd: [2011-07-26 20:52:11.798 3C8D2B90 verbose 'Cimsvc'] Ticket issued for CIMOM version 1.0, user root
Jul 26 20:52:24 Hostd: [2011-07-26 20:52:24.861 FFF40B90 verbose 'DvsManager'] PersistAllDvsInfo called
Jul 26 20:52:52 Hostd: [2011-07-26 20:52:52.571 3C840B90 verbose 'Proxysvc Req00037'] New proxy client TCP(local=127.0.0.1:49989, peer=127.0.0.1:80)
Jul 26 20:52:52 Hostd: [2011-07-26 20:52:52.572 FFF40B90 info 'Vmomi'] Activation [N5Vmomi10ActivationE:0xffe48560] : Invoke done [waitForUpdates] on [vmodl.query.PropertyCollector:ha-property-collector]
Jul 26 20:52:52 Hostd: [2011-07-26 20:52:52.572 FFF40B90 verbose 'Vmomi'] Arg version:
Jul 26 20:52:52 Hostd: "1"
Jul 26 20:52:52 Hostd: [2011-07-26 20:52:52.572 FFF40B90 info 'Vmomi'] Throw vmodl.fault.RequestCanceled
Jul 26 20:52:52 Hostd: [2011-07-26 20:52:52.572 FFF40B90 info 'Vmomi'] Result:
Jul 26 20:52:52 Hostd: (vmodl.fault.RequestCanceled) {
Jul 26 20:52:52 Hostd:    dynamicType = <unset>, 
Jul 26 20:52:52 Hostd:    faultCause = (vmodl.MethodFault) null, 
Jul 26 20:52:52 Hostd:    msg = "", 
Jul 26 20:52:52 Hostd: }

Unser Linux-Mann wird daraus nicht wirklich schlau, vermutet aber, dass die folgende Zeile schuld am Problem ist:
Code:
Jul 26 20:52:52 Hostd: [2011-07-26 20:52:52.572 FFF40B90 info 'Vmomi'] Activation [N5Vmomi10ActivationE:0xffe48560] : Invoke done [waitForUpdates] on [vmodl.query.PropertyCollector:ha-property-collector]

Das würde bedeuten, dass ESXi beim Start nach irgendwelchen Updates sucht (??), und so lange verharrt, bis er welche findet - was bei noch nicht eingerichteter Netzwerkverbindung logischerweise nie stattfinden wird...

Weiß jemand von euch was mit dieser Meldung bzw. diesem Log anzufangen?

Ich bin wie immer für jede Hilfe und jeden Tipp dankbar! :)

Viele Grüße,
Martin
 
Wie habt Ihr die Kontaktaufnahme versucht?

Die RemoteConsole ist ein getrenntes System, welches an Euren Server über eine serielle Schnittstelle (COM1) angeschlossen ist.
Damit man dort überhaupt etwas sieht, muß Bootloader und Kernel passend konfiguriert sein - das macht Strato bei den vorkonfigurierten Images. Der VMware-Kernel kann das prinziipell auch - wie es geht steht hier (Parameter Logport=1), tut es aber nicht per Default.

Viel interessanter wäre zu sehen, ob die Netzwerkkonfiguration gegriffen hat.
Im einfachsten Fall versucht https://<ServerIP>/. Wenn die allgemeine Infoseite kommt, dann ist alles ok.
Dann könnt ihr mit dem VIX-Clienten draufgehen und weiterkonfigurieren.

Der Logfileauszug hilft leider nicht wirklich weiter.
Die beschriebenen Meldungen kommen, wenn VMware versucht, ein allgemeines Monitoring der Hardware zu machen und nicht der passende CIM-Provider (das ist eine allgemeine Abstraktionsschicht für Hardwareinformationen wie z.B. CPU-Temperatur) für das Board vorhanden ist.
Viel wichtiger ist jedoch eine andere Erkenntnis: Wenn das Log soweit ist, dann hat der Kernel gebootet und läuft quasi idle.

Hier wären die vorherigen Einträge (bei VMware können das sehr viele sein) interessant - insbesondere die Konfigurationsphase des Netzwerks.
 
Hallo Whistler,

wir sind jetzt dank weiterer Hilfe wieder ein paar Schritte weitergekommen - zumindest in der Erkenntnis.
Leider scheint es so, dass es mit dem Stratoserver nicht möglich ist, ESXi zum Laufen zu bringen - aber erstmal von vorne:

Damit man dort überhaupt etwas sieht, muß Bootloader und Kernel passend konfiguriert sein - das macht Strato bei den vorkonfigurierten Images. Der VMware-Kernel kann das prinziipell auch - wie es geht steht hier (Parameter Logport=1), tut es aber nicht per Default.

Der Bootloader (grub) wurde doch durch die Übertragung von ESXi auf sda komplett plattgemacht. Der Link (logport = 1) scheint in diesem Fall keine Lösung zu bringen, da weder der vSphere Client benutzbar ist noch irgendein Startbildschirm von ESXi auf dem Stratoserver sichtbar wird.
Oder muss ich ESXi hier lokal (neu booten und) für den COM1-Port einrichten?

Im einfachsten Fall versucht https://<ServerIP>/. Wenn die allgemeine Infoseite kommt, dann ist alles ok.

Es kommt keine Verbindung zustande, weder mit http noch mit https


Wir haben jetzt als letzten Strohhalm die KVM gebucht und hoffen, dass wir damit den Fehler herausbekommen und lösen können.
Folgende Probleme sind jetzt allerdings noch ans Tageslicht getreten:

- laut Aussage von Strato kann selbst per KVM kein ISO-Image gemountet werden (was die Installation deutlich vereinfacht hätte)
- mangels fehlender zweiter Netzwerkkarte könnte der Zugriff auf den vHost (laut Aussage vom Experten) problematisch werden

Unsere letzte Hoffnung ist jetzt der KVM-Zugriff, um am Ende doch noch herauszufinden, warum der Server trotz scheinbar sauberer Partitionen immer noch nicht vernünftig startet.

Ich werde weiter berichten...


Viele Grüße,
Martin
 
So, endgültige Entscheidung: Serverwechsel zu Hetzner!

Nachdem wir tagelang erfolglos versucht haben, die KVM von Strato zu nutzen (Login zuerst nicht möglich... danach Login zwar möglich, aber es wurden keine Tastatureingaben akzeptiert.... mittlerweile geht es wohl - im IE 6.....), haben wir uns dazu entschieden, Strato zu "begraben".

Mangels internem Routing und nicht verbauter zweiter Netzwerkkarte war an einen Betrieb von ESXi nicht mehr zu denken. Eine Lösung hätte darin bestanden, entweder die auf dem lokalen ESXi-Server installierten Images (bzw. die darin enthaltenen Daten des Webshops) per netcat auf das Linux vom Stratoserver zu ziehen und dort ohne ESXi zu betreiben. Oder aber wir hätten versucht, die VMware-Images irgendwie in IMG umzuwandeln und ganz normal auf dem Linux des Stratoservers zu installieren.

Beide Möglichkeiten waren laut Aussage eines Linux-Fachmanns mit ESXi-Erfahrung möglich, aber das hätte uns wieder Tage, wenn nicht Wochen, an Zeit gekostet und eine 100%ige Sicherheit hätten wir auch dann nicht gehabt.

Darum jetzt die Entscheidung gegen Strato und für Hetzner. Bei Strato lassen wir leider Lehrgeld liegen, denn die Laufzeit ist 12 Monate, die wir bezahlen werden müssen, auch wenn ich heute den Server gekündigt habe.

Abschließend kann man sagen, dass der Titel dieses Threads mangels Hintergrundwissen im Vorfeld falsch gewählt wurde:
ESXi sollte/kann nicht auf einem bestehenden OS installiert werden, Vielmehr wurde es dafür konzipiert, direkt auf der Hardware zu laufen.
Weiterhin ist und war es der richtige Weg, das ESXi auf einem lokal vorhandenen Server zu installieren und das Image dann auf den entsprechenden externen Server zu schieben.
Aufgrund technischer Grenzen und Probleme hat das bei Strato nicht zum Erfolg geführt, denn auch nachdem das (bereits konfigurierte) Image auf den Strato-Server geschoben wurde, konnte kein Zugriff von außen stattfinden.

In unserem Fall ist die einzig vertretbare Lösung, das Vorhaben auf einem geeigneten Hetzner-Server zu realisieren. Leider war uns/mir am Anfang nicht klar, welche Voraussetzungen so ein Server für ESXi erfüllen muss - mal abgesehen von einer entsprechend starken CPU, genug RAM und einer ausreichend großen Festplatte.

Ich bedanke mich ganz herzlich für Eure Hinweise und Unterstützung und werde dem Forum sicherlich weiter treu bleiben (denn auch bei Hetzner stoße ich bestimmt wieder an die ein oder andere Grenze von mir ;)).
Aber ich habe auch viel dazu gelernt.

In dem Sinne... nochmal vielen Dank und bis bald!

Martin
 
Hallo Zusammen,

ich habe mir einen Strato Limited Server bestellt um das sog. Problem nachzustellen und da ich selber mal ESXi am laufen bringen wollte.

Also ich bin nun soweit das der ESXi Server bootet und man mit der normalen Serialen Console sogar die ESXi Konfiguration sieht und anpassen kann.

Leider scheitere ich derzeit noch daran die IP-Adresse der Serviceconsole zu konfigurieren. Ich ahne das Strato Pakete von getunnelten Nics ablehnt.

Wie folgt bekommt man ESXi auf sein Server:

VMware Workstation nutzen:
ESXi 4.1 VM anlegen. Die Netzwerkkarte über Erweitert mit der Strato MAC Konfigurieren
Installation von ESXi 4.1 durchführen
ESXi Starten
per vClient auf den ESXi Verbinden und und den Advanced Settings Konsolen Redirection Konfiguieren auf COM1
Danach mit ein Livelinux (ubuntu) von CD Booten und 2. Disk einhängen und formatieren
per dd if=/dev/sda of=/mnt/stratoimagedd
dann dieses per tar verpacken inkl. gunzip
Stratoserver in Recovery booten und lokale MD raid löschen und partionen löschen
per scp von ubuntu das gepackte dd image auf die recovery übertragen.
dann auf recovery dd if=/root/stratoimagedd of=/dev/sda
Danach reboot und Serial Console aktivieren.
Und siehe da sieht man das ESXi "Bios Konfigurationsmenü"

Wenn ich das am laufen bekomme gibt es auf mein Blog ein komplettes Howto inkl. Screenshots also schaut vorbei.

blog.k-liefke.de

PS. Bin VMware Techniker bei einen Dienstleister ;)
 
Last edited by a moderator:
Back
Top