Есть хостинг на основе apache/php/mysql. Необходимо сделать распределение нагрузки и одновременно обеспечить отказоустойчивость. Для этого из железа используются 2 сервера SunFire, ос Solaris 10 и цисковский контент-свитч для балансировки. Кластер MySQL сделать понятно как, но как синхронизировать контент на дисках? Пока не могу придумать ничего лучьше, чем по крону раз в 5 минут запускать скрипт, синхронизирующий по rsync содержание DocumentRoot веб-сервера.
http://oss.linbit.com/csync2/
?
>http://oss.linbit.com/csync2/
>?
похоже это именно то, что нужно - спасибо!
>>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)asprintfUndefined 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
nameNOTES
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.
Раскидал и заменил эти функции эквивалентами из POSIX вслепую sprintf и vsprintf()
Зверь собрался, по сути посли доработки напильником. Как будет работать - неизвестно, посмотрим, уж очень много кода изменено.
>Раскидал и заменил эти функции эквивалентами из POSIX вслепую sprintf и vsprintf()
>
>Зверь собрался, по сути посли доработки напильником. Как будет работать - неизвестно,
>посмотрим, уж очень много кода изменено.Это был 10 солярис. Под 9 начиались еще приключения: отстуствие функций scandir() и alphasort(). Пришлось код выдирать и вставлять с других платформ.