Uzun bir aradan sonra tekrardan merhabalar. Yine uzun ve gayet açık bir makale ile karşınızdayız. Bu makalemizin konusu SQL 2012 ile gelen Alwayson özelliğinin nasıl kullanılacağını anlatıyor olacağım. İçeriği ve işlemlerin A dan Z ye anlatılan bir makale olması sebebiyle bu konu üzerinde yazılmış en detaylı Türkçe makale olduğunuda belirtmek isterim. Makalemiz gayet uzun olduğu için 4 bölüm halinde yayınlayacağız.

Makalemizin 1. bölümünde Active Directory ve Cluster Nodları tarafında ki hazırlıklardan, ikinci bölümünde Cluster Servisnin konfigürasyonundan, üçüncü bölümünde SQL Server 2012 kurulumundan, dördüncü ve son bölümünde ise makalemizin ana konusu olan SQL 2012 AlwaysOn Availability Groups olşuturulmasından bahsediyor olacağız.

Hazır isek makaleminizin ilk bölümünü olan Active Directory ve Cluster Nodeları tarafındaki hazırlıklardan başlayabiliriz.

Bu makale bir Sistem yöneticisine adım adım Windows Server 2012 üzerinde SQL 2012 Always On Cluster işlemini anlatmayı hedeflemektedir.

Makalenin İçeriği adım adım şu şekildedir.

  • Active Directory Tarafındaki Hazırlıklar
  • SQL Nodeları Tarafındaki Hazılıklar
  • Cluster Servisinin Configüre Edilmesi
  • SQL Server 2012 Kurulumu
  • SQL 2012 Üzerinde AlwaysOn un Aktif Edilmesi ve AlwaysOn Availability Groups Oluşturulması

1) Active Directory Tarafındaki Ön Hazırlıklar

Bilindiği üzere Cluster işlemleri için Microsoft tarafında Domain gereksinimi bulunmaktadır. Ve geneli itibariyle Microsoft ailesine bağlı ürünlerin birçok fonksiyonlarının efektif olarak kullanılabilmesi için bu yapı bir ön şart olarak karşımıza çıkmaktadır.

Bu sebepten dolayı birçok ürünün sağlıklı bir şekilde çalışma ön koşullarından biriside sağlam ve disipline olmuş bir Active Directory yapısının sağlıklı bir şekilde tasarlanmasıdır.  Bu makale her ne kadar SQL Server 2012 AlwaysOn kurulumunu ve mevcut senaryolarını anlatmayı amaç edinmişse de bu işlemin sağlıklı yapılabilmesi için ilk aşamada Active Directory tarafındaki hazırlıkların ve dikkat edilmesi gereken işlemlerin neler olması gerektiğine değinmektedir.

A) SQL Server Nodeları İçin Gerekli OU (Oraganition Unit) Yapısının Hazırlanması

Active Directory yapımızda bu çalışmamız için yapmamız gereken birincil işlem Cluster işlemleri için ayrı bir OU oluşturup Cluster üyesi olacak Nodelar ve kullanıcıları bu OU çevresinde toplayarak disipline etmektir. Bu sebeple natek.local domaini Altında MSSQL Cluster işlemleri için yeni bir OU oluşturacağız. Bizim Cluster yapımız ise Cluster Side isimli ana OU’nun altında bir Sub OU olarak oluşturulmuştur.

alwayson-sql01

MSSQL Cluster OU su ise şu alt OU’lara sahiptir.

Servers = Cluster’a üye sunucuların yer alacağı OU dur.

Users = Cluster işlemleri ve servisler için açılan kullanıcıların yer aldığı OU dur.

Groups = Cluster işlemleri veya bu grubun üyesi sunucular için bir Group gereksinimi mevcut ise bu OU altında oluşturulur.

Shared Object = GPO ile sunucular için bir Folder Share edilmesi gerekiyor ise bu OU altında belirtilir.

A) SQL Servisleri İçin Kullanıcı Hesabının Oluşturulması

SQL Server Cluster kurulumlarında SQL ve bazı diğer servislerin bir Domain kullanıcısı hesabına bağlanması gerekmektedir. Bu sebeple bizler öncelikle bu işlem için bir kullanıcı hesabı oluşturacağız.

Bu kullanıcı hesabını MSSQL Cluster OU su altındaki Users OU sunda oluşturacağız.

alwayson-sql02

Kullanıcımız normal bir User seviyesinde kullanıcı olacaktır. Ve bu kullanıcı hesabı SQL Serverların servislerinde kullanılacaktır.

alwayson-sql03

