Serwer dla MySQL i Samby - konfiguracja

Konfiguracja serwerów, usług, itp.
Arek
Posty: 8
Rejestracja: 30 grudnia 2007, 22:11
Lokalizacja: Bydgoszcz

Serwer dla MySQL i Samby - konfiguracja

Post autor: Arek »

Witam grupowiczów.
Muszę się zwrócić o pomoc bo po dwóch dniach "googlowania" mam już mały mętlik w głowie.
W firmie, w której pracuję, zaszła potrzeba instalacji bazy SQL w zasadzie tylko dla jednego programu (jakieś wyciągi bankowe). Całość ma działać tylko w sieci wewnętrznej. Zapadła decyzja, że powinien być do tego stworzony osobny serwer bo obecny na win2003 bodajże jest już dość obciążony innymi spawami. Z mojej strony padła propozycja Linux. Sprzęt został zakupiony i w zasadzie jest już skonfigurowany i zainstalowałem na nim Debian Lenny + Apache2 + MySQL + PHP5 + SSH. Wszystko działa ok. Bazę dla banku założy już człowiek za banku. Przy okazji planowane jest przeniesienie części zasobów (współdzielone pliki) z serwera win2003 no i trzeba będzie zainstalować Sambę. W niedalekiej przyszłości może dojść najwyżej jeszcze jakiś CMS typu Joomla dla wewnętrznej sieci.
Po tej pierwszej konfiguracji naszły mnie jednak różne wątpliwości co do m.in. właściwego podziału dysków. Serwer składa się z:

Proc. Amd Athlon 64 X2 4050E
Ram 2 x 1GB
Dyski: 2 x 250 GB SATA, na razie z możliwością dołożenia kolejnych 4
NIC: na płycie
VGA: na płycie

Pierwszy dysk podzieliłem na kilka partycji, ale teraz zastanawiam się czy nie przesadziłem, bo baza do obsługi banku będzie raczej znikomych rozmiarów:

2 GB /
4 GB swap
40 GB /usr
4 GB /tmp
10 GB /var
20 GB /home
reszta z pierwszego hdd 250 GB na razie wolna.

Czy nie warto tego uprościć do:

40 GB /
2 GB swap
? GB /home no właśnie ile ? biorąc pod uwagę Sambę to z serwera będzie korzystać docelowo około 20-25 użytkowników na winXP

To w końcu będzie tylko jedna baza dla programu bankowego i w przyszłości baza Joomli. Myślałem też żeby część wolnego miejsca wykorzystać na drugą instalację dla testów konfiguracyjnych.
O sambę pozwolę sobie zapytać później, bo widzę że się trochę rozpisałem ;-) (walczę z konfiguracją testową na domowych komputerach).

Pozdrawiam
Arek
Tatanek
Posty: 9
Rejestracja: 04 stycznia 2008, 05:22
Lokalizacja: Kraków

Post autor: Tatanek »

Skoro ma to być serwer firmowy to czy nie warto tych dysków mieć w raid? Choćby sofrwarowym.

Proponuję też wyniesienie mysql na osobną partycję.
Ja przeważnie miejsce pod masyzne bazodnową dzielę tak:
4 GB /
2 GB swap - więcej raczej nie potrzeba chyba że przewiduję że będzie momentami bardzo obciążony
/var 10GB- jeżeli na tej partycji mają być też binlogi mysql to musi być większa
/mysql (albo vol) reszta miejsca

I żelazna zasada: jeżeli ma to być ważny/produkcyjny serwer to za nic w świecie nie wpuszczam tam developerów/programistów. Dlaczego? Bo jestem pewny, że nikt nie zrobi mi tam jakiegoś wdrożenia "po cichu", ani nie będzie sobie czegoś tam wypróbowywał przez co system bedzie niestabilny.
Arek
Posty: 8
Rejestracja: 30 grudnia 2007, 22:11
Lokalizacja: Bydgoszcz

Post autor: Arek »

