tten olarak, süreçleri baştan sona otomatize edilmiş Felaket Kurtarma (Disaster Recovery) hizmetleri sunmaktayız.

Bu yazımızda Felaket Kurtarma hizmetleri için kullandığımız çözüm ve teknolojilerinden, tten otomasyon ve entegrasyonlarından bahsedeceğiz.

tten, hizmet sağlamakta olduğu tüm veri merkezi noktalarında storage katmanını yüksek performans, esneklik ve ölçeklenebilirlik sunan, özgür ve açık kaynaklı bir storage çözümü olan Ceph ile sağlamakta.

Ceph, hem blok hem de nesne depolama desteği ile veri bütünlüğünü ve güvenliğini sağlarken, otomatik replikasyon ve hata tolerans mekanizmaları sayesinde kesintisiz hizmet sunmayı amaçlar.

Öncelikle “Felaket Kurtarma” ile ilgili temel iki kavramdan bahsetmeliyiz. Bu temel iki kavram Felaket Kurtarma işleminin başarı kıstasını da belirler. Bu kavramlar: RPO (Recovery Point Objective) ve RTO (Recovery Time Objective)

RPO (Recovery Point Objective) nedir?

RPO, felaket ilan edilen an ile farklı bir lokasyonda operasyonel olarak devreye alınacak sistemlerin kullanacağı verinin en son hangi noktaya (backup veya replikasyon anına) kadar güncel kalması gerektiğini tanımlar. Bir başka deyişle, bu hedef “ne kadar veri kaybının tolere edilebileceğini” ifade eder. Örneğin, RPO değeriniz 1 saat ise, olası bir felaket anında son 1 saat içerisinde edinilmiş veriyi kaybetmeyi göze aldığınız anlamına gelir.

Burada fail-over kararını neden olan durumun veri kaybına neden olması her zaman beklenemez. Örneğin birincil veri merkezinin topyekün yaşadığı ve internet veya enerji kesintisinde veri kaybı beklenmeyeceği için fail-over sonrası sağlıklı çalışan birincil veri merkezindeki veriler doğru bir planlama ile ikinci veri merkezindeki veriler ile birleştirilebilecektir.

RTO (Recovery Time Objective) nedir?

RTO ise, felaket sonrasında sistemlerin tekrar erişilebilir ve tam olarak çalışır hale gelmesi için gereken maksimum süreyi ifade eder. Yani “operasyonların kaç dakika veya saat içinde kaldığı yerden devam edebileceği ” sorusunun cevabını verir. Eğer RTO değeriniz 2 saat olarak tanımlanmışsa, tüm kritik servislerin en geç 2 saat içinde ayağa kaldırılmasını hedeflersiniz.

tten’de hem RPO hem de RTO değerleri maksimum 5 dakikadır. Peki bu nasıl mümkün olabilir?

Sağlamakta olduğumuz Felaket Kurtarma hizmetinin temelinde Ceph’in RBD Mirroring servisi bulunuyor.

RBD Mirroring servisinin kabiliyetleri vasıtasıyla, Felaket Kurtarma hizmeti aktif olan müşterilerimizin hizmetleri altında yer alan Firewall ve sanal sunuculara ait sanal diskler her 5 dakikada bir farklı bir veri merkezi noktasına düzenli olarak aktarılmasını sağlıyoruz.

RBD Mirroring servisini nasıl kullandığımızı “Veri Merkezimizi Yalnızca 8 Günde ve (Neredeyse) Sıfır Kesintiyle Nasıl Taşıdık?” yazımızda da aktarmıştık.

Bu yazımızda da tten Core Panel ekranlarını da paylaşarak hizmet hakkında daha detaylı bilgiler vermeye çalışacağız.

*5 Dakika maksimum süredir. Felaket anına göre bu sürenin minumum 1 saniyeye kadar düşme olasılığı ile maksimum 5 dakikaya denk gelme olasılığı aynıdır.*Örnek bir VDC (Virtual Datacenter - Sanal Veri Merkezi) ürününe ait ekran paylaşarak başlayalım.

İstanbul servis noktamızda yer alan “ISTANBUL” isimli VDC ürünün altında yer alan sanal sunucular:

