我有一個基於 DRBD、Corosync 和 KVM 的簡單的兩節點 CentOS 叢集。
當我嘗試透過 yum 更新其軟體包時,它會列出類似的內容
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
如何判斷更新特定包是否意味著某種停機? (例如需要重新啟動虛擬機器或整機)
答案1
更新服務後幾乎總是需要重新啟動該服務。
如果您詢問更新期間 yum 是否會自動執行此重新啟動,則沒有可靠的方法可以知道(除了提取每個軟體包的 RPM 預安裝/安裝後腳本之外)。 RPM 預先安裝/後安裝腳本可以做任何它想做的事情。
您的最佳實踐應該始終是擁有鏡像生產的開發/測試環境,以便您可以先在這些環境中執行類似的測試。
這不僅有助於確定軟體包升級是否會導致服務重新啟動,而且還可以讓您在投入生產之前發現任何不相容或可能出現的問題。
答案2
kmod-drbd83
是您的 DRBD 內核模組。如果要啟動此更新,您必須卸載它(即停止 drbd)。這意味著 drbd 會停機。
glibc-update 之後,您也應該重新啟動。
因此,切換或故障轉移所有服務、安裝更新、重新啟動並故障復原。
答案3
如果您沒有手動更改任何儲存庫,那麼安裝這些更新是安全的。對於停機,在安裝之前,yum 會通知您這一點。或者至少,安裝後,它會問你要做什麼
答案4
在大多數情況下,您不必重新啟動伺服器,而是在更新過程中重新啟動服務。話雖如此,請查看您的更新列表,我發現您有核心更新,這些更新幾乎總是需要重新啟動伺服器才能加載新核心。