Esitliklerle Ceph

ceph = open source distributed storage system

ceph = POSIX uyumlu ve snapshot destekler

ceph genisleyebilir = gigabyte –> exabyte veya x86 tabanli 1000 server’a

ceph’in felsefesi = her bilesen yatayda buyuyebilmeli, asla single point of failure olmamali, software tabanli olmali, herkesin erisebilecegi donanimlar uzerinde olmali, mumkun oldugu kadar kendi kendini yonetebilmeli

tek bir sapka altinda = block , file ve object destekler

gucunu = object tabanli olmadan alir , ona gore block/file/obje hepsi birdir ve bunlari objeler halinde tutar, yedekler , dagitir

2D Ceph = {

Screen Shot 2016-01-13 at 14.36.12

}

Kus Bakisi Ceph = {

Screen Shot 2015-12-29 at 10.36.44

}

Metadata = data hakkinda dataūüôā , her okuma/yazam isteginde neyi nereden okuyacagimiz eger storage kullaniyorsak storage’a ait metadata tablosuna erisip ogreniyoruz demek, bunun icin eski storage tipleri belli bir noktaya kadar genisleyebiliyor . Ufak bir NOT GPFS veya yeni adiyla IBM Spectrum Scale meta data olayini dagitik metadata process’i gelistirerek cozmus¬† {

Screen Shot 2015-12-29 at 11.02.42

}

CRUSH =¬†Yeni bir “Metadata Lookup” tipi , daha dogrusu artik neyin nereden okunacagi ve yazilacagi ¬†daginik olarak ve isleme tabi tutarak¬†bulunuyor. Bu sayede daha hizli ve exabyte seviyesinde yapilari destekleyebliyor.

CRUSH ayni zamanda = tum ortamdan haberdar bir yapisi var , disk , sunucu , sunucunun bulundugu kabin , kabin’in oldugu datacenter gibi . Oyle ki ilk objeyi yazdiginda yedeginin nereye konacagini hesaplar ki herhangi bir bilesen bozuldugunda datanin problemsiz erisilebilir olmasini saglasin. Olasi bir problemde yine yedek objeyi kullanarak datayi cogaltaraktan yine yedekliligi ust seviyeye¬†cikartir.

ceph = raid yok ,  spare disk yok , illa ayni boyutlarda disklere gerek yok

Erasure Coding = Normalde her bir obje’ni ayni boyutda farkli bir kopyasi yaratilir , erasure coding farkli bir algoritma guderek objeyi daha dusuk maliyetle yedekli olarak tutar.

RBD = Ceph block device access protokolu , bircok linux isletim sisteminde kernel seviyesinde destek var

RBD Destekler = Full/Incremental Snapshot/Thin Provisioning/Copy-on-Write , in-memory caching

RBD Erisim = {

Screen Shot 2015-12-29 at 13.31.57

}

CephFS = Henuz “production ready” degil , kendisi Ceph’in file access bileseni, HDFS (Hadoop) replace olacak gozuyle bakiliyor

Ceph Object Storage =  Ceph halihazirda object based bir storage olup , datayi object olarakda tutabilir.

Ceph Object Gateway (RadosGw) = RADOS gateway client’in RESTFUL API kullanarak sisteme erismesini saglar. Bunlar {

  • Swift Uyumlu
  • S3 Uyumlu
  • Admin API (Yonetim icin)

}

librgw = RADOS gateway , client bu kutuphaneyi kullaniyor

librados =¬†RADOS gateway bu kutuphane ile ceph cluster’a erisiyor

Ceph Object Erisim Diyagrami = {

Screen Shot 2015-12-29 at 13.58.37

}

ceph alternatifleri (tum yonleri ile degil) = {

  • GPFS
  • iRODS
  • HDFS
  • Lustre
  • Gluster

}

Buyuk Resme Baktigimizda = {

Screen Shot 2015-12-29 at 14.48.03

RADOS (Reliable Autonomic Distributed Object Store) = Ceph in kalbi , turune bakilmaksizin , tum erisim methodlari ile gelen (block,file,object) verinin saklanmasi , yedeklenmesi , tutarli olmasi , tutarli olmasi icin yapilmasi gereken ne var ise bu katman bu deamon tarafindan yapiliyor.

OSD (Object Storage Device) = Ceph cluster sisteminde veri OSD denilen parcalara yaziliyor veya buradan okunuyor. OSD bizim icin disk veya disk parcacigi anlaminda ve bu disk bir partition olabilecegi gibi bir dizinde olabilir. Her bir disk icin bir OSD deamon calisiyor sistem uzerinde.

Ceph Monitor (MON) = Ceph cluster’inin saglik durumun gozlemler ve tum durumu (OSD, MON, PG, and CRUSH maps) bilir. Tum ceph nodelar MON ile konusup durum bilgisini belirtir.

RBD = ( Tekrar ) block access

RGW = ( Tekrar ) object access

MDS (Metadata Server) = CephFS icin file Metadata’sini tutar

CephFS = ( Tekrar ) file access

}

Pool = RADOS tum objeleri “pool”¬†icersinde tutar

OSD = Normalde her yazilan data’nin bir yedegi oldugun ilgili data’yi iceren primary OSD ve yedegini iceren secondary OSD mevcut olup . Olasi bir problemde eger primary kaybedilir ise secondary primary olabilir ve RADOS arkada ikinci bir OSD bulup sistem tekrardan tutarli hale getirebilir. Bu islemlerden “client” etkilenmez.

Client OSD ile direkt iletisime gecer = Bunun icin oncelikle Client MON’u sorgular ve tum ceph cluster haritasini elde eder ve gerektiginde ilgili OSD ile direkt iletisime gecebilir.

OSD lerde bir dosya sistemi kullanir = xfs , ext4 veya btrfs .

XATTRs = Veriye ek metadata bilgisi eklemek icin kullanilir , sanki http request veya response’a header eklemek gibi.

Journal =¬†Ceph’de journaling ¬†yapan file sistem kullandigindan datalar once log’a sonra dosya sistemine yazilacaktir. Performans direkt etkileneceginden journal diski SSD olmasi gerekmektedir, daha sonra data asil file sistem’e sync olacaktir.

{

Screen Shot 2015-12-29 at 15.22.59

}

OSD RAID istemez = her biri standalone disk olabilir fakat bazi durumlarda raid yapilabilir , cok diskli sunucularda her disk icin calisacak OSD deamon icin RAM yeterli olmayabilir.

librados = C Kutuphanesi , uygulamanin direk RADOS ile iletisime gecmesini sagliyor.

KRBD = Kernel RBD

Ceph Object Gateway = Kendine has kullanici yonetimi vardir , load balance icin birden fazla GW olabilir. FastCGI-capable web server

Object = neye benzer derseniz (asagida) , bunlarin hepsi OSD lere yaziliyor  {

Screen Shot 2015-12-29 at 16.55.40

}

CRUSH Lookup =

  1. Client MON a baglanip Cluster MAP i cekiyor
  2. Client yazma isteginde bulunuyor ve data isim ve pool adi ile objeye cevriliyor
  3. Obje Placement Group ID ile hash’leniyor
  4. Daha sonra CRUSH algoritmasi sayesinde primary OSD bulunuyor
  5. Client direkt ilgili OSD ile iletisime gecip veriyi yaziyor
  6. Datanin yazildigi Node tekrarda CRASH Lookup yaparak ikinci Placement Group ve OSD bulur ve veri yazilir
  7. Veri yedekliligi saglanir

{

Screen Shot 2015-12-29 at 17.14.32

}

veya

{

Screen Shot 2016-01-13 at 14.47.05

}

Ortamdan Haberdar Demistik = Gordugunuz gibi DC, Sira , Kabin hepsini belirtebiliyorsunuz, bu liste sistem tarafindan yaratildigi gibi mudahale etme sansinizda var. Bu yapi onemli cunku yedeklilik buna gore sekilleniyor.

{

Screen Shot 2015-12-29 at 17.35.52

}

Recovery ve Rebalance = Olasi bilesen kaybi ve sisteme yeni eklenen OSD ler oldugunda sistem otomatik¬†recovery ve rebalance islemi yapar. Yeni eklenen OSD leri “0” yuk parametresi ile girmeniz ve degeri kontrollu bir sekilde yukselmeniz oneriliyor.

Placement Group (PG) = Sanal kontenyner olarak adlandirabiliriz , sistemde bir suru obje olacagini dusunurseniz , bunlari daha kolay bulunabilmesi icin bir cesit guruplama / ara katman . Replikasyon sayiniza gore birden fazla OSD ile iliski icindedir.

Screen Shot 2015-12-29 at 18.16.09

PGP = PG

PG Hesaplama = ¬†Cikan sonuclari 2 katlari ile yuvarlayinūüôā

{

Ceph Cluster Basina
Toplam PG = (Toplam OSD * 100) / replikasyon_sayisi

Ceph Cluster Pool Basina

Toplam PG = (Toplam OSD * 100) / replikasyon_sayisi / pool sayisi

}

Bir bakima ¬†OSD ler yan yana gelerek PG leri yaratirlara , PG lerin durumuda haliyle altindaki OSD lerin saglikli calisip calismadiklarina bagli , bunu icin OSD lerden primary olan ayni zamanda diger OSD lerle arasinda peering kurar ve bu peering’in status eger ok ise PG aktif ve calisiyor demektir baska bir deyisle bu PG e veri yazabiliriz demek oluyor.

Acting Set = PG den sorumlu olan OSD ler veya baska bir deyisle PG olusturan OSD lerūüôā

Ceph Cluster MAP = MON + OSD + PG + CRUSH + MDS

epoc = bir cesit versionlama veya numaralama

CRUSH Rule = replika veya erasure coding

CRUSH Rule Resimle ve Koruma = {

Screen Shot 2016-01-13 at 14.48.43

}

Background Petrol Read = {

http://www.dell.com/downloads/global/power/ps1q06-20050212-Habas.pdf

}

 

Posted on 29/12/2015, in ceph 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 )

Twitter picture

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

Facebook photo

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

Google+ photo

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

Connecting to %s

%d bloggers like this: