vCD 9.7, vCloud Director Appliance, Database High Availability ve repmgr

vCloud Director 9.5 ile beraber “vCD Cell” leri artık birer appliance olarak OVF formatında indirip kurabiliyorduk. Gereksinimler arasında dışarıdan ortak bir veritabanına (MSSQL ve PostgreSQL) , paylaşımlı disk alanına (NFS) ve birde mesaj kuyruk uygulamasına (RabbitMQ) gereksinim vardı.

vCD 9.7 ile beraber MSSQL veritabanı için artık ileride opsiyon dışı kalacağı ve OVF formatında gelen yeni vCD appliance üzerinde PostgreSQL gömülü olarak geldiği, hatta yedeklilik veya yüksek devamlılık kapsamında desteğinin olduğu yayınlandı (Bakınız sayfa 7) hatta ve hatta MSSQL’den PostgreSQL’e göç dahi mevcut.

Not : Zaten yıllardır VMware’in inatla Windows üzerine vCenter, MSSQL ve Oracle gibi DB zorlamalarının nedenini anlayamamış, halada standart işler için ekstra bir özelliğini kullanmayıp MSSQL ısrarında olup, maliyetten şikayet eden firmaları anlayamadığım gibi !

Daha önceki Linux üzerine yapılan vCD Cell kurulumlarında iki adet sertifika yaratmanız gerekiyordu, biri UI diğeride Proxy Console için, şimdi ise biz kurulumu vCD Appliance olarak yapacağımızdan self-signed sertifikalar üretilmiş gelecek, sadece UI ve PC için değil aynı zamanda vCD’nin PostgreSQL’e yine sertifika ile bağlanacak, sonra bu sertifikaları elinizdeki bir sertifika otoritesi tarafından imzalanmış olanla değiştirebileceğiz.

Yukarıdaki gibi bir yapımız olacak, üç tane vCD appliance kuracağız, repmgr açık kaynak kodlu PostgreSQL Custer Replikasyon yöneticisiymiş, bunu uyarlamış VMware aslında neden hazırda MySQL/MariaDB ve Galera kütüphanesi varken, otomatik yük devredebilen bir yapı varken PostgreSQL, repmgr ve elle manuel yükseltme yapmak niye ? ama zaten geçmişten beri bir PostgreSQL sevgisi var VMware’in. Neyse PostgreSQL’i çok seven başka sevdiğimiz kişilerde var, böyle devam …

Not: vCD Appliance ile bu version ve sonrasında artık dışarıdan bir veritabanı bağlantısı yapılması desteklenmiyor olacak.

Download ettiğimiz dosya aşağıdaki, içersinde VMware Photon OS, PostgreSQL 10 ve vCloud Director Group of Services yazılımları varmış.

İlgili sürüm 9.7.0.2, öncesinde postgres kullanıcısı expire olduğundan HA’da promote etme, repmgr komutlarında hata verme gibi durumlar olduğundan bu versionda ilgili kullanıcı şifresinin asla expire olmaması sağlanmış.

Üç tip vCD Cell mevut, primary, standby ve application cell. Application cell üzerinde herhangi bir veritabanı servisi çalışmayan sadece API ve UI bileşenlerinin koştuğu bir konteynerken, primary ilk kurulan, API, UI ve veritabanı, veritabanı şemalarının ilk yaratıldığı bileşen ve en sonda standby ise primary veritabanın kopyasını tutacak aynı zamanda üzerinde yine API ve UI servislerin koşacağı konteyner olacak.

Aşağıda iki örnek var, biri üç vCD cell ki bir primary + 2 standby + 2 application cell, bir diğeride bir primary ve 2 application cell gibi.

Not “El Clasico”: Kurulum sırasında size kurmak istediğiniz vCD cell’in cpu ve ram değerleri ile ilgili opsiyonlar çıkacak burada karar verirken Primary ile Standby’lar arasında bir harmoni olması benzer ölçülerin kullanılması isteniyor 😛

Not “Reverse IP Gereksinimi”: Kurulum sırasında kullanacağınız ip adreslerin reverse dns sorgularının olduğuna emin olun zira Photon OS host name atarken (Kurulum sihirbazı size her bir vCD için atanacak hostname sormuyor çünkü) atan ip adresinin reverse sorgusuna bakıyor.

Not: İkinci bir nokta ise VMware vCD appliance kurulumunda size iki adet vNIC konfigre etmenizi bunlardan birinin bildiğimiz API ve UI erişimi için diğerinin ise veritabanı replikasyonu için bunu yaparkende ip bloklarının farklı subnet’lerden olmasını istiyor.

Primary vCD Cell kurulum adımları için ilgili bağlantıdan takip edebilirsiniz. Kurulumun ardından https://<ip_adresi>/cloud/ ve https://<ip_adresi&gt;:5480 kontrol edin herşey yolunda ise ikinci ve sonra üçüncü kısım yani Standby Cell’leri kurmaya başlayabilirsiniz, kurulumlar sırasında installation id’ler değiştirmeyi unutmayın. MAC adreslerini türetirken tekilliği sağlamak için bu şekilde farklılaştırıyoruz.

