URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 70130
[ Назад ]

Исходное сообщение
"кластеризация веб-серверов"

Отправлено klame2 , 09-Ноя-06 13:05 
Есть хостинг на основе apache/php/mysql. Необходимо сделать распределение нагрузки и одновременно обеспечить отказоустойчивость. Для этого из железа используются 2 сервера SunFire, ос Solaris 10 и цисковский контент-свитч для балансировки. Кластер MySQL сделать понятно как, но как синхронизировать контент на дисках? Пока не могу придумать ничего лучьше, чем по крону раз в 5 минут запускать скрипт, синхронизирующий по rsync содержание DocumentRoot веб-сервера.

Содержание

Сообщения в этом обсуждении
"кластеризация веб-серверов"
Отправлено simple_rulez , 09-Ноя-06 13:35 
http://oss.linbit.com/csync2/
?

"кластеризация веб-серверов"
Отправлено klame2 , 09-Ноя-06 13:41 
>http://oss.linbit.com/csync2/
>?
похоже это именно то, что нужно - спасибо!

"кластеризация веб-серверов"
Отправлено FtoR , 12-Дек-06 13:57 
>>http://oss.linbit.com/csync2/
>>?
>похоже это именно то, что нужно - спасибо!
Для линукса видимо да, но под солярис 9,10 это дело двинуть оказалось нереальным. В итоге пришлось некоторые участки кода модифицировать а ля:
action.c, group.c
if ( !fnmatch(p->pattern, filename,FNM_LEADING_DIR|FNM_PATHNAME) ) в
if ( !fnmatch(p->pattern, filename,FNM_PATHNAME) )

потом ваще уперся в три функции, которые являются расширением стандарта: #!?*!! Плюс еще автор молчит как рыба. Видимо так и жить этому творению не портированным под линухом, к шутам такое счастье.
Одну функцию выкинул из кода, заменив getcwd. Но остальные две размазаны по всему коду.

1)get_current_dir_name
2)vasprintf
3)asprintf

Undefined                       first referenced
symbol                             in file
get_current_dir_name                getrealfn.o
vasprintf                           db.o
asprintf                            cfgfile_parser.o
ld: fatal: Symbol referencing errors. No output written to csync2
name

NOTES
These functions are GNU extensions, not in C or POSIX. They are also available under *BSD. The FreeBSD implementation sets strp to NULL on error.


"кластеризация веб-серверов"
Отправлено FtoR , 12-Дек-06 14:12 
Раскидал и заменил эти функции эквивалентами из POSIX вслепую sprintf и vsprintf()
Зверь собрался, по сути посли доработки напильником. Как будет работать - неизвестно, посмотрим, уж очень много кода изменено.

"кластеризация веб-серверов"
Отправлено FtoR , 13-Дек-06 18:02 
>Раскидал и заменил эти функции эквивалентами из POSIX вслепую sprintf и vsprintf()
>
>Зверь собрался, по сути посли доработки напильником. Как будет работать - неизвестно,
>посмотрим, уж очень много кода изменено.

Это был 10 солярис. Под 9 начиались еще приключения: отстуствие функций scandir() и alphasort(). Пришлось код выдирать и вставлять с других платформ.