Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Witam,
Na wstepie, chcialbym przeprosic za tak bezczelnego posta, lecz naprawde rece mi opadaja a Wasze forum sledze od dawna i w moim mniemaniu znajduja sie tutaj ludzie ktorzy naprawde znaja sie na rzeczy. Stad tez moj wniosek iz moze ktos z Was sie juz spotkal z takim problemem.
Poszukuje klastrowego systemu plikow, ktory by zachowywal sie jak siec p2p. Zobrazuje moze sytuacje, poniewaz ciezko mi to wytlumaczyc. Postawiona jest aplikacja webowa na serwerze ktora umozliwia dostep do serwera plikow . serwer plikow jest w odleglej sieci, podlaczony albo iSCSI albo GlusterFS tudziez innego rodzaju sieciowego FS'a. Caly problem polega na transferze miedzy serwerem Web a serwerem storage, poniewaz za niego sie placi (Biorac pod uwage ukierowanie portalu web na udostepnianie plikow etc.). Czy istnieje taki system plikow ktory potrafilby ominac serwer web poprzez bezposrednie wysylanie, lub pobieranie plikow z serwera plikow? Dodatkowo jestem ograniczony "ciagloscia systemu plikow", poniewaz dostep do serwera ma byc takze zapewniony poprzez protokol ftp, stad tez wybor takich rozwiazan jak iSCSI czy GlusterFS. Ograniczenie stworzone poprzez serwer ftp jest dosyc duzym problemem, poniewaz "rozklad plikow" widziany poprzez aplikacje webowa musi byc identyczny jak na serwerze ftp dla kazdego uzytkownika ktory bedzie sie laczyl przez ftp'a swoim ulubionym klientem. Osobiscie na dzien dzisiejszy nie widze juz innego rozwiazania niz to ktore zastosowalem, lecz chcialbym sie upewnic czy aby napewno wykorzystalem odpowiednio zrodla mi dostepne.
Pozdrawiam
Offline
1. o ile dobrze rozumiem problemem nie jest raczej system plikow tylko protokol sieciowy uzywany przez klienta bo to on musi pobrac plik z serwera plikow z pominieciem webserwera
2. nie moznaby tych plikow udostepniac przez serwer ftp w tej samej lokalizacji co storage ... aplikacja webowa dawalaby tylko linki do innego serwera?
3. jakie rozwiazanie zastosowales obecnie ...
Offline
Wyjasnie moze dokladniej, poniewaz chyba zle to opisalem. Chodzi o to ze mam klastrowy system plikow, na dzien dzisiejszy zastosowalem GlusterFS. Zalozmy ze mam 4 serwery. Serwer1 na nim stoi aplikacja webowa. Serwer2 na nim stoi klient GlusterFS. Serwer3 i serwer4 to serwery GlusterFS w raid1. Serwery 3 i 4 sa niewidoczne dla serwera1, "mostem" jest serwer2. Waskim gardlem jest owy serwer2 na ktorym serwery 3 i serwery4 montowane sa pod serwerem2 i do tego wlasnie serwera bedzie sie laczyl jakis klient ftp. Aplikacja Webowa tez sama sie laczy do serwera2. Moje pytanie jest takie czy istnieje rozwiazanie klastrowe ktore pozwalalo by ominac serwer2, wysylajac bezposrednio do serwera3 lub serwera4, przy czym owe dane musza byc widoczne pod serwerem drugim? Opcja lustra sieciowego miedzy serwerem 3 i 4 jest narazie opcjonalna, wszystko jest jeszcze w fazie testow. Docelowo ma byc raid 1 z 5, co moze jeszcze bardziej skomplikowac ruch pomiedzy serwerami.
Pozdrawiam
Offline
Czy chodzi o coś na kształt drdb ?
Offline
ale dalej niezbyt rozumiem - skoro 3 i 4 sa niewidoczne dla 1 to jak chesz aby cos wysylac do nich bezposrednio ... jezeli bylyby one widoczne dla 1 to czy sprawy nie zalatwialoby zamontowanie tych zasobow rownierz na serwer1
Offline
Dziwne jest stawianie serwerów z plikami w "odległej sieci" od aplikacji web. Skąd taki pomysł? Jakby było to w tej samej serwerowni byłoby super. Jeśli nie jest może lepiej postawić na serwerze udostępniającynm pliki serwer www udostępniający te pliki i kierować linki z aplikacji na pierwszym serwerze na te pliki, które będą się ładować z serwera z plikami. Nie trzeba będzie przesyłać tych plików między serwerami więc chyba by było ok. Kwestia zmian w aplikacji.
Offline
@kamikaze:Witam, owszem jest to dziwne, lecz takie jest zyczenie klienta... Domyslam sie iz ma to na celu w pozniejszym czasie rozwiniecie aplikacji o rozne strefowe serwery plikow(dla danej lokalizacji geograficznej). Co do serwera web, ktory by udostepnial linki, byloby to za wolne jak na taka aplikacje. Jezeli chodzi o serwery w jednej sieci(serwerowni), to naprawde problemu tutaj by nie bylo, lecz wlasnie tak nie jest. Stad pomysl poszukiwania systemu plikow, ktory potrafilby sobie z routingiem omijajacym klienta poradzic. Brzmi to iracjonalnie, ale takiego wlasnie rozwiazania poszukuje.
@bercik: Montowanie na serwer1 nic mi nie da i mija sie z celem, poniewaz serwer plikow chce trzymac w jednej serwerowni a nie podlaczac do zew serwera.
@tomii: Na samym poczatku chcialem zastosowac iSCSI wraz z programowym raidem. W ten sposob bym zalatwil w bardzo klarowny sposob raida sieciowego. Niestety raid programowy na jednej maszynie z zamontowanymi dyskami po iSCSI w dosyc duzej ilosci sobie nie radzi. Przeszedlem wiec na klastry aby odciazyc sam serwer od programowego raida i zrzucic to na protokol. Przeszedlem troche tych systemow od CodaFS po LustreFS(Po drodze DRDB). Zostalem tymczasowo na GlusterFS. Nie widze innego wyjscia na taka ilosc danych jak wlasnie rozwiazanie klastrowe. Jednak zaden z nich nie umozliwial (W sensie produkcyjnym a nie testowym) przesylania danych z pominieciem klienta.
Pozdrawiam
Offline
ale jakim protokolem i dokad chesz przesylac dane z pominieciem klienta?
BTW jaka ilosc tych danych?
Ostatnio edytowany przez bercik (2010-01-07 17:54:46)
Offline
Nie wiem czy dobrze rozumiem: serwer 3 i 4 mają mieć zsynchronizowane dane i clientci i inne serwery mają korzystać z ich zasobów bezpośrednio(bez maszyny pośredniczącej)?
Offline
@bercik: No wlasnie nie wiem jak mam to zrobic i czy w ogole da sie stworzyc takie rozwiazanie. Pominac chce klienta klastra i wysylac bezposrednio do hosta korzystajacego z uslug aplikacji webowej. W celach testowych mam narazie klastry po 4 TB na kazdym, ale to tylko podczas testow. Docelowo bedzie wiecej, dodatkowo bedzie raz w miesiacu powiekszane (tudziez w razie potrzeby wczesniej) bez widocznych zmian dla koncowego klienta.
@tomii: I tak i nie, chodzi o to ze dostep do systemu plikow musi byc przez klienta. Tak zbudowane sa klastry, przynajmniej te z ktorych korzystam. Natomiast jak juz zostanie uwierzytelnione polaczenie za pomoca maszyny posredniczacej, tj klienta klastra, pliki beda wysylane bez jego posrednictwa, tylko bezposrednio z storage do klienta uslug webowych.
Tak moze dla jasnosci chce tylko napisac ze taki pomysl wyszedl od klienta, ktory twierdzi ze musi istniec takie rozwiazanie, dla ktorego tworzona jest ta cala aplikacja webowa i konfiguracja serwerow. Ja nie znam takiego rozwiazania, nie znalazlem, choc szukalem. Dodatkowo moja wiedza podpowiada mi ze stworzenie takiego klastra raczej jest niemozliwe i bezsensowne. Jednakze musze sie upewnic, stad tez napisalem na Waszym forum.
Pozdrawiam
P.S. - Wybaczcie za tak malo zrozumialy sposob przedstawienia problemu.
Offline
cos takiego jest w zasadzie utiopia bo przeciez musi byc jakis protokol pomiedzy klientem webowym a klastrem / klientem klastra ... najblizsze takiemu roziwazaniu jest serwowanie plikow z jakiegos www / ftp niezaleznego od aplikacji webowej zlokalizowanego w poblizu storage ...
sugeruje wytlomaczyc klientowi jak przesylane sa pliki w sieci ...
BTW 2*4TB to nie jest duzo ... na pojedynczej maszynce (4U) mozna miec i 96TB brutto czyli jakies 80GB netto (po zrobieniu kilku grup raidowych)
Offline
[quote=kresus]@kamikaze:Witam, owszem jest to dziwne, lecz takie jest zyczenie klienta... Domyslam sie iz ma to na celu w pozniejszym czasie rozwiniecie aplikacji o rozne strefowe serwery plikow(dla danej lokalizacji geograficznej). Co do serwera web, ktory by udostepnial linki, byloby to za wolne jak na taka aplikacje.[/quote]
No ale jak za wolne. No pomyśl masz serwer 1, na nim stronka, na której obrazki mają linki http://serwer2/obrazek1.jpg. No to jak klient na stronę wchodzi to ładuje mu się strona z serwer1 i obrazki z serwer2. Jest super szybko bo obciążenie rozkłada się nawet na dwa serwery. No przecież ty byś chciał żeby serwer1 ściągał obrazki z serwer2 by je wywalił serwer www klientowi. Więc jaki pliczek leci najpierw systemem plików do serwera www na serwer1, a dopiero potem do przeglądarki klienta. Czyli raczej dłużej to trwa.
Offline
Przez klienta usług webowych rozumiesz człowiekia - klienta całego systemu z jego kompem?
Offline
Chodzi o użytkownika, lepiej można by powiedzieć, że klientem jest przeglądarka WWW.
Offline
A dlaczego maszyny z klastra nie mogą dokonywać uwierzytelnienia? i za pomocą jakiego protokołu mają być przesyłane pili między storage a przeglądarka www klienta?
Ostatnio edytowany przez tomii (2010-01-08 19:21:26)
Offline
Witajcie, przepraszam za tak dluga nieobecnosc w temacie. Postanowilem wytlumaczyc w miare po ludzku klientowi ze to jest niemozliwe. Wczesniej mi sie to nie udalo, lecz jako argument podalem tym razem temat na forum Waszym no i zadzialalo.
@bercik: 4TB to na testy gdzie jest moze z 10 userow a ma byc docelowo sto tysiecy (?!?) na starcie, nie wiem kto to wyliczyl i czy faktycznie tak bedzie. Takie sa wymogi klienta a jak to powiadaja: "Nas klient nas pan" ;)
@kamikaze: Masz racje, tylko widzisz dwie rzeczy: Trzeba by bylo pomyslec o takim rozwiazaniu na samym poczatku jak programisci tworzyli aplikacje webowa, druga natomiast sprawa to jak to by sobie radzilo z wieksza iloscia danych (to byl miedzy innymi powod dla zastosowania rozwiazan klastrowych)
@tomii: Na serwery klastrowe maja dostep tylko, poprzez wlasnie uwierzytelnienie, klienty klastra. Ze wzgledu na mniejsza obciazalnosc serwer web stoi oddzielnie od klienta klastra. Taka jest droga pliku i nie da sie jej ominac. Najpierw serwer klastra pozniej klient ktory to udostepnia dalej.
Czytalem o rozwiazaniach SAN P2P, lecz jak wiadamo takie rozwiazania kosztuja sporo. Na dzien dzisiejszy zostawiam GlusterFS i zabaczymy jaki bedzie rezultat. Dziekuje Wam za pomoc.
Pozdrawiam
Offline
[quote=kresus]@kamikaze: Masz racje, tylko widzisz dwie rzeczy: Trzeba by bylo pomyslec o takim rozwiazaniu na samym poczatku jak programisci tworzyli aplikacje webowa, druga natomiast sprawa to jak to by sobie radzilo z wieksza iloscia danych (to byl miedzy innymi powod dla zastosowania rozwiazan klastrowych)[/quote]
Rozwiązanie mogłoby być jak najbardziej klastrowe, ale faktycznie wymaga zmian w aplikacji. Można by trzymać pliki na róznych serwerach. Dobrze, aby dobre linki do nich gdzieś przechowywać. Chyba najlepiej w bazie danych coby jednym zapytaniem potem łatwo ścieżke zmienić. No ale się rozbija wszystko o aplikacje to będzie lipa. Ale mimo wszystko wydaje się, że warto zmodyfikować tą aplikacje.
Offline
Time (s) | Query |
---|---|
0.00013 | SET CHARSET latin2 |
0.00004 | SET NAMES latin2 |
0.00095 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='13.59.69.95' WHERE u.id=1 |
0.00072 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '13.59.69.95', 1734058268) |
0.00052 | SELECT * FROM punbb_online WHERE logged<1734057968 |
0.00059 | DELETE FROM punbb_online WHERE ident='185.191.171.10' |
0.00050 | DELETE FROM punbb_online WHERE ident='66.249.66.74' |
0.00049 | SELECT topic_id FROM punbb_posts WHERE id=138065 |
0.00005 | SELECT id FROM punbb_posts WHERE topic_id=15873 ORDER BY posted |
0.00062 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=15873 AND t.moved_to IS NULL |
0.00005 | SELECT search_for, replace_with FROM punbb_censoring |
0.00093 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=15873 ORDER BY p.id LIMIT 0,25 |
0.00080 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=15873 |
Total query time: 0.00639 s |