いますぐ実践! Linuxシステム管理

[バックナンバーのトップへ] [Linux システム管理のトップへ]


いますぐ実践! Linux システム管理 / Vol.200 / 読者数:1811名

こんばんは、うすだです。

今回で、とうとう200回になりました。
いつからご覧になられているか存じ上げませんが、いつもご覧いただき、 まことにありがとうございます。

これからも、死なない程度に書きつづけていく予定ですので、 広いこころでご覧いただけますと幸いです。

そして、Software Design も無事に発売されました。当たり前ですが。

Software Design 2011年6月号
http://gihyo.jp/magazine/SD/archive/2011/201106

なんだか、クリクリした記事が載っています。感謝感激です。
# いまのところは、特にこれっぽっちも反響はございませんが…。

時間的に切羽詰まっていますので、早速今回も、はりきってまいります。

今回のお題 - heartbeat でいろんなサービスを冗長化する

前回は、heartbeat のさわり的な内容をご紹介しました。

Vol.199 - heartbeat でサービスを冗長にしてみる
http://www.usupi.org/sysad/199.html

サービスを冗長にすると言っても、サービスを提供するためのIPアドレスを、 稼働系サーバがとち狂ったとき、待機系サーバに切り替える、 ということを行っただけでした。

ですので今回は、各種サービスを切り替えてみようと思います。

haresources の概要

Heartbeat で冗長化する対象のリソースは、 「/etc/ha.d/haresources」というファイルに記述します。
稼働系と待機系とで、同じ内容にします。書式は以下の通りです。

  サーバ名 リソース1 [リソース2...]

サーバ名には、通常「リソース1」などを起動するホストを指定します。
ということは、普通は化同型サーバを指定します。よね。
サーバ名で指定するホスト名は、uname -n の出力結果と同じ内容である必要があります。

リソースは、複数指定できます。
リースで指定する名前は、「/etc/ha.d/resources.d/」にあるファイル名か、 「/etc/init.d/」にあるファイル名です。
あるいは、前回試した、IPアドレス(とマスク)を指定します。

また、リソースを起動(や停止)する際に引数を必要とする場合は、 「::」で区切って指定します。

それから、リソースは heartbeat が起動しますので、稼働系でも待機系でも、 基本的には同名のサービスを停止しておく必要があります。

ちなみに、指定した順にリソースは起動されます。

httpd で試します

それでは早速試してみましょう。
ちなみに、以降で試す環境や設定は、前回と同じです。

まずは、お約束的な httpd です。
「/etc/init.d/httpd」を使って起動や停止を行いますので、 haresourcesは 以下のように記述します。

  fedora14 192.168.1.1/24 httpd

これですと、サービス提供用のIPアドレスを設定した後に、 httpd を起動してくださいます。

さて、上記を双方で設定した後、heartbeat を起動しますが、その前に、 httpd が起動していないことと、自動起動な設定になっていないことを、 以下の手順で確認しておきます。

  # service httpd status    (httpd の起動の確認)
  # service httpd stop      (running だったら止める)
  # chkconfig --list httpd  (httpd が自動起動かどうかの確認)
  # chkconfig httpd off     (on になっていたら自動起動を止める)

確認が終わりましたら、いよいよ heartbet の起動です。
双方で heartbeat を起動しましょう。

  # service heartbeat start

少し経ってから、以下のようにして状態を確認してみますと、 IPアドレス(192.168.1.1)が設定され、httpd が起動していることがわかります。

  fedora14# ip addr show
  ...
  3: eth1:  mtu 1500 qdisc \
  pfifo_fast state UP qlen 1000
    link/ether 08:00:27:a0:90:b6 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.186/24 brd 192.168.1.255 scope global eth1
    inet 192.168.1.1/24 brd 192.168.1.255 scope global secondary \
  eth1:0
  ...
  fedora14# service httpd status
  httpd (pid  PIDの値) is running...

ブラウザから http://192.168.1.1/ にアクセスすると、 Fedora なページが表示される…と思います。
(ファイヤウォールの設定が有効になっている場合は、 WWW(HTTP) を許可する設定にしてください。)

ここで、稼働型サーバの heartbeat を停止すると、 待機系サーバに切り替わることが確認できますが、 手順は前回と同じですので割愛します。
(ブラウザで再度アクセスすると、CentOS なページになると思います。
もちろん、本来は、コンテンツを同じにしておく必要があります。)

他のサービスも試してみる

お次は、xinetd のサービスを試してみましょう。
haresources は、以下のように記述します。

  fedora14 192.168.1.1/24 Xinetd::echo-stream

ここでは、安直ですが echo-stream をリソースとして指定しています。
もし httpd も合わせて設定したい場合は、列挙します。

  fedora14 192.168.1.1/24 httpd Xinetd::echo-stream

次に、先ほどと同様、自動起動の設定と起動を止めますが、 echo-stream サービスは xinetd 経由で提供されますので、 自動起動じゃなくするだけでよいです。

  # chkconfig --list echo-stream   (確認)
  # chkconfig echo-stream off      (自動起動を止めるなら)

あとは、heartbeat を起動して確認しますが、 いままでと同じ手順で実施できると思います。

 

ところで、せっかくですので、引数がきちんと渡ってきているか、 確認をしてみたいと思います。
ちなみに、以降の作業は、基本的には、双方のサーバで行います。