Kullanıcıyı oluşturur iken dikkat etmemiz gereken iki parametre bulunmaktadır. Birincisi kullanıcı hesabı SQL Serverların servislerine bağlanacağı için bu kullanıcı hesabının şifresinin geçerliliğini sürekli korumasıdır. Bu sebepten dolayı Password never expires seçeneğini işaretliyoruz.

Ek olarak kullanıcı şifre değişikliği yapmak istemesi durumunda bundan haberdar olmak ve olası bir sorunu elimine etmek adına User cannot change password seçeneği ile bu kullanıcının şifre değiştirme işlemlerini de engellemekte fayda bulunmaktadır.

A) Cluster Üyesi Sunucular İçin Yeni Bir GPO İlkesi Oluşturma ve GPO Ayarları

Domain User seviyesinde olan bu kullanıcı hesabı her bir SQL Server sunucusu için o sunucuda Local Admin yetkisine sahip olması gerekmektedir.

Bu işlemleri zaman tasarrufu elde etmek adına bir Group Policy ilkesi vasıtasıyla yapacağız. Ayrıca Cluster OU muzun yukarıda basılan bir Policy’den etkilenmemesi adına nasıl koruyacağımıza değineceğiz.

  • Cluster OU su İçin Yukarıdan Miras Almayı Devre Dışı Bırakma

Cluster üyesi sunucularımızın Domainde yaratılan diğer Group Policy kurallarından olumsuz bir şekilde etkilenmesini önlemek adına ilgili OU yu için yukarıdan devralma işlemini bloke etmemiz gerekmektedir.  Bu işlem için Group Policy Management a açalım ve ilgili OU ya sağ tıklayıp Block Inheritance diyelim. Böylelikle Domain için yukarıdan yayımlanmış GPO ilkelerinden minimum seviyede etkilenilmiş olacaktır.

alwayson-sql04Önemli NOT : Yukarıdan bir Group Policy kuralı Enforced edilmiş ise ilgili OU için Block Inheritance herhangi bir koruma sağlamaz. Cluster yapınızdaki sunucuların sağlıklı çalışmasını engelleyecek bir kuralın yukarıdan Enforced edilmemiş olmasına dikkat ediniz!

  • Cluster OU’su İçin Bir GPO Oluşturmak

Bu aşamada Cluster üyesi sunucular için merkezi bir politika oluşturmak ve senaryo gereği bu politikaları kullanarak sunuculara kurallar uygulamak hem zaman kazanımı sağlaması hem de sunucular için yapılacak konfigürasyon ayarların her herhangi bir diğer sunucuda atlanılmaması adına son derece önemlidir. Bu GPO ile Firewall kuralları, Local hesap ekleme-çıkartma, Folder Share etme gibi bir çok işlem yapılabilir.

Bizler senaryomuzun bu adımında Cluster üyesi sunucular için açmış olduğumuz kullanıcı hesabımızı merkezi olarak ilgili sunucular üzerinde Local Admin yetkisine sahip kılacağız. Bu işlem için öncelikle bir tane Natek SQL Cluster Policy adında bir tane Group Policy Objesi oluştuyoruz.

Artık SQL Cluster üyesi sunucularımız için bu GPO ile merkezi olarak kurallar Deploy edebiliyor olacağız.

Senaryomuz gereği ilk kuralımız Cluster üyesi sunucularımız için oluşturmuş olduğumuz kullanıcı hesabını ilgili sunucular üzerinden Local Admin grubuna eklemek; bu işlemi merkezi olarak bu GPO üzerinden yapıyor olacağız. Bu işlem için oluşturmuş olduğumuz GPO ya sağ tıklıyor ve Edit diyoruz.

alwayson-sql05

Computer Configuration – Preferences – Control Panel Settings – Local Users and Groups alanına geliyoruz ve Local Users and Groups a sağ tıklayarak New – Local Group diyoruz.

alwayson-sql06

Senaryomuz gereği natekclsadmin isimli Domain User seviyesindeki kullanıcısı Cluster sunucularımızın Administrator grubuna üye yapacağız. Yeni bir Group oluşturmayacağız, yapacağımız işlem sadece ilgili grubun üyeliğinin Update edilmesidir. O sebepten dolayı Action alanımız dan Update’i seçiyoruz.

Group Name : Kullanıcısının hangi gruba üye edileceğini belirtiyoruz. Senaryomuz gereği kullanıcıyı Administrator grubuna üye edeceğiz.

Add diyerek hangi Domain kullanıcısını bu gruba üye edeceğimizi belirtmemiz gerekiyor. Kullanıcımız olan natekclsadmin domain kullanıcısını seçiyor ve ardından OK diyerek işlemi tamamlıyoruz.

