Failover Cluster Yapısına Quorum Disk Witness Ekleme

Bu makalede mevcut Failover Cluster yapısı kurulu olan bir sistemde Quorum Disk Witness ekleme işlemini ele alacağız. Quorum disk kurulumuna geçmeden önce Quorum yapısını ne olduğundan bahsedeyim. Mevcut clusterımızın ayakta kalması için cluster database dosyalarının tutulduğu kısımdır. Bu yapının çalışabilmesi için cluster yapımızda bulunan toplam sunucuların yarısından bir fazla ile sunucu oy hakkına sahip olur ve lider olarak ayağa kalkması sağlanır. Bu yapımız olmasa da olur aslında bir sıkıntı yaşamayız. Sorun şurada karşımıza çıkar iki sunucu aynı anda down oldu ve iki sunucu aynı milisaniye zamanında ayağa kalkmaya çalışırsa mevcut sistemimizin çalışmamasına sebep olur. Bu riskin önüne geçmek için Quorum yapısı oluşturulur. Bu yapılandırmayı yapmasak ta mevcut bir sunucu down olduğunda diğer sunucu up olmaktadır. Genellikle çift yapılı node durumların oluşturulur. İki farklı quorum modeli bulunmaktadır. Bunlar Disk Witness yapısı diğeri ise File Shared Witness yapısıdır. Herhangi bir failover cluster yapısı oluşturduğumuzda cluster’daki sunucularımın göreceği ortak bir iSCSI disk yapılandırılması […]

Failover Cluster Yapısına Quorum Disk Witness Ekleme

Bu makalede mevcut Failover Cluster yapısı kurulu olan bir sistemde Quorum Disk Witness ekleme işlemini ele alacağız. Quorum disk kurulumuna geçmeden önce Quorum yapısını ne olduğundan bahsedeyim.

Mevcut clusterımızın ayakta kalması için cluster database dosyalarının tutulduğu kısımdır. Bu yapının çalışabilmesi için cluster yapımızda bulunan toplam sunucuların yarısından bir fazla ile sunucu oy hakkına sahip olur ve lider olarak ayağa kalkması sağlanır. Bu yapımız olmasa da olur aslında bir sıkıntı yaşamayız. Sorun şurada karşımıza çıkar iki sunucu aynı anda down oldu ve iki sunucu aynı milisaniye zamanında ayağa kalkmaya çalışırsa mevcut sistemimizin çalışmamasına sebep olur. Bu riskin önüne geçmek için Quorum yapısı oluşturulur. Bu yapılandırmayı yapmasak ta mevcut bir sunucu down olduğunda diğer sunucu up olmaktadır. Genellikle çift yapılı node durumların oluşturulur.

İki farklı quorum modeli bulunmaktadır. Bunlar Disk Witness yapısı diğeri ise File Shared Witness yapısıdır.

Herhangi bir failover cluster yapısı oluşturduğumuzda cluster’daki sunucularımın göreceği ortak bir iSCSI disk yapılandırılması yapılmışsa cluster’ımız otomatik olarak en küçük disk yapılandırmasını Disk Witness olarak ayarlar. Bu yapı oluşturulduğunda diske sahip sunucu cluster yapımıza da sahiptir. Sadece  bir sunucum witness diski kullanırken diğer sunucum diski göremez. Diski gören sunucum ise diske yazma işlemi yapmaktadır. Genellikle sistemlerde  1 GB boyutunda verilmektedir. Görmüş olduğum canlı sistemlerde  5 GB olarak verilmektedir. Teori bilgi olarak minumum 512 MB gereklidir. Her sunucum vote olarak geçmektedir.

 

Bu teori bilgilerden sonra şimdi uygulamalı bir şekilde Disk Witness yapımızı oluşturalım.

