Szukam rozwiązania do dublowania lub replikacji jednego katalogu (lub jednego systemu plików) na kilku serwerach Linux. Idealnym rozwiązaniem byłoby takie, które zezwala wszystkim serwerom na dostęp do odczytu i zapisu. Chcę też, aby był odporny, jeśli jeden z serwerów ulegnie awarii, reszta powinna nadal działać bez utraty jakichkolwiek danych.
Patrzyłem na niektóre rozwiązania:
- DRBD : replikacje na poziomie bloku, wydają się nieco przesadne;
- lsyncd : wygląda bardzo prosto, ale mam wątpliwości co do wydajności;
- GlusterFS : wydaje się, że byłoby to dobre dopasowanie, jeszcze nie zorientowałem się, jak dokładnie działa tryb replikacji. Czy będzie miał wymagane cechy?
Wszelkie inne sugestie są mile widziane.
Odpowiedzi:
Pierwsze pytanie, które zadam, to czy chcesz to zreplikować na dwóch serwerach, czy na więcej niż dwóch serwerach? W przypadku dwóch serwerów wybrałbym DRDB, w przypadku trzech lub więcej wybrałbym gluster.
Jeśli opóźnienie we / wy nie jest krytycznym problemem, poszedłbym z niechęcią. Jest dość łatwy w konfiguracji i może wyraźnie zrobić to, czego potrzebujesz. Wszystko, co musisz zrobić, to zrobić serwer gluster obsługujący pliki na wszystkich trzech urządzeniach, a następnie sprawić, by każde urządzenie działało jak klient programu Gluster, montujący pliki.
DRDB będzie skomplikowane, aby rozpocząć pracę w trybie master <-> master z 3 lub więcej serwerami. Musisz skonfigurować konfigurację opartą na pierścieniu i nie polecałbym tego. Jednak dla dwóch serwerów DRDB jest fantastyczny. Tryb Master <-> Tryb Master nie jest skomplikowany w konfiguracji i nie musisz uczyć się żadnych rzeczy z systemu plików.
lsycd jest świetny do konfiguracji master / slave, ale wydaje się, że tego nie chcesz.
Ceph jest wciąż całkiem nowy, ostatnim razem, gdy sprawdziłem, nie ma jeszcze obsługi fsck. Wolę oprzeć swoją infrastrukturę na czymś bardziej stabilnym.
Luster to fantastyczny produkt do wdrożeń na dużą skalę, ale musisz skonfigurować bicie serca i przełączanie awaryjne dla serwera mds lub jego pojedynczego punktu awarii. Biorąc pod uwagę ograniczoną liczbę serwerów, o których on mówi, podejrzewam, że w tym przypadku jest to nadmiar.
źródło
Co powiesz na Ceph lub Luster ?
źródło
Powinieneś przyjrzeć się OpenAFS - jest to w większości rozproszony system plików, który pozwala na istnienie wielu kopii danych rozproszonych w klastrze i każdy może jednocześnie czytać / zapisywać w FS.
Ma także wiele innych przydatnych funkcji (dobre uwierzytelnianie, szyfrowanie na kablu, wbudowane buforowanie lokalne na klientach, natywny klient Windows, przenośny na wiele wersji Uniksa itp.)
Jest jednak trochę ciężki do skonfigurowania.
źródło
NFS może również działać dobrze, w zależności od potrzeb.
źródło
Doprowadzenie tego do pracy z DRBD będzie naprawdę trudne - problem nie polega na tym, że n8whnp wydaje się myśleć o problemie z replikacją wielostronną (po prostu tworzysz paski węzłów w zestawie lustrzanym), ale ma kontrolę współbieżności - ty ' d trzeba uruchomić system plików klastra na dublowaniu na DRBD.
lsyncd jest jeszcze gorszy, ponieważ nie ma praktycznego rozwiązania do kontroli współbieżności.
Poleciłbym rozwiązanie typu AFS (AFS, OpenAFS) jako dojrzałe, stabilne, otwarte rozwiązanie. Trzymam się z daleka od blasku, odkąd Oracle go zamknęła. Nie jestem zbyt zaznajomiony z glusterfs, ale ponieważ opiera się on na rozproszonej, a nie replikowanej pamięci, polecam przyjrzeć się, jak będzie się zachowywać w trybie podzielonego mózgu (AFS OTOH jest zaprojektowany do pracy w trybie odłączonym).
źródło