İşlemimiz bittikten sonra artık bu OU altında yer alan sunucular için bu kullanıcı hesabı otomatik olarak sunucularda Local admin yetkisine sahip olacaktır.

A) Domain User Kullanıcısının Cluster İşlemleri İçin Yetkilerinin Düzenlenmesi

Domain User seviyesinde olan kullanıcımızın Cluster işlemleri için bazı ayrıcalıklara ihtiyacı bulunmaktadır. Bunlardan ilki ilgili hesabın Cluster üyesi sunucularda Local Admin yetkilerine sahip olmasıdır. Bu işlemi yukarıdaki adımda merkezi olarak gerçekleştirdik.

Bu hesabın sahip olması gereken diğer ayrıcalıklar ise kendi OU’su altında Computer Objesi yaratabilme ve yine aynı OU da tüm özellikleri okuma yetkisine sahip olmasıdır.

Bu kullanıcıya gerekli ayrıcalıkların tanınması için SQL sunucularımızın yer aldığı Computers konteynır’ında gerekli izinleri vermemiz gerekmektedir.

Bunun için öncelikle Administrative Tools’tan Active Directory Users and Computers ı açıyoruz.

Gerekli ayrıcalıkları atayabilmek için ilgili OU da Security tabını görebiliyor olmamamız gerekmektedir.  Bu tabı görebilmek için View kısmından Advanced Features ı aktif etmemiz gerekmektedir.

alwayson-sql07

  • Kullanıcıya Yetkinin Atanması

Senaryomuzda yer alan natekclsadmin kullanıcısı için gerekli yetkileri vermek adına şu adımlar izlenmelidir.

MSSQL Cluster OU su altında yer alan Servers konteynırına gelinir ve Sağ tıklayıp Properties denilerek açılan pencereden Security tabına geçilir.

alwayson-sql08

Advanced kısmına tıklanarak açılan yeni pencereden kullanıcı için gerekli ve yeterli düzeyde yetki ataması yapılır. (Görsellerin büyük halleri için üzerine tıklayınız)

alwayson-sql09

Kullanıcımız için Read all Properties ve Create Computer Object yetkilerini atıyoruz ve OK diyerek işlemimizi sonlandırıyoruz.

Kullanıcı için gerekli izin atamalarının yapılması ile birlikte artık Active Directory tarafında yapmamız gereken ayarlar kalmamış olup bir diğer aşamaya geçmek için gerekli işlemleri tamamlamış bulunuyoruz.

2) SQL Nodeları Tarafındaki Hazılıklar

İşlem adımlarımızın bu kısmında SQL Nodeları tarafında yapılması gereken işlemlere yer verilecektir. Cluster servisini konfigüre etmeden hemen önce sunucular tarafında yapılması lazım gelen bazı konfigürasyonlara bu adımda değineceğiz.

A) Sunucu Updatelerinin Alınması

Cluster işlemine başlanılmadan önce her Node için tüm Windows Updatelerinin alınması olmazsa olmaz kriterlerden birisidir. Ayrıca SQL server kurulumlarının başlatılabilmesi içinde .NET sürümlerinin de (3.5 ve diğer sürümler) kurulması ve kurulum sonrasında Updatelerinin kontrol edilmeleri gerekmektedir.

NOT : Her iki SQL Node’unda da Updateler aynı olmalıdır.

B) Gerekli Featuresların Kurulması

SQL Cluster işlemi öncesinde bazı bileşenleri bir server özelliği olarak eklenilmesi germektedir. Bunların başında ise öncelikle Cluster servisi gelmektedir. Bu özellikleri eklemek için Server Manager konsolunu açıyor ve Add Roles and Features linkinden gerekli özellikleri sunucuya dâhil ediyoruz.

alwayson-sql10

Bu alandan .NET Framework 3.5, Failover Clustering, Multipath I/O, Telnet Client gibi Features ları sunucularda aktif ediyoruz.

NOT: Senaryomuz gereği biz Qourum bilgisini bir Shared Folder’da tutacağız. Herhangi bir Storage gereksinimiz olmadığı için Multipath I/O bileşenini ne temelde ihtiyacımız yok, aynı zamanda Telnet Client ise Cluster için bir gereklilik değildir. Lazım olacağı ön görülerek bir özellik olarak aktif edilmiştir.

Makalemizin bu bölümünü aslında son derece önemli olan Active Directory tarafında ki hazırlıklar ve Nodelar tarafında yapılması lazım gelen hazırlıkların anlatılması ile tamamlamış bulunuyoruz. Makalemizin ikinci ve önemli bir diğer konusu olan Cluster Servislerinin konfigürasyonun nasıl olması gerektiğiyle devam ediyor olacağız.


0 Comments

Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.