Benim elimde 3 sunucu bulunmaktadır. Bunlar active directory kurulu olan AD sunucusu, Sql Server ve AlwaysOn yapımızın olduğu S1 ve S3 sunucumuz bulunmaktadır. Bu 3 sunucum aynı domain içerisinde olan bir yapı. S1 ve S3 sunucum aynı cluster içerisinde birbirleriyle senkron bir şekilde çalışan bir yapı. Ayrı bir disk sunucusu tanımlamayıp AD sunucusu üzerinde bir 5 GB’lık boş bir disk yapılandırarak iSCSI yapısıyla sunucularımın bağlanmasını sağlayacağım. 3 sunucumunda birbirleriyle disk haberleşmesi için kullanacağı  farklı bir Ethernet bağlayacağım. Bu yapıların nasıl oluşturulacağı ile ilgili herhangi bir bilgi sahibi değilseniz FAİLOVER CLUSTER KURULUM(yunusyucel.com) makalelerini baştan sonra  okumanızı  tavsiye ederim.

İlk başta 3 sunucuma farklı bir isimde Ethernet yapımı oluşturmuş oldum.

3 sunucum DISK_ETHERNET üzerinden aynı ip bloğundan haberleştiğini test etmiş oldum.

Bu haberleşmenin testini yaptıktan sonra AD sunucum üzerine tanımlamış olduğum 5 GB’lık null alanı tanımlayalım.

AD sunucumda run kısmına diskmgmt.msc yazıp disk management ekranımı açıyorum.

Gelen ekranda tanımlamış olduğum 5 GB’lık boş alanın geldiğini görmüş oluyorum. Tanımlanan bu alanı yapılandırma işlemine geçelim.

Offline üzerine sağ tıklayıp online yapısına alıyoruz.

Online yapısına aldıktan sonra Not Initialized üzerine sağ tıklayıp Initialize Disk yapıyoruz.

Gelen ekranda GPT seçiyoruz.

Daha sonra Unallocated alanına sağ tıklayıp New Simple Volume diyiyoruz.

Gelen ekranda next deyip bir sonraki adıma geçiyoruz.

Boş tanımladığımız 5 GB’lık alanda bir değişiklik yapmayıp Next diyoruz.

Diskimize herhangi bir harf belirliyoruz.

NTFS ve 64K seçtikten sonra diskimize bir isim veriyoruz.

Next deyip gelen ekranda finish dedikten sonra işlemlerimi sonlandırıyorum.

Disk Management ekranından diskimizin yapılandırıldığını görmüş oluyoruz.

Sırada S1 ve S3 sunucularımızın AD sunucusu üzerinde tanımlanmış olan disk yapısını görme işlemini yapmış olacağız.

İlk başta Cluster Node’ları hazır hale getirelim.

S1 sunucusuna giriyorum.

Tools bölümünden iSCI Initiator kısmına tıklanıp bu servis aktif hale getirilir.

 Açılan ekranda en sağda Configuration kısmından Initiator Name kısmını kontrol ediyoruz sunucu isminde  herhangi bir sıkıntı var mı.

S1 sunucusunda bu servisi çalıştırdıktan sonra şimdi sıra S3 sunucusunda bu işlemleri yapmakta.

Tools bölümünden iSCSI Initiator kısmına tıklanıp bu servis aktif hale getirilir.

Açılan ekranda en sağda  Configuration kısmından Initiator Name kısmını kontrol ediyoruz sunucu isminde  herhangi bir sıkıntı var mı.

 

Şimdi ise bir iSCSI hedefi oluşturmaya çalışacağız. İlk başta yapacağımız iSCSI target server component yapısını oluşturmak bunun için server manager ekranından yeni bir role ekliyoruz.

AD sunucumun üzerinde bu ayarlamaları yapıyorum.

Gelen ekranda iSCI Target Server ve iSCI Target Storage Provider yapısını seçmek gerekiyor.

Next deyip gelen ekranda yes’e tıkladıktan sonra install deyip kurulum işlemlerini yapıyorum.

 

