Bu makalenin farkl� dillerde bulundu�u adresler: English Castellano Deutsch Francais Nederlands Turkce |
taraf�ndan Atif Ghaffar Yazar hakk�nda: Atif bukalemun gibidir. Rollerini de�i�tirir; sistem y�neticisinden
programc�ya, ��retmene, proje y�neticisine bir i�i yapmak i�in gereken her �eye. ��erik: |
�zet:
Bu makalede, pahal� SAN'lari veya di�er A� Blok ayg�tlar�n� kullanmadan
Linux alt�nda ger�ek zamanda bilgi kopyalanmas�n� inceleyece�iz.
Kopyalama sistemimiz i�in
FAM ve
IMON kullanaca��z.
FAM (Dosya De�i�im Ekran�) ve IMON (Inode Ekran�), orijinal olarak IRIX i�in
SGI taraf�ndan gel�tirildi.
SGI'da onun Linux'a ta��nmas� ve a��k kaynak olmas�na pek
s�cak bak�lm�yordu.
Fiyat� bir fakt�r olmad��� s�rece,GFS (Evrensel Dosya Sistemi) ve
SAN tabanl� ��z�me gidece�im,
fakat fiyat� bir fakt�r oldu�u zaman ve bilgi payla��m� gerekli oldu�u
zaman �ok se�ene�e sahip olmayaca��m..
�u anda az se�ene�im var.
Bu makalede onlar� tart��aca��z ve avantajlar� ve dezavantajlar�n� g�rece�iz.
Dosya sunucular�n�n var olan bilgiyi istemciler i�in yapmas� tahmin edilme
di mi?
Evet edildi.
E�er NFS veya SMB vs. �zerinden dosyalar� payla�an dosya sunucular�
kullan�rsak,
�i�e boyun'a ve tek ba�ar�s�zl�k noktas�na sahip olaca��z.
Payala��lm�� bilgi y���nlar�(SAN veya �okanall� SCSI) ile GFS �zerinden
bilgiyi payla��rsak, tek ba�ar�s�zl�k noktas� gibi bir bilgi y���n kutumuz
olacak ve bu yap�land�rma ile sistemin kurulumu olduk�a pahal� olacakt�r.
A� aynas� kurmak i�in NBD(A� Blok Ayg�tlar�) kullanabiliriz ancak ben bu
konuda �ok rahat de�ilim.
NBD'lerin baz� k�s�tlamalar� vard�r, kurmak ve y�netmek zordur ve e�er
gereksinimiz olan bir g�rsely�re sunucusu �zerinden birka� g�rsely�re sunucusu bilgisi
kopyalamaksa olduk�a s�k�c� olabilir.
�imdi kopyalamay� deneyelim.
Bir senaryo:
�ki g�rsely�re sunucunuz var, birtanesi ana sunucu ve di�eri onun deste�i.
T�m de�i�iklikleri ilk makinede yapars�n�z ve de�i�iklikleri ikinci makineye
rsync ile ge�irirsiniz.
Basit?
Fakat onu nas�l otomatikle�tirmeli? Kullan�c�lar�n�z �o�u zaman
FTP'den ana makineye ba�lanacakt�r. E�er ana sunucuda hata var ise ve di�er
sunucu rol� �stlenirse ne olacak?
Basit. Bunun i�in cevab�m var. Yapt�klar� de�i�iklikleri g�rmeyecekler
ve �a��racaklar. :)
�imdi, her 5 saniyede CRON'dan "rsync -av --delete kaynak hedef" 'y�
�al��t�rabilirsin fakat makinen daha sonra ba�ka bir�ey i�in kullan�lamaz.
Oldu mu?
Bir di�er senaryo:
Verileri g�ncel olarak y�klemek i�in bir FTP sunucunuz ve
alt� tane de
websunucunuz var.
�ansl�ysan�z e�er �o�u zaman NFS ile ba�edebilirsiniz
fakat bu uzun s�rmez.
�imdi ne yap�lmal�?
Bence dosyalarda de�i�iklik oldu�u zaman bilgiyi kopyala, e�er hi�
de�i�iklik yoksa bir �ey yapma.
Bu tam olarak "fam"'�n yapt��� i�tir.
O halde dosyalar �zerinde de�i�iklik olup olmad���n� nas�l anlayaca��z?
Buradaki tek cevap benim M$ Windowns developer'dan bekleyebilece�imdir.
Her saniye g�zlemledi�imiz dizini ara�t�rabilir ve onun zaman s�resi ile
kar��la�t�rabiliriz ve haf�zada bulunan versiyonu ile �l�ebiliriz.
Evet do�ru.
Ara�t�rma:Dosyalar�n zaman s�resi/�l��lerini ara�t�rmak ve eski
s�r�mleri ile kar��la�t�rmak pahal�ya mal olur.
G�rsely�re sunucunuzda alan�n�zda her 5 saniyede "ls -lR /birdizin"'nin
�al��t���n� d���n�n. :)
Dosya i�lemlerinde ne zaman de�i�tirildi�inin haber al�nmas� iyi bir durumdur,
b�ylece biz de onun �zerinde i�lem yapabiliriz.
Bu tam olarak "IMON"'un yapt��� i�tir.
Kaynak:
http://oss.sgi.com/projects/fam/faq.html
fam (Dosya De�i�im Monit�r�), belirli dosya veya dizinler de�i�ti�i zaman
dikkat edilmesi i�in uygulama programlar�n�n kullanabilece�i API'yi sa�lar.
FAM iki k�s�mdan olu�ur: fam, talepleri dinleyen ve uyar�lar� alan daemon
ve libfam, istemci uygulamalar�n�n FAM ile ileti�ime ge�mek i�in
kulland��� bir k�t�phane.
E�er g�zlenen dosyalar ba�ka bir makinadan al�nmam��sa , yerel fam o uzaktaki
makina ile ileti�ime ge�meye �al��acak ve talepleri o fam �zerinden
ge�irecektir.
Fam ayr�ca istemcileri bir dosyan�n �al��maya ba�lad��� ve �al��mas�n�n
bitti�i zamanlarda bilgilendirir.
(�rne�in; IRIX Etkile�imli Masa�st�, bunu program�n �al��t��� esnada
g�r�nt�sel g�stergesi olan ikonunu de�i�tirerek kullan�r.)
Fam orijinal olarak 1989'da IRIX i�in Bruce Karsh taraf�ndan ve
1995'te Bob Miller taraf�ndan tekrar yaz�ld�.
Fam a��k kaynak serbestli�inden dolay� Linux ve IRIX'te �al���r ve IRIX
6.5.8'e dahil olan da ayn� fam'd�r.
Kaynak:
http://oss.sgi.com/projects/fam/faq.html
�mon (Inode Monit�r�) fam'a dosyalar�n ne zaman de�i�tirildi�ini s�yleyen
bir �ekirdek par�as�d�r. Fam, uygulama programlar�n�n dosyalarla veya
dizinlerle ilgilendi�ini ��rendi�i zaman, bunu imon'a bildirir. �mon
taraf�ndan g�r�nt�lenen dosyalar �zerinde i�lemler d�zenlenince, �ekirdek
bunu fam'a bildirir ve fam da dosyalarla alakal� olan uygulamalarla ilgilenir.
�mon orijinal olarak 1989'da IRIX �ekirde�i i�in
Wiltse Carpenter taraf�ndan yaz�ld�.
Linux'a ba�lant� sa�layan kap� Roger Chickering taraf�ndan yap�ld�.
�mon'un �ekirde�indeki yamadaki Linux uygulamas� pek �ok a��dan IRIX
uygulamas�na benzer. Fakat, �ekirdek dosya sistem kodu i�inde farkl�d�r.
FAM ve IMON SGI g�rsely�resinde bulunmaktad�r. A�a��daki kaynaklar�
inceleyiniz.
IMON �ekirde�e uygulayaca��n�z bir yamad�r. Bu, inodeleri g�rmenizi
sa�layacakt�r.
�ekirdek yamas� i�in kaynak dizinine girin ve yamay� uygulay�n.
cd /usr/src/linux
patch -pi < patchfile
Daha sonra make config'i �al��t�r�n�z ve soruldu�u zaman �e�im yap�n�z.
Inode Monitor (imon)'�n destekledi�i (DENEYSEL)
dosya sistemi b�l�m�nde
herzamanki gibi �ekirde�i derleyiniz ve bilgisayar� yeniden ba�lat�n�z(�zg�n�m).
FAM'�n kendisini derlemek olduk�a kolayd�r:
fam kaynaklar� dizinine giriniz ve
./configure && make all komutunu �al��t�r�n�z.
Kurulmu�tur.
Daha sonra SGI::FAM diye adland�r�lan Perl mod�l�n� kuraca��z bu y�zden
durum bildiricisini perl'de yazabiliriz.
Ger�ekten de size C/C++'� kodlaman�z� s�yleyece�imi d���nmediniz. De�il mi?
Asl�nda sizi bilmem ama ben biraz tembel ve sab�rs�z�m
bu y�zden kopyalar� Perl'de yazaca��m.
Jesse
N. Glick taraf�ndan SGI::FAM'� indirip kurunuz.
Bu mod�lleri kurmak i�in CPAN mod�l�n� basit�e �al��t�r�n�z.
perl -MCPAN -e shell
SGI::FAM'� kurunuz.
b�ylece SGI::FAM ve daha �nce gerekli olan mod�ller yerle�ecek.
fam_mirror kopyas�n� aktif etmek icin yazd���m bir notlar
b�t�n�d�r.
incelemek i�in
veya indirmek i�in
t�klay�n�z.
D�zeltebilir ve
kendi makinenizle kar��la�t�rmak i�in $replicaHosts ile
de�i�tirebilir,
istedi�iniz komutla �al��t�rmak i�in $rsh veya $rsync ile
de�i�tirebilirsiniz.
senaryo 1
'e d�n�ld��� zaman g�rsely�re sunucusu olarak �al��an
2 makine vard�r (web1,web2). Bunlardan biri(web1) ana sunucu olarak, di�eri(web2)
ikinci sunucu olarak �al���r.
�lki FTP server (web1)'dir,
web2, t�m FTP servisini �al��t�rmaz.
(di�er yandan kullan�c�lar, sistem destek modunda olsa bile dosyalara
yazabilirler.)
Her iki makinada de g�rsely�re dok�man k�k dizini
/var/www
her iki makinada da ssh veya rsh kurar.
web2 �ifre olmadan web1'e uzaktaki komutlar� �al��t�rmaya izin vermelidir.
Ben genelde kendi ssh_key'imi kopyalanm�� makinelerin authorized_key'lerine
ekliyorum.
rsync t�m bilgi web1'den web2'ye
rsync -avz /var/www/ web2:/var/www/
fam_mirror'da d�zeltme yap ve @replicaHosts'u
@replicaHosts=qw(web2)'a de�i�tir.
web1'de fam_mirror'� �al��t�r.
fam_mirror /var/www &
ve daha sonra web1 �zerindeki dosyalarda de�i�iklik yap.
T�m de�i�iklikler web2'ye de yaz�lacakt�r.
�imdi de senaryo 2 (webserverlar�n t�m�)
"linuxweb1", "linuxweb2", "linuxweb3" ve "linuxweb4" makineleri
websunucu gibi �al���r.
"linuxftp1" makinesi ftp sunucu gibi �al���r (ana dosyasunucusu)
web makineleri FTP'yi kullan�c�lar�n kullanmas�na izin vermez.
Fam, imon, SGI::FAM ve fam_mirror'lar� "linuxftp1" host'u �zerinde kur.
rsh veya ssh'� makineler aras�nda kur.
linuxweb[1-4] makineleri �ifre gerektirmeden ba�ka makinedeki komutlar�n�n
�al��t�r�lmas�n� linuxftp1'de izin vermelidir.
fam_mirror'� de�i�tir ve @replicaHosts'lar�
@replicaHosts=qw(linuxweb1 linuxweb2 linuxweb3 linuxweb4)'e kur;
e�er gerekliyse $rsh ve $rsync de�i�tir.
T�m makinelerde /var/www'nin dok�man k�k dizini oldu�u farzedilir.
linuxftp1'de �al��t�r.
INIT_MIRROR=1 fam_mirror /var/www &
�imdi linuxftp1'de t�m de�i�iklikler linuxweb[1-4] �zerinde
g�r�lmelidir.
|
G�rsely�re sayfalar�n�n bak�m�, LinuxFocus Edit�rleri taraf�ndan yap�lmaktad�r
© Atif Ghaffar, FDL LinuxFocus.org Buray� klikleyerek hatalar� rapor edebilir ya da yorumlar�n�z� LinuxFocus'a g�nderebilirsiniz |
�eviri bilgisi:
|
2001-03-17, generated by lfparser version 2.9