Dziękuję za odpowiedź,
co do RAID to na pewno fajnie by było, ale niestety nie jestem zbytnio w temacie, raz tylko robiłem RAID 0 albo 1 już nie pamiętam, w każdym razie były dwa dyski podpięte do kontrolera i dane były dzielone, ale to chyba z 8 lat temu na win98 :-), może przy okazji ewentualnych kolejnych dokładanych dysków, jeśli zajdzie taka potrzeba.

Co do podziału dysku to nie bardzo rozumiem jak wykorzystać osobną partycję /mysql, możesz coś więcej powiedzieć?

Czy /tmp osobno wydzielać? Jaki duży? Czy baza generuje jakieś duże ilości danych? Prywatnie na domowym komputerze mam tylko Joomle zainstalowaną więc obciążenie żadne.

A programistów/developerów to na pewno nie będzie żadnych :-)
Tatanek
Posty: 9
Rejestracja: 04 stycznia 2008, 05:22
Lokalizacja: Kraków

Post autor: Tatanek »

Raid to podstawa bezpieczeństwa danych. Co zrobisz jak padnie Ci dysk, na którym będziesz miał ważne dane? Nie pisałeś nic o backupach...

Osobna partycja /mysq jest wygodna. Cała zawartość bazy jest oddzielona od reszty systemu. Możesz w dowolnym momencie zrobić np obraz całej partycji nie martwiąc się o to, że masz tam jeszcze kilka innych rzeczy, które nie są Ci potrzebne.
Ilość danych generowanych przez bazę zależy od jej obciążenia (update, select, delete, alter table... itd). Kwestia planowania. Mysql zqpisuje wszystko co robi do logów, więc miejsce na te logi musisz mieć. Czasem dla backupu trzeba zrobić dump,a wszyskich tabel, na który też potrzebne jest miejsce. Najlepiej na partycji /mysql - wszystko w jednym miejscu. Potem takiego dump'a można np zgrać na inny dysk czy płytkę.
meal
Posty: 19
Rejestracja: 31 marca 2007, 19:47
Lokalizacja: Wodzis³aw ¦l±ski

Post autor: meal »

Tatanek pisze:Mysql zqpisuje wszystko co robi do logów, więc miejsce na te logi musisz mieć.
Bullshit. mam serwer mysql na którym wykonuje się kilkanaście tysięcy zapytań dziennie, i przechodzi przez niego ponad terabajt danych w miesiąc, jedyne co się loguje to slow query. Dopisane oczywiście w konfigu. Domyślnie nie logują się nawet błędy.

@Arek: 1GB swapu starczy spokojnie. Tak jak Tatanek powiedział, dobrze by było mieć osobną partycję na mysql, koniecznie na szybkim systemie plików (reiser lub xfs). Oczywiście ściezki do do katalogów będzie trzeba zmienić w konfigu mysql. 20-40GB powinno Ci spokojnie wystarczyć, wbrew pozorom to naprawdę duża ilość danych. na sambę przeznacz ile uważasz za słuszne, nie wiem co tam chcesz trzymać.
Arek
Posty: 8
Rejestracja: 30 grudnia 2007, 22:11
Lokalizacja: Bydgoszcz

Post autor: Arek »

@meal @ Tatanek
Patrząc na Wasze odpowiedzi widzę, że będę musiał przekonfigurować wszystko, a co do rozmiaru partycji /var to może człowiek z banku, który przyjdzie założyć bazę, ale to dopiero z tydzień, powie więcej o jej przyszłych możliwych rozmiarach. Może w poniedziałek lub wtorek będę znał więcej szczegółów. Z tego co mi na razie przekazano to będzie tylko baza do obsługi wyciągów bankowych. Aplikacja będzie zainstalowana na stacjach windowsowych i tylko program będzie się łączył z bazą pewnie w celu zapisania operacji, ale nie wydaje mi się żeby ta baza rosła do jakichś wielkich rozmiarów. No i poza tym tylko Joomla.

Co do tej osobnej partycji /mysql to nie wiem jak to ugryźć.
Czy wystarczy zmienić ścieżki z pliku /etc/mysql/my.cnf

basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp

?
zmienić na

basedir = /mysql
datadir = /mysql
tmpdir = /mysql

zaraz po instalacji mysql?

