Bu makalenin farklı dillerde bulunduğu adresler: English Castellano Deutsch Francais Nederlands Turkce |
tarafından Atif Ghaffar Yazar hakkında: Atif bir bukalemondur. Rollerini sistem yöneticisinden programcıya,
proje yürütücüsüne, işini yapmak için icap eden herhangi bir seye çevirebilir. İçerik: |
Özet:
Özel amaçlı kritik sistemler tasarlancağı zaman, ya akıcı şemalandırma esnasında yada onu fiziksel olarak paketlerle, kablolarla vs inşa ederken, birinin şu soruları sorması gerekir:
Şimdi birkaç ciddi tartışma için.
Linux'a gözüm kapalı guvendiğim halde, makineleri, güç sağlayıcılarını, ağ kartlarını, anakartları vs. üreten şirketlere güvenmem ve onlardan birisi bozulursa sistemimin kullanılamaz olacağından daima korkarım. Bundan dolayı servis ulaşılamaz olacak, üstelik benimle doğrudan alakalı olmadığı halde bütün şirket servislerini kapalı hale getireceğim. Örneğin
Yüksek Erişilebilirlik onun ne olduğunu söyleyen birşeydir.
Yüksek Erişilebilir birşey.
şirketinizin iş görürlüğünü korumak için gerçekten önemli birtakım hizmetler.
Örnek:
Bu örnekte, teorik olarak bir apache sunucu üzerinde çalışmakta olan, intranete hizmet veren
Etkin/Etkisiz küme yaratacağız.
Bu ufak kümeyi oluşturmak için fazla RAM'i ve çok CPU'su olan iyi bir makine ve sadece servisi çalıştırmak için
yeterli RAM/CPU'su olan diğer bir makineyi kullanacağız.
İkinci makine yedekleme düğümü oluyorken, birincisi ana
düğüm olacaktır. Yedekleme düğümünün yaptığı iş eğer ana düğüm cevap veremiyorsa ondan servisleri devralmaktır.
Kullanıcılarımızın intranete nasıl erişeceğini sadece bir düşünelim.
Onlar kendi gezginlerine http://intranet/ yazacaklar ve DNS sunucusu onları 10.0.0.100'a (örnek ip) yönlendirecektir.
Bu intranet servisini çalıştıran farklı ip adresli iki sunucu koyarsak ve
ana düğüm devreden çıktığı zaman DNS sunucusundan onu ikincisine yönledirmesini istesek nasıl olur.
Tabiki bu bir seçenek, fakat istemciler üzerinde DNS belleklendirmesi vb. hakkında tartışılacak birkaç nokta var
ve belki DNS sucunusunu bir YE(HA) kümesinin kendi üzerinde çalıştırmak isteyeceksiniz.
.
Diğer seçenek eğer ana düğüm çalışmaz ise durgun düğüm onun ip'sini deralabilir ve isteklere hizmet vermeye başlayabilir.
Bu yöntem "İP devralma" diye adlandırılır ve örneklerimizde kullanıyor olacağımız yöntemdir.
Şimdi ana düğüm DNS'e herhangi bir değişiklik yapmadan çalışmasa bile, bütün gezginler onları
10.0.0.100 'a nakledecek olan http://intranet'e erişeceklerdir.
Ana/durgun düğümler kümedeki diğer düğümün çalışmadığını nasıl anlayacak?
Onlar bir seri kablo ve bir çapraz olarak bağlanmış Ethernet kablasu üzerinden birbirleriyle konuşacaklar
(fazla olarak, seri kablo yada Ethernet kablosu işlevini yapmayabilir) birbirlerinin kalp atışlarının dinleyecekler
(evet tıpkı sizin kalp atışlarınız gibi).
Eğer kalp atışınız durmuş ise, büyük bir ihtimalle ölmüşsünüz demektir.
Küme düğümlerinin kalp atışlarını görüntüleyen programa ...tahmini... kalp atışı denir.
Kalp atışına buradan erişilebilir
http://www.linux-ha.org/download/
İp adresi devralmaya yarayan bu program sahte olarak adlandırılır ve kalp atışında hesaplanmıştır.
İki makineyede koymak için fazladan bir ağ kartınız yoksa, kalp atışısını sadece bir seri kablo (kukla modem)
üzerinden çalıştırabilirsiniz.
Diğer yandan ağ kartları ucuzdur, bu nedenle fazla olarak başka bir tane daha ekleyin.
Daha önce bahsettiğimiz gibi, birinde iyi makine diğerinde ise cok iyi olmayan bir makine kullanacağız.
İki makinenin de herbiri 2 ağ kartıyla donatılacak ve en az bir seri portu olacak.
Bir tane çapraz bağlanmış cat 5 RJ45 (Ethernet) kablosuna ve bir tane de kukla modeme
(çapraz bağlanmış seri kablo) ihtiyacımız var.
Her iki makinedeki ilk ağ kartını onların Internet ip adresleri için kullanacağız.(eth0)
Her iki makinedeki ikinci ağ kartını udp kalp atışıyla konuşan bir gizli ağ için kullanacağız. (eth1)
Her iki makineye de Internet ip adreslerini ve isimlerini vereceğiz.
Her iki düğümün eth0'ına örnek olarak şunları gösterebiliriz:
10.0.0.1 ip adresiyle clustnode1
10.0.0.2 ip adresiyle clustnode2
Şimdi sabit olmayan bir ip adresi (bu daha önce altını çizdiğim servis ip adresidir) 10.0.0.100(intranet)'ü kaydedeceğiz.
Bu anda onu herhangi bir makineye atamamiza gerek yok
Bir sonraki adımda makinelere ikinci ağ kartlarini için ayar yapacağız ve
onlara kullanılmayan bir genişlikten herhangi bir ip adresi vereceğiz.
clustnode1 ip adresi 192.168.1.1
clustnode2 ip adresi 192.168.1.2
Sonra makinelerin 1 yada 2 Seri portuna uzanan seri kablolara bağlantı kuracağız ve
onların çalışıyor/birbirleriyle konuşuyor olduğundan emin olacağız.
(herbir makinenin ayni portuna bağlandığınızdan emin olun, en kolay yolu budur)
Buraya bir bakın
http://www.linux-ha.org/download/GettingStarted.html
Yazılımı kurmak kolaydır, kalp atışına ikili tabanlı olan ve kaynak paketleri şeklinin
her ikisine de rpm ve tar.gz uzantısında erişebilirsiniz.
Yazılımı kurarken bir sorunla karşılaşırsananız, büyük ihtimalle bir YE(HA) sistemi kurmak için sorumluluk almamış olmalısınız.
(YE(HA) olmayacak, belki o DE (NA) olacak)
Mükemmel bir Getting
Started with Linux-HA klavuz mevcut, bu nedenle bilgileri buraya tekrar kopyalamayacağım.
Kalp atışını düzenleyin
örneğin kalp atışı ayar dosyaları /etc/ha.d içindeyse
sonra
/etc/ha.d/authkeys dosyasını en sevdiğiniz editörle düzenleyin.
#/etc/ha.d/authkeys auth 1 1 crc #end /etc/ha.d/authkeys
debugfile /var/log/ha-debug logfile /var/log/ha-log logfacility local0 deadtime 10 serial /dev/ttyS3 #bunu uygun bir portla değiştirin ve bu bilgi bölümünü silin udp eth1 #ikinci ağ kartını kullanmıyorsanız bu satırı silin node clustnode1 node clustnode2
#masternode ip-address service-name clustnode1 10.0.0.100 httpdbu anadüğümü clusternode1 olarak tanımlar, örneğin clusternode1 çalışmağı zaman clusternode2 servisi devralacak, fakat clusternode1 geri geldiği zaman, kendi servisini düzeltecek. Bu iyi olan bir makine ve iyi olmayan makine kullanıyor olmamızın nedenidir (clusternode1 iyi makinedir)
/etc/ha.d/httpd starteğer dosyayı bulamazsa şunu deneyecek
/etc/rc.d/init.d/httpd start
/etc/ha.d/httpd stopeğer dosyayı bulamazsa şunu deneyecek
/etc/rc.d/init.d/httpd stopclusternode1 üzerindeki ayarlamalarınız bittiğinde, dosyaları node2'ye kopyalayabilirsiniz.
httpd servisi node1'den node2'ye taşıntığı zaman aynı veriyi görmez.
Benim httpd CGI'larımla yaratıyor olduğum tüm dosyaları serbest bırakıyorum.
.
İki cevap:
1. Kendi CGI'nızdan dosyaya asla yazmamalısınız.(onun yerine bir ağ veritabanı kullanın...MySQL oldukça iyidir)
2. İki düğümü merkezi bir SCSI deposununa bağlıyabilirsiniz ve
bir zamanda sadece bir tanesinin onunla konuştuğundan emin olun, ve
a makinesi üzerindeki kartın SCSI tanımlayıcısını 6'ya çevirdiğinizden ve b makinesindekini ise
7 olarak bıkartığınızdan yada bunun tersinden emin olun.
Bunu ben Adaptec 2940 SCSI kartlarıyla denedim ve onlar SCSI tanımlayıcısını değiştirmeme izin verdiler. En ucuz kartlar bunu
yapmanıza izin vermeyecektir.
Bazı Raid denetleyicileri kümenin-farkında denetleyiciler olarak
satılırlar fakat şundan emin olun ki üreticiler Microsoft cluster kit'i
satın almadan kartın konak tanımlayıcısını (HOST ID) değiştirmenize
izin vermeyecektir.
HP'den NetRaid dönüştürücülerine sahiptim ve onlar
kesinlikle Linux'u desteklemezler. Para harcama hakkında iyi
duygulara sahip olmak için onları bıkarmak zorunda kaldım.
Sonraki adım ufak bir SAN yaratmak için Fibrechannel kartları, bir fibrechannel hub ve bir Fibrechannel depo birimi satın almak olacaktır,
onlar kesinlikle paylaşımlı SCSI kullanmaktan daha maliyetlidir fakat
onlar iyi bir yatırımdır.
Tüm makinelerin sanki yerel bir depo gibi oluşturduğu depo birimine
saydam erişime sahip olmanıza izin veren FC üzerinde GDS(GFS) (Genel Dosya
sistemi, aşağıdaki kaynaklara bakınız) çalıştırabilirsiniz.
Biz 2 si yukarıda tarif ettiğim YE(HA) düzenlemesine benzeyen
8 makine üzerinde yapım ortamında GDS(GFS) kullanıyoruz
Eğer aynı anda olan erişime izin veren iyi bir depolama sisteminiz varsa
kolay bir şekilde Etkin/Etkin sunucuyu inşa edebilirsiniz. Fibrechannel ve GDS(GFS) örnekleridir.
Eğer NFS gibi Ağ dosya sisteminizden hoşnutsanız, bunu kullanabilirsiniz fakat tavsiye edemeyeceğim.
Ne olursa olsun, servisA'yi clusternode1'e ve servisB'yi clusternode2'ye kopyalayabilirsiniz,
benim kaynak dosya örnegim:
clustnode2 172.23.2.13 mysql clustnode1 172.23.2.14 ldap clustnode2 172.23.2.15 cyrusDepolama için GDS(GFS) kullanıyorum, bu nedenle veriye aynı anda olan erişimlerle bir problemim yok ve bu makineler tarafından yönetilebilir olabildiğince çok servis çalıştırabiliyorum.
|
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-02-10, generated by lfparser version 2.9