私はDRBD、Corosync、KVMをベースにしたシンプルな2ノードの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
特定のパッケージを更新すると、何らかのダウンタイムが発生するかどうかをどのように判断すればよいでしょうか? (たとえば、VM またはマシン全体を再起動する必要があるかどうか)
答え1
サービスの再起動は、そのサービスを更新した後は必ず必要になります。
更新中に yum によってこの再起動が自動的に実行されるかどうか尋ねている場合、それを確認する確実な方法はありません (各パッケージの RPM プレインストール/ポストインストール スクリプトを抽出する以外)。RPM プレインストール/ポストインストール スクリプトは、何でも好きなように実行できます。
ベスト プラクティスとして、まず開発/テスト環境を本番環境と同等にし、最初にこれらの環境でこのようなテストを実行できるようにしておく必要があります。
これは、パッケージのアップグレードによってサービスが再起動されるかどうかを判断するのに役立つだけでなく、本番環境に移行する前に、発生する可能性のある非互換性や問題を見つけることもできます。
答え2
kmod-drbd83
は DRBD カーネル モジュールです。この更新を有効にするには、これをアンロードする必要があります (つまり、drbd を停止します)。これにより、drbd のダウンタイムが発生します。
glibc-update の後も再起動する必要があります。
したがって、すべてのサービスを切り替えるかフェールオーバーし、更新プログラムをインストールし、再起動してフェールバックします。
答え3
リポジトリを手動で変更していない場合は、これらのアップデートをインストールしても安全です。インストール前のダウンタイムについては、yum がこれを通知します。または、少なくともインストール後に、何をすべきかを尋ねられます。
答え4
ほとんどの場合、サーバーを再起動する必要はありませんが、更新プロセスでサービスが再起動されます。そうは言っても、更新リストを見ると、カーネル更新があり、新しいカーネルをロードするにはほとんどの場合サーバーの再起動が必要であることがわかります。