Автор Тема: apache ha cluster и php sessions  (Прочетена 6140 пъти)

ovrpwrd

  • Участници
  • ***
  • Публикации: 7
    • Профил
apache ha cluster и php sessions
« -: Nov 12, 2008, 11:32 »
Здравейте,

 От известно време си играя с ha клъстеринг в домашни условия. Имам 2 апача в клъстер с ldirectord и т.н. но не намирам решение за php сесиите.
 Реално проблема е че когато се логна в някой от сайтовете на клъстера, когато конекцията се пренасочи към другия апач сесията се разпада.
 Несъм програмист и не разбирам php нито начина по който работят сесиите. Затова се надявам някой тук да ми помогне. Нужна ми е просто насока, някакво howto или статия по темата. Разрових се из google но не открих нищо подходящо. А ако някой има повече време може и да поясни стъпка по стъпка решение :)

Благодаря Ви!
Активен

VladSun

  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Re: apache ha cluster и php sessions
« Отговор #1 -: Nov 12, 2008, 12:00 »
До колкото ми е известно, има два (стандартни) начина за пазене на PHP сесиите - във файлове или в ДБ. Т.е. имаш варианти да направиш общ storage на файловете за сесии или обща ДБ за двата сървера.

gat3way, кво ще кажеш ти по въпроса ;) ?
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

ovrpwrd

  • Участници
  • ***
  • Публикации: 7
    • Профил
Re: apache ha cluster и php sessions
« Отговор #2 -: Nov 12, 2008, 12:07 »
До колкото ми е известно, има два (стандартни) начина за пазене на PHP сесиите - във файлове или в ДБ. Т.е. имаш варианти да направиш общ storage на файловете за сесии или обща ДБ за двата сървера.

gat3way, кво ще кажеш ти по въпроса ;) ?

Да обмислих варианта да пазя сесиите в ДБ, но тогава трябва да преконфигурирам всички приложения да използват ДБ като session storage което е немислимо ако имам огромен брой приложения/сайтове.
Опитах другия вариант с общ session.save_path, монтирах единия на другия, но пак се губят сесиите. Сега разглеждам drbd, може да се окаже някакво решение.

Благодаря, все още търся решение на проблема и всяка идея би била полезна!
Активен

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Re: apache ha cluster и php sessions
« Отговор #3 -: Nov 12, 2008, 12:49 »
Трябва ти shared storage някакъв. Това може да бъде NFS сървър (кофти вариант, single point of failure). Най-икономичният вариант е drbd, но ако трябва да го направиш като хората, за да е сигурно и за да не товариш външния интерфейс, ще е добре на 2-те апач машини да имаш по втори интерфейс, който да ползваш за drbd трафик.

Гадното на drbd е че не можеш да синхронизираш повече от 2 машини. Те 2 са достатъчни за целите на failover де.

А, да, сам по себе си drbd не ти решава проблема, защото не ти трябва просто споделено блоково устройство, а споделена файлова система. За целта ти трябва клъстерна файлова система, защото иначе се сещаш какво става когато две машини я монтират едновременно и почнат да мажат отгоре (особено по журнала) без да имат идея за съседа си който прави същото....ще съсипеш файловата система одма :)

ocfs2 и gfs са добри варианти.
Активен

"Knowledge is power" - France is Bacon

ovrpwrd

  • Участници
  • ***
  • Публикации: 7
    • Профил
Re: apache ha cluster и php sessions
« Отговор #4 -: Nov 12, 2008, 12:58 »
Трябва ти shared storage някакъв. Това може да бъде NFS сървър (кофти вариант, single point of failure). Най-икономичният вариант е drbd, но ако трябва да го направиш като хората, за да е сигурно и за да не товариш външния интерфейс, ще е добре на 2-те апач машини да имаш по втори интерфейс, който да ползваш за drbd трафик.

Гадното на drbd е че не можеш да синхронизираш повече от 2 машини. Те 2 са достатъчни за целите на failover де.

А, да, сам по себе си drbd не ти решава проблема, защото не ти трябва просто споделено блоково устройство, а споделена файлова система. За целта ти трябва клъстерна файлова система, защото иначе се сещаш какво става когато две машини я монтират едновременно и почнат да мажат отгоре (особено по журнала) без да имат идея за съседа си който прави същото....ще съсипеш файловата система одма :)

