Проверим, что балансировщик нагрузки работает на сервере 1Ь:
# Idirectord ldirectord.cf statusВы должны увидеть чтото вроде:
Idirectord for /etc/ha.d/ldirectord.cf is running with pid: 1455
Если вместо этого вы видите чтото подобное: Idirectord is stopped for /etc/ha.d/ldirectord.cf
значит, есть проблема. Вы можете перезапустить директор с параметром отладки d и посмотреть, появятся ли какиелибо ошибки:
DEBUG2: Running exec(/usr/sbin/ldirectord d /etc/ha.d/ldirectord.cf start)
Running exec(/usr/sbin/ldirectord d /etc/ha.d/ldirectord.cf start)
DEBUG2: Starting Linux Director vl.77.2.32 with pid: 12984
Starting Linux Director vl.77.2.32 with pid: 12984
DEBUG2: Running system(/sbin/ipvsadm A t 70.253.158.42:80 s rr )
Running system( /sbi n/i pvsadm A t 70.253.158.42:80 s rr )
DEBUG2: Added virtual server: 70.253.158.42:80
Added virtual server: 70.253.158.42:80
DEBUG2: Disabled server=70.253.158.45
DEBUG2: Disabled server70.253.158.41
DEBUG2: Checking negotiate: real
server=negotiate:http:tcp:70.253.158.41:80:::\/director\.html:I\'m\ alive\! (virtual=tcp:70.253.158.42:80)
DEBUG2: check_http: url="http://70.253.158.41:80/di rector.html" virtualhost=M70.253.158.41" LWP::UserAgent::new: ( ) LWP::UserAgent::request: ( )
LWP::UserAgent::send_request: GET http://70.253.158.41:80/director.html
LWP: :UserAgent: :_need_proxy: Not proxied
LWP::Protocol::http::request: ( )
LWP::Protocol::collect: read 11 bytes
LWP::UserAgent::request: Simple response: OK
45:80/director.html is up
Результат короче, если значение параметра checktype равно check. Только из любопытства мы посмотрим, что сообщает виртуальный IPсервер нижнего уровня:
IP Virtual Server version 1.2.0 (size4096) Prot LocalAddress:Port Scheduler Flags
> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 70.253.158.42:80 rr
> 70.253.158.45:80 Route 1 1 2
> 70.253.158.41:80 Route 1 0 3
Это показывает, что наш первый реальный сервер активен, а второй — нет. Кроме того, проверим системные журналы на сервере 1Ь:
Sep 11 22:59:45 mail ldirectord[8543]: Added virtual server: 70.253.158.44:80
Sep 11 22:59:45 mail ldirectord[8543]: Added fallback server: 127.0.0.1:80 ( x 70.253.158.44:80) (Weight set to 1)
Sep 11 22:59:45 mail ldirectord[8543]: Added real server: 70.253.158.41:80 ( x 70.253.158.44:80) (Weight set to 1)
Sep 11 22:59:45 mail ldirectord[8543]: Deleted fallback server: 127.0.0.1:80 ( x 70.253.158.44:80)
Sep 11 22:59:46 mail ldirectord[8543]: Added real server: 70.253.158.45:80 ( x 70.253.158.44:80) (Weight set to 1)
Вернемся к серверам webl и web2 и проверим журналы доступа Apache. Директор должен делать запрос di rector. html каждые check interval секунд:
70.253.158.44 [ll/Sep/2006:22:49:37 0500] "GET /director.html HTTP/1.1" 200 11 "" "libwwwperl/5.803"
70.253.158.44 [ll/Sep/2006:22:49:39 0500] "GET /director.html HTTP/1.1" 200 11 "" "libwwwperl/5.803"
В браузере зайдите на виртуальный сайт по ссылке http://70.253.158.42/which.html, и вы увидите либо
I'm webl
либо
11m web2
Если балансировщик нагрузки неисправен или один из вебсерверов вышел из строя, то вы всегда можете получить ответ с того же вебсервера. Теперь остановите Apache на сервере webl:
Перезагрузите или обновите страницу браузера для повторного доступа к сайту http://70.253.158.42/which.html. Вы должны всегда получать такой ответ:
I'm web2