OpenVZ7 + DRBD + Pacamakerの環境をバージョンアップする

OpenVZ7 + DRBD + Pacamakerの環境をバージョンアップする

前に、OpenVZ7をDRBD9.0 + Pacemakerで冗長化するというのを書きましたが、この当時の環境では少し古くなってきてしまいました。

例えば、CentOS8を動かそうとすると、

# prlctl create test --vmtype ct --ostemplate centos-8-x86_64
Creating the Container...
Creating cache
Processing metadata for centos-8-x86_64
Failed to register the CT: PRL_ERR_VZCTL_OPERATION_FAILED (Details: Creating OS template cache for centos-8-x86_64 template
Error: Python directory not found in /vz/pkgenv/rpm414x64
Error: PYTHONPATH variable not defined
Creation of Container private area failed
)
Failed to create the virtual machine.

と怒られてしまいます。
そろそろバージョンアップが必要です。

そこで、この環境のOpenVZ7のバージョンを最新にしてみました。

通常OpenVZのバージョンアップはyum updateをすればいいのですが、この環境はDRBDのカーネルモジュールが入っていますので、こちらも新しいバージョンに合わせる必要があります。

Secondaryのホストのアップデート

怖いので2台目からやります。

yum update -y

/etc/vzのシンボリックリンクの張り直し

おっと。/vz/etc_vzに向けて張ってあったはずの/etc/vzが実体のディレクトリになってしまいましたので、シンボリックリンクに戻します。

mv /etc/vz /etc/vz.org
ln -sf /vz/etc-vz /etc/vz

DRBDのカーネルモジュールのコンパイル

必要なモジュールのインストール

前にやったので入っているはずですが、以下のモジュールが必要です。

yum -y install gcc gcc-c++ vzkernel-devel flex rpm-build po4a automake autoconf

新しいカーネルバージョンの確認

どこを見るのがベストなのかわからないのですが、/lib/modulesの下を見てみることにします。

# ls /lib/modules
3.10.0-1127.8.2.vz7.151.14
3.10.0-957.12.2.vz7.96.21

新しいモジュールは3.10.0-1127.8.2.vz7.151.14のようです。

DRBDインストール

複数の変更を同時にやると不幸になることが多いので、今回はVZカーネルのバージョンアップに専念することにし、DRBDのバージョンは据え置きます。

cd /usr/local/src
wget https://www.linbit.com/downloads/drbd/9.0/drbd-9.0.19-1.tar.gz
tar xvzf drbd-9.0.19-1.tar.gz
cd drbd-9.0.19-1
export KDIR=/usr/src/kernels/3.10.0-1127.8.2.vz7.151.14
make
make install
depmod 3.10.0-1127.8.2.vz7.151.14

再起動

shutdown -r now

ドキドキしながら見守ります。

pacemakerの起動

再起動後はPacemakerが自動的に起動しないようにしてあるので、手動で起動します。
PrimaryでもSecondaryでもどちらからでも実行できます。

pcs cluster start server2
# pcs status

Online: [ server1 server2 ]

Full list of resources:

 Resource Group: Group-VZ
     VIP        (ocf::heartbeat:IPaddr2):       Started server1
     FS (ocf::heartbeat:Filesystem):    Started server1
     VZ7        (ocf::pacemaker:openvz7):       Started server1

のようになっていればOKです。

DRBDの確認

# drbdadm status
r0 role:Primary
  disk:UpToDate
  server2 role:Secondary
    peer-disk:UpToDate
# drbdadm status
r0 role:Secondary
  disk:UpToDate
  server1 role:Primary
    peer-disk:UpToDate

のようになっていればOKです。

Primaryのホストのアップデート

さて、どうやらうまく行きそうなので、Primaryの方も同様にアップデートします。

動作中のVPSをSecondaryに移動

まず、Primaryで動作しているVPSを2台目に移動します。

pcs cluster standby server1

次のようになるまで待ちます。

# pcs cluster status

Online: [ server2 ]

Full list of resources:

 Resource Group: Group-VZ
     VIP        (ocf::heartbeat:IPaddr2):       Started server2
     FS (ocf::heartbeat:Filesystem):    Started server2
     VZ7        (ocf::pacemaker:openvz7):       Started server2

OSのバージョンアップとDRBDのカーネルモジュールのインストール

まとめて行きます。

yum update -y

mv /etc/vz /etc/vz.org
ln -sf /vz/etc-vz /etc/vz

yum -y install gcc gcc-c++ vzkernel-devel flex rpm-build po4a automake autoconf
cd /usr/local/src
wget https://www.linbit.com/downloads/drbd/9.0/drbd-9.0.19-1.tar.gz
tar xvzf drbd-9.0.19-1.tar.gz
cd drbd-9.0.19-1
export KDIR=/usr/src/kernels/3.10.0-1127.8.2.vz7.151.14
make
make install
depmod 3.10.0-1127.8.2.vz7.151.14

再起動

shutdown -r now

ドキドキしながら見守ります。

pacemakerの起動

再起動後はPacemakerが自動的に起動しないようにしてあるので、手動で起動します。
PrimaryでもSecondaryでもどちらからでも実行できます。

pcs cluster start server1
# pcs status

Node server1: standby
Online: [ server2 ]

Full list of resources:

 Resource Group: Group-VZ
     VIP        (ocf::heartbeat:IPaddr2):       Started server2
     FS (ocf::heartbeat:Filesystem):    Started server2
     VZ7        (ocf::pacemaker:openvz7):       Started server2

のようになっていればOKです。
リソースは、まだ、server2で動作しています。

リソースを1台目に移動

pcs cluster unstandby server1
# pcs status

Online: [ server1 server2 ]

Full list of resources:

 Resource Group: Group-VZ
     VIP        (ocf::heartbeat:IPaddr2):       Started server2
     FS (ocf::heartbeat:Filesystem):    Started server2
     VZ7        (ocf::pacemaker:openvz7):       Started server2
pcs cluster standby server2
# pcs status

Online: [ server1 server2 ]

Full list of resources:

 Resource Group: Group-VZ
     VIP        (ocf::heartbeat:IPaddr2):       Started server1
     FS (ocf::heartbeat:Filesystem):    Started server1
     VZ7        (ocf::pacemaker:openvz7):       Started server1

1台目に寄りました。

DRBDの確認

念のためDRBDも確認しておきます。

# drbdadm status
r0 role:Primary
  disk:UpToDate
  server2 role:Secondary
    peer-disk:UpToDate
# drbdadm status
r0 role:Secondary
  disk:UpToDate
  server1 role:Primary
    peer-disk:UpToDate

これで完了です。

Share