Microsoft Failover Clustering 1-hissə
Cluster dedikdə müəyyən xidmət üçün yaradılmış server qrupları başa düşülür, Cluster-a daxil olan serverlər node-lar adlanır. Cluster-lar minimum 2 node –dan (hətta bir node-da) ibarət olur adətən. Müəyyən riyazi hesablamalıarın aparılmasında da komputer cluster-larından istifadə olunur. Yüksək trafikli web saytlarda arxa plandakı web server-lərə gələn trafiki balanslaşdırmaq üçün( yük dağıtımı) load balancing istifadə olunur, yəni web serverlərdən ibarət cluster yaradılır, həmin clustera gəlan trafik web server-lər arasında bölüşdürülür. Microsoft-un cluster həlli failover clustering və network load balancing-dən ibarətdir. Bu məqaləmdə failover clustering haqqında danışacam və test labda real olaraq həyata keçirməyə çalışacam. Failover cluster dedikdə müəyyən xidmət verən server-lər qrupunun bu servərlərdən hər hansında yaranacaq hardware və ya software səviyyəsində fail zamanı offline olması nəticəsində cluster-dakı digər server-in xidəti öz üzərindən kəsintisiz davam etdirməsi başa düşülə bilər. Bu proses failover adlanır. Windows NT serverdən bu yana mövcud olan cluster özəlliyi windows server 2003-ə qədər qurulum diskini taxaraq yüklənən bir özləllik idi, lakin windows server 2008 dən bu yana artıq add roles and features wizard-la asanlıqla qurula bilər hala gəlib. Windows server 2012 R2 cluster 64 node-a qədər dəstəklərkən, Hyper-v cluster -da 8000-ə qədər virtual maşın dəstəyi mövcuddur. Bəs niyə clustering, şəbəkəmizdə kritik əhəmiyyətə malik service-lər mövcud ola bilər tutaq ki, verilənlər bazası, e-mail, file server kimi, indi fərz edək ki, hər bir xidmət ayrı ayrı fiziki server-lərdə fəaliyyət göstərir, server-lərin birinin fail olması, düzdü, digər heç bir server-ə təsir göstərməyəcək, sadəcə o server-lə əlaqəli xidmətdən server-i ayağa qaldırana kimi istifadə mümükün olmayacaq, indi isə biz server consolidation deyilən bir metodla movcud server-lərimizi virtuallaşdıraraq bir hostun daxilində faəliyyətini təmin edərək eyni zamanda xərclərə də müəyyən qədər qənaət etmiş olduq, bəs hostumuz fail olsa? Bu zaman bütün şirkətin işi dayanacaq, biz neyniyə bilərik?, ən sadə həll kimi ikinci bir host-u şəbəkəyə daxil edib iki node-lu bir cluster qurarıq, bu zaman node-ların birində yaranacaq bir problemlə onun fail olması nəticəsində onun üzərində olan virtual maşınlar digər host üzərinə daşınacaq və xidmətdə hər hansı bir kəsinti olmadan xidmətə davam edəcək, bu Hyper-V cluster –a bir misal idi. Bəs cluster-dakı node-un fail olması o node-da çalışan virtual maşınlara niyə təsir göstərmir? Çünki, VM-in əsas .vhd, .xml, .bin kimi faylları həmin node üzərində yox ortaq storage –da yerləşir .
Cluster üçün əsas şərtlər bunlardır. 1-shared storage, 2-quorum, 3-network.
Cluster sistemi səs verməyə dayalı bir sistemdir.
Quorum –(səs çoxluğu) anlayışı windows server 2003 və windows server 2008, windows server 2012 də bir az fərqlilik təşkil edir. İlk əvvəl onu qeyd edək ki, windows server 2003 də quorum konfiqurasiyası disk only idi,
yəni cluster da node-lar üçün ortaq storage-də quorum diski mövcud idi və bu diskə sahib olan cluster-ə sahib olması demək idi, yəni başqa bir izahla əgər çox node-lu bir cluster-da sadəcə bir node-umuzun quorum diskinə access-i varsa cluster ayaqdadır deməkdir, ama disk only konfiqurasiyanın da mənfi cəhəti ondan ibarət idi ki, biz diski itirsək bütün cluster-i itirirdik.Bunun önünə keçmək üçün MNS ( Majority Node Set) həlli gətirildi. Quorum disk-də quorum-a sahiblənən cluster-a sahiblənmiş olurdusa, MNS –də çoxluq cluster-a sahiblənir. Yəni 5 node-lu bir cluster –da 1 node digər 2 node-u görürsə o zaman bu 3 node cluster-in sahibi olur. Yəni cluster-in online olması üçün node-ların yarısından çoxunun online olması gərək idi. Lakin bu ssenari 2 node-lu bir clusterda keçərli deyil, node-lar bir-biri ilə əlaqəni itirərlərsə o zaman hər ikisi offline olurlar və nəticədə də cluster.
Windows server 2003 SP1 və R2-i üçün təqdim etdiyi File Share witness həlli ayrıca server-də yerləşən paylaşıma açılmış fayldan ibarət idi beləcə, daha çox multi-site quruluşlarda istifadə olunur, səsvermədə həmin FSW-də iştirak edirdi.
Windows server 2008 ilə birlikdə yeni whitness type , Disk witness təqdim olundu. Digər disk only quorum konfiqurasiyadan fərqli olaraq disk witness –də shared storage-də cluster-da səs verməsi üçün ayrıca kiçik həcmli hissə ayrılır. FSW-dən fərqli olaraq disk witness –cluster database-in bir kopyasını özündə saxlayır. Windows server 2012 ilə birlikdə dinamik quorum özəlliyi gəldi. Bəs dinamik quorum ne demədir, yəni cluster özü quorum konfiqurasiyasını özü edir. Offline olmuş node quorum səs verməsini itirir (səs sayılmır), yenidən clustera qoşulduqda isə geri qazanır. Windows server 2012 R2 ilə birlikdə isə dynamic witness özəlliyi gəldi, yəni burda artıq witness diskin ses vermədə iştirak edib etməyəcəyi də dinamik olaraq müəyyən olunur. Elə ki tək node-lu clusterlarda witness diski səs sahib olmur, cüt node-lardan ibarət olarsa isə əksinə.
Windows server 2012 R2 də aşağıdakı quorum konfiqurasiyaları mövcuddur:
- Node majority-bu quorum konfiqurasiyası tək sayda node-lu cluster-lar üçün tövsiyə olunur, online node-ların offline node-lardan çox-dursa deməli cluster ayaqdadır.
- Node and disk majority –Bu konfiqurasiya cüt sayda node-lu cluster-lar üçün nəzərdə tutulur. Witness disk səs haqqına sahibdir. Məsəslən: 4 node-lu bir cluster da miniumum 3 nodun ayaqda olması vacibdir ki cluster online olsun.
- Node and file share majority– bu konfiqurasiya node and disk majority -yə oxşasa da burda witness disk-dən yox file share-dan ibarətdir və storage qədər dayanıqlı deyil.
- No majority:disk only– tək sayda node-a sahib cluster-larda və sadəcə test mühitləri üçün tövsiyə olunur və single point of failiure-yə malikdir.
Storage –cluster-in ən önəmli şərtlərindən biridir. Storage kimi cluster-daki node-ların eyni zamanda ələqələnəcəyi bir ortaq saxlama mərkəzi nəzərdə tutulur. Storage olaraq shared storage, fibre Channel və ya iSCSI SAN-lardan istifadə olunur. Fibre channel ən bahalı həll olmaqla bərabər peformans baxımından böyük üstünlüklərə malikdir. Təbii ki bu storage üzərindəki disklərin raid konfiqurasiyası və diskin növü və oxuma yazma sürətindən də asılıdır. Hyper-V və scale out file server cluster-lar xaric cluster sistemi aktiv passiv çalışan bir sistemdir. Bu nə deməkdir yəni eyni anda hər bir node ortaq storage üzərindəki diskləri görür və əlaqəlidir , lakin eyni anda sadəcə aktiv node disk üzərində oxuma və yazma işini görə bilər. Bu shared nothing modeli adlanır. Windows server 2003 cluster-larda SCSI-2 komandaları (release, reserv, reset) istifadə olunurdu, lakin windows server 2008 clusterlarla birlikdə artiq SCSI-3 persistent reservation anlayışı gəldi. Disk sistemləri eyni anda sadəcə bir əməliyyat sisteminin həmin disklə əlaqələnməsi və oxuma yazma işini görməsi üzrə dizayn edilmişdir, lakin oxuma yazma işini görmək üçün disk-ə eyni zamanda 2-ci bir əməliyyat sisteminin müraciəti corruption-a,yəni itkiyə səbəb ola bilər. SCSI persistent reservation-da storage-da bir reservation cədvəli olur və storage hər bir node-a bir unique ID verir. Storage üzərində olan disklər cluster-dakı bütün node-lara map-lənir. Cədvəldə əlaqə haqqı olan nodeların və əsas sahibinin adresləri olur. Cluster bütün node-ların key-lərini bilir. Default olaraq aktiv node hər 3 saniyədən, passiv node isə hər 7 saniyədən bir storage üzərindəki reservation cədvəlindəki reservasiyanı silib özününkünü yazar, əgər 2-ci dəfəki yoxlamada öz reservasiyasını görərsə ( yəni aktiv node-unki ilə əvəz olunmamış) onda digər node-la storage arasında əlaqə problemi mövcud olduğu sanılar və failover prosesi başlar. Windows server 2008 r2 ilə birlikdə Cluster Shared Volume yeniliyi gəldi, bu yenilikdə artıq bir diskin bütün node-lardan eyni zamanda əlaqələnməyi mümkün oldu. Belə ki eyni cluster shared volume üzərində olan və müxtəlif node –lar üzəridə çalışan VM-lərimiz ola bilər.
Cluster-in digər bir əsas şərti isə şəbəkədir, yəni network. Clusterin normal fəaliyyəti üçün şəbəkə konfiqurasiası çox vacibdir, Cluster-da private və pubic şəbəkələr müəyyən olunur, yəni node-ların sadəcə bir-biri ilə əlaqələndiyi şəbəkə hansı ki cluster müəyyən zaman intervallarında node-ların ayaqda olub olmamağını bu şəbəkə ilə yoxlayır (heartbeat), əgər node-dan cavab gəlməzsə ikinci dəfə yenidən yoxluyur, artıq 3-cü dəfə public network varsa həmin node-a bu şəbəkədən çatmağa çalışar. Public şəbəkə cluster xarici clietlərə xidmət göstərdiyi şəbəkə kimi başa düşmək olar məs:domain network. Amma sadəcə bir şəbəkədən ibarət də cluster qurmaq olar , lakin bu tövsiyyə olunan deyil. Storage istifadə olunan SAN özü bir şəbəkədir və bununla şəbəkə sayı 3-ə çıxmış olur (storage network).
İndi isə keçək test lab-da sadə iki node-lu Hyper-v Cluster-in qurulmasına;
Mənim lab-ımda 4 ədəd server istifadə olunacaq, DC, HV-NODE1, HV-NODE2, STG-SRV – hər biri Windows Server 2012 R2 -dir. Cluster da storage üçün iSCSI target server (STG-SRV) istifadə edilir. Şəkildən göründüyü kimi 3 növ şəbəkə mövcuddur. 1-cisi domain şəbəkəsi – bütün serverlərin əlaqələndiyi management şəbəkə, 2cisi node-larla storage arasındakı şəbəkə, 3-cü isə node-lar arasındakı private (heartbest) şəbəkə.
İndi hər bir server üçün şbəkə tənzimləmələrinə göz ataq: ilk olaraq DC -domain network 10.10.10.0/24
HV-NODE1: Domain network 10.10.10.0/24 , private network 1.1.1.0/24, storage network 10.10.11.0/24
HV-NODE2:Domain network 10.10.10.0/24 , private network 1.1.1.0/24, storage network 10.10.11.0/24
STG-SRV:Domain network 10.10.10.0/24 , storage network 10.10.11.0/24
İndi keçək Storage kimi istifadə edəcəyimiz server üzərində aşağıdakı role-ları quraraq storage üçün tənzimləmələrə davam edək: İlk öncə role-ları quraq;
İndi isə Storage üzərində disklərin tənzimlənməsinə keçək ilk mən target server-də LUN1 və LUN2 adlı 100GB həcmli 2 iSCSI virtual disk yaradacam və əlavə cüt node-lu cluster olduğu üçün witness olaraq 1 GB həcmli bir disk ayıracağam.
İlk öncə server manager-dən File and Storage services bölməsindən iSCSI-alt bölməsinə keçərək şəkildəki kimi disklərimizi yaradırıq:
Storage kimi fəaliyyət göstərəcək serverimiz target adlanır, clietlərimiz isə initiator , ilk öncə target server- yaratmalıyıq:
Bu hissədə isə biz storage-imizdən istifadə edəcək node – ları əlavə eləməliyik , burda biz bunu müxtəlif üsullarla edə bilərik:
Göründüyü kimi biz həm target həm də yeni bir disk yaratmış olduq eyni zamanda
Eyni qayda ilə digər disklərimizi yaradırıq, son nəticə bu şəkildə olmalıdır;
İndi isə Hyper-V node-larımız üçün Hyper-V role-unu qurulmasına başlayaq:
daha sonra başqa heçbir dəyişiklik etmədən “next” deyərək davam edib “install” deyirik:
Daha sonra Node-lar üçün iSCSI initiator tənzimləmələrini etməliyik, yəni hər iki node-u storage-la əlaqələndirməliyik ki hər iki node -da diskləri görə bilsin, İlk öncə HV-NODE1 üzərində server manager konsolunda tools bölməsində iSCSI initiator deyirik daha sonra
açılan pəncərədə targets bölməsində storage server-imizin storage network-ümüzə bağlı NIC-inin ip adresini yazırıq “quick connect” deyirik. Daha
sonra volumes and devices bölməsində auto configure deyirik
daha sonra bu pəncərəni bağlayıb disk management mmc konsolunu açırıq:
gördüyümüz kimi disklərimiz artıq burdadır , indi disklərimizi online edirik ;
daha sonra hər disk üçün bir ədəd volume yaradacağıq drive letter və volume label özünüz istıdiyiniz kimi seçə bilərsiniz;
Mən aşağıdakı kimi adlandırdım:
Bu prosesi bir node-da eləməliyik, digər node-da sadəcə initiator tənzimləmələrini edərək target server-ə qoşub auto configure deməliyik, disk managementlə işimiz yoxdur, digər node-da disklər bu cür görünməlidir:
İndi isə keçirik cluster-in qurulumuna, bunu üçün DC-də daxil olmaqla node-larda Failover Clustering özəlliyini qurmalıyıq;
Həmin özəlliyi DC,HV-NODE1 və HV-NODE2 üzərinə qurduqdan sonra, DC üzərində server manager>tools menyusundan Failover Cluster Manager-a daxil oluruq;
Daha sonra Validate Configuration deyirik -bununla biz cluster quracağımız node-ların cluster-a uyğun olub olmamağını şəbəkə,Hyper-v,storage kimi özəlliklərin tənzimləmələrinin uyğunluğunu yoxlayırıq,
davam edirik;
node-larımızı seçirik və davam edirik:
tövsiyyə olunur ki, bütün testləri edək , davam edirik;
Testlər bitdikdən sonra aşğıdakı kimi bir pəncərə görünür;
Testlərin nəticəsi olaraq warning və error mesajları ala bilərsiniz onda həmin testə uyğun reportdan error-un səbəbini aydınlaşdırmaq və çatışmazlığı aradan qaldıraraq yenidən bütün testlərdən keçmək lazımdır. Finish deyərək cluster yaratmağa başlamış oluruq;
Cluster üçün bir isim və IP adresinə ehtiyacımız var, yəni artıq fərqli iki node-umuz tək bir IP və ya DNS name üzərindən xidmət vərəcək;
next deyərək cluster-ı yaratmış oluruq;
Failover Cluster Manager konsolunda artıq yaratdığımız cluster öz yerini alıb;
Məqalə çox uzun olduğu üçün burda bitirirəm, sonrakı hissələrdə movzuya qaldığı yerdən davam eləməyə çalışacam, yararlı olmağı diləyilə…
Şərhlər ( 4 )
Məqalə üçün təşəkkürlər. Gözəl məqalədir. Məqalələrinizi maraqa oxuyuram. Storage və DC – ni əlaqələndirən network adapter daxil etmisiz. Bunda xüsusi bir məqsəd var ? Öncədən təşəkkür edirəm.
Salam, ilk öncə sualınız üçün təşəkkür edirəm, storage üçün istifadə olunacaq server- domain daxilində olduğu üçün iki şəbəkə kartı var 1-i domain mühiti digəri, node-lar-la storage arasındakı storage network. Xüsusi bir məqsəd yoxdu, istəsəz domain xaricində də tuta bilərsiniz…
Gözəl məqalədir. Düzü men Failover clustering haqqında ümumi məlumat almaq üçün daxil olmuşdum ancaq maraqlı olduğu üçün deyesen 2-ci və 3-cü hissələridə oxuyacam. Ugurlar.
Salam, çox sağolun, buyurun uğurlar…