🚀 Red Hat Ceph Storage Mimarisi

Dağıtık depolama sistemlerine giriş

📚 Bu Sunumda Neler Öğreneceksiniz?

  • Bulut depolama ekosistemindeki roller ve sorumluluklar
  • Red Hat Ceph Storage mimarisi ve bileşenleri
  • Ceph cluster'a erişim yöntemleri
  • Yönetim arayüzleri (CLI ve Dashboard)
  • Pratik uygulamalar ve komutlar

👥 Storage Personas - Depolama Rolleri

Bulut depolama ortamlarında farklı kullanıcı rolleri bulunur:

  • Her rol farklı sorumluluklar taşır
  • Organizasyonunuzun yapısına göre değişebilir
  • Bir kişi birden fazla rol üstlenebilir

🎯 Storage Administrator (Depolama Yöneticisi)

Birincil rol - Ana görevleri:

  • Ceph storage cluster kurulumu ve yapılandırması
  • Altyapı mimarlarını Ceph özellikleri hakkında bilgilendirme
  • Veri erişim yöntemleri konusunda kullanıcılara destek
  • Replikasyon, yedekleme ve felaket kurtarma
  • Otomasyon ve Infrastructure as Code entegrasyonu

Storage Operator (Depolama Operatörü)

İkincil rol - Günlük operasyonlarda yardımcı:

  • Genellikle storage administrator'dan daha az deneyimli
  • Dashboard GUI üzerinden cluster izleme
  • Rutin yönetim görevlerini yerine getirme
  • Arızalı disk değişimi gibi işlemler

RADOS Nedir?

  • RADOS (Reliable Autonomic Distributed Object Store) olarak bilinen bir object storage backend'dir

  • RADOS ile etkileşim için çeşitli erişim yöntemleri mevcuttur

  • RADOS, kendi kendini iyileştiren ve yöneten yazılım tabanlı bir object store'dur

  • RADOS bluestore kullanir.

🔧 Ceph Storage Bileşenleri

Monitors (MONs): Cluster haritalarını tutar
OSDs (Object Storage Devices): Veriyi depolar ve replikasyon yapar
Managers (MGRs): Çalışma zamanı metriklerini izler
MDSs (Metadata Servers): CephFS için metadata depolar

Ceph Monitors (MON) Detayı

Görsel Alanı

  • Cluster durumunu takip eder
  • 5 farklı harita tutar (Monitor, OSD, PG, CRUSH, MDS)
  • Çoğunluk (quorum) ile karar alır
  • ⚠️ Önemli: Tek sayıda monitor kullanın (3, 5, 7)

💾 Object Storage Devices (OSD) Detayı

Görsel Alanı

  • Veri depolama birimleri
  • Her disk bir OSD olarak yapılandırılır
  • BlueStore kullanarak yüksek performans sağlar
  • Primary ve Secondary OSD rolleri vardır

Ceph Managers (MGR) Detayı

Görsel Alanı

  • Cluster istatistiklerini toplar
  • Web dashboard sunar
  • REST API sağlar
  • En az 2 MGR önerilir (yüksek erişilebilirlik için)

Metadata Server (MDS) Detayı

Görsel Alanı

  • Sadece CephFS için kullanılır
  • POSIX uyumlu dosya sistemi metadata'sı
  • Dosya sahipliği, zaman damgaları, izinler
  • Dosya içeriğine erişimi yoktur

🗺️ Cluster Map (Cluster Haritası)

Ceph'in 5 temel haritası:

  1. Monitor Map: Monitor konumları ve portları
  2. OSD Map: OSD listesi ve durumları
  3. PG Map: Placement Group detayları
  4. CRUSH Map: Veri yerleştirme kuralları
  5. MDS Map: Metadata server bilgileri

🔌 Ceph'e Erişim Yöntemleri

Görsel Alanı

🔌 Ceph'e Erişim Yöntemleri

  1. librados: Native C kütüphanesi (en yüksek performans)
  2. RBD (RADOS Block Device): Blok depolama
  3. RADOSGW (Object Gateway): S3/Swift uyumlu nesne depolama
  4. CephFS: Dağıtık dosya sistemi

RADOS Block Device (RBD)

  • Sanal diskler için depolama sağlar
  • Linux kernel'da mount desteği
  • QEMU, KVM, OpenStack Cinder desteği
  • Otomatik paralel erişim