ocfs2 и gfs са добри варианти.

До момента изпробвах следното:

монтирам с NFS session.save_path (/tmp) от единия сървър на другия.

Ефект:

правя сесия на единия апач, създава файл например sess_420998c1bf3999c530fdb43b688ad5567db135dd в тази директория(/tmp), но другия апач се прави че не е видял файла и сесията се разпада. Не е ли нормално другото php да види този файл и да продължи сесията?
Активен

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Re: apache ha cluster и php sessions
« Отговор #5 -: Nov 12, 2008, 13:00 »
Хм, странно. Не би трябвало де. Дали позволенията са като хората?
Активен

"Knowledge is power" - France is Bacon

ovrpwrd

  • Участници
  • ***
  • Публикации: 7
    • Профил
Re: apache ha cluster и php sessions
« Отговор #6 -: Nov 12, 2008, 13:11 »
Абсолютно, наред са. Вероятно пише нещо другаде.
Активен

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Re: apache ha cluster и php sessions
« Отговор #7 -: Nov 12, 2008, 13:15 »
Не, не, не би трябвало да има проблем. Сигурен ли си че на двете машини apache user-a с който върви уебсървъра (www-data в дебиан, apache в редхат) имат един и същ uid?!?
Активен

"Knowledge is power" - France is Bacon

bnight

  • Напреднали
  • *****
  • Публикации: 313
  • Distribution: Ubuntu 8.10
  • Window Manager: KDE 3.5.10
    • Профил
    • WWW
Re: apache ha cluster и php sessions
« Отговор #8 -: Nov 12, 2008, 13:23 »
Така доста съм си играл с HA като съм достигал до напълно работещ сървър. Въпроса е че при NFS има едни Lock който ти пречат за това със сесиите. Та това е основният проблем.
Активен

Registered Linux user: 473460
http://skyhost.bg - Хостинг и Домейни

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Re: apache ha cluster и php sessions
« Отговор #9 -: Nov 12, 2008, 13:43 »
NFS сървъра явно се намира на една от двете машини предполагам, щом стават подобни драми с локинг-а. Е те това не е много разумна идея като цяло, отпадането на едната машина води до отпадане на функционалността и на другата - щото няма да чете и пише в mountpoint-a.
Активен

"Knowledge is power" - France is Bacon

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Re: apache ha cluster и php sessions
« Отговор #10 -: Nov 12, 2008, 15:18 »
...
« Последна редакция: Nov 12, 2008, 15:20 от gat3way »
Активен

"Knowledge is power" - France is Bacon

ovrpwrd

  • Участници
  • ***
  • Публикации: 7
    • Профил
Re: apache ha cluster и php sessions
« Отговор #11 -: Nov 13, 2008, 11:08 »
NFS сървъра явно се намира на една от двете машини предполагам, щом стават подобни драми с локинг-а. Е те това не е много разумна идея като цяло, отпадането на едната машина води до отпадане на функционалността и на другата - щото няма да чете и пише в mountpoint-a.

Здравейте отново,

Да просто бях монтирал session.save_path на едното php като NFS на другото, просто за теста, но несе получи не заради nfs lock мисля, вероятен проблем с позволениятя(nfsnobody/nobody) не успях да го изясня тъй като прецених че NFS сторидж за сесиите не е надежден и го изключих като вариант.

Реших проблема използвайки memcached да пази сесиите(на трета машина). Остава да клъстеризирам и memcached демона за да не осъмна без сесии евентуално някой ден :) и така. Това е моето решение засега, все пак продължавам да търся сходни решения и евентуално развитие.
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
PHP sessions
Общ форум
J0r0 1 3457 Последна публикация May 10, 2002, 13:23
от BULFON
CORBA na CLUSTER
Хардуерни и софтуерни проблеми
blind_fish 1 2828 Последна публикация May 23, 2003, 17:51
от blind_fish
cluster za linux
Търсене
obla4e 3 5406 Последна публикация Oct 29, 2003, 14:25
от subn3t
Back up cluster
Настройка на програми
EazySnatch 9 4321 Последна публикация Aug 16, 2006, 17:44
от EazySnatch
Cluster за изчисления
Общ форум
rcbandit 12 6735 Последна публикация Nov 18, 2011, 22:45
от gat3way