Blog ' da Ara

Loading

23 Aralık 2011

Oracle Grid Infrastructure Architecture

                   
                Oracle Clusterware
                Cluster şekil 1 dede görüldüğü üzere birbirinden bağımsız ancak aralarında haberleşmeyi sağlayan interconnect denilen bir bağ ile birbirini gören makinelerin yapısıdır.Cluster yapısı performansı artırmak, kesintisiz erişim sağlamak ve yük dengelemek amacıyla kurulur.
Şekil 1 = Cluster Yapısı
                               
                Oracle Cluster yapısı ise Oracle Grid infrastructure temelidir.ASM (Automatic Store Management by oracle for oracle database) ile entegre çalışabilir.ASM cluster file system (ACFS) temelini oluşturur.Oracle cluster yapısı sadece oracle db için değil başka uygulamalar içinde cluster yapısı olarak kullanılabilir.Örneğin Apache server. Aşağıda oracle clusterware servislerini tanımlanmıştır.

·         Cluster Management: Cluster servislerinin ve uygulama kaynaklarının monitor edilmesine  ve cluster içindeki herbir node için yönetimine izin veren servislerdir.
·         Node Monitoring: Herbir nodun gerçek zamanlı monitor edilmesi, ulaşılabilir olması ve desteklediği kaynakları yönetebilme kapasitesi sağlayan servislerdir.
·         Event Services: Cluster içindeki değişimlerin yayınlandığı servislerdir.
·         Time Synchronization : Cluster içinde ki tüm nodaların zmaanlarının senkron olması gerekir.
·         Network Management: Virtual ip ler ile uygulamanın cluster içindeki ulaşılabilir node ları görmesi sağlanır.Bununla birlikte Grid Naming Service (GNS) network içindeki isim çözme işlemini üstlenir.
·         High Availability : Gerektiğinde tüm servisler restart edilebilir ve uygulama kaynakları için monitor edilebilir.
Oracle Clusterware Network yapısında ise şekil 2 dede görüleceği üzere her bir node üzerinde 2 adet Network Interface Kart olmalıdır.Bunlardan bir tanesi nodalerın birbiri ile haberleşeceği private network diğeri ise switch vasıtası ile clientlere erişim sağlayan public networku oluşturur.Private networke interconnect de denir.Private network UDP veya RDS desteklemelidir.Public network ise TCP desteklemelidir.

Şekil 2 : Oracle Cluster Network

                
                Netstat komutu ile interconnect hatalarını görebiliriz.Ayrıca ifconfig komut ilede düşen paketler gözlemlenebilir.
                Oracle Clusterware processleri init daemon deniken /etc/init.d/init.ohasd scripti ile başlatılır.Vlusterware başlatılması /etc/inittab içeriği dünelenerek değiştirilebilir.Şekil 3 de göreceğiniz clusterware processllerinin neler olduğunu aşağıda açıklıyor olacağız.

Şekil 3: Oracle Clusterware Processes
Şekil 4 de Clusterware Prosesslerinin neler olduğunu bulabilirsiniz.Daha sonra ise bu servisler hakkında açıklamlara göz atalım.
Şekil 4: Oracle Clusterware processes Architecture
 