Kurulum işlemi başarılı bir şekilde tanımlanmış olur. Target compunent’lerimiz yüklendi. Server Manager>File and Storage Services> iSCSI kısmına girilir.

 

To create an iSCSI virtual disk… bölümüne tıklandığında aşağıdaki kısım karşımıza gelmektedir. Burada Quorum olarak tanımladığımız disk karşımıza gelmiş bulunmakta. Tanımlamış olduğum E diskimi seçip next deyip bir sonraki aşamaya geçiyorum.

Gelen ekranda sanal diskime bir isim veriyorum.

Normalde fixed size seçilmesi gerekmektedir. Test ortamım olduğu için Dynamically expanding yapısını seçiyorum.

Gelen ekranda yeni bir yapılanma oluşturacağım için  new iSCS target kısmını seçip next diyiyorum.

Gelen ekranda bir isim verdikten sonra next deyip bir sonraki aşamaya geçiyorum.

Hedefteki sunucularımı eklemek için add kısmına tıklıyorum.

Enter a value for the selected type kısmını seçtikten sonra type kısmından ip,iqn,dnsname,mac adress kısımlarını seçebiliriz. Bunlar hedefteki sunucularımızı ne olarak tanımlamak istiyorum ekranı. Örneğin ip seçilip S1 ve S3 sunucularının ip adresleride girilebilir. Girilecek ip adresi DISK_ETHERNET ip adresi.

Bu ekranda bizden IQN isimlerimizi teker teker istiyor. Bunun için S1 ve S3 sunucusunda iscsi initiator kısmına girip oradan almış olduğumu kısımları buradan ekliyoruz.

S1 sunusunda server manager>tools bölümünden iscsi initiator kısmına tıkladığımızda configuration bölümünden Initiator Name kısmındaki değeri alıp yukarıdaki Value kısmına yapıştırıyoruz.

İnitiator name kısmından ilgili yeri kopyalayıp aşağıdaki value bölümüne  yapıştırıyoruz.

Aynı işlemleri ikinci sunucu içinde yapıyoruz.

Gelen ekranda herhangi bir düzenleme yapmadan bir sonraki aşamaya geçiyoruz.

Gerekli kontrolleri yaptıktan sonra create deyip oluşturuyoruz.

Başarılı bir şekilde işlemlerin gerçekleşmiş oldu.

AD sunucumda başarılı bir şekilde kurulum yaptıktan sonra şimdi sıra geldi S1 ve S3 sunucu konfigürasyonda.

AD sunucusunda bu işlemleri yaptıktan sonra  S1 ve S3 sunucusunda server manager kısmından iSCSI Initiator kısmından target kısmından hedef sunucunun yani AD  sunucusunun  disk yapılanması için verdiğim ip adresi yazılmaktadır. Bu verilen ip ikinci oluşturduğum ethernetin ip adresi.

İp adresi yazılıp quick connect denilir.

Gelen ekranda iscsi target seçilir done işlemine alınır.

Gelen ekranda bağlanmasına rağmen işlemimiz garanti olsun diye tekrardan connect yapısına tıklıyorum. Normalde status kısmında inactive yazmaktadır.

Gelen connect to target kısımında advanced sekmesine tıklanır. Buranın bir kere açılması gerekmektedir. Bazen hata verebilir.

Önümüze gelen ekranda herhangi bir değişiklik yapmayıp ok tuşuna basıyoruz.

Enable multi-path kısmının seçilmesi gerekmektedir.

Bu şekilde işlemlerimi tamamlıyorum.

Aynı işlemleri ikinci sunucum içinde yapıyorum yukarıdaki yapının aynısı.

Bu adımlardan sonra şimdi ise bakalım S1 ve S3 sunucusuna disklerimiz null olarak tanımlanmış.

S1 sunucumdan disk yapılanmasını yapıyorum.

Bunun için run kısmına diskmgmt.msc yazıyoruz.

Disk sunucumuzdan tanımlamış olduğumuz disk’n geldiğini görmüş oluyoruz.