まず、下記内容の「/etc/ha.d/resource.d/Dummy」というファイルを作成します。

#!/bin/sh
echo $* >> /root/ha_dummy.log

そして、実行可能な状態にします。

  # chmod +x /etc/ha.d/resource.d/Dummy

もちろん、haresources に追加します。

  fedora14 192.168.1.1/24 httpd Dummy::1::2::3

最後に、双方で heartbeat を起動して、稼働系から待機系へと切り替えますと、 /root/ha_dummy.log に引数が記録されます。

  # cat /root/ha_dummy.log
  1 2 3 status
  1 2 3 start
  1 2 3 stop

特にひねりなく、引数が渡されていることがわかります。

おわりに

以上、heartbeat でサービスの切り替えを行う方法を、ご紹介しました。

/etc/ha.d/resource.d/ には、他にも様々なリソースがあります。
試せそうなものを試してみたり、 自分でスクリプトを書いて試してみるとよろしいのではないでしょうか。

宿題の答え

前回の宿題は、

  監視用ネットワークを使わない構成で heartbeat を動かしましょう。

でした。

相手を監視するため、 UDP のポート694番で定期的にやりとりする設定になっているわけですが、 それが監視専用のネットワークでなくても、原理的には問題なく動作するはずです。

というわけで、「/etc/ha.d/ha.cf」のうち「ucast」で始まる行を、 それぞれ下記のように書き換えます。

  [稼働系サーバ]
  ucast eth1 192.168.2.6
  [待機系サーバ]
  ucast eth0 192.168.2.14

ただ単に、ethX をサービス提供側のインターフェースにするだけです。
この設定で、双方で heartbeat を起動すると、フツーに動作します。

今回の宿題

今回の宿題は、

  haresources に、待機系セーバの行を追加してみましょう。

です。

稼働系サーバでサービスを提供するだけなら、 haresources にはリソースだけを書けばよいような気がします。

ですが、わざわざホスト名の欄があるということは、 待機系サーバで何か動かすという設定もできるのではないか、と思った次第です。

というわけで、追加して動作するかどうか、確かめてみてください。
また、どういうケースで使えるか、考えてみるとよさそうです。

あとがき

というわけで、記念すべき200回でしたが、社員旅行などがありまして、 書く時間があまりとれず、このような内容となってしまいました。

そんな日が今日で終わる…なんてことはなく、 今月末までや6月上旬までにやるべきことが目白押しです。

会社でもよくご指摘いただくのですが、複数の作業をスケジュールして、 効率よく作業する、ということが、 プライベートでも必要なのではないかと思っております。

ただ、今日は、もんんのすごく眠いので、栗の絵を描いたら、 光の速さで眠りにつこうと思います。

…というわけで、今日のところは、お休みなさい…。

 

今回も、ここまで読んでいただき、たいへんありがとうございました。
次回は、6月5日(日) の未明にお会いしましょう!

 

「いますぐ実践! Linux システム管理」の解除は、以下からできます。
http://www.usupi.org/sysad/ (まぐまぐ ID:149633)

バックナンバーは、こちらにほぼ全部そろっています。
http://www.usupi.org/sysad/backno.html

「栗日記」- いろいろ描かないといけないのですが…。
http://www.usupi.org/kuri/ (まぐまぐ ID:126454)
http://usupi.seesaa.net/ (栗日記ブログ)
http://usupi.org/k/ (モバイル栗日記)


[バックナンバーのトップへ] [Linux システム管理のトップへ]

トップ

バックナンバー
    [日付順] [目的別]

プロフィール

▼ リンク

独学Linux
Linuxデスクトップ環境に関する情報が満載です。 メルマガもありますよ。
Server World
CentOS 6をサーバとしたときの設定例が、これでもかというくらいたくさん載っています。 CentOS以外のディストリビューション(Fedora, Ubuntu)も充実しています。
LINUXで自宅サーバーを構築・導入(Fedora9)
Fedora9のインストールの仕方から管理方法まで、詳しく載っています。 SearchManには情報がもりだくさんです。
マロンくん.NET
〜サーバ管理者への道〜
Linuxをサーバとして使用するための、いろいろな設定方法が載っています。 マロンくんもかわいいです。 なんといっても、マロンくんという名前がいいですね!!
日経Linux
今や数少なくなってしまったLinuxの雑誌。ニュースやガイドもあります。
Linux Square − @IT
@ITが提供する、Linux の情報が満載。 載っていない設定方法はないんじゃないでしょうか。
gihyo.jp…技術評論社
Linuxに限らず様々な技術情報が満載のサイト。 SoftwareDesign誌も、 ソフトウェア技術者は必見です。
SourceForge.JP Magazine
Linux に限らず、オープンソース関連の記事が網羅されています。
ITmediaエンタープライズ:Linux Tips 一覧
Tips というより FAQ 集でしょうか。わからないことがあれば覗きましょう。
IBM developerWorks : Linux
開発者向けですが、勉強になりますよ。
Yahoo!ニュース - Linux
Yahoo!のLinuxに関するニュース一覧です。
栗日記
システム管理とかと全然関係ありませんが、毎日栗の絵を描いています。
システム管理につかれちゃったとき、癒されたいときに、ご覧ください。:-)
WEB RANKING - PC関連
ランキングに参加してみました。押してやってください。

▼ 作ってみました

Add to Google

▼ せんでん




▼ 最近読んだ本

▼ 気に入ってる本