スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


スポンサー広告 | --:--:--
Debian 8.0 へのアップグレード (part 1)

Debian 8.0 (jessie) がリリースされたので、HP MicroServer Gen8 で動作している Debian サーバを更新した。

更新作業

更新作業はリリースノートに書かれている通りで、忘れずにバックアップを取ってから作業開始する。

openvswitch の更新で止まる

アップグレード手順(apt-get dist-upgrade)が以下で止まってしまった。

Setting up openvswitch-switch (2.3.0+git20140819-3) ...
Installing new version of config file /etc/init.d/openvswitch-switch ...
Installing new version of config file /etc/logrotate.d/openvswitch-switch ...
cat: /sys/module/openvswitch_mod/srcversion: No such file or directory
cat: /sys/module/openvswitch_mod/version: No such file or directory

止まったプロセスを調べてみると以下のようなプロセスが止まっていて、ovs-appctl が無応答になっていたためだった。

F   UID   PID  PPID PRI  NI    VSZ   RSS WCHAN  STAT TTY        TIME COMMAND
0     0 53121 49661  20   0   4316   688 -      S+   pts/4      0:00 /bin/sh /var/lib/dpkg/info/openvswitch-switch.postinst configure 1.4.2+git2012
0     0 53129 53121  20   0   4316   708 -      S+   pts/4      0:00 /bin/sh /usr/sbin/invoke-rc.d openvswitch-switch restart
0     0 53146 53129  20   0   4316   784 -      S+   pts/4      0:00 /bin/sh /etc/init.d/openvswitch-switch restart
0     0 53169 53146  20   0   4448   820 -      S+   pts/4      0:00 /bin/sh /usr/share/openvswitch/scripts/ovs-ctl restart --system-id=random
0     0 53171 53146  20   0   4216   576 -      S+   pts/4      0:00 tee -a /var/log/openvswitch/ovs-ctl.log
1     0 53191 53169  20   0   4448   236 -      S+   pts/4      0:00 /bin/sh /usr/share/openvswitch/scripts/ovs-ctl restart --system-id=random
0     0 53192 53191  20   0  22388  1576 -      S+   pts/4      0:00 ovs-appctl version
0     0 53193 53191  20   0  13208   648 -      S+   pts/4      0:00 sed 1q

停止していたのはスクリプト(/usr/share/openvswitch/scripts/ovs-ctl)の以下の箇所で、原因は突き止めていないが、バージョンの不一致による誤動作だろう。

    292 save_ofports_if_required () {
    293     # Save ofports if we are upgrading from a pre-1.10 branch.
    294     case `ovs-appctl version | sed 1q` in
    295         "ovs-vswitchd (Open vSwitch) 1."[0-9].*)
    296             action "Saving ofport values" ovs_save save-ofports \
    297                 "${script_ofports}"
    298             ;;
    299     esac
    300 }

待てばいつかタイムアウトするのかもしれないが、それほど待つ時間もないので、ovs-appctl のプロセスを kill して先に進んでもらった。

シリアルコンソールが動作しない

シリアルコンソール(iLOのVSP)が動作しなくなっていた。理由は簡単で inittab で指定していた getty 設定が sytemd では動作しないせいだ。以下のように systemd の設定を行うことで VSP 用の getty が起動した。

# ln -sf /lib/systemd/system/serial-getty\@.service /etc/systemd/system/getty.target.wants/getty\@ttyS1.service 
# systemctl start getty\@ttyS1.service

起動後にネットワーク(Open vSwitch)が動作しない

なぜか、起動後にネットワーク(Open vSwitch)が動作しなくなっていた。起動後に service networking restart で再起動させれば動作するようになる。

openvswitch のログ (/var/log/openvswitch/ovs-vswitchd.log) に以下のように気になる警告を発見した。

2015-04-26T14:34:52.948Z|00037|dpif|WARN|system@ovs-system: failed to add eth0 as port: Device or resource busy
2015-04-26T14:34:52.948Z|00038|dpif|WARN|system@ovs-system: failed to add eth1 as port: Device or resource busy
2015-04-26T14:35:39.016Z|00039|dpif|WARN|system@ovs-system: failed to add eth0 as port: Device or resource busy
2015-04-26T14:35:39.016Z|00040|dpif|WARN|system@ovs-system: failed to add eth1 as port: Device or resource busy

busy という事は、Open vSwitch の初期化の前に何か動いていると推測して、ネットワークの設定を見直す。このマシンは元々通常の bonding 構成から Open vSwitch 化していて、旧 bonding の設定が残っていたので、それらをきれいに消してやるとネットワークは起動するようになった。

Open vSwitch の bonding を使うので、bonding モジュールは無効化してあるが、ゴミ設定が残っていると悪さをしてしまうようだ。

しかしまだ、なぜか bonding の経路でパケットが届かないケースがあり、またネットワークの起動で以下のように非常な時間がかかっている。

# systemd-analyze blame | head -3
         43.257s networking.service
          3.328s postgresql@9.1-main.service
          2.850s postgresql@9.4-main.service

ちょっと待て、postgresql が2つ見えるぞ!




続き(part2)

Linux | 19:31:35 | トラックバック(0) | コメント(0)
コメントの投稿

管理者にだけ表示を許可する

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。