Bu disk kurulumunu yapalım. Başlangıçta yaptığım için direk sonucu paylaşmak istedim.

S3 sunucusunda disk yapılandırılmasını yapalım S1 sunucusunda kurduktan sonra ikinci sunucuda sadece online’a almak yeterlidir.

Böyle bir hata çıkar önemsenmemesi gerekmektedir. Ok dedikten sonra tekrar online dediğimizde  QUORUM diskimiz gelmiş olacak. E diski neden geldi çünkü DISK sunucumuzda bu E olarak tanımlanmış.

Failover cluster ekranından witnes olmadığını gözlemlemekteyiz.

Failover cluster ekranından networklarımın geldiğini görmüş oluyoruz.

Şimdi disk ekleme işlemlerini yapacağız.

Gelen ekranda oluşturmuş olduğumuz diski seçiyoruz.

Disk yapımız gelmiş oldu dikkat edersek assigned to kısmında available storage olarak gözükmektedir. Bu yapıyı witness’a geçirmek için aşağıdaki adımların yapılması gerekmektedir.

Quorum disk yapısına geçiş için clusterımızın üzerine sağ tıklanır. More Actions> Configure Cluser Quorum Settings kısmına tıklanır.

Gelen ekranda next denilip bir sonraki aşamaya geçilir.

Yeni bir Quorum yapacağımız için Advanced quorum configuration bölümüne tıklanır.

Not: Farklı bir diskimizin Quorum disk olarak devam etmesini istiyorsak Select the quorum witness olarak seçilip yeni diskimizin set edilmesi gerekmektedir. bu seçildikten sonra ikinci gelen ekranda Configure a disk witness seçilerek yeni olan diskimiz seçilebilir.

Gelen ekranda belirli Node’lar veya tüm Node’lar üzerinde quorum yapısını oluştururuz. Ben tüm Node’larım üzerinde yapmak istiyorum. Next deyip bir sonraki adıma geçilir.

 

Disk Witness kuracağım için Configure a disk witness seçeneği seçilir.

Next dedikten sonra gelen ekranda mevcut eklemiş olduğumuz disk yapısı seçilir.

Next finish deyip işlemlerimi bitiriyorum.

Failover Cluster Manager bölümünde Disks kısmına geldiğimizde Assigned To kısmında Disk Witness in Quorum olduğunu görmüş bulunmaktayız.

Baştaki teori bilgidende yola çıkarak S1 primary sunucusu üzerinde QUORUM disk yapısının olmadığı ama secondary sunucusu üzerinde olduğunu gözlemlenmekte.

S3 sunucusuna bağlantı sağlandığında disk yapımızı görmekteyiz.

Bu makalede baştan sona kadar Failover Cluster  yapımızda QUORUM disk yapımızı ele almıştık.

Benzer Yazılar

SQL SERVER FULL-TEXT SEARCH

SQL Server 2 gün önce

Bu makalede Sql Server ’da metin tabanlı veriler üzerinde etkili arama performansı sağlayan Full-Text Search ’ten bahsedeceğim. Full-Text Search işlemlerini yapabilmesi için Full-Text index kolona sahip olmamız gerekmektedir. Full-Text indexler, metin içeriği barındıran ve belirli veri türlerine sahip kolonlarda oluşturulabilir. Bu veri türleri “Char, Varchar, NChar, NVarchar, Text, NText, XML, Varbinary, Image ” yer alır. Full-Text index oluşturulabilmesi için ilgili tabloda tek kolonlu bir unique bir index bulunması zorunlu bir koşuldur. Bu kısım biraz daha detaylandıralım, örnek olarak mevcut ortamda bulunan tablonuzda “Id” ve “Tarih” kolonları ile partition yapınız var bu yapıda mevcut partition index unique durumda bulunuyor ama yine de full-text index oluşturamıyorsunuz çünkü tek kolonlu bir unique index gerekmektedir. Benim test ettiğim yöntemlerden birisi de “Id” ve “Tarih” kolonları ile computed column oluşturarak bu kolona unique index oluşturmaya çalışmak oldu bu yöntem ile görece unique bir kolon oluşturarak bu kolona index oluşturulabilir ancak bu computed column oluştururken tablonuza […]