Bazę instaluję zawsze z repozytorium a dalsza obsługa to już tylko phpmyadmin. Czy zwykły backup bazy z phpmyadmin nie jest poprawny/wystarczający, czy macie jakie złe doświadczenia z importem jakichś backupów baz? Na domowych komputerach nigdy się tym nie przejmowałem :-) niestety.

@Tatanek
Z tym RAID'em to nie wiem czy miałoby to sens przy tych dwóch dyskach, z czego jeden cały planowałem wykorzystać na zasoby dzielone SAMBA, których na dziś może uzbiera się z 40 GB.
Sugerujesz, że lepiej było by z tych dwóch dysków na starcie zrobić mirror?
A jak z przyszłym dokładaniem dysków dla zasobów SAMBY?
Miałem w planach ten jeden dysk 250GB przeznaczyć w całości na SAMBE montowany np. w /media/smb z pewną strukturą katalogów, np.:

/katalog1
/katalog2
/katalog3
/katalog4/xyz1 /xyz2 /xyz3 /xyz4

z czego użytkownicy mieli by określone prawa zapisu dla wybranych katalogów.

Będę musiał Was chyba jeszcze dopytać o SAMBÊ bo nie wszystko jeszcze rozumiem z tego co czytałem na banita.pl i w części przetestowałem. Pewnie po dalszych testach pojawią się pytania.

pozdrawiam
arek
meal
Posty: 19
Rejestracja: 31 marca 2007, 19:47
Lokalizacja: Wodzis³aw ¦l±ski

Post autor: meal »

Arek pisze:Czy wystarczy zmienić ścieżki z pliku /etc/mysql/my.cnf

basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp

?
zmienić na

basedir = /mysql
datadir = /mysql
tmpdir = /mysql
Wystarczy zmienić samo datadir ;-) wtedy masz w /mysql tylko _zawartość_ bazy danych, a binaria normalnie w /usr
Tatanek
Posty: 9
Rejestracja: 04 stycznia 2008, 05:22
Lokalizacja: Kraków

Post autor: Tatanek »

MEAL napisał:
Domyślnie nie logują się nawet błędy.
Oczywiście, że o domyślnych pisałem/myślałem :)


@AREK
A do czego te zasoby udostępniane po sambie mają służyć? Serwer plików czy coś innego?
Jak serwer plików to nie bardzo mi się widzi współdzielenie zasobów sprzętowych (ram i cpu) z bazą danych.

Jeszcze odnośnie raid. Pamiętaj, że dyski spięte raidem dają Ci szybszy zapis/odczyt niż pojedynczy, co dla bazy danych też ma znaczenie. Nie bawiłem się w dokładanie dysków. Jak potrzebowałem miejsce to mountowałem macierz/inny serwer np wykorzystując nfs i na nim przydzielałem quotę na pliki.
Arek
Posty: 8
Rejestracja: 30 grudnia 2007, 22:11
Lokalizacja: Bydgoszcz

Post autor: Arek »

@Tatanek
Co do mysql, to masz rację, chyba najlepiej będzie zrobić osobną partycję /mysql na dane bazy.
Co do tej SAMBY to tak, ma to być serwer plików, ale raczej z niewielkim obciążeniem, raptem kilkadziesiąt (powiedzmy 100) dokumentów dziennie zapis/odczyt, głównie dokumenty OO/word/exell/pdf, żadnej ciężkiej grafiki itp. Czy to może generować duże obciążenie? Raczej nie zdarzy się żeby tych około 20 użytkowników jednocześnie intensywnie korzystało z tych zasobów? Myślisz, że jeden dysk może mieć duże problemy?
Tatanek
Posty: 9
Rejestracja: 04 stycznia 2008, 05:22
Lokalizacja: Kraków

Post autor: Tatanek »

Jeżeli ruch przez sambę będzie taki jak piszesz to nie powinno być problemów.
Co do dysku to tak jak pisałem. Jak baza zacznie mieć dużo odcztów i zapisów na dyk to maszyna będzie dobita na IO. Użycie raida a w nim chociaż 2-ch dysków zmniejszy ten rodzaj obciążenie o połowę. Sam oceń czy warto.
ODPOWIEDZ