1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

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

Last updated at Posted at 2020-07-06

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の確認

1台目
# drbdadm status
r0 role:Primary
  disk:UpToDate
  server2 role:Secondary
    peer-disk:UpToDate
2台目
# 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

Node server2: standby
Online: [ server1 ]

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台目に寄りました。

2台目を待機状態に戻します。

pcs cluster unstandby 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

2台ともonlineになりました。

DRBDの確認

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

1台目
# drbdadm status
r0 role:Primary
  disk:UpToDate
  server2 role:Secondary
    peer-disk:UpToDate
2台目
# drbdadm status
r0 role:Secondary
  disk:UpToDate
  server1 role:Primary
    peer-disk:UpToDate

これで完了です。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?