[Ultramonkey-l7-users 302] Re: fallback設定について

Back to archive index

Kohei TANUMA tanum****@nttco*****
2010年 2月 3日 (水) 13:43:35 JST


稲垣さま

田沼です。

fallback は実際のリアルサーバが全て異常と判断された際の
代替サーバになりますので、リアルサーバが正常な場合は
追加されない仕様のはずです。

リアルサーバの監視は ldirectord の checktype や service 設定に
従いますので、例えば、checktype = negotiate, service = http の
場合は、192.168.1.1, 192.168.1.2 の Apache 等を停止した際に
fallback 設定の 127.0.0.1:80 が自動的に追加されるはずです。
checktype = ping の場合は、ケーブルを抜く、インタフェースを
down させるなどして ping がリアルサーバに届かない状態にして
みてください。
checktype = on の場合は、常にリアルサーバが正常と判断されるため
fallback は追加されないと思います。

以上、宜しくお願い致します。


2010/02/03 11:20, 稲垣 wrote:
> 田沼様
> 
> お世話になります。
> 稲垣です。
> 
> /etc/ha.d/ldirectord.cfに127.0.0.1:80を追加しましたが、
> fallbackの設定が追加されなくなりました。
> 
> # ipvsadm -l
> IP Virtual Server version 1.2.1 (size=4096)
> Prot LocalAddress:Port Scheduler Flags
> -> RemoteAddress:Port Forward Weight ActiveConn InActConn
> TCP 172.31.208.181:https rr
> -> 192.168.1.1:https Masq 1 0 0
> -> 192.168.1.2:https Masq 1 0 0
> TCP 172.31.208.181:http rr
> -> 192.168.1.2:http Masq 1 0 1
> -> 192.168.1.1:http Masq 1 0 1
> 
> なんででしょうか?
> 
> 以上、宜しくお願い致します。
> 
> 
> Kohei TANUMA さんは書きました:
>> 稲垣さま
>>
>> 田沼です。
>>
>> LVS の理解が不足してるので間違っているかもしれませんが
>> 私なりにわかったところまで回答します。
>> 先に結論として、127.0.0.1 を real や fallback に指定する場合は
>> バーチャルサービスと同一のポートで動かす必要があるのではないかと
>> 思います。(つまり fallback 81 番ポートは無理)
>> そのため、先程の私の masq を指定するというのは間違いのようです。
>>
>> 127.0.0.1 への振り分けはダイレクトにパケットが配送される
>> ようで、バーチャルサービス宛(172.31.207.10:80宛) のパケットが
>> 127.0.0.1:81 の Apache に飛ぶのでコネクションがリセットされて
>> いるように見えます。
>> 試しに、iptables で 80 宛を 81 宛に無理やり書き換えると、
>> Apache で正常に処理することができました。
>>
>> iptables -t nat -A PREROUTING -i eth0 -p tcp -d 172.31.207.10 --dport 80
>> -j DNAT --to 172.31.207.10:81
>>
>> ただし、これだと通常の real が使い物にならなくなるので却下…。
>> (上記 iptables の -A を -D で削除)
>>
>> 以下の設定で動作確認できました。
>>
>> ■ ldirectord
>> fallback = 127.0.0.1:80
>> virtual  = 172.31.207.10:80
>>     real = 172.31.206.1:80 masq 1
>>     real = 172.31.206.2:80 masq 1
>>     checktype = negotiate
>>     service   = http
>>     request   = "index.html"
>>     receive   = "test"
>>     scheduler = rr
>>     protocol  = tcp
>>
>> ■ 172.31.207.10 の Apache
>> ...
>> Listen 80
>> ...
>>
>> ■ ipvsadm -ln (real が正常な場合)
>> IP Virtual Server version 1.2.1 (size=4096)
>> Prot LocalAddress:Port Scheduler Flags
>>   -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
>> TCP  172.31.207.10:80 rr
>>   -> 172.31.206.1:80              Masq    1      0          0
>>   -> 172.31.206.2:80              Masq    1      0          0
>>
>> ■ ipvsadm -ln (real 全てが異常な場合 - index.html の test 文字を消す)
>> IP Virtual Server version 1.2.1 (size=4096)
>> Prot LocalAddress:Port Scheduler Flags
>>   -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
>> TCP  172.31.207.10:80 rr
>>   -> 127.0.0.1:80                 Local   1      0          0
>>   -> 172.31.206.1:80              Masq    0      0          0
>>   -> 172.31.206.2:80              Masq    0      0          0
>>
>> とりあえず上記で fallback の Apache のページが表示されました。
>>
>> 稲垣さんの設定の場合だと fallback のポートを 80 に設定し
>> (masq も消して)172.31.207.10 のサーバで HTTPd を 80 ポートで
>> 動かすように修正する必要があると思います。
>>
>> ただし、間違いがあるかもしれませんので、他の識者の方々つっこみ
>> お願いします。
>>
>> 以上です。
>>
>>
>> 2010/02/02 12:19, 稲垣 wrote:
>>   
>>> 田沼様
>>>
>>> お世話になっております。
>>> 稲垣です。
>>>
>>> コマンド結果は以下の通りです。
>>> # ipvsadm -ln
>>> IP Virtual Server version 1.2.1 (size=4096)
>>> Prot LocalAddress:Port Scheduler Flags
>>> -> RemoteAddress:Port Forward Weight ActiveConn InActConn
>>> TCP 172.31.207.10:80 rr
>>> -> 127.0.0.1:81 Local 1 0 1
>>>
>>> 以上宜しくお願いします。
>>>
>>> Kohei TANUMA さんは書きました:
>>>     
>>>> 稲垣さま
>>>>
>>>> 田沼です。
>>>>
>>>> 表示されないというのはページが表示されないという意味でしょうか?
>>>> 先のメールの ipvsadm の結果では以下のように fallback サーバの
>>>> ポートを 81 に設定しているにもかかわらずポートが 80 で
>>>> 追加されているのが問題と考えました。
>>>>
>>>>   
>>>>       
>>>>>>> TCP 172.31.207.10:http rr
>>>>>>> -> LB01:http Local 1 0 0
>>>>>>>         
>>>>>>>             
>>>> masq を追加した後の ipvsadm -ln の結果を
>>>> 確認させていただけますでしょうか。
>>>>
>>>>
>>>> 2010/02/02 11:55, 稲垣 wrote:
>>>>   
>>>>       
>>>>> 田沼様
>>>>>
>>>>> お世話になっております。
>>>>> 稲垣です。
>>>>>
>>>>>     
>>>>>         
>>>>>> fallback=127.0.0.1:81 masq
>>>>>>   
>>>>>>       
>>>>>>           
>>>>> ご指摘の通りに設定しましたが、表示されません。
>>>>>
>>>>> 以上、宜しくお願い致します。
>>>>>
>>>>>
>>>>> Kohei TANUMA さんは書きました:
>>>>>     
>>>>>         
>>>>>> 稲垣さま
>>>>>>
>>>>>> 田沼と申します。
>>>>>>
>>>>>> LVS についてはあまりわからないのですが、
>>>>>> ldirectord の動作を確認したところ fallback 行で
>>>>>> forward 設定を省略すると gate として設定されるようです。
>>>>>> ldirectord.cf の fallback を以下のように変更してみてください。
>>>>>>
>>>>>> fallback=127.0.0.1:81 masq
>>>>>>
>>>>>> 以上です。
>>>>>>
>>>>>>
>>>>>> 2010/02/02 10:50, 稲垣 wrote:
>>>>>>   
>>>>>>       
>>>>>>           
>>>>>>> お世話になっております。
>>>>>>> 稲垣です。
>>>>>>>
>>>>>>> ipvsadmコマンドで全リアルサーバ(HTTP)をメンテナンス状態にし、
>>>>>>> fallbackサーバを表示させたいのですが、
>>>>>>> /etc/ha.d/ldirectord.cfに記載したfallbackサーバが表示されません。
>>>>>>>
>>>>>>> ipvsadm -lの状態はfallbackサーバを表示しております。
>>>>>>>
>>>>>>> /etc/ha.d/ldirectord.cfの設定はHTTPのリアル設定をコメントしております。
>>>>>>> /etc/httpd/conf/httpd.confのListenは81になっており、直にたたくと問題なく
>>>>>>> 表示されます。
>>>>>>>
>>>>>>>
>>>>>>> # ipvsadm -l
>>>>>>> IP Virtual Server version 1.2.1 (size=4096)
>>>>>>> Prot LocalAddress:Port Scheduler Flags
>>>>>>> -> RemoteAddress:Port Forward Weight ActiveConn InActConn
>>>>>>> TCP 172.31.207.10:http rr
>>>>>>> -> LB01:http Local 1 0 0
>>>>>>>
>>>>>>> # cat /etc/ha.d/ldirectord.cf
>>>>>>>
>>>>>>> # Global Directives
>>>>>>> checktimeout=3
>>>>>>> checkinterval=1
>>>>>>> fallback=127.0.0.1:81
>>>>>>> autoreload=no
>>>>>>> logfile="/var/log/ldirectord.log"
>>>>>>> #logfile="local0"
>>>>>>> #emailalert="admin****@x*****"
>>>>>>> #emailalertfreq=3600
>>>>>>> #emailalertstatus=all
>>>>>>> quiescent=no
>>>>>>>
>>>>>>> # Sample for an http virtual service
>>>>>>> virtual=172.31.207.10:80
>>>>>>> # real=172.31.206.1:80 masq 1
>>>>>>> # real=172.31.206.2:80 masq 1
>>>>>>> service=http
>>>>>>> request="index.html"
>>>>>>> # receive="Test Page"
>>>>>>> scheduler=rr
>>>>>>> # persistent=600
>>>>>>> # netmask=255.255.255.255
>>>>>>> # protocol=tcp
>>>>>>> checktype=negotiate
>>>>>>>
>>>>>>> 何か設定不備等ありますか?
>>>>>>> 以上、ご教授の程宜しくお願いします。





Ultramonkey-l7-users メーリングリストの案内
Back to archive index