·         Cluster Ready Service (CRS) :Crs Process cluster içindeki high availability operasyonlerı yönetir.Bu servise Tüm cluster bazında değerlendirilecek cluster kaynaklarını ve herbir node için değişebilen local kaynakları yönetir.
·         Cluster Synchronization Service (CSS):Servis cluster configurasyonuna ait bilgileri yönetir.Ynai hangi node cluster uyesi yada hangi node cluster çıkarılmış..Servis 3 proses halinde çalışır. Bunlar ocssd (Css daemon), cssdagent (Css Agent), cssdmonitor (Css Monitor).
·         Disk Monitor (diskmon):Exadata storage servislerini yöneten prosesdir .Exadata rac sistemine herhangi zamanda yeni bir rac eklenebilir.
·         Event Manager (EVM):Oracle Clusterware değişimlerini yayınlayan background processdir.
·         Multicast Domain Name Service (mDNS):DNS taleplerinin sağlanmasını yönetir.
·         Oracle Grid Naming Service (GNS):Clusterware mDNS ile Dış DNS server arasında bir kapı niteliği taşır.GNS process cluster içindeki isim çözme işini üstlenir.
·         Oracle Notification Service(ONS):Oracle tarafından alınan alarm yada Bildirileri yayınlayan servisdir.         
·         Oracle Root Agent (orarootagent):Network veya Grid VIP address gibi kaynakların root tarafından CRSD prosessi ile yönetilmesini sağlayan prosesdir.
·         Cluster Kill Daemon (oclskd):CSS tarafından belirlenen instance taleplerinin taşınmaısını sağlar.
·         Grdi IPC Daemon (gipcd):Altyapı haberleşmesinde rol oynar.
Grid Naming Service  (GNS)
Varsayalım public network üzerinde çalışan bir DHCP var ve VIP adrese yada SCAN adrese atayabilecek yeterli ip var.GNS cluster için bir adet statik ip tutar.Buna GNS VIP IP de denir.Bu adress DNS domaine kayıt edilmelidir.GNS cluster içinde mDNS Multicast DNS set eder ve bu DNS sercer içinde statik bir konfigurasyon olmadanda diğer nodların isim çözme işlevini görür.
GNS kullanmak için DNS admin tarfından cluster ait domainin subdomainlerine yayın yetkisi verilmelidir.Single Client Accces Name ise clientların cluster’a bağlanırken kullandığı addresdir.Ancak Bu adress dinamik olarak virden çok ip adresine bakar.Böylece yük dağılımı sağlanır ve ip sabit olmadığı için sürekli availability de sağlanmış olur.Scan ip adresler cluster ip adresslerle aynı subdomainde olamalıdır.
cluster01.example.com         192.168.2.155
cluster01-scan. cluster01.example.com         192.168.2.200
cluster01-scan. cluster01.example.com         192.168.2.201
cluster01-scan. cluster01.example.com         192.168.2.202
SCAN 11 g r2 ile gelmiş bir özelliktir.Scan kullanabilemek için REMOTE-LISTENER parametresi scan listener’a bakacak şekilde aşağıdaki gibi set edilebilir.
ALTER SYSTEM SET REMOTE_LISTENER= cluster01-scan. cluster01.example.com:1521

Aşağıdaki srvctl komutları ilede scan listener yönetilebilir.
·         srvctl config scan :Scan konfgürasyonunu gösterir
·         srvctl config scan_listener:Scan listenera ait portu gösterir
·         srvctl add scan -n cluster01-scan:Cluster için Teni scan bilgisi ekler
·         srvctl remove scan –f:Scan Bilgisini kaldırır.
·         srvctl add scan_listener:Default port 1521 ğüzerinden yeni scan ekler
·         srvctl add scan_listener -p 65001 ## non default port number ##:Yeni scan bilgisi ekler
·         srvctl remove scan_listener:Scan Listener ‘ ı kaldırı.
·         srvctl modify scan -n cluster_scan: Scan bilgisini değiştirir. (dns için scan değiştiriken /etc/hosts değiştirildikten sonra kullanılır.)
·         srvctl modify scan_listener –u:Scan listener bilgisini yeni scan vip bilgisi ile uyum sağlaması için düzenler.

4 yorum:

  1. Gokhan Karagozlu23 Aralık 2011 22:27

    Ozcan paylaşım için teşekkürler. Blogunda başarılar dilerim. Bilgi paylaşımı çok kıymetlidir. Eline sağlık.

    YanıtlaSil
  2. Özgür Umut Vurgun23 Aralık 2011 23:01

    Eğitimin kısa özeti :)
    Eline sağlık....

    YanıtlaSil
  3. Gökhan Abi,
    Değerli üstad,
    DBA olmanın ince ayrıntılarını gördüğüm kıymetli abim,
    İltifat duymanın beni mutlu ettiği ender insanlardan birisin,
    Benim gibi insanlara fırsat tanıdığınız için ben teşekkür ederim,
    Sağlık ve esenlik içinde kalın.

    YanıtlaSil
  4. Özgür Umut,
    Seninle birlikte eğitim almak zevkliydi. :)
    Sende sağol

    YanıtlaSil

"Sorularınız ve Eleştirileriniz Değerlidir"