(Ekran görüntüsü https://core.tten.net [İstanbul] adresinden alınmıştır.)

Bu VDC ürününde 5 adet sanal sunucu bulunuyor. LB, DB, WEB01 ve WEB02 sunucuları için DR (Disaster Recovery - Felaket Kurtarma) özelliği aktif edelim.

tten, ilgili sanal sunucuların DR Ready durumda olması için aşağıdaki ekranları kullanıyor:

DR özelliği aktif edildiğinde, tten otomasyonlarının arka planda yapmakta olduğu işlemler sırasıyla:

1. Seçili sanal sunucular ve VDC ürününe ait Firewall ile ilgili konfigürasyonlarının Disaster Recovery hizmetinin aktif edileceği veri merkezindeki sanallaştırma sistemine aktarılması.

(Sanal sunucu kaynakları birebir yapılandırılabileceği gibi, CPU ve Memory için farklı değerlerin belirlenmesi, felaket anında kullanılacak kaynakların daha yüksek ya da düşük değerler ile tanımlanması mümkün olabiliyor.)

2. İlgili sanal sunuculara ait sanal disklerin RBD Mirroring iş listesine eklenmesi ve replication görevlerinin takip edilmesi.




# rbd mirror pool status IST5-CEPH2-RBD1 --verbose

FW-IST5-ISTANBUL-VDC-disk-0:
  global_id:   3854947a-6a80-46f9-8e5f-e37411d6cb0c
  state:   	up+replaying
  description: replaying, {"bytes_per_second":0.0,"bytes_per_snapshot":3547136.0,"last_snapshot_bytes":2756608,"last_snapshot_sync_seconds":0,"local_snapshot_timestamp":1744677904,"remote_snapshot_timestamp":1744677904,"replay_state":"idle"}
  service: 	n01 on n01.ank1.tten.tld
  last_update: 2025-04-15 03:40:22

LB-blog-tten-com-tr-disk-0:
  global_id:   65fc8e6f-158b-4988-89cb-0f09bcc66200
  state:   	up+replaying
  description: replaying, {"bytes_per_second":0.0,"bytes_per_snapshot":364544.0,"last_snapshot_bytes":368640,"last_snapshot_sync_seconds":0,"local_snapshot_timestamp":1744677904,"remote_snapshot_timestamp":1744677904,"replay_state":"idle"}
  service: 	n01 on n01.ank1.tten.tld
  last_update: 2025-04-15 03:40:22


DB-blog-tten-com-tr-disk-0:
  global_id:   cbbdc87f-f249-4ebc-956a-f73ec624a281
  state:   	up+replaying
  description: replaying, {"bytes_per_second":0.0,"bytes_per_snapshot":393216.0,"last_snapshot_bytes":376832,"last_snapshot_sync_seconds":1,"local_snapshot_timestamp":1744677904,"remote_snapshot_timestamp":1744677904,"replay_state":"idle"}
  service: 	n01 on n01.ank1.tten.tld
  last_update: 2025-04-15 03:40:22

WEB01-blog-tten-com-tr-disk-0:
  global_id:   df6ae6b5-7ca9-4912-b27c-4281ac49df63
  state:   	up+replaying
  description: replaying, {"bytes_per_second":0.0,"bytes_per_snapshot":583680.0,"last_snapshot_bytes":430080,"last_snapshot_sync_seconds":0,"local_snapshot_timestamp":1744677904,"remote_snapshot_timestamp":1744677904,"replay_state":"idle"}
  service: 	n01 on n01.ank1.tten.tld
  last_update: 2025-04-15 03:40:22

WEB02-blog-tten-com-tr-disk-0:
  global_id:   625cb9a5-e1e2-465c-82cc-74907d9b39f1
  state:   	up+replaying
  description: replaying, {"bytes_per_second":0.0,"bytes_per_snapshot":546816.0,"last_snapshot_bytes":413696,"last_snapshot_sync_seconds":0,"local_snapshot_timestamp":1744677904,"remote_snapshot_timestamp":1744677904,"replay_state":"idle"}
  service: 	n01 on n01.ank1.tten.tld
  last_update: 2025-04-15 03

# rbd mirror pool status IST5-CEPH2-RBD1 --verbose

FW-IST5-ISTANBUL-VDC-disk-0:
  global_id:   3854947a-6a80-46f9-8e5f-e37411d6cb0c
  state:   	up+replaying
  description: replaying, {"bytes_per_second":0.0,"bytes_per_snapshot":3547136.0,"last_snapshot_bytes":2756608,"last_snapshot_sync_seconds":0,"local_snapshot_timestamp":1744677904,"remote_snapshot_timestamp":1744677904,"replay_state":"idle"}
  service: 	n01 on n01.ank1.tten.tld
  last_update: 2025-04-15 03:40:22

LB-blog-tten-com-tr-disk-0:
  global_id:   65fc8e6f-158b-4988-89cb-0f09bcc66200
  state:   	up+replaying
  description: replaying, {"bytes_per_second":0.0,"bytes_per_snapshot":364544.0,"last_snapshot_bytes":368640,"last_snapshot_sync_seconds":0,"local_snapshot_timestamp":1744677904,"remote_snapshot_timestamp":1744677904,"replay_state":"idle"}
  service: 	n01 on n01.ank1.tten.tld
  last_update: 2025-04-15 03:40:22


DB-blog-tten-com-tr-disk-0:
  global_id:   cbbdc87f-f249-4ebc-956a-f73ec624a281
  state:   	up+replaying
  description: replaying, {"bytes_per_second":0.0,"bytes_per_snapshot":393216.0,"last_snapshot_bytes":376832,"last_snapshot_sync_seconds":1,"local_snapshot_timestamp":1744677904,"remote_snapshot_timestamp":1744677904,"replay_state":"idle"}
  service: 	n01 on n01.ank1.tten.tld
  last_update: 2025-04-15 03:40:22

WEB01-blog-tten-com-tr-disk-0:
  global_id:   df6ae6b5-7ca9-4912-b27c-4281ac49df63
  state:   	up+replaying
  description: replaying, {"bytes_per_second":0.0,"bytes_per_snapshot":583680.0,"last_snapshot_bytes":430080,"last_snapshot_sync_seconds":0,"local_snapshot_timestamp":1744677904,"remote_snapshot_timestamp":1744677904,"replay_state":"idle"}
  service: 	n01 on n01.ank1.tten.tld
  last_update: 2025-04-15 03:40:22

WEB02-blog-tten-com-tr-disk-0:
  global_id:   625cb9a5-e1e2-465c-82cc-74907d9b39f1
  state:   	up+replaying
  description: replaying, {"bytes_per_second":0.0,"bytes_per_snapshot":546816.0,"last_snapshot_bytes":413696,"last_snapshot_sync_seconds":0,"local_snapshot_timestamp":1744677904,"remote_snapshot_timestamp":1744677904,"replay_state":"idle"}
  service: 	n01 on n01.ank1.tten.tld
  last_update: 2025-04-15 03

# rbd mirror pool status IST5-CEPH2-RBD1 --verbose

FW-IST5-ISTANBUL-VDC-disk-0:
  global_id:   3854947a-6a80-46f9-8e5f-e37411d6cb0c
  state:   	up+replaying
  description: replaying, {"bytes_per_second":0.0,"bytes_per_snapshot":3547136.0,"last_snapshot_bytes":2756608,"last_snapshot_sync_seconds":0,"local_snapshot_timestamp":1744677904,"remote_snapshot_timestamp":1744677904,"replay_state":"idle"}
  service: 	n01 on n01.ank1.tten.tld
  last_update: 2025-04-15 03:40:22

LB-blog-tten-com-tr-disk-0:
  global_id:   65fc8e6f-158b-4988-89cb-0f09bcc66200
  state:   	up+replaying
  description: replaying, {"bytes_per_second":0.0,"bytes_per_snapshot":364544.0,"last_snapshot_bytes":368640,"last_snapshot_sync_seconds":0,"local_snapshot_timestamp":1744677904,"remote_snapshot_timestamp":1744677904,"replay_state":"idle"}
  service: 	n01 on n01.ank1.tten.tld
  last_update: 2025-04-15 03:40:22


DB-blog-tten-com-tr-disk-0:
  global_id:   cbbdc87f-f249-4ebc-956a-f73ec624a281
  state:   	up+replaying
  description: replaying, {"bytes_per_second":0.0,"bytes_per_snapshot":393216.0,"last_snapshot_bytes":376832,"last_snapshot_sync_seconds":1,"local_snapshot_timestamp":1744677904,"remote_snapshot_timestamp":1744677904,"replay_state":"idle"}
  service: 	n01 on n01.ank1.tten.tld
  last_update: 2025-04-15 03:40:22

WEB01-blog-tten-com-tr-disk-0:
  global_id:   df6ae6b5-7ca9-4912-b27c-4281ac49df63
  state:   	up+replaying
  description: replaying, {"bytes_per_second":0.0,"bytes_per_snapshot":583680.0,"last_snapshot_bytes":430080,"last_snapshot_sync_seconds":0,"local_snapshot_timestamp":1744677904,"remote_snapshot_timestamp":1744677904,"replay_state":"idle"}
  service: 	n01 on n01.ank1.tten.tld
  last_update: 2025-04-15 03:40:22

WEB02-blog-tten-com-tr-disk-0:
  global_id:   625cb9a5-e1e2-465c-82cc-74907d9b39f1
  state:   	up+replaying
  description: replaying, {"bytes_per_second":0.0,"bytes_per_snapshot":546816.0,"last_snapshot_bytes":413696,"last_snapshot_sync_seconds":0,"local_snapshot_timestamp":1744677904,"remote_snapshot_timestamp":1744677904,"replay_state":"idle"}
  service: 	n01 on n01.ank1.tten.tld
  last_update: 2025-04-15 03

3. Disaster Recovery için hedef veri merkezinde çalışmakta olan tten Core Panel için gerekli yetkilerinin tanımlanması.

Bu adımların ve ilk data replication’ının tamamlanmasının ardından, İstanbul ve Ankara noktalarındaki tten Core Panel adreslerinden bakış:

(Ekran görüntüsü https://ank1-core.tten.net/ [Ankara] adresinden alınmıştır.)

Artık ilgili hizmetin kullanıcısı, Felaket Kurtarma hizmetini herhangi bir insan iletişimi olmaksızın devreye alabilir durumdadır.

Felaket anı itibariyle Ankara noktasındaki tten Core’a erişim sağlayarak Disaster Recovery işlemlerini başlatabilir.

Bunun için “DR BAŞLAT” butonu ile sürecin başlatılması yeterli:

(Ekran görüntüleri https://ank1-core.tten.net/ [Ankara] adresinden alınmıştır.)

Onay verilmesinin ardından tten otomasyonlarının arka planda yapmakta olduğu işlemler sırasıyla:

1. İstanbul lokasyonundaki tüm sanal sunucuların Power-Off durumuna getirilmesi.*

2. RBD Mirroring işlerinin durdurulması.*

3. Ankara lokasyonundaki sanal sunuculara ait disklerin “primary” olarak “promote” edilmesi.

4. Aktarımı gerçekleştirilen VDC ürününe ait Firewall’a, Ankara lokasyonunda kullanabileceği WAN IP adresinin atamasının gerçekleştirilerek yapılandırmalarının güncellenmesi.

5. VPN profillerinde yer alan FQDN’e ait A Record’ların güncellenmesi.

6. Sanal sunucuların Power-On durumuna getirilmesi.

İşlemler sanal sunucu sayısına bağlı olmak üzere ortalama 2-3 dakika içerisinde tamamlanır.

Felaket anının ilanı ve Disaster Recover servisinin aktivasyonunun ardından:

Artık Disaster Recovery işlemi başarıyla tamamlanmış durumdadır.

Örnek Felaket anı ilanı ve sonrasında, DR kapsamına dahil edilen sanal sunucuların ve VDC hizmeti için yapılandırılmış olan Firewall’un Ankara servis noktasında çalışır duruma gelmesi, insan müdahalesi olmadan gerçekleştirildi.

Bizce dikkate değer hususlar:

1. İç ağ ile ilgili herhangi bir değişiklik yapılmadı!

Tüm sanal sunucular İstanbul lokasyonunda hangi IP adresleri ile çalışıyorlar ise, Ankara lokasyonunda da aynı şekilde çalışmaya devam ediyor.

2. Firewall’da bulunan WAN IP adresi Ankara havuzunda yer alan IP adresi ile otomatik olarak güncellendi!

Projelerinizin yayınlarına devam edebilmesi için İstanbul lokasyonundaki IP adresini işaret eden A Record’ları, Ankara lokasyonundaki IP adresi ile güncellemek yeterli.

Eğer DNS Zone’larınız CloudFlare’de bulunuyor ise “tten Core Entegrasyonlar” alanından API Key’inizin tanımlanması durumunda, A Record’ların güncellenmesi işlemlerini de otomatik olarak tten Core gerçekleştirecek!

3. VPN Kullanıcıları, Firewall NAT Kuralları, hatta Site-to-Site bağlantı yapılandırmaları, İstanbul noktasında nasıl çalışıyor ise, aynı şekilde Ankara noktasına olduğu gibi aktarıldı.

(Site-to-Site IPSec tunnel’ler için FQDN tercih edilmedi ve direkt olarak IP adresi yazıldı ise karşı uçta yer alan sistemlerde IP adresinin güncellenmesi unutulmamalı.)

4. Felaket, yalnızca kullanmakta olduğunuz hizmette değil, tten ve servislerinde de yaşanabilir.

Tüm kurgumuz, ana servis noktamız olan İstanbul lokasyonunun tümüyle erişilmez olacağı ihtimalleri de içeriyor. Bu sebepten core.tten.net dışında, ank1-core.tten.net adresli bir tten Core daha mevcut.

*Felaket anında, Disaster Recovery senaryolarının işletilebilmesi ve işlemlerin tamamlanması için İstanbul lokasyonuna ihtiyacımız yok!

Ancak felaket, tten sistemlerini etkileyen ölçekte değil ise İstanbul lokasyonundaki Firewall ve sanal sunucuları kapatarak RBD Mirroring işlemlerini durdurmayı ihmal etmiyoruz.

Yazan

Emre

Göktepe

Bu sayfada

Tüm kontrol sizde

Altyapınızı bugün oluşturun

Dakikalar içinde başlayın, projenizi canlıya alın. Taahhüt yok.