Obecnie próbuję określić poziomo skalowalny klaster dla aplikacji internetowej opartej na drupalu, która wygląda jak kolorowy schemat poniżej:
Moduł równoważenia obciążenia implementuje sesje lepkie, więc użytkownik zachowuje stan po przydzieleniu serwera do pracy.
Każdy serwer aplikacji ma następujące funkcje:
- lakier z przodu
- drupal 6 w środku biegnie na stosie lamp
- memcached z tyłu
Dwa serwery bazy danych mysql są na wspólnym adresie IP i znajdują się w klastrze HA z DRBD i słyszą rytm, dzięki czemu ich utrata nie spowoduje awarii całej platformy.
Jest kilka rzeczy, których nie jestem pewien. Doceniam twoje opinie na temat:
Jak pamięć masowa plików powinna być skalowana w poziomie?
Zastanawiam się nad użyciem NFS do zamontowania udostępnionego katalogu plików na każdym serwerze aplikacji, więc plik przesłany w jednym miejscu będzie dostępny na wszystkich z nich. Myślę o NFS, ponieważ istnieje on od wieków i nie mam doświadczenia z MogileFS lub GlusterFS, i to było coś, z czego korzystaliśmy wcześniej, więc jesteśmy bardziej zaznajomieni z tym.
Czy istnieją jakieś wytyczne dotyczące ustalania, ile serwerów warto w ten sposób udostępnić katalog przez NFS?
W jaki sposób należy udostępnić tutaj HA na współużytkowanej pamięci plików?
Jednym z problemów jest to, że serwer NFS jest pojedynczym punktem awarii.
Używamy już Heartbeat i DRBD na serwerach Mysql, i wolałbym, aby liczba technologii zaangażowanych w stos była jak najniższa - jakie byłyby pułapki, gdybym użył tej samej strategii HA dla pliku serwery też?
Alternatywne podejście
Dotyczy to wewnętrznej witryny z ograniczoną liczbą użytkowników, którzy od czasu do czasu bardzo intensywnie korzystają z witryny przez krótki czas, gdy jest uruchomiona wewnętrzna inicjatywa. Więc to nie musi być skalowane w nieskończoność, jak w przypadku niektórych startupów.
Jeśli się uwzględni
- istnieje górny limit ruchu, którego możemy się spodziewać
- dodanie dodawania HA do serwerów plików i zaprojektowanie konfiguracji do skalowania w poziomie w ten sposób wprowadza znaczną złożoność
Zastanawiam się również nad tym, aby dwa serwery WWW były mocniejsze, aby mogły obsłużyć szczytowe obciążenie między nimi, i skonfigurować unison lub rsync między nimi w zadaniu cron, aby:
- pliki są nadal zsynchronizowane (lepkie sesje utrzymują użytkownika na tym samym serwerze, na którym przesłano plik)
- utrata jednego oznacza, że strona nadal działa.
Czy to wydaje się być możliwym sposobem na obejście ewentualnych problemów związanych ze złożonością HA NFS / DRBD?
Dzięki,
do