Ich habe einen einfachen CentOS-Cluster mit zwei Knoten, der auf DRBD, Corosync und KVM basiert.
Wenn ich versuche, seine Pakete über yum zu aktualisieren, wird etwas wie
Updating:
clusterlib x86_64 3.0.12.1-23.el6_2.1 updates 94 k
corosync x86_64 1.4.1-4.el6_2.3 updates 188 k
corosynclib x86_64 1.4.1-4.el6_2.3 updates 171 k
drbd83-utils x86_64 8.3.13-1.el6.elrepo elrepo 223 k
glibc x86_64 2.12-1.47.el6_2.12 updates 3.8 M
glibc-common x86_64 2.12-1.47.el6_2.12 updates 14 M
kernel-firmware noarch 2.6.32-220.23.1.el6 updates 6.3 M
kernel-headers x86_64 2.6.32-220.23.1.el6 updates 1.6 M
kmod-drbd83 x86_64 8.3.13-1.el6.elrepo elrepo 174 k
libvirt x86_64 0.9.4-23.el6_2.9 updates 1.5 M
libvirt-client x86_64 0.9.4-23.el6_2.9 updates 2.8 M
libvirt-python x86_64 0.9.4-23.el6_2.9 updates 308 k
matahari x86_64 0.4.4-12.el6_2 updates 18 k
matahari-agent-lib x86_64 0.4.4-12.el6_2 updates 40 k
matahari-broker x86_64 0.4.4-12.el6_2 updates 25 k
matahari-host x86_64 0.4.4-12.el6_2 updates 43 k
matahari-lib x86_64 0.4.4-12.el6_2 updates 43 k
matahari-network x86_64 0.4.4-12.el6_2 updates 36 k
matahari-service x86_64 0.4.4-12.el6_2 updates 51 k
matahari-sysconfig x86_64 0.4.4-12.el6_2 updates 32 k
qemu-img x86_64 2:0.12.1.2-2.209.el6_2.5 updates 338 k
qemu-kvm x86_64 2:0.12.1.2-2.209.el6_2.5 updates 1.2 M
qpid-cpp-client x86_64 0.14-14.el6_2 updates 996 k
qpid-cpp-client-ssl x86_64 0.14-14.el6_2 updates 106 k
qpid-cpp-server x86_64 0.14-14.el6_2 updates 990 k
qpid-cpp-server-ssl x86_64 0.14-14.el6_2 updates 58 k
qpid-qmf x86_64 0.14-7.el6_2 updates 410 k
Wie kann ich feststellen, ob die Aktualisierung eines bestimmten Pakets zu Ausfallzeiten führen würde? (Wenn beispielsweise ein Neustart einer VM oder der gesamten Maschine erforderlich wäre)
Antwort1
Ein Neustart eines Dienstes ist nach der Aktualisierung des besagten Dienstes so gut wie immer erforderlich.
Wenn Sie fragen, ob dieser Neustart während der Aktualisierung automatisch von yum durchgeführt wird, gibt es keine garantierte Möglichkeit, dies herauszufinden (außer durch Extrahieren der RPM-Preinstall-/Postinstall-Skripte jedes Pakets). Das RPM-Preinstall-/Postinstall-Skript kann tun, was es will.
Ihre beste Vorgehensweise sollte immer darin bestehen, Entwicklungs-/Testumgebungen zu haben, die die Produktion widerspiegeln, sodass Sie Tests wie diese zuerst in diesen Umgebungen durchführen können.
Dies ist nicht nur gut, um festzustellen, ob das Paket-Upgrade einen Neustart des Dienstes verursacht, sondern hilft Ihnen auch, etwaige Inkompatibilitäten oder Probleme zu finden, die auftreten könnten, bevor Sie mit der Produktion beginnen.
Antwort2
kmod-drbd83
ist Ihr DRBD-Kernel-Modul. Wenn dieses Update aktiviert werden soll, müssen Sie es entladen (d. h. drbd stoppen). Dies würde eine Ausfallzeit für drbd bedeuten.
Nach einem glibc-Update sollten Sie ebenfalls einen Neustart durchführen.
Wechseln Sie also für alle Dienste oder führen Sie ein Failover durch, installieren Sie die Updates, führen Sie einen Neustart durch und führen Sie ein Failback durch.
Antwort3
Wenn Sie keine Repositorys manuell geändert haben, können Sie diese Updates bedenkenlos installieren. Bei Ausfallzeiten werden Sie vor der Installation von yum darüber informiert. Oder zumindest werden Sie nach der Installation gefragt, was zu tun ist.
Antwort4
In den meisten Fällen müssen Sie den Server nicht neu starten, sondern ein Dienst wird im Update-Prozess neu gestartet. Allerdings sehe ich in Ihrer Update-Liste, dass Sie Kernel-Updates haben, die fast immer einen Neustart des Servers erfordern, um den neuen Kernel zu laden.