Birinci bölümde Cluster node’larının nasıl kurulduğu ve kurulurken izlenmesi gereken adımların nasıl tamamlanacağını anlatmıştık. Bu bölümde ise Cluster yapılandırma işlemini anlatmaya çalışacağım.
Benim kurguladığım yapıyı genel anlamda anlatmak gerekirse, şöyle izah edebilirim. Öncelikle sistemlerin tamamı sanal. Bu sistemler 2 adet RedHat EL 6.2, 1 adet OpenFiler storage sunucu, 1 adet Windows 2008R2 DC olarak görülmektedir. OpenFiler ve RedHat sunucuları iSCSI interface üzerinden birbirine bağladım. Bu bağlantı ile blok bazlı 1 adet quarum, 1 adette data alanı verdim. Her iki RedHat Linux sunucu da bu alanları görerek mount etmiş durumdalar.
RedHat version 6’dan sonra system-config-cluster ara yüzünü iptal etmiş bulunuyor. Daha kullanışlı bir web ara yüzü devreye alınmış. Kurulum uzun ve zahmetli ama gerçekten sorunsuz çalışan bir cluster yapısı ile karşılaşıyorsunuz.
Ön hazırlıklar
Normal şartlarda kurulum için birçok paket yüklemek gerekiyor. Ama node’ların kurulumunu 1nci bölümde anlattığım gibi yaptıysanız sadece 2 adet paket Install ederek bu aşamayı atlatabilirsiniz. Şimdi RedHat DVD’sini mount edelim. Sonrasında aşağıdaki komutu verelim. DVD mount edildikten sonra aşağıdaki klasöre geçiyoruz.
# mount /dev/scd0 /media/
# cd /media/Packages/
Bu lokasyonda aşağıdaki komutları veriyoruz ve Install ediyoruz.
# rpm -ivh lvm2-cluster-2.02.87-6.el6.x86_64.rpm
# rpm -ivh gfs2-utils-3.0.12.1-23.el6.x86_64.rpm
Paketler aşağıdaki gibi yükleneceklerdir.
Şimdi aşağıdaki komutları uyguluyoruz. Bu komutlar RedHat Cluster’da istenmeyen servisleri Disabled eder ve çalışması gereken servisleride otomatik olarak enable eder.
# chkconfig iptables off
# chkconfig ip6tables off
# chkconfig acpid off
# chkconfig NetworkManager off
# chkconfig luci on
# chkconfig ricci on
Bu işlem sonrası her iki sunucuyu restart ediyoruz.
# reboot
Sistem yeniden açıldıktan sonra luci ve ricci servisleri çalışacaktır. Cluster configurasyonu artık bu ara yüzlerden konfigüre edilmektedir. Hazırlıklara devam ediyoruz. Şimdi her iki node’unda hosts dosyalarına karşı tarafın iplerini yazacağız. Bu sayede her iki sunucu isimleri ile birbirlerine ulaşacaklardır. Eğer hosts file’larına yazmak istemiyorsanız bu işlemi DNS sunucu üzerinde yapmanız gerekli. Nano ile yazalım,
# nano /etc/hosts
Nano editörü açılınca en alt satıra şunları ilave ediyorum.
192.168.1.19 rhel6n01 rhel6n01.techtalk.intra
192.168.1.20 rhel6n02 rhel6n02.techtalk.intra
Sunucuları birbirinden isimleri ile pingleyerek deneyiniz. Şimdi daha ilerde sorun çıkarmaması için ricci servis account’unun şifresini resetleyelim.
# passwd ricci
Buraya kadar olan adımları eksiksiz ve problemsiz gerçekleştirdiyseniz arayüz çalışacaktır. Yapılan işlemler neticesinde grafik arayüzünün çalışması için gerekli altyapı hazırlıklarını tamamladık. Buradan sonra işlemlerin büyük bölümü için grafik ara yüzünü kullanabiliriz.
Cluster Konfigürasyonu
Şimdi browser adres kısmına https://rhel6n01.techtalk.intra:8084/ adresini yazarak arayüze erişebiliyor olmanız lazım. Arayüz aşağıdaki gibi karşınıza gelecektir.
Username kısmına root yazalım. Password kısmınada root password’ünü yazarak login olacağız. Luci cluster configürasyon ekranı gelecektir.
Gördüğünüz gibi boş bir konfigürasyon ekranı. Artık cluster’ımız için gerekli yapıyı inşa etmeye başlayabiliriz. Cluster configürasyon ekranları çok güzel hazırlanmış. Oldukça hızlı çalışıyor. “Manage clusters” başlığına tıklıyoruz. Karşımıza aşağıdaki ekran gelecektir. Sağ üst taraftan “create” diyerek Cluster konfigürasyonuna devam ediyoruz.
Create dedikten sonra karşımıza şu ekran gelecektir.
Önce Cluster ismini verelim. Sonra tüm node’larda aynı password’ün kullanılması için “use the same password for all nodes” kutucuğunu dolduralım. Birde en altta “Use shared storage support” kutucuğunuda işaretlememiz lazım. Bu işlemler sonrası aşağıdaki “create cluster” ile devam edelim. Cluster’i oluşturmaya başlıyor.
Ve cluster’i oluşturdu. Artık ince ayarlarla devam edebiliriz.
“Cozumpark” isimli cluster’imiz hazır. İçinde 2 adet sunucumuz mevcut. Bu sayı 16 adet’e kadar çıkabilir. Şimdi quarum diskini oluşturalım.
Cluster’lar için önemli bir konu olan quarum diski haliyle RedHat HA servisi içinde çok önemlidir. Bu işlem için daha önceden hazırladığım her iki sunucununda iSCSI interface’i üzerinden görebildiği “sdb1” diskini kullanacağım. Sizin altyapınızda FiberChannel yapı mevcutsa onuda kullanabilirsiniz. Sorun olmaz. RedHat HA servisi için atanan disklerin block base olmasını istiyor. Bu diski quarum diski olarak özel bir format ile hazırlamak gerekiyor. Bunun için gerekli komutu vererek hazırlığı tamamlıyorum.
Cli ara yüzünü kullanacağız. Hemen aşağıdaki komutu uygulayalım.
# mkqdisk -c /dev/sdb1 -l qdisk
Şimdi yeni quorum diskimizi bir inceleyelim.
# mkqdisk –L
Evet quorum diskimiz hazır. Yukarıdaki ekran görüntüsünde host kısmında göreceğiniz üzere ilk node diskin sahibi. Şimdi web ara yüzünü kullanarak “cozumpark” cluster’ımıza bu diski atayalım.
En sağ üst tarafta bulunan configüre seçeneğini tıklayalım, (yukarıdaki bilgi ekranlarının altında kaldı ;( ). Configüre menüsünün hemen altında bir menü bar daha çıkacaktır. Orada Qdisk seçeneğini tıklıyoruz. İlk olarak “Do Not Use a Quorum Disk” seçeneği seçili gelir. Biz “Use a Quorum Disk” seçeneğini seçelim. Sonra aşağıdaki kırmızı kare ile işaretlediğim “By Filesystem Path to Device (deprecated)” ‘i işaretleyelim. Sonra altındaki alana “/dev/sdb1” yazarak sayfanın en altındaki “apply” butonuna basalım. Artık quorum diskimizde hazır. Bundan sonrası artık uygulama türüne göre bu cluster’ın yapılandırılmasına kalıyor.
# clustat
komutu ile cluster’ın durumunu görelim.
Herşey çok güzel. Gördüğünüz gibi tamamen sorunsuz şekilde kurulum tamamlandı. Şimdi cluster sunucuların birlikte aynı anda yazıp kullanacakları data alanını oluşturacağız. Bu işlem içinde yine Cli ara yüzünü kullanıyoruz. Daha önceden hazırladığım “/dev/sdc” diskini bu amaçla kullanacağım. Bu alanı her iki sunucu da aynı anda kullanacaklar ve görecekler. Zaten iSCSI’den diski fiziksel olarak her iki sunucuda görebiliyor. Bu device üzerinde bir LVM yani logical volume oluşturacağız. Aşağıdaki komutlarla devam edelim.
# pvcreate /dev/sdc
# vgcreate –c y FileSystem_gfs2 /dev/sdc
Fiziksel volume ve virtual volume tamam. Bitmedi, devam ediyoruz.
# lvcreate -l 100%FREE -n FilSystemGFS2 FileSystem_gfs2
Partition ‘da tamam. Şimdi formatlıyoruz.
# mkfs -t gfs2 -p lock_dlm -t cozumpark:gfs2 -j 4 /dev/mapper/FileSystem_gfs2-FilSystemGFS2
Formatlama işinden sonra artık bu volume her iki sunucunun kullanabileceği hale geldi. Şimdi Cluster Volume Daemon yani “clvmd” servisini restart edelim.
# service clvmd start
Bu konuda yapılacak birtek işlem kaldı. Bunu yaptıktan sonra Cluster’ımız bu alanı her iki node üzerinde görüyor ve aynı anda kullanıyor olacak. Bu işlem “mount” işlemi. Yani windows dilindeki harf atama işlemi. Aşağıdaki ekran görüntüsünde olduğu gibi mount satırını “/etc/fstab” dosyasına yazıyoruz.
# nano /etc/fstab
En alttaki satırı ilave ediyoruz. Bu satırları her iki node’unda fstab dosyalarına ilave etmeyi unutmayalım.
/dev/mapper/FileSystem_gfs2-FilSystemGFS2 /cluster/data gfs2 defaults,noatime,nodiratime 0 0
Sunucuları restart ederek yeni volume’leri kontrol edebilirsiniz. Kontrol etmek için 1nci noda’da “/cluster/data” bir dosya atalım. Sonra 2nci noda’a geçerek dosya buraya gelmiş mi bakalım. Her iki node’da da bu alanı aynı anda ortak kullanabiliyor olmalı.
Şimdi örnek bir senaryo hazırlayalım, Diyelimki benim bir File server hazırlamam lazım. Ama bu alanında cluster yapıda olması lazım.
Öncelikle aşağıdaki gibi serverlar arası öncelik sırası oluşturalım. Bunun için FailOver başlığı altından bir FailOver Domain oluşturuyoruz.
Ben sunucular arası öncelik sırasınıda ekrandaki gibi veriyorum. Create diyerek işi bitiriyoruz. Sonra Resources başlığından kaynak oluşturacağız. Resources başlığına tıkladığımızda aşağıdaki ekran gelecektir.
Add diyerek devam ettiğimizda aşağıdaki ekran karşınıza gelecektir. Buradaki seçenekleri incelediğinizde göreceğiniz üzere HA yapabileceğiniz birçok uygulama mevcut.
Aslında bunun dışındaki uygulamaları da kendi yazacağınız scriptlerle HA bir yapı da oluşturabilirsiniz. Ben GFS2 seçeneğiniz seçiyorum. Yapmak istediğim her iki sunucunun ortak kullanabileceği bir “File Share” alanı ortaya çıkarmak. RedHat failover sunucularda bu file system’i kullanmaktadır. Bir SAN ya da iSCSI file alanınız varsa bu şekilde HA servisindeki tüm sunucuların kullanmasını sağlayabilirsiniz.
Burada seçtiğiniz seçeneklere göre opsiyonlar çıkacaktır. GFS2 ile devam ettiğimde mount point soruyor. Daha önceden oluşturduğum mount point’i veriyorum. Device kısmınada bu diskin hangi disk device olduğunu yazıyorum. Burada yazılması gereken “/dev/mapper/FileSystem_gfs2-FilSystemGFS2 “. Bu disk benim quorum diskinden sonra ikinci olarak atadığım iSCSI device. Buda block based bir disk. Submit diyerek devam ediyoruz.
Şimdi service group oluşturacağız. Bu grup artık HA gurubundaki sunucular arasında, verdiğimiz kaynakları kullanarak gezecek olan servis. Aşağıdaki görüntüye sahip.
Burada yine seçenekler mevcut. Biz “Add” diyerek devam ediyoruz. Karşımıza gelen ekranda yine seçenekler mevcut.
Öncelikle bir isim veriyoruz. Bu isim benim HA servis ismim olacak. Sonrasında servisin her iki node’da da otomatik olarak çalışması için “Automatically Start This Tervice” kutucuğunu dolduruyorum. FailOver domain kısmında daha önceden oluşturduğum “FileArea” isimli FailOver domainini seçiyorum. Recovery policy kısmında ise restart seçeneğini seçiyorum. Buraya kadar herşey güzel.
Servisin benim istediğim ve daha önce oluşturduğum disk alnını kullanması için “Add Resource” butonuna tıklıyorum.
Hemen bir seçenekler ekranı açılıyor. Buradan daha önce oluşturduğum disk alanını seçeceğim. (En üstte)
Gördüğünüz gibi ayrılmış bir şekilde benim daha önce oluşturduğum FileShareArea isimli seçenek çıkıyor. Bunu seçtiğinizde bir önceki ekran aşağıya doğru uzayacaktır. Burada daha önceki yapılandırma seçeneklerini görebilirsiniz. Submit diyerek onaylayıp devam edelim.
Gördüğünüz gibi işlem tamamlandı. Servis hazır. Sayfada seçenekler mevcut. Bunlardan bir kısmı değiştirilebilir. Şimdi servisi seçerek start edelim.
Artık Cluster’ımızı güvenle kullanabiliriz. En önemli unsur uygulamanın kullanacağı dosyaları cluster ortak alanına konumlandırmak.
Kolay gelsin.