Udostępnij / home między centrami danych

15

Mam dwa serwery, umieszczone w centrach danych w Holandii i Francji. Oba działają w systemie Debian Wheezy. Muszę dzielić / home między nimi, z dobrą wydajnością. Na serwerach jest 300 użytkowników, około 30 z nich powinno mieć możliwość prowadzenia aktywnych procesów na danym serwerze w danym momencie, każdy z odczytami 50 kbit i zapisami 20 kbit / sekundę, z krótkimi szczytami około 2000 kbit / s czytanie. środki z iotopem na lokalnym składowaniu. Mam dużo małych plików, w sumie około 500000 i potrzebuję jak najmniejszego opóźnienia. Ping między serwerami wynosi 17 ms, a połączenie może osiągnąć około 20-30 MB / s przy użyciu scp i wget. Wygląda na to, że powinna być dostępna wystarczająca przepustowość, ale też ...

Do tej pory sprawdziłem: sshfs: Wydawało się, że ma lepszą wydajność niż nfs, ale losowo zmienił uprawnienia do rootowania plików, powodując awarię aplikacji.

nfs: sposób na spowolnienie, próbowałem noatime i kilka innych opcji, ale nadal działa on powolnie, nawet gdy aktywnych jest tylko kilka procesów.

drbd: 5 godzin pracy w ślepym zaułku, kiedy zdałem sobie sprawę, że nie mogę zamontować systemu plików na obu systemach :-(

glusterfs: Lokalna kopia wszystkich danych naprawdę brzmiała obiecująco, ale losowy dostęp do plików jest naprawdę powolny, a po pewnym czasie staje się niewiarygodnie wolny i prawie się zawiesza. noatime nie pomaga.

Znowu nfs: Wciąż powolny.

Płacz na klawiaturze: W ogóle nie ma poprawy.

Co dalej? Każda z nieudanych prób zajęła wieczór, a może więcej w ciągu ostatniego tygodnia, i naprawdę chciałbym, aby następna metoda zadziałała. I tak, bardzo ważne jest, aby systemy plików były współużytkowane przez oba serwery.

Dziękujemy za wszelkie nowe pomysły dotyczące tego problemu.

użytkownik3850506
źródło
6
„Płacz na klawiaturze: w ogóle nie ma poprawy”. OK, dostaje ode mnie +1.
ceejayoz
Prawdopodobnie będziesz chciał albo glusterfs, albo ceph. Rozproszony system plików. Ponadto możesz zamontować drbd wiele razy, ale tylko jeden odczyt-zapis, a to i tak straszny zły pomysł.
Sirex,
Próbowałem glusterfs i chociaż działa świetnie z dużymi plikami, staje się naprawdę wolny podczas odczytu lub zapisu małych plików. Wydaje się, że jest to powszechny problem z glusterfs i nie udało mi się znaleźć rozwiązania tego problemu. Zajrzę do Ceph. Próbowałeś tego, próbowałeś sam?
user3850506,
3
Zainstalowanie tego samego urządzenia blokowego i systemu plików, nawet RO w innym systemie jest złym juju, chyba że sterownik systemu plików rozumie, że urządzenie blokujące podkład może zmienić się w dowolnym momencie w dowolnym momencie. Urządzenie blokujące może zmienić i całkowicie unieważnić pamięć podręczną i-węzłów, a VFS chętnie odczyta dane, których już nie ma się na myśli. Systemy plików obsługujące dyski współdzielone, takie jak GFS2 i Veritas, mogą to zrobić na DRBD lub dowolnym dysku podobnym do SAN. Nie jestem jednak pewien, czy wydajność twojego małego pliku będzie akceptowalna.
Andrew Domaszek,

Odpowiedzi:

2

Istnieje kilka możliwych rozwiązań:

  1. Możesz wybrać replikowaną pamięć blokową, taką jak DRBD (lub MARS, jak wspomniano powyżej), ale musisz ustawić klastrowy system plików na pamięci blokowej. Takimi systemami plików mogą być GFS2 lub OCFS2, które są dostępne w jądrze Debiana afaik. DRBD może obsługiwać podstawowy / pierwotny i można go zamontować na obu serwerach jednocześnie. Ale jeśli zrobisz to ze standardowym systemem plików, jeden serwer nie będzie wiedział o drugim i zniszczyłbyś swój system plików w ciągu kilku sekund. System plików klastra na górze obsługiwałby komunikację i blokowanie, aby oba węzły mogły zapisywać w tym samym bloku.

  2. Użyj rozproszonego systemu plików dla / home. Listę takich systemów plików można znaleźć na stronie http://en.wikipedia.org/wiki/Comparison_of_distribution_file_systems . Ale uważaj i wybieraj mądrze. Wszyscy nie potrafią magii i wszystkie mają swoje wady. Gluster jest takim systemem plików. W przypadku niektórych systemów może być potrzebne więcej niż tylko dwa węzły.

  3. Jeśli nie trzeba go replikować w czasie rzeczywistym i wystarczy synchronizacja plików prawie w czasie rzeczywistym, to spójrz na BitTorrent Sync ( http://www.getsync.com/ ), Dropbox lub alternatywy. Każdy serwer ma swój własny / home, ale zmiany są replikowane na podstawie plików na innym serwerze.

mgabriel
źródło
1
rsync ftw 123456
dmourati,