vCD 9.5 ile beraber bu id’yi değiştirme imkanı gelmiş.
https://fojta.wordpress.com/2018/10/11/how-to-change-vcloud-director-installation-id/
Standby – small

Burada tek önemli nokta ilk standby vCD Cell kurulduğunda bir DB eşitleme işlemi yapılacak, bu süre zarfında DB ve vCD UI erişimleri kesilecek.

Tüm kurulumlar bittikten sonra 5480 port’undan girdiğinizde aşağıdaki gibi bir tablo karşınıza çıkacak, artık vCD login olup gerekli konfigürasyonlara başlayabilirisiniz.

İlginçtir, HA için ileride olası bir problemde recovery için, yine bu adımlardan geçmeniz gerekecek, önce ortamı hazır edip sonra var olan veritabanını silip, aldığınız yedeği primary db’e restore ederekten kullanmanız gereken ilgili komutları çalıştırdıktan sonra vCD HA ortamını ayağa kaldırabilirsiniz. İlgili dökümandaki “Recover from a Primary Database Failure in a High Availability Cluster” bölümünü takip edebilirsiniz.

vCD Appliance kurdum diye işletim sistemlerini nasıl güncellerim acaba başka OVF şablonları ile mi diye aklınıza gelebilir, Photon OS kullananlar bilecektir “tdnf” adlı bir paket yöneticisi var, yum yerine kendisini kullanabilirsiniz, bir vCD Appliance’ı güncelledikten sonra reboot edip bir diğerine geçip her bir HA üyesini aynı seviyeye getirebilirsiniz. Tek yapmanız gereken “tdnf upgrade” komutunu vermek.

Birde biraz repmgr, ilgili komutlar ve uyarlamaya bir göz atalım. Öncesinde ilgili çalıştırılabilirler ve konfigürasyon dosyaları nerede bir bakalım !

Komut çalıştırmadan önce mutlaka “postgres” kullanıcısına geçmelisiniz ; sudo -i -u postgres

repmgr çalıştırılabiliri :
/opt/vmware/vpostgres/current/bin/repmgr

repmgt konfigürasyon dosyası : /opt/vmware/vpostgres/current/etc/repmgr.conf

Aslında VMware ilgili yolları export etmiş, yinede bilginiz olsun
VMWARE_POSTGRES_BASE=”/opt/vmware/vpostgres/current”

Postgres konfigürasyon dosyası
/var/vmware/vpostgres/current/pgdata/postgresql.conf

vPostgres Servis Adı
vpostgres.service

vPostgres Servis Stop Start
systemctl status vpostgres.service
systemctl start vpostgres.service

5480’den bağlanıp gördüğümüz gibi CLI’dan durumu görmek için aşağıdaki komutu çalıştırmamız yeterli.

repmgr cluster show

Bir diğer komut ise matrix, burada “x” veya “?” görmediğiniz sürece bir sıkıntı yok demek oluyor. “x” = down , “?” = bağlantı hatası anlamına geliyor.

repmgr cluster matrix

Repmgr daha çok aktif pasif durumlar için kullanılıyor, replikasyonun ne durumda olduğunu görmek için aşağıdaki komut’u çalıştırabilirsiniz

repmgr node status

Repmgrd (Repmgr Otomatik Failover Daemon) Durumu

Backup için ise hazır bir script mevcut, ilgili NFS alanına yedeğini alıyor …

/opt/vmware/appliance/bin/create-db-backup

vCD SSH Aktive etmediyseniz

enable_root_login.sh

SSH’ı pasif etmek için

disable_root_login.sh

Kısa Kısa Bilinmesi Gerekenler

  • repmgrd uyarlaması yapılmamış, otomatik failover yok !
  • Standby node’u Primary geçirmeden önce
    • Cell’ler bakıma alınmalı
    • Elle swtichover işlemi yapılmalı
    • vCD Cell’ler tekrardan primary veritabanının IP adresi ile ayarlanmalı
  • Repmgr herhangi bir fail durumunda ilgili node’un recover edilmesi ile uğraşmaz, bu işleri manuel olarak sizlerin yapması gerekmekte.
  • Alternatif HA opsiyonları var ama bunlarda VMware tarafından seçilir uyarlanmamış mesela Patroni
  • Daha çok var olan DB’nin yedekleri olsun, olası bir problemde herhangi bir restore olmadan elle yedekte bekleyen yapıları ayağa kaldırıp, kaldığı yerden sistem çalışsın diye tasarlanmış.

Bana göre değil henüz, roadmap’de varmış otomatik HA, bekleyip göreceğiz.

VM

Posted on 27/08/2019, in vCD 9.7 and tagged , , , , , , , , , , , , , , , , , , , , , , , . Bookmark the permalink. Leave a comment.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: