ytooyamaのブログ

サーバ構築とか、仕事で発見したこととか、趣味のこととかを書いています。

CentOS 7で壮大にはまっている(現在進行形)

一部解決したので日記にした。

ytooyama.hatenadiary.jp

Red Hat Enterprise Linux や、そのソースをベースとしてつくられたCentOSのバージョン7はNetwork Managerがデフォルトで実行されており、ネットワーク周りはNetwork Managerによって管理されています。

これはずいぶん前のFedoraからそうなっていました。いざRHEL 7やCentOS 7がリリースされると多くの人がそれに驚いたり焦ったりする人を多く見かけました。私からするとFedoraですっかりおなじみだったので何の問題もありません。

Network Managerによりnmcuiコマンドやnmtuiコマンドを使って、NICやネットワークの設定を柔軟に行うことができます。これらを使うことでIPアドレスの設定をすればifdown/ifupコマンドなどを使うことなく、設定を反映することができます。従来のnetworkサービスも使えますが、これからは積極的にNetwork Managerを使いたいところです。

qiita.com

しかし、今回はOpenStackをCentOS 7で動かす必要がありました。OpenStackはNeutronというコンポーネントがネットワーク周りの機能を実装しています。CentOS 7で手軽にOpenStackを構築するにはPackstackというインストーラーがよく使われます。

PackstackでOpenStackをデプロイするにはだいたい30分程度かかりますが、デプロイが完了すると、「このシステムはNetwork Managerが動作している。現在のOpenStackはNetwork Managerが動いていると正常に動作しないのでnetworkサービスに置き換える必要があります」というメッセージが表示されます。

先に言っておくと、FedoraやRHEL7、CentOS 7はNetwork Managerが動いている限り、私は特に不満はありません。CentOS 7のパッケージのバージョンに不満をあげることはまれにありますが、ソースさえあればrpmbuildすればいいだけなので最近は特に不満はありません。

しかし、いざNetwork Managerからnetworkサービスに切り替えると、次のような問題が発生しました。

(1) (条件によって)Gatewayを設定しているのにデフォルトゲートウェイが設定されない

つまり、再起動するとリモートアクセスできなくなるわけです。

(2) OpenvSwitchのブリッジにコマンドでIPアドレスを設定しても反映されない

ip addr addコマンドを実行した後、ifconfigかifdown/ifupコマンドを実行してもIPアドレスが張り付かないという問題が発生します。こうなったら再起動するしかありません。

(3) OpenvSwitchのExtraオプションが再起動でいろいろ消える

設定したのに再起動したらExtraオプションが消えてしまうので、繋がっていたものが繋がらなくなります。

(4) IPアドレスの設定ファイルにExtraオプションを指定しても一部反映されない

一見、うまくいったかに見えるのですが、微妙に設定されないのでわけががわからなくなります。

(5) ovs-vsctlコマンドでブリッジにOVS関連の設定を追加するとまれにリンクが途切れる

つまり、リモートアクセスで作業していると詰みます。

(6) 複数のGatewayを設定した時の挙動がサーバーごとに異なる

同じように設定しても一方は

# ip r
default via 192.168.1.1 dev enp0s3  proto static  metric 100
default via 192.168.2.1 dev enp0s8  proto static  metric 101

一方は

# ip r
default via 192.168.2.1 dev enp0s8  proto static  metric 100
default via 192.168.1.1 dev enp0s3  proto static  metric 101

のようになることがある。

そんなこんなで現在はまっています。 全然事が進みません。

ちなみにいろいろ言いましたが、大事なのでもう一度言うとFedoraやRHEL7、CentOS 7はNetwork Managerが動いている限り、私は特に不満はありません。networkサービスを使わざるをえない時に様々な問題にはまるので辛い…言いたいのはタダそれだけなのです。

このブログサイトはJavaScriptを使っていますが、読み込んでいるJavaScriptは全てはてなが提供しているものであり、筆者が設置しているものではありません。