2009-01-15 6 views
15

Ich habe eine Amazon EC2-Instanz die Amazon-supplied Fedora 8 64-Bit-AMI mit, die ich 10.Wie wählt eine Amazon EC2-Instanz ihren Kernel aus?

Ich habe versucht, dies zu tun „yum update“, indem Sie auf Fedora aktualisieren möchten, um den Kernel zu aktualisieren und alle Pakete. Dies schien gut zu funktionieren und ich sehe, dass ich jetzt den fc10 Kernel installiert habe, und alle meine installierten Pakete wurden auch auf die Fedora 10 Versionen aktualisiert.

Allerdings habe ich auch bemerkt, dass der fc8-Kernel immer noch installiert ist, und wenn ich mein Image neu starte, kommt der fc8-Kernel zurück, nicht der fc10-Kernel (ich folge aus der Ausgabe von "uname -a")).

Gibt es einige zusätzliche Schritte, die ich machen muss, um mein Image zum Booten unter dem fc10 Kernel zu bekommen, oder ist das überhaupt möglich? Die Amazon-Dokumentation hat nichts Nützliches für mich ergeben.

+0

NB: Diese q Die Frage und ihre Antworten sind für das Jahr 2009 sehr relevant, gelten aber nicht mehr für den modernen Amazon EC2, der (meistens) HVM verwendet und Ihnen erlaubt, Ihren eigenen beliebigen Kernel mitzubringen. – mattdm

Antwort

1

Nach meiner Erfahrung mit Open Ami, ist dies nicht möglich. Das pkg image-update-Tool ist auch in der EC2-Umgebung deaktiviert, um dies genau zu verhindern. Die Überlegung könnte sein, dass jedes Bild einer bestimmten Ramdisk und einem Kernel (aki und ari) zugeordnet ist. Und sie können nicht auf neue aktualisiert werden. Ich denke, dies gilt auch für andere AMIs, wie in Ihrem Fall beobachtet.

1

Wahrscheinlich ist Ihre beste Wette, Ihre eigene AMI zu erstellen; Der Kernel, den Sie beim Laden eines AMI erhalten, ist der Kernel, der beim Erstellen des AMI ausgeführt wurde.

+1

Danke, Amy - ich habe das versucht, aber was ich gefunden habe, war, dass der Kernel, den du bekommst, wenn du ein AMI lädst, derjenige ist, der wann ausgeführt wurde Die Instanz, von der das AMI erstellt wurde, wurde instanziiert. Wenn Sie also mit FC8 beginnen, ein Upgrade auf FC10 durchführen, ein AMI rollen und das neue AMI starten, läuft immer noch der FC8-Kernel. –

2

Technisch, zumindest bis vor kurzem, konnte man keinen Kernel auswählen. Sie konnten nur auswählen, welche Module Sie im Bild verpacken sollen. Amazon behält die volle Kontrolle über den Kernel. Dies ist wahrscheinlich notwendig, da die Xen-Virtualisierung auf eine spezielle Weise mit dem Kernel interagieren muss.

In den letzten Updates (vor einigen Monaten, das letzte Mal, als ich überprüft habe), hat Amazon einige ihrer API und Tools erweitert, so dass Sie aus einem der wenigen Kernel, die sie bereitstellen, auswählen können. Zum Beispiel könnten Sie zwischen 2.6.16 und 2.6.18 wählen.

Es sah so aus, als könnte es irgendwann Unterstützung für die Erstellung eines eigenen "Kernel-Images" geben, aber die dafür notwendigen Tools waren nicht vollständig. Ich vermute, dass sie (Amazon) diese Fähigkeit nur speziellen Partnern zur Verfügung stellten, da ich mehrere Bilder von Drittanbietern sah, die speziell zugeordnete Kernel-Images hatten.

4

Sie können Ihr eigenes Kernel-Image nicht in EC2/Amazon hochladen. Nur autorisierte Benutzer können Kernel-Images hochladen. Auch wenn Sie Ihr eigenes Linux-BS-Image hochladen und in EC2 von diesem booten, wird ein vorher festgelegter Kernel geladen, der nicht mit dem ursprünglich geladenen identisch ist. Dies ist eine Grundsatzentscheidung von Amazon. Das Beste, was Sie tun können, ist, die Standard-Kernel-Version zu ändern, indem Sie aus einer Liste von vorgegebenen und verfügbaren Amazon-Kerneln auswählen, mit denen Ihre Instanz booten soll.

Sie können können jedoch Ihre eigenen Kernel-Modul (s) erstellen oder diejenigen für den Kernel neu erstellen, die geladen wird. Das Kompilieren eines eigenen Moduls oder das erneute Kompilieren der vom Kernel geladenen Module wird ein wenig kompliziert, da der Kernel in Amazon ein modifizierter Kernel mit Xen-Hypervisor ist. Sie müssen den spezifischen Kernel-Quellcode herausfinden, der in Ihrer Instanz geladen wird.

Prost

Ernesto Dito

8

Sie können Ihre eigenen AMI erstellen, aber Sie brauchen, um die Amazon gelieferten Kernel zu verwenden. Das Neueste, das sie zur Verfügung stellen, ist 2.6.21. Ich habe eine Liste der fc (Fedora Core) Kernel, die ich für CentOS-Instanzen verwende. Ich bin mir ziemlich sicher, dass sie auch mit Ubuntu funktionieren.

Sie möchten diese in Ihrem AMI brennen, wenn Sie es mit ec2-register registrieren. Sie können zu dem Zeitpunkt geändert werden, an dem Sie eine Instanz starten, aber ich möchte am Anfang die richtige AKI (Kernel) und ARI (Ramdisk) haben. Hinzufügen von Unterstützung für die ephemeren Festplatten ist ebenfalls hilfreich. Sie zahlen für den zusätzlichen Speicher mit größeren Instanzen, Sie können es auch verwenden. Mein Zauberspruch für EC2-Register:

ec2-register --snapshot snap-12345678 -K pk-XXXXXXXXXXX.pem -C cert-XXXXXXXXXXX.pem \ 
--description "EBS CentOS 5.5 i386" --name "base-image-i386-4" --architecture i386 \ 
--root-device-name /dev/sda1 -b /dev/sdb=ephemeral0 -b /dev/sdc=ephemeral1 \ 
-b /dev/sdd=ephemeral2 -b /dev/sde=ephemeral3 --region us-east-1 \ 
--kernel aki-6eaa4907 --ramdisk ari-e7dc3c8e 

Sie Bereich ändern können, Snapshot-ID, Beschreibung, Name, Bogen usw.

Denken Sie auch daran die Kerne & ramdisks sind regionsspezifisch. Ich kann mich nicht erinnern, wo ich diese Liste hatte, aber ich hatte Schwierigkeiten, sie zu finden. Hoffe es hilft jemandem aus.

2.6.21 Kernel sind erhältlich als:

US Region:

32-Bit:

* aki-6eaa4907 
* ari-e7dc3c8e 
* ami-48aa4921 

64-Bit:

* aki-a3d737ca 
* ari-4fdf3f26 
* ami-f61dfd9f 

EU Region:

32-bi t:

* aki-02486376 
* ari-aa6348de 
* ami-0a48637e 

64-Bit:

* aki-f2634886 
* ari-a06348d4 
* ami-927a51e6 

AP Region:

64-Bit:

* aki-07f58a55 
* ari-27f58a75 
* ami-ddf58a8f 

32-Bit-

* aki-01f58a53 
* ari-25f58a77 
* ami-c3f58a91 
Verwandte Themen