2010年10月01日

WINSサーバの二重化

さて先日やらかした失態。
WINSサーバとして運用している機体をうっかり再起動してしまい、さらに何故か起動に10分以上の時間がかかり、その間名前解決ができず…というもの。

まあ営業時間中に再起動すること自体がダメダメなんですが、障害の可能性も含め対策して於いた方が良いかと思い、WINSサーバの二重化を試みます。 

そもそもVPNでネットワーク同士を繋いでいるためにWINSサーバが必要でした。このとき同時にDMBも必要と思い、VPNのこっち側とあっち側にそれぞれSambaをたてており、そのうちこっち側のみがWINSサーバとして稼働しています。
あっち側はDMBの同期の為だけに稼働していましたが、最近になって、そもそもDMBは不要だったのではないか…と感じているのは内緒。^^

ともかく、ちょうど2台目のWINSサーバに最適な機体がありますので、これを設定していきたいと思います。

(備忘録ですから簡潔に書いていますが、正常稼働までには何気に苦労しています。^^)

参考文献:
http://wiki.samba.gr.jp/mediawiki/index.php?title=WINS-replication
http://www.osstech.co.jp/techinfo/samba/wins-push


まずwinzsendを試しましたが、私の知識ではうまく動かすことができませんでした。
CPANというものも(Google先生のおかげで一応操作できましたが)初めて見るものだったこともあって、うまく動かない時の障害切り分けができないため、少しいじくって早々にあきらめました。

で、wins-pushの方でうまくいきましたので、そのメモ。


まずwins-pushを解説に従って設定していきます。

現WINSサーバにインストール

# mkdir /usr/local/sbin/wins-push
# chmod 755 /usr/local/sbin/wins-push
# wget http://www.osstech.co.jp/_media/techinfo/samba/wins-push.pl /usr/local/sbin/wins-push/.

2台目WINSサーバを指定するための設定ファイル作成

# echo "wins servers = 192.168.???.???" >/etc/samba/wins-push.conf
(???は2台目WINSサーバのアドレスを指定)

状態保持用ディレクトリを作成

# mkdir /var/cache/samba/wins-push

現WINSサーバのSambaの設定を変更

# vi /etc/samba/smb.conf
[global]
wins hook = /usr/local/sbin/wins-push

2台目のSambaも設定変更

# vi /etc/samba/smb.conf
[global]
wins support = yes

これでそれぞれのSambaを再起動したところ、2台目のwins.datにきちんと情報が追加され行くことを確認しました。
(Sambaの再起動に手間取りましたが…)


次にWindwosに渡しているWINSサーバの情報に、両サーバのアドレスを渡すようにしました。(アドレスは渡せましたが、障害時にうまく動いてくれるかは判りません)

各PCのIPアドレスは管理の都合上DHCPで取得させています。DHCPサーバはルータ(YAMAHA RT-58i)を利用し、配布するIPアドレスはMACアドレスを基に固定となってています。
従って、ルータの設定を少し変えるだけで全PCのWINSサーバ情報が(次回接続時より)更新されます。

設定はルータGUIの「コマンドの実行」に

wins server 192.168.???.??? 192.168.???.???
(1台目2台目それぞれのIPを指定)

とするだけです。


ここで注意事項。

winssendの方で、双方向にデータのやりとりができるスクリプトであると説明がありました。

(引用)

双方向レプリケーション

 ver 0.02 までは片方向レプリケーションしか出来ませんでした。ある1つのマスタとなるwinsサーバを立ち上げておいて、ここから他のwinsサーバに対してデータを配信することしか出来ませんでした。

 ver 0.13からは双方向(pushのみ)のレプリケーションが出来るようになりました。それぞれのwinsサーバにwinssend.plを設定することで、互いに他のwinsサーバに対してデータを供給できるようになりました。ただ、そのままでは他のwinsサーバから登録要求があったデータもwinssend.plを起動して、また他のwinsサーバにデータを送り込んでしまいます。そこで、winssend.plでは自分自身が所属しているネットワーク以外からのデータは送り出さないようにしています。これで、winsデータの白山羊さん黒山羊さん問題を解決できます。

winssendを基にしたとされるwins-pushの方も同様かと思いましたが、当方の環境では双方向ではうまく動いてくれませんでした。
一方通行のみに設定したところ、うまく動いてくれています。

まあ、あくまで非常用ですから現状で問題ありません。
私が「いらんこと」をしなければ、そうそう障害も起こらないでしょうしね…。

 



abm55608 at 06:36│Comments(0)TrackBack(0) Linux 

トラックバックURL

この記事にコメントする

名前:
URL:
  情報を記憶: 評価: 顔