Ceph Object Gateway (RADOSGW)

  • RESTful API ile nesne depolama
  • Amazon S3 uyumlu
  • OpenStack Swift uyumlu
  • HTTP load balancer desteği
  • Kullanım alanları: Görüntü depolama, yedekleme, dosya paylaşımı

CephFS - Ceph File System

  • Paralel dosya sistemi
  • Tek hiyerarşi, paylaşımlı disk
  • Production ortam desteği
  • Snapshot desteği
  • MDS (Metadata Server) gerektirir

🏊 Veri Dağıtımı - Pools (Havuzlar)

  • Mantıksal depolama bölümleri
  • Her pool için ayarlanabilir özellikler:
    • İsim ve ID
    • Placement Group sayısı
    • CRUSH kuralı
    • Koruma tipi (replicated veya erasure coding)

Görsel Alanı

Placement Groups (PG)

  • Nesneleri gruplandırır
  • CRUSH algoritması ile OSD'lere eşlenir
  • Yeni OSD eklendiğinde otomatik dengeleme
  • Performans ve yönetim kolaylığı sağlar

Neden PG?

Görsel Alanı

DİSKLERİ KOPYALA

  • Her cihaz aynılanır
  • Cihaz boyutları eşleşmeli

Neden PG?

Görsel Alanı

PG'LERİ KOPYALA

  • Her PG aynılanır
  • PG yerleşimi rastgeledir

Neden PG?

Görsel Alanı

OBJELERİ KOPYALA

  • Her obje aynılanır
  • Obje yerleşimi rastgeledir

Tekli Arıza Senaryoları

Görsel Alanı

DİSKLERİ KOPYALA

  • Kurtarma için boş yedek cihaz gerekli
  • Kurtarma tek disk verimi ile sınırlı

Tekli Arıza Senaryoları

Görsel Alanı

PG'LERİ KOPYALA

  • Yeni PG kopyaları hayatta kalan cihazlara yerleştirilir
  • Kurtarma paralel ilerler, birçok cihazı kullanır ve daha erken tamamlanır

Tekli Arıza Senaryoları

Görsel Alanı

OBJELERİ KOPYALA

  • Her cihaz kurtarmaya katılır

Üçlü Arıza Senaryoları

Görsel Alanı

DİSKLERİ KOPYALA

  • Çok az üçlü arıza veri kaybına neden olur (tüm diskin)

Üçlü Arıza Senaryoları

Görsel Alanı