SQL Server DMV ve DMF – 4

SQL Server 3 hafta önce

Bu yazımızda DMV ve DMF serisinin 3.’süne bakıyor olacağız. Konuya İlişkin daha detaylı bilgiye sahip olmak isterseniz ya da önceki serileri okumak isterseniz. SQL Server DMV ve DMF – I ve SQL Server DMV – II makalelerine göz gezdirilebilirsiniz. Bu yazımızda SQL Server üzerinde yoğun olarak kullandığımız ve SQL Operating system ile ilişkili bilgilere erişmek istediğimizde ihtiyacımız olan DMV ve DMF’lere göz gezdireceğiz. Bildiğiniz gibi DMV ve DMF’ler problem teşhisinde kullanıldığı gibi monitoring etmek içinde çokça kullanılmaktadır. Özellikle Operating system ile ilgili kullanmak istediğimizd sys.dm_os ile başlayanları kullanabiliriz. Peki biz hangi DMV’leri ne için ve nasıl okuyoruz? SQL Server’ın üzerinde koştuğu Windows’un bilgilerine ulaşmak için; SELECT * FROM sys.dm_os_windows_info; Görsel – 1   Windows_sku: Stock Keeping Unit Stock Keeping Unit değeri Windows_release sonucunun hexadecimal çıktısıdır. Görsel – 2 48 = 0x30 olduğunu biliyoruz. Bu değeri hesaplamak için Hexadecimal değeri Binary değere convert ederek elde edebilirsiniz.   SQL Server ve üzerinde […]

SQL Server DMV ve DMF – 3

SQL Server 3 hafta önce

DMV ve DMF serimizin 3. Serisinde sql server executionları arka planda çalışması sonucunda dataları performans anlamında nelere bakabileceğimizi ve bu parametreleri nasıl anlamlandırmamız gerektiğine bakacağız. Özellikle IO ve Memory dar boğazı yaşadığımız zamanlarda arka planda koşan sorgular büyük önem arz etmektedir. Bir önceki makalede kullandığımız DMV ve DMF’lerin detaylandırılmış ve bize hangi sonuçlarını verdiğini bu yazıda öğrenmiş olacağız. Özellikle Expensive Query olarak adlandırdığımız maliyetli sorguları kimi zaman sorun anında bulmak büyük sorunlar teşkil edebilmektedir. Sorunu doğru adreslediğimiz zaman çözüm noktasında ilerleme kaydetmiş oluyoruz. Şimdi hep birlikte performs dar boğazı yaratan sorguları nasıl bulabilirim konusunda bakalım. select top 50 coalesce (db_name(st.dbid), db_name(convert (int, pa.value)), ‘Empty’) as DBName, qs.last_execution_time as LastExecutionTime, SUBSTRING(st.text, (qs.statement_start_offset/2)+1, ((CASE qs.statement_end_offset WHEN -1 THEN DATALENGTH(st.text) ELSE qs.statement_end_offset END – qs.statement_start_offset)/2) + 1) AS StatementText, st.text as ProcedureTextOrBatchText, qs.execution_count as ExecutionCount, (qs.total_worker_time/1000) as CPUTimeTotal, ((qs.total_worker_time/1000)/qs.execution_count) as CPUTimeAvg, (qs.total_elapsed_time/1000) as DurationTimeTotal, ((qs.total_elapsed_time/1000)/qs.execution_count) as DurationTimeAvg, qs.total_physical_reads as PhysicalReadsTotal, (qs.total_physical_reads/qs.execution_count) as PhysicalReadsAvg, […]

0 Yorum

Yorum Yaz

Rastgele