2012.10.03
STAFF BLOG
スタッフブログ
TECHNICAL
テクログ
ムチャぶりおにぃです。負荷分散装置について、ざっくりと話したいと思います。
負荷分散装置と聞くと、数百万もする鉄の箱をイメージされる方がいらっしゃるかと思いますが、時代の流れでしょうか。。価格も下がり35万で購入できるものまで出てきていますね。
しかし、35万でも高いものは高いです。そこで考えるとなると。。。もっと安くできるのではないかと。。。
まず、負荷分散について話しますと(知っている方は、流してください)、WEBサイトやデータベースで少量のデータの処理であれば、さくっと終わるので気にしなくてもいいですが、膨大なトラフィックやデータとなってくるとかなりの時間がかかってしまいますよね。そこで負荷分散を行い、短時間で終わりにしようというものです。そのまんまですね。
さて、本題。
負荷分散を安く抑える方法は、リナックスに負荷分散ができるソフトをインストールして利用しちゃいましょってこと。負荷分散ソフトとしてLVSというものを利用します。
下準備、テスト用として3台のPCを用意し、リナックスをすべてにインストールしておきます。
1台が負荷分散用(LB01)、2台がウェブとかメールとかのサービス用(SV01/SV02)として利用します。
今回の対象のリナックスは、CentOSになります。
各マシンには、以下のようにそれぞれIPアドレス・ホスト名を設定しておきます。
SV01/SV02には、apacheがインストールされていて、ブラウザでアクセスするとSV01・SV02とレスポンスを返す設定になっています。
SV01/SV02のデフォルトGWは、LB01からのレスポンスを返答するためにLB01のeth1に向いています。
リナックスのインストール・サービス用マシンの構築・初期設定については、割愛いたします。
※CentOSをBASE・Development Tools・Development Librariesのパッケージでインストールした環境で進めております。
LVSは、非常に簡単に設定できます。
LB01を起動します。
起動しrootでログインしたら
yum -y install ipvsadm
を入力。たったこれだけです。
Complete!が表示されたらインストール完了です。
インストールされているか確認してみましょう。
ipvsadm -v
を入力。
ipvsadm v1.25ほにゃららと表示されればインストールされています。
次に、分散処理を行うためのコマンドを実行しましょう。
1.サービス応答用IPアドレスの設定
リクエストに答える為のIPアドレスをLB01に設定。LVSにも設定をします。
ifconfig eth0:1 192.168.92.248 netmask 255.255.255.255
ipvsadm -C
ipvsadm -A -t 192.168.92.248:80 -s rr
2.LVSにサービス応答のサーバー設定
実際にサービスを行うサーバーを登録します。
ipvsadm -a -t 192.168.92.248:80 -r 192.168.192.35 -m
ipvsadm -a -t 192.168.92.248:80 -r 192.168.192.37 -m
3.動作確認
ブラウザにてhttp://192.168.92.248へアクセス。
とその前に!!
動作確認の前に、もうひと工夫が必要です。
負荷分散で、パケットをほかのサーバーに渡して処理するので、パケットを転送してもいいよっていう設定を許可してあげないといけません。
echo “1” > /proc/sys/net/ipv4/ip_forward
これで、設定がOK!
ブラウザでチェックしてみよう!
正しく設定ができていれば、SV01/SV02が表示されると思います。
これで、負荷分散について、できるようなりました。
高価な負荷分散装置を買うことなく、同じようなことができるようになりますね。
しかし、このままの設定だと問題があります。
再起動したら、利用できなくなる。
ネットワーク障害・ハード故障などが発生したらそこへのアクセスをさせないように行う。
しかもLVSには、その機能が付いていません。
じゃあ、どう解決したらよいのか。。。
長くなるため、その話は、また今度、では。