"CEPH Yönetimi" sayfasının sürümleri arasındaki fark
(→Cluster Bakım Modları) |
|||
9. satır: | 9. satır: | ||
yazmalısınız. | yazmalısınız. | ||
− | ===NOIN=== | + | ====NOIN==== |
− | |||
Açılıp normal olarak ceph cluster’ına dahil olacak (in) OSD’lerin açıldıkları halde dahil olmamalarını sağlar. Bu modda dikkat edilmesi gereken nokta OSD’leri in olarak işaretlendikten sonra sisteme girmeleri için ayrıca restart edilmelerinin unutulmamamsıdır. | Açılıp normal olarak ceph cluster’ına dahil olacak (in) OSD’lerin açıldıkları halde dahil olmamalarını sağlar. Bu modda dikkat edilmesi gereken nokta OSD’leri in olarak işaretlendikten sonra sisteme girmeleri için ayrıca restart edilmelerinin unutulmamamsıdır. | ||
18. satır: | 17. satır: | ||
cephm:/home/ceph# ceph osd unset noin | cephm:/home/ceph# ceph osd unset noin | ||
− | ===NOOUT=== | + | ====NOOUT==== |
OSD’lerin herhangi bir nedenle (erişilememeleri, kapanmaları) durumunda cluster dışına atılmalarını (out) engeller. | OSD’lerin herhangi bir nedenle (erişilememeleri, kapanmaları) durumunda cluster dışına atılmalarını (out) engeller. | ||
− | ===NOUP=== | + | ====NOUP==== |
OSD’lerin monitörler tarafından up olarak işaretlenmesini ekler. Sürekli up/down olan bir OSD’niz var ise durumunu incelemek için kullanabilirsiniz. | OSD’lerin monitörler tarafından up olarak işaretlenmesini ekler. Sürekli up/down olan bir OSD’niz var ise durumunu incelemek için kullanabilirsiniz. | ||
− | ===NODOWN=== | + | ====NODOWN==== |
OSD’lerin monitörler tarafından down olarak işaretlenmesini ekler. Sürekli up/down olan bir OSD’niz var ise durumunu incelemek için kullanabilirsiniz | OSD’lerin monitörler tarafından down olarak işaretlenmesini ekler. Sürekli up/down olan bir OSD’niz var ise durumunu incelemek için kullanabilirsiniz | ||
− | ===PAUSE=== | + | ====PAUSE==== |
Cluster üzerine yapılan I/O işlemlerinin durdurur | Cluster üzerine yapılan I/O işlemlerinin durdurur | ||
− | ===NOSCRUB=== | + | ====NOSCRUB==== |
Cluster üzerindeki OSD’lerde otomatik olarak yapılacan olan scrub işleminin yapılmasının engeller. | Cluster üzerindeki OSD’lerde otomatik olarak yapılacan olan scrub işleminin yapılmasının engeller. | ||
− | + | ====Ceph Scrub Yapılandırması==== | |
− | ===Ceph Scrub Yapılandırması=== | ||
Ceph objeler halinde tuttuğu verinin bütünlüğünün korunması amacı ile belirli zamanlarda scrub işlemini gerçekleştiriyor. Bu işlem sırasından objelerdeki bozulan verilerin onarılması amaçlanıyor. Tüm objelerde bu işlemin yapılmasına “deep scrub” deniyor. Atanmış değeri osd deep scrub interval değişkeni ile tanımlanıyor ve süresi haftada bir.Tanımlanabilecek olan scrub değişkenleri: | Ceph objeler halinde tuttuğu verinin bütünlüğünün korunması amacı ile belirli zamanlarda scrub işlemini gerçekleştiriyor. Bu işlem sırasından objelerdeki bozulan verilerin onarılması amaçlanıyor. Tüm objelerde bu işlemin yapılmasına “deep scrub” deniyor. Atanmış değeri osd deep scrub interval değişkeni ile tanımlanıyor ve süresi haftada bir.Tanımlanabilecek olan scrub değişkenleri: | ||
12:00, 18 Haziran 2018 tarihindeki hâli
İçindekiler
Ceph Değişkenlerinin Görüntülenmesi/Değiştirilmesi
Cluster Bakım Modları
Cluster bakım modları listesi:
pause|noup|nodown|noout|noin|nobackfill|norecover|noscrub|nodeep-scrub|notieragent
ceph clusterınızı bu modlardan herhangi birine sokmak için:
ceph osd set [mod ismi]
yazmanız yeterli, moddan geri çıkarmak için:
ceph osd unset [mod ismi]
yazmalısınız.
NOIN
Açılıp normal olarak ceph cluster’ına dahil olacak (in) OSD’lerin açıldıkları halde dahil olmamalarını sağlar. Bu modda dikkat edilmesi gereken nokta OSD’leri in olarak işaretlendikten sonra sisteme girmeleri için ayrıca restart edilmelerinin unutulmamamsıdır.
root@cephm:/home/ceph# ceph osd set noin root@cephm:/home/ceph# ceph health HEALTH_WARN noin flag(s) set cephm:/home/ceph# ceph osd unset noin
NOOUT
OSD’lerin herhangi bir nedenle (erişilememeleri, kapanmaları) durumunda cluster dışına atılmalarını (out) engeller.
NOUP
OSD’lerin monitörler tarafından up olarak işaretlenmesini ekler. Sürekli up/down olan bir OSD’niz var ise durumunu incelemek için kullanabilirsiniz.
NODOWN
OSD’lerin monitörler tarafından down olarak işaretlenmesini ekler. Sürekli up/down olan bir OSD’niz var ise durumunu incelemek için kullanabilirsiniz
PAUSE
Cluster üzerine yapılan I/O işlemlerinin durdurur
NOSCRUB
Cluster üzerindeki OSD’lerde otomatik olarak yapılacan olan scrub işleminin yapılmasının engeller.
Ceph Scrub Yapılandırması
Ceph objeler halinde tuttuğu verinin bütünlüğünün korunması amacı ile belirli zamanlarda scrub işlemini gerçekleştiriyor. Bu işlem sırasından objelerdeki bozulan verilerin onarılması amaçlanıyor. Tüm objelerde bu işlemin yapılmasına “deep scrub” deniyor. Atanmış değeri osd deep scrub interval değişkeni ile tanımlanıyor ve süresi haftada bir.Tanımlanabilecek olan scrub değişkenleri:
osd max scrubs: Ceph OSD tarafından yapılacak olan maksiumu operasyon sayısı (1) osd scrub thread timeout: Scrub timeout (Saniye,60) osd scrub load threshold: load avarage değeri bu değerden büyük olursa scrub yapılmıyor (0.5) osd scrub min interval: Scrub işlemini yapmak için maksimum saniye (Günde bir kez, 60*60*24) osd scrub max interval: Yük durumu ne olursa olsun scrub çalıştırmak için gerken maksimum süre. (Haftada bir, 7*60*60*24) osd deep scrub interval: deep scrub yapmak için gerekli olan maksimum süre (Haftada bir, 60*60*24*7) osd deep scrub stride: Scrub yaparken kullanılanacak okuma büyüklüğü (524288, 512KB) Peki elle scrub çalıştırmamız gerektiğinde ne yapacağız. Bunun için:
ceph osd scrub {osd-numarası}
yazmak yeterli. Osd numarasını görmek için
ceph osd dump
Ceph PG Durumları
Kurduğunuz ceph cluster’ın sağlığı PG grupların durumları ile oldukça ilişkili olduğundan ceph pg stat veya ceph –s
root@cephm:/home/ceph# ceph pg stat v34874: 1332 pgs: 1332 active+clean; 280 GB data, 844 GB used, 8455 GB / 9300 GB avail
root@cepm:/home/ceph# ceph -s cluster c33eca63-f5b5-4689-9fc5-636782f66f5c health HEALTH_OK monmap e1: 1 mons at {cephm=172.16.3.14:6789/0}, election epoch 1, quorum 0 cephm osdmap e1673: 20 osds: 20 up, 20 in pgmap v34874: 1332 pgs, 2 pools, 280 GB data, 81114 objects 844 GB used, 8455 GB / 9300 GB avail 1332 active+clean
komutu ile durumlarını göreceğiniz PG’lerinin durumlarının ne anlama geldiğini bilmek oldukça önemli.
Peering
PG’ler kendi aralarında tutulan objelerin ve metadata bilgilerinin durumu hakkında haberleşiyorlar. Bu durum bittikten sonra (obje ve metadataların durumu konusunda karara varıldıktan sonra) Active, Clean, Degraged vb duruma geçiş yapılıyor.
Active
Peerin sonrası herşeyin yolunda gittiği kararı alındı ise PG active duruma geçer, bu durumda veri ana PG’de ve replicalarda I/O operasyonuna yapmak için hazır durumdadır.
Clean
Birincil (primary) ve ikincil (secondary) OSD’lerin peeringinde bir sorun yok ise, PG’lerin konumunda herhangi bir değişikliğe gidilmeyecekse (crush map’te değişim sonrası örneğin),objelerin replikasyon sayılarında bir sorun yok ise (örneğin replica count 3 ise 3 kopyada da düzgün şekilde yazılmış ise ) clean durumuna geçilir.
Degraded
Herhangi bir OSD’ye erişilemediğinde, OSD’de bulunan PG’lerin durumu degraded olarak değiştirilir. OSD’ye erişilenememe durumu 300sn boyunca sürerse Ceph recovery işlemini başlatır ve diğer replikalardan obje başka bir OSD’de tekrar oluşturulur. 300sn’den önce OSD geri gelir ise diğer OSD’ler ile peering işlemini başlatır.
Recovering
OSD erişilemez duruma düştüğünde tekrar erişilebilir hale gelirse peering işleminden sonra objelerin güncel halinin diğer OSD’lerden alınması için recovery durumuna geçilir.
Backfilling
Ceph küme’sine yeni bir OSD eklendiğinde, Ceph var diğer OSD’lerde var olan verinin bir kısmını yeni OSD’ye taşıma işlemini başlatır. Bu işleme backfilling denir. Backfiling operasyonu tamamlandığında OSD I/O operasyonlarını yapmak için hazır hale gelmiş olur. Ceph kümesinde yeni bir OSD eklendiğinde ağırlık değerinin (weigh) düşük tutularak azar azar arttırılarak kümeye backfilling operasyonları ile dahil edilmesi önerilmektedir.
Remapped
Belirli bir PG’nin replicalarının bulunması gerken OSD’lere acting set ismi verilmektedir. Acting set’te bir değişikli olduğu zaman eski OSD’lerde ki verinin yeni OSD’lere taşınması gerekmektedir. Bu süre boyunca I/O isteklerine eski acting set’teki OSD’ler cevap verir. Verinin taşınması tamamlanınca, I/O operasyonlarına cevap verme görevini yeni OSD’ler üstlenir. Bu süreç içindeki PG’ler remapped durumda görülür.
Stale
Ceph OSD istatistklerini her 0.5 saniyede monitör sunucusuna iletir. Acting set’teki birincil OSD durumununu monitöre belirmediği anda monitör PG’nin durumuna stale olarak değiştirir.
CEPH Performans Optimizasyonu için Ayarlanabilecek Değişken Listesi
Genel
- Kernel pid max: Linux çekirdeği tarafından kullanılacak olan makimum işlemci numarası (Proccess id). OSD sayısının fazla olduğu sistemlerde thread sayısıda göz önüne alındığının da bu değerin arttırılması gerekebilir. Bu değeri yükseltmek için /proc/sys/kernel/pid_max değeri arttırılabilir.
- max open files: Ceph tarafından kullanacak olan dosyaların maksimum sayısı.
- filestore min sync interval,filestore max sync interval: Bu değerlen verinin journal’dan hangi sıklıkla diske aktarılacağını belirliyor (saniye olarak). SSD diskiniz büyükse ve değerleri az tutarsanız SSD diskinizi yeterince kullanmamış olursunuz.
- Jumbo Frames: anahtarlama cihazı ve işletim sisteminde mtu değeri 9000 olarak ayarlanması performansı arttıracaktır.
- Disk read_ahead:Disklerden okuma sırasında okunan verilerin tampon belleğe aktarılması istemcilerin(prefetch) disk erişimini hızlandıracaktır. Diske ait mevcut değer (sde diski için)
cat /sys/block/sde/vda/queue/read_ahead_kb
komutu ile görülebilir. Değer echo ile değiştirilebilir.
Filestore Kuyruğu
- filestore queue max ops: filestore’un kuyruğa yeni bir I/O operasyonu için maksimum sayısı
- filestore queue max bytes:I/O operasyonlarının maksimum byte değeri
- filestore queue committing max ops: Bir seferde yapılacak olan I/O operasyonların maksimum sayısı
- filestore queue committing max bytes: Bir seferde yapılacak olan I/O operasyonların maksimum byte değeri
- filestore op threads: Dosya sisteminde yapılacak olan operasyonları için paralel olarak çalıştırılacak thread değeri
OSD
- osd max write size:OSD tarafından bir seferde yazılabilecek olan veri miktarı (MByte)
- osd client message size cap: İstemciye ait verinin bellek tutulacak kısmına ait olan maksimum değler (MByte)
- osd deep scrub stride: Scrub operasyonları sırasında okunacak veri miktarı (Byte)
- osd op threads: Ceph OSD programı tarafından kullanılan thread sayısı
- osd disk threads: Ceph OSD programı tarafından disk işlemlerinde kullanılacak olan thread sayısı
OSD Journal
- journal max write bytes: Journal’a bir seferde yazılabilecek maksimum byte miktarı
- journal max write entries: Journal’a bir seferde yapılabilecek yazma sayısı
- journal queue max ops: Journal kuyruğunda tek seferde yapılabilecek olan maksimum operasyon sayısı
- journal queue max bytes: Journal kuyruğunda tek seferde yapılabilecek olan maksimum byte sayısı
OSD Kurtarma Operastonarlı (Recovery)
- osd recovery op priority: OSD kurtarma işleminin önceliği, rakam azaldıkça önceliği artıyor.
- osd recovery op priority: Aktif kurtarma işlemlerinin maksimum sayısı, sayı arttıkça kurtarma süresi azalıyor, sistemin genel performansı azalıyor.
- osd max backfills: Backfill operasyonlarının maksimum sayısı.
İstemci
- rbd cache: İstemci taraınfa rdb cache özeliğinini açmak için (true)
- rbd cache size: İstemici tarafında rdb cache değeri (Byte)
- bd cache max dirty: İstemci tarafında tampon bellekte tutulan maksimum veri miktarı. Bu değere erişildiğinde tampon bellekteki veriler flush ediliyor. Bu değer 0 olarak ayarlanır ise tampon bellek write-through olarak yapılandırılır. Atanmış değer write-back.
- rbd cache max dirty age: Saniye olarak bellekteki bilgilerin disklere flush edilme süresi