Kubernetes'te kalıcı depolama (persistent storage) seçimi, kümenizin kararlılığını ve veritabanı iş yüklerinizin performansını doğrudan etkiler. Bu rehber; CNCF tabanlı Longhorn, production-grade Rook-Ceph ve kurumsal Portworx çözümlerini teknik derinlikte karşılaştırır; kurulum YAML'larıyla, performans verileriyle ve senaryo bazlı önerilerle.
Kubernetes'te pod'lar doğası gereği geçicidir; öldüğünde içindeki veri de gider. Kalıcı depolama için Kubernetes, PersistentVolume (PV) ve PersistentVolumeClaim (PVC) adlı iki temel nesne tanımlar. Uygulamalar PVC talep eder, cluster yöneticisi (ya da bir storage provisioner) eşleşen PV'yi otomatik olarak oluşturur.
CSI (Container Storage Interface), Kubernetes'in depolama sürücüleriyle konuştuğu standart arayüzdür. Kubernetes 1.13'ten itibaren GA olan bu arayüz sayesinde Longhorn, Ceph ve Portworx gibi çözümler aynı API'yi kullanarak PV oluşturabilir, snapshot alabilir ve volume'ları yeniden boyutlandırabilir. CSI'den önce her storage çözümü Kubernetes core'una yamalar göndermek zorundaydı.
| Mod | Açıklaması | Tipik Kullanım |
|---|---|---|
| RWO — ReadWriteOnce | Tek node okuma+yazma | Veritabanları (MySQL, PostgreSQL) |
| ROX — ReadOnlyMany | Birden fazla node okuma | Statik içerik, config dağıtımı |
| RWX — ReadWriteMany | Birden fazla node okuma+yazma | Paylaşımlı dosya sistemleri (NFS tabanlı) |
Kubernetes 1.17'de beta, 1.20'de GA olan VolumeSnapshot API, PVC'lerin point-in-time kopyalarının alınmasını standartlaştırır. Bu üç çözümün tamamı VolumeSnapshot API'yi destekler; ancak uygulama detayları farklıdır. Longhorn ve Ceph kendi snapshot mekanizmalarını CSI arayüzüne bağlarken, Portworx 3D snapshot adını verdiği uygulama tutarlı (application-consistent) snapshot özelliğini sunar.
Her üç çözüm de teknik olarak sağlam olsa da yanlış seçim; operasyonel karmaşıklık, beklentinin altında performans veya gereksiz lisans maliyeti doğurabilir. Aşağıdaki sorular seçiminizi netleştirecek çerçeveyi sunar.
Longhorn, Rancher/SUSE tarafından geliştirilen ve CNCF Incubating statüsünde bulunan açık kaynak, dağıtık block storage çözümüdür. Her Kubernetes node'unda çalışan Longhorn Manager ve Longhorn Engine pod'larıyla oluşan mimari, basit kurulum ve görsel dashboard sayesinde küçük-orta ölçekli kümelerde popülerdir.
open-iscsi kurulu ve aktifjq, bash, findmnt araçlarıLonghorn, S3 uyumlu nesne depolama (AWS S3, MinIO, Backblaze B2) veya NFS hedeflerine periyodik backup gönderebilir. Cross-cluster replikasyon da desteklenir: kaynak volume snapshot'ı hedef cluster'daki S3'e aktarılır ve orada yeni bir volume olarak oluşturulur. Bu mekanizma tam synchronous DR değildir; RPO beklentinizi buna göre belirleyin.
Rook, CNCF Graduated statüsünde bir Kubernetes operatörüdür; görevi Ceph'i Kubernetes içinde orkestre etmektir. Rook olmadan Ceph kurulumu elle yapılması gereken karmaşık bir süreçtir. Rook, bu süreci CRD (Custom Resource Definition) tabanlı YAML tanımlarına indirir. Ceph ise dünyanın en olgun açık kaynak dağıtık depolama sistemlerinden biridir; block (RBD), dosya (CephFS) ve nesne (RGW/S3) depolamayı tek cluster'dan sunar.
nodeSelector ve
tolerations kullanarak OSD'leri ayrı node'lara atayın; bu node'lara
başka pod schedule'ı engellemek için taint ekleyin.
Portworx (PX-Enterprise), Pure Storage bünyesinde geliştirilen, Kubernetes native kurumsal depolama platformudur. 2020'de Pure Storage tarafından satın alınan Portworx, özellikle büyük ölçekli production ortamlar, strict RPO/RTO gereksinimleri ve çok-cluster DR senaryoları için tasarlanmıştır.
| Lisans | Ücret | Kısıtlamalar |
|---|---|---|
| PX-Essentials | Ücretsiz | Max 5 node, max 5 volume, Autopilot yok, DR yok |
| PX-Enterprise | Node başı yıllık ücret (Pure Storage ile anlaşma) | Tüm özellikler, destek dahil |
| PX-Backup | Ayrı lisans | Multi-cluster backup yönetim platformu |
Portworx kurulumu, PX-Central üzerinden spec generator kullanılarak yapılır. Generator, cluster boyutunuza ve kullandığınız Kubernetes dağıtımına (EKS, GKE, AKS, on-prem) göre özelleştirilmiş DaemonSet YAML'ı üretir. Temel adımlar:
Ham disk performansı, depolama katmanından geçerken kayıplara uğrar. Her çözüm farklı miktarda overhead getirir ve bu overhead; replikasyon mekanizmasına, kullanılan protokole ve ağ gecikmesine göre değişir.
| Metrik | Longhorn | Rook-Ceph (RBD) | Portworx |
|---|---|---|---|
| Sıralı Okuma (3 replika, NVMe) | ~1.5 GB/s | ~2.5 GB/s | ~2.2 GB/s |
| Sıralı Yazma (3 replika, NVMe) | ~800 MB/s | ~1.8 GB/s | ~1.6 GB/s |
| Rastgele 4K IOPS (Okuma) | ~40K IOPS | ~100K IOPS | ~90K IOPS |
| Gecikme (p99 yazma) | ~3 ms | ~1.5 ms | ~1.2 ms |
| CPU Overhead (OSD/replica) | Orta | Yüksek (Ceph OSD yoğun) | Orta-Düşük |
| Max ölçek (node) | ~100 node pratik limit | 1000+ node | 1000+ node |
fio veya sysbench ile benchmark alın.
Longhorn her volume için ayrı engine process çalıştırır; yüzlerce volume'da bu durum node başına yüksek process sayısına yol açabilir. Büyük kümeler için Longhorn v1.6+ ile gelen "V2 Volume" (SPDK tabanlı) özelliği bu sorunu ele alır ancak henüz production-ready değildir.
Rook-Ceph, petabayt ölçeğinde kanıtlanmış bir performans geçmişine sahiptir. OSD sayısını artırmak hem kapasiteyi hem IOPS'u genişletir; yatay ölçekleme açısından en esnek çözümdür.
Portworx, storage pool konseptiyle node'lardaki diskleri bir havuzda birleştirir ve IO'yu bu havuz üzerinde dengeler. Autopilot özelliği, kapasite yönetimi operasyon yükünü önemli ölçüde düşürür.
Longhorn, her volume için yapılandırılan replika sayısı kadar veri kopyası tutar. Bir node düştüğünde Longhorn Engine kalan replikalara yazma/okuma yapmayı sürdürür. Düşen node geri geldiğinde ya da yeni bir node eklendiğinde, Longhorn otomatik olarak replika rebuildini başlatır.
Cross-cluster DR için Longhorn, kaynak cluster'dan bir S3 hedefine periyodik backup gönderir. Hedef cluster bu S3'ten restore yaparak volume'u oluşturur. Bu yapı asenkron DR'dır; RPO, backup sıklığına bağlıdır (minimum ~5 dakika).
Ceph'in CRUSH map algoritması, veri parçalarını (PG — Placement Group) fiziksel olarak farklı node veya rack'lere dağıtır. 3 OSD ile 1 OSD kaybında veri bütünlüğü korunur; failure domain "host" olarak ayarlandığında 3 farklı sunucu kaybına kadar dayanıklılık sağlanabilir. Ceph, kendi içinde self-healing mekanizmasına sahiptir: bozulan PG'ler otomatik olarak yeniden dengelenir.
Cross-cluster DR için RBD Mirroring (async) veya CephFS mirroring kullanılabilir. Stretch cluster modu ile iki datacenter arasında aktif-aktif Ceph cluster kurulumu mümkündür; ancak bu kurulum oldukça karmaşıktır.
Portworx, yazma işlemlerini node'lar arasında synchronous olarak replike eder. 3 replika ile 2 node kaybında bile cluster veriyi sağlıklı tutar. Synchronous DR özelliği ise iki farklı Kubernetes cluster'ı arasında gerçek zamanlı veri kopyalaması sağlar; RPO hedefi sıfıra yakındır.
| HA / DR Özelliği | Longhorn | Rook-Ceph | Portworx |
|---|---|---|---|
| Node kaybında otomatik iyileşme | ✓ Evet | ✓ Evet (CRUSH) | ✓ Evet |
| Cross-cluster DR | ~ Async (S3) | ~ RBD Mirror (async) | ✓ Sync veya Async |
| RPO hedefi | Dakika (backup aralığı) | Saniyeler (mirror) | Sıfıra yakın (sync) |
| Rack-aware dağıtım | ~ Sınırlı | ✓ CRUSH failure domain | ✓ Topology-aware |
| Otomatik failover | ✓ | ✓ | ✓ + Stork scheduler |
Yazılım lisans maliyeti sıfır olsa bile bir depolama çözümünün toplam sahip olma maliyeti (TCO) farklıdır. Operasyon, eğitim, donanım boyutlandırma ve olası destek sözleşmeleri hesaba katılmalıdır.
| Maliyet Kalemi | Longhorn | Rook-Ceph | Portworx Enterprise |
|---|---|---|---|
| Yazılım Lisansı | Ücretsiz (Apache 2.0) | Ücretsiz (Apache 2.0) | Node başı yıllık ücret |
| Kurulum ve Yapılandırma | Düşük (1-2 gün) | Yüksek (1-4 hafta) | Orta (3-5 gün, iyi dokümantasyon) |
| Operasyon / Yönetim | Düşük (UI var) | Yüksek (Ceph uzmanlığı) | Düşük-Orta (Autopilot ile otomasyon) |
| Donanım Overhead | Orta (volume başı engine process) | Yüksek (OSD per disk + MON + MDS) | Orta (storage pool) |
| Destek | Topluluk / SUSE ücretli | Topluluk / Red Hat ücretli | Dahil (enterprise SLA) |
| Eğitim Maliyeti | Düşük | Yüksek (Ceph admin sertifikası) | Orta |
Büyük bir ekipte Ceph yönetimi için tam zamanlı bir SRE'nin maliyeti, Portworx lisans ücretini geçebilir. Tersine, küçük bir startup için Portworx lisans maliyeti bütçe kısıtı oluşturabilir. TCO hesabı yaparken insan zamanını da dahil edin.
Aşağıdaki matris, yaygın Kubernetes ortamları için hangi çözümün öne çıktığını özetler. Her senaryo tek bir "doğru" cevaba sahip değildir; ikincil seçenek de parantez içinde belirtilmiştir.
| Senaryo | Önerilen | Alternatif | Neden? |
|---|---|---|---|
| 3-10 node küçük küme, az kaynak | Longhorn | Rook-Ceph (küçük) | Düşük overhead, basit kurulum ve UI |
| 20+ node, veritabanı ağırlıklı iş yükü | Rook-Ceph (RBD) | Portworx | RBD IOPS avantajı, ücretsiz lisans |
| RWX gerektiren çok replikalı uygulama | Rook-Ceph (CephFS) | Longhorn (NFS) | Native CephFS RWX daha stabil |
| Synchronous cross-cluster DR zorunlu | Portworx Enterprise | — | Tek çözüm synchronous DR sunar |
| Rancher / RKE2 tabanlı küme | Longhorn | Rook-Ceph | SUSE/Rancher native entegrasyon |
| Petabayt ölçekli on-premises depolama | Rook-Ceph | Portworx | Ceph 1000+ node ölçeğinde kanıtlanmış |
| Maliyet bütçesi kısıtlı startup | Longhorn | Rook-Ceph | Sıfır lisans, kolay operasyon |
| Enterprise destek + Autopilot gereksinimi | Portworx Enterprise | — | Tek platform Autopilot ve SLA sunar |
| Hem block hem object (S3) aynı cluster'dan | Rook-Ceph (RBD + RGW) | — | Ceph native S3 gateway (RGW) mevcuttur |
Aşağıdaki resmi kaynaklar, bu rehberde anlatılan teknik detayların doğrulanmasında kullanılmıştır ve derinlemesine inceleme için referans alınabilir.