Trwała pamięć masowa dla Apache Mesos

Ostatnio odkryłem coś takiego jak Apache Mezos.

To wszystko wygląda niesamowicie we wszystkich demach i przykładach. Mogę sobie łatwo wyobrazić, jak można ubiegać się o pracę bez statusu-to pasuje do całego pomysłu naturalnie.

Bot jak radzić sobie z długotrwałymi zadaniami, które są stanowe?

Powiedzmy, że mam klaster, który składa się z N maszyn (i który jest zaplanowany przez Maraton). I chcę tam uruchomić serwer postgresql.

To jest to - na początku nawet tego nie chcę aby być wysoce dostępnym, ale po prostu pojedynczym zadaniem (w rzeczywistości dokowanym), które hostuje serwer postgresql.

1-Jak to zorganizować? Ograniczyć serwer do konkretnego węzła klastra? Używasz rozproszonych FS?

2-DRBD, MooseFS, GlusterFS, NFS, CephFS, który z nich dobrze gra z mezo i usługami takimi jak postgres? (Myślę tutaj o możliwości, że Mesos / marathon może przenieść usługę, jeśli pójdzie w dół)

3-proszę powiedzieć, czy moje podejście jest złe w terminologia (DFS dla serwerów danych i jakiś rodzaj przełączania dla serwerów takich jak postgres na górze Mesos)

pytanie w dużej mierze skopiowane z Persistent storage dla Apache Mesos , zadane przez zerkms na programistów Stack Exchange .

Author: Community, 2015-02-06

1 answers

Doskonałe pytanie. Oto kilka nadchodzących funkcji w Mesos, aby poprawić obsługę stateful services I odpowiednie bieżące obejścia.

  1. trwałe woluminy (0.23): podczas uruchamiania zadania Można utworzyć wolumin, który istnieje poza piaskownicą zadania i będzie trwał na węźle nawet po jego zakończeniu. Po zakończeniu zadania, jego zasoby-w tym trwały wolumin-mogą być oferowane z powrotem do frameworka, dzięki czemu framework może uruchom ponownie to samo zadanie, Uruchom zadanie odzyskiwania lub uruchom nowe zadanie, które zużywa dane wyjściowe poprzedniego zadania jako dane wejściowe.
    • bieżące obejście: Zachowaj swój stan w znanym miejscu poza piaskownicą i poproś zadania, aby spróbowały go odzyskać ręcznie. Być może utrzymuj go w rozproszonym systemie plików/bazie danych, tak aby mógł być dostępny z dowolnego węzła.
  2. Dysk Isolation (0.22): wymusza limity kwot dysków na piaskownicy oraz na trwałym woluminów. Zapewnia to, że rama o dużej pojemności nie będzie w stanie zapchać dysku i uniemożliwić uruchamiania innych zadań.
    • bieżące obejście: Monitoruj użycie dysku poza pasmem i uruchamiaj okresowe zadania czyszczenia.
  3. dynamiczne Rezerwacje (0.23): po uruchomieniu zadania możesz zarezerwować zasoby używane przez twoje zadanie (w tym trwałe woluminy), aby zagwarantować, że zostaną one zwrócone po zakończeniu zadania, zamiast przejść do dowolnej struktury / align = "left" /
    • bieżące obejście: użyj znacznika --resources slave, aby statycznie zarezerwować zasoby dla frameworka po uruchomieniu slave.

Jeśli chodzi o twój konkretny przypadek użycia i pytania:

1a) Jak to zorganizować? możesz to zrobić za pomocą Marathon, być może tworząc osobną instancję Marathon dla swoich stateful services, dzięki czemu możesz tworzyć statyczne zastrzeżenia dla roli "stateful", tak aby tylko stateful Maraton zagwarantuje te zasoby.

1b) ograniczenie serwera do konkretnego węzła klastra? można to łatwo zrobić w Marathon, ograniczając aplikację do określonej nazwy hosta lub dowolnego węzła o określonej wartości atrybutu(np. NFS_Access = true). Zobacz Maraton . Jeśli chcesz uruchamiać zadania tylko na określonym zestawie węzłów, musisz tylko utworzyć statyczne rezerwacje na tych węzłach. A jeśli potrzebujesz wykrywalności tych węzłów, należy sprawdzić Mesos-DNS i/lub } HAProxy integracji.

1c) użyć jakiegoś rozproszonego FS? replikacja danych zapewniona przez wiele rozproszonych systemów plików gwarantowałaby, że Twoje dane przetrwają awarię dowolnego pojedynczego węzła. Utrzymywanie DFS zapewniłoby również większą elastyczność w miejscu, w którym można zaplanować zadania, chociaż kosztem różnicy opóźnień między siecią a dyskiem lokalnym. Mesos ma wbudowaną obsługę pobierania pliki binarne z URI HDFS, a wielu klientów używa HDFS do przesyłania plików binarnych wykonywalnych, plików konfiguracyjnych i danych wejściowych do niewolników, gdzie będą uruchamiane ich zadania.

2) DRBD, MooseFS, GlusterFS, NFS, CephFS? słyszałem o klientach korzystających z CephFS, HDFS i MapRFS z Mezos. NFS też wydaje się być łatwy. Naprawdę nie ma znaczenia, czego używasz, o ile twoje zadanie wie, jak uzyskać do niego dostęp z dowolnego węzła, w którym jest umieszczony.

Mam nadzieję, że to pomoże!
 43
Author: Adam,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-13 18:22:11