PG'LERİ KOPYALA

  • Bazı üçlü arızalar veri kaybına neden olur (tüm PG'nin)

Üçlü Arıza Senaryoları

Görsel Alanı

OBJELERİ KOPYALA

  • Her üçlü arıza veri kaybına neden olur (bazı objelerin)

Üçlü Arıza Senaryoları

Görsel Alanı

OBJELERİ KOPYALA

  • Her üçlü arıza veri kaybına neden olur (bazı objelerin)

🛡️ Veri Koruma Yöntemleri

Görsel Alanı

Replicated Pool (Varsayılan):

  • Verinin kopyalarını oluşturur
  • Daha yüksek performans
  • Daha fazla disk alanı kullanır

Erasure Coded Pool:

  • Daha verimli alan kullanımı
  • Daha düşük performans

🖥️ Ceph Yönetim Arayüzleri

Red Hat Ceph Storage 5 ile cephadm tanıtıldı:

  • Containerized deployment
  • Ansible playbook'ların yerini aldı
  • Minimal paket bağımlılığı (cephadm, podman, python3, chrony)

📊 Ceph Dashboard GUI

  • Web tabanlı yönetim arayüzü
  • Varsayılan olarak port 8443'te çalışır
  • SSL/TLS güvenliği ile korunur

Görsel Alanı

Dashboard Özellikleri

  • Çoklu kullanıcı ve rol yönetimi
  • Single Sign-On desteği
  • Denetim (audit) kayıtları
  • CRUSH map görselleştirme
  • OSD ve pool yönetimi
  • Gerçek zamanlı metrikler

Dashboard İzleme Özellikleri

  • Genel cluster sağlığını kontrol
  • Host ve servisleri görüntüleme
  • Log inceleme
  • Cluster uyarılarını görüntüleme
  • Kapasite kontrolü

🧪 Uygulama: Temel Ceph Komutları - 1

``bash
docker compose exec -it cephadm bash


---

## Uygulama: Temel Ceph Komutları - 2

Cluster durumunu kontrol edin:
```bash
ceph status
ceph health
ceph health detail  # Sorun varsa detayları gösterir

Uygulama: Monitor Komutları

Monitor bilgilerini görüntüleyin:

ceph mon dump       # Monitor haritası
ceph mon stat       # Monitor durumu

Ceph Monitor Durumu

[root@cephadm /]# ceph mon stat 
e2: 3 mons at {mon1=[v2:172.30.0.11:3300/0,v1:172.30.0.11:6789/0],
              mon2=[v2:172.30.0.12:3300/0,v1:172.30.0.12:6789/0],
              mon3=[v2:172.30.0.13:3300/0,v1:172.30.0.13:6789/0]} 
removed_ranks: {} disallowed_leaders: {}, 
election epoch 6, leader 0 mon1, 
quorum 0,1,2 mon1,mon2,mon3

Temel Bileşenler

e2: Monitor haritası sürümü (2. versiyon)
3 mons: Cluster'da 3 monitor var
election epoch 6: 6. seçim gerçekleşti
leader 0 mon1: mon1 lider olarak seçildi
quorum 0,1,2: Tüm 3 monitor çalışıyor

Protokol Versiyonları

v2:172.30.0.11:3300/0  ← Modern protokol
v1:172.30.0.11:6789/0  ← Eski protokol
  • v2 (3300 portu): Yeni ve hızlı
  • v1 (6789 portu): Geriye uyumluluk için

Lider Seçimi

Election Epoch 6: 6. seçim tamamlandı

  • Tek epochlar: Seçim devam ediyor
  • Çift epochlar: Lider seçildi, kararlı durum

Seçim Süreci:

  1. Monitor arızalandığında seçim başlar
  2. Çoğunluk (>%50) gerekli
  3. En düşük rank kazanır (mon1 = rank 0)

Uygulama: OSD Komutları

OSD bilgilerini görüntüleyin:

ceph osd status     # OSD durumları
ceph osd pool ls    # Pool listesi
ceph osd crush tree # CRUSH hiyerarşisi

Uygulama: Manager ve PG Komutları

Manager ve Placement Group bilgileri:

ceph mgr stat       # Manager durumu
ceph pg stat        # PG istatistikleri

Ceph Manager Durumu

# ceph mgr stat
{
    "epoch": 10,
    "available": true,
    "active_name": "mgr2",
    "num_standby": 2
}

epoch: 10 (manager haritası sürümü)
available: true (manager kullanılabilir)
active_name: "mgr2" (aktif manager)
num_standby: 2 (2 yedek manager)

Placement Group Durumu

# ceph pg stat   
97 pgs: 97 active+clean; 
451 KiB data, 362 MiB used, 54 GiB / 54 GiB avail

97 pgs: 97 placement group var
97 active+clean: Tümü sağlıklı durumda
451 KiB data: 451 KiB kullanıcı verisi
362 MiB used: 362 MiB toplam kullanım
54 GiB avail: 54 GiB kullanılabilir alan

PG Durumları

Durum Açıklama
active PG aktif ve çalışıyor
clean Tüm replikalar sağlıklı
degraded Bazı replikalar eksik
down PG erişilemez

🌐 Uygulama: Dashboard Erişimi

  1. Firefox ile şu adrese gidin:

    docker compose logs | grep -i dashboard -A2
    
  2. Giriş bilgileri:
    Username: admin, Password: admin123!

Dashboard Ana Ekran Bölümleri

Status: Cluster sağlık durumu

  • HEALTH_OK, HEALTH_WARN, HEALTH_ERR

Capacity: Toplam kapasite ve kullanım

Performance: Throughput ve okuma/yazma hızları

🏋️ Pratik Alıştırma

Aşağıdaki komutları sırayla çalıştırın:

  1. ceph status - Genel durum
  2. ceph osd tree - OSD dağılımı
  3. ceph df - Disk kullanımı
  4. ceph osd pool stats - Pool istatistikleri
  5. Dashboard u kesfedin

Ek Pratik Komutlar

ceph osd df         # OSD disk kullanımı
ceph pg dump        # PG detayları
ceph osd pool get <pool-name> all
ceph config dump    # Yapılandırma

📝 Özet

  • Ceph dağıtık, ölçeklenebilir depolama sistemidir
  • MON, OSD, MGR, MDS temel bileşenleridir
  • 4 erişim yöntemi: librados, RBD, RADOSGW, CephFS
  • Pool'lar ve PG'ler veri organizasyonunu sağlar
  • CLI ve Dashboard ile yönetim yapılır
  • Replicated ve erasure coding ile veri korunur