Merhaba , öncelikle serinin son yazısını aylar sonra paylaşıyor olduğum için siz sevgili Ceph sever okurlardan özür dileyerek başlamak istiyorum. Bugün planladığım gibi RBD, CephFS ve RGW üzerine konuşacağız.
Ceph’in temel bileşenleri arasında Ceph Cluster, RADOS Block Device (RBD), Ceph File System (CephFS) ve Ceph Object Gateway (RADOSGW) bulunur.
Öyleyse RBD ile başlayalım.
RADOS Block Device (RBD)
RBD (RADOS Block Device), Ceph depolama çözümünde kullanılan bir blok depolama özelliğidir. RBD, SAN (Storage Area Network) gibi geleneksel blok depolama çözümlerini simüle eder, ancak Ceph’in dağıtık, ölçeklenebilir ve yüksek performanslı yapısal avantajlarından yararlanır.
RBD, sanal makinelerin disk depolaması için idealdir. Sanallaştırma ortamlarında RBD kullanarak sanal makinelerinize yüksek performanslı ve esnek bir blok depolama çözümü sağlayabilirsiniz.
RBD, veritabanlarının depolama gereksinimlerini karşılamak için de kullanılabilir. Özellikle veritabanlarında yüksek performans, yedekleme, veri replikasyonu ve veri bütünlüğü gibi ihtiyaçların olduğu durumlarda RBD tercih edilebilir.
Ayrıca RBD, verilerin güvenli bir şekilde yedeklenmesi için kullanılabilir. RBD blok cihazları oluşturarak verilerinizi düzenli aralıklarla yedekleyebilir ve gerektiğinde bu yedekleri kullanarak veri kurtarma süreçlerini kolaylaştırabilirsiniz.
Bununla beraber büyük ölçekli veri depolama gereksinimlerini karşılamak için uygundur. Yüksek performans, ölçeklenebilirlik ve veri tutarlılığı gibi özellikleri sayesinde RBD, bulut depolama platformları ve büyük veri analizi uygulamaları için tercih edilen bir seçenektir.
RBD, blok cihazlarının anlık görüntülerinin (snapshot) alınmasına olanak tanır. Snapshot’lar, belirli bir zamandaki blok cihazı durumunun kopyasını almak için kullanılır ve veri geri alma veya kopyalama işlemlerinde kullanışlıdır. Ayrıca RVD klonlama da yapabiliyorsunuz. Klonlama, RBD, mevcut bir blok cihazının kopyasını oluşturarak yeni blok cihazlarının hızlı bir şekilde oluşturulmasına olanak tanır. Bu, test ve geliştirme ortamlarında çabuk bir şekilde yeni bloklar oluşturmanızı sağlar.
RBD, kullanım alanları açısından oldukça esnektir. Yukarıda bir şekilde haberdar olduğum kullanım alanlarını sizler ile paylaştım. İhtiyaçlarınıza ve kullanım senaryolarınıza bağlı olarak RBD’yi daha farklı şekillerde kullanabileceğinizi de belirtmek isterim.
Gelelim Ceph Cluster’da RBD kullanımını pratiğe dökmeye
Ceph üzerinde bir RBD havuzunu etkinleştirmek isterseniz, aşağıdaki komutları kullanabilirsiniz:
$ ceph osd pool create <pool-name>
$ ceph osd pool application enable <pool-name> rbd
$ rbd pool init -p <pool-name>
Bu komutlar, “rbd” adında bir RBD poolu oluşturacak ve RBD’nin kullanımını etkinleştirecektir. Ayrıca aşağıdaki komutlar, RBD pooluyla çalışırken kullanışlı olabilir.
rbd ls: Tüm RBD görüntülerini listeler.
rbd info <image-name>: Belirli bir RBD görüntüsü hakkında ayrıntılı bilgiler sağlar.
rbd create <gimage-name> --size <size>: Yeni bir RBD görüntüsü oluşturur.
rbd clone <source-image-name> <target-image>: Varolan bir RBD görüntüsünden yeni bir klon oluşturur.
rbd resize <image-name> --size <new-size>: Bir RBD görüntüsünün boyutunu değiştirir.
rbd snap create <image-name>@<snap-name>: Bir RBD görüntüsünün anlık görüntüsünü oluşturur.
rbd snap ls <image-name>: Bir RBD görüntüsüne ait tüm anlık görüntüleri listeler.
rbd snap rollback <image-name>@<snap-name>: Bir RBD görüntüsünü belirli bir anlık görüntüye geri döndürür.
rbd snap remove <image-name>@<snap-name>: Bir RBD görüntüsünden belirli bir anlık görüntüyü siler.
RBD ile ilgili fayda sağlayacağını düşündüğüm bilgileri sizler ile paylaştım. Bu alan deniz derya. Daha detaylı bilgiler için Ceph’in dökümantasyonlarına başvurabilirsiniz. Kolaylık diliyor, CephFS ile yola devam ediyorum.
Ceph File System (CephFS)
Ceph File System (CephFS), Ceph’in dağıtık bir dosya sistemi sunan bileşeni olarak karşımıza çıkar. CephFS, kullanıcılara yüksek performans, dayanıklılık ve ölçeklenebilirlik sağlayan bir dosya sistemi çözümüdür. Ayrıca POSIX uyumluluğuyla dikkat çeker, bu da geleneksel dosya sistemi arabirimlerini kullanabilmenizi sağlar.
CephFS, otomatik veri replikasyonu, ayrıştırma, veri kopyalama, çoklu düğüm desteği ve kotalandırma gibi özellikler sunar. Bu özellikler sayesinde, CephFS kullanıcıları büyük miktarda veriyi yönetebilir ve kullanıcı taleplerine hızlı ve güvenilir yanıtlar verebilir. Örneğin, büyük veri analizi, cloud-native uygulamalar, yüksek performanslı hesaplama, arşivleme ve veri paylaşımı gibi senaryolarda tercih edilebilir.
CephFS’i etkinleştirmek ve yapılandırmak için belirli adımlar izlenmelidir. Ceph cluster’ınızı kurduktan ve yapılandırdıktan sonra, metadata server’ı (MDS) etkinleştirmeniz gerekmektedir. MDS, CephFS’in metadata’nın saklanması ve dosya sistemi işlemlerinin yönetilmesiyle ilgilenir. MDS’yi başlatarak ve CephFS’i mount ederek CephFS’i kullanabilirsiniz
CephFS’i etkinleştirmek için gereken yapılandırmadan bahsetmek istiyorum. Ama öncesinde hazır konusu geçmişken MDS bileşeni hakkında kısaca konuşalım.
Metadata Server (MDS)
Metadata Server (MDS), CephFS’in çalışması için gereken bir bileşendir. MDS, CephFS’in metadata’nın saklanması ve dosya sistemi işlemlerinin yönetilmesiyle ilgilenir. Ceph cluster’ında bir veya daha fazla MDS bulunabilir.
MDS, dosya sistemi operasyonlarını desteklerken, kullanıcıların geleneksel dosya sistemi arabirimlerini kullanabilmesini sağlar. POSIX uyumluluğu sayesinde, mevcut uygulamaların ve araçların CephFS üzerinde çalıştırılması kolaylaşır.
MDS’nin çalışması, CephFS’in doğru ve güvenilir bir şekilde çalışmasını sağlar. MDS, dosya sistemi taleplerini işler, dosya ve dizin metadata’sını yönetir ve dosya sistemi işlemlerini düzenler. Böylece, kullanıcılar CephFS üzerinde dosyaları yönetebilir, paylaşabilir ve erişebilirler.
CephFS’in etkinleştirilmesi için bir MDS’nin konfigürasyonu ve çalıştırılması gerekmektedir. MDS, CephFS’in kullanımı için önemli bir bileşen olarak görev yapar. Nitekim Ceph clusterınızda MDS bileşeninde sorun olması durumda CephFS kullanan tüm diskleriniz bu durumdan etkilenecektir. Örneğin MDS serverın requestlere dönüşte yavaşlık yaşanıyor ise sizin CephFS disklerinizde r/w işlemlerinde gecikmeler yaşanır ya da r/w işlemini hiç yapamaz duruma gelebilirsiniz. Bu yüzden MDS önemli diyor, kaldığımız yerden CephFS’i yapılandırma adımlarından devam ediyorum 😊
CephFS’i etkinleştirmek ve yapılandırmak için Ceph poolunda belirli adımlar izlenmelidir. Ceph Cluster’ınızı kurdunuz ve yapılandırdınız varsıyorum. Ceph cluster bağlantılarınız da tam ise aşağıdan devam ediyoruz.
Haydı CephFS’i etkinleştirelim.
- CephFs için 2 adet pool oluşturun. (Data pool ve metadata pool)
$ ceph osd pool create <data_pool> $ ceph osd pool create <matadata_pool> - Data ve meta poolu oluşturulduktan sonra, dosya sistemini oluşturmak için ceph fs new komutunu aşağıdaki gibi kullanın,
$ ceph fs new <fs_name> <metadata_pool> <data_pool> - MDS’yi oluşturmak için aşağıdaki komutu kullanın. Bu komut, CephFS için yeni bir Metadata Server düğümü oluşturur ve bu düğümün nasıl çalışacağını ve nerede depolama yapacağını belirtir.
$ ceph mds create <fs_name> --data <metadata_pool><fs_name>: Önceden belirttiğiniz Ceph FS adını kullanın.<metadata_pool>: Metadata havuzunu belirtin.
- MDS’nin çalıştığından emin olmak için aşağıdaki komutu kullanabilirsiniz.
$ ceph mds statBu komut, MDS’lerin durumunu ve çalışma durumunu gösterecektir.
- Ceph FS’i mount etmek için bir hedef dizin oluşturun:
$ sudo mkdir /mnt/<mount_point><mount_point>: Ceph FS’in mount edileceği hedef dizin adını belirtin.
- Ceph FS’i mount etmek için aşağıdaki komutu kullanın:
sudo mount -t ceph <ceph-monitors>:6789:/ <mount_point> -o name=admin,secret=<admin_key><ceph-monitors>: Ceph monitorlerin adresini belirtin.<mount_point>: Önceden oluşturduğunuz hedef dizin adını belirtin.<admin_key>: Ceph admin anahtarını belirtin.
Bu adımları takip ederek, Ceph FS’i etkinleştirebilir ve kullanabilirsiniz. Unutmayın, komutlarda belirtilen parametreleri kendi yapılandırmanıza ve gereksinimlerinize göre değiştirmeniz gerekmektedir.
CephFS’i etkinleştirmekten bahsettik, peki ya kaldırmamız gerekirse? Aşağıdaki prosedürü izleyerek kaldırılması mümkündür sevgili ceph sever okurlar 🙂
$ ceph fs set <fs-name> down true
$ ceph fs rm <fs-name> --yes-i-really-mean-it
Son olarak CephFS ile çalışırken faydalı olabilecek bazı komutları sizler ile paylaşmak istiyorum.
ceph fs ls: Tüm CephFS dosya sistemlerini listeler.
ceph fs status: CephFS’in genel durumunu gösterir.
ceph fs set <fs_name> max_mds <count>: Belirli bir CephFS için maksimum Metadata Server (MDS) sayısını ayarlar.
ceph mds stat: Tüm Metadata Server (MDS) durumunu gösterir.
rados --pool=<metadata_pool> df: Metadata poolunun kullanım durumunu gösterir.
rados --pool=<data_pool> df: Data poolunun kullanım durumunu gösterir.
ceph fs df: CephFS’nin disk kullanımını izlemek ve depolama durumunu kontrol etmek için kullanılır.
Bu komutlar, CephFS ile ilgili temel işlemleri gerçekleştirmenize yardımcı olacaktır. O zaman son bileşenimize geçme vakte 👇🏻
RADOS Gateway (RGW)
RADOS Gateway (RGW), Ceph’in dağıtılmış bir nesne depolama servisidir. RGW, Amazon S3 ve OpenStack Swift gibi nesne depolama arabirimleri üzerinden erişilebilen ölçeklenebilir bir nesne depolama çözümü sunar.
RGW, nesneleri dağıtık bir şekilde depolamak için RADOS (Reliable Autonomic Distributed Object Store) ile entegre çalışır. RADOS, Ceph’in temel dağıtılmış depolama sistemidir ve RGW, RADOS üzerinde nesneleri depolamak ve yönetmek için bir arayüz sağlar.
RGW, dosyaları, metaverileri ve yapılandırma ayarlarını RADOS üzerinde depolar. Bu sayede RGW, yüksek performans, yüksek ölçeklenebilirlik ve yüksek kullanılabilirlik sunar.
RADOS Gateway (RGW) yapılandırması için aşağıdaki adımları takip edebilirsiniz:
- RGW bileşenini etkinleştirmek öncelikle aşağıdaki örnekteki gibi bir YAML file oluşturmalısınız.
service_type: rgw
service_name: <rgw_service_name>
placement:
count: 2
hosts:
- node01
- node02
spec:
rgw_frontend_port: 8080
rgw_realm: <realm_name>
rgw_zone: <zone_name>
ssl: true
rgw_frontend_ssl_certificate: |
-----BEGIN PRIVATE KEY-----
...........................
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
...........................
-----END CERTIFICATE-----
networks:
- x.x.x.0/24
- YAML file hazır olduktan sonra aşağıdakş şekilde apply edebilirsiniz.
$ ceph orch apply -i rgw-service.yaml
- RGW’nin başarıyla etkinleştirildiğini doğrulamak için aşağıdaki komutu kullanın.
Komut sonuçları arasında RGW’nin çalıştığını görmelisiniz.$ ceph orch ps - RGW’nin yeniden başlatılmasını sağlamanız gerekirse aşağıdaki komutu kullanabilirsiniz.
$ ceph orch restart <rgw-service-name> - Serviste bir konfigürasyon değişikliği yaptığınızda aşağıdaki komu ile servisi redeploy edebilirsiniz.
$ ceph orch redeploy <rgw-service-name>
RADOS Gateway (RGW) kullanırken faydalı olabileceğini düşündüğüm diğer komutları aşağıda bulabilirsiniz:
radosgw-admin user create --uid=<user_id> --display-name="<display_name>": Yeni bir RGW kullanıcısı oluşturur.
radosgw-admin bucket list --uid=<user_id>: Belirli bir kullanıcının tüm bucketlarını listeler.
NOT: “Bucket,” genellikle nesne depolama sistemlerinde, dosyaların ve verilerin saklandığı birimler olarak kullanılan terimdir.
radosgw-admin bucket stats --bucket=<bucket_name>: Belirli bir bucketın durumunu gösterir.
radosgw-admin bucket rm --bucket=<bucket_name> [--purge-objects]: Belirli bir bucketı siler.
‼️ Dikkat: “–purge-objects” flagi ile birlikte kullanıldığında buckettaki tüm nesneleri de siler.
radosgw-admin object rm --bucket=<bucket_name> --object=<object_key>: Belirli bir buckettaki bir nesneyi siler.
radosgw-admin user stats --uid=<user_id>: Belirli bir kullanıcının statüsünü gösterir.
radosgw-admin user modify --uid=<user_id> --max-buckets=<bucket_limit>: Bir kullanıcının maksimum bucket sayısını değiştirir.
radosgw-admin sync status: Veri senkronizasyon durumunu kontrol eder.
Bu komutlar, RGW’nin yönetimi ve kullanımı sırasında fayda sağlayabilen işlemleri gerçekleştirmenize yardımcı olacaktır diye düşünüyorum. Bu komutlarla beraber yazımın sonuna gelmiş bulunuyorum. Ayrıca serinin de son yazısını yazmış oldum. Bundan sonrası bir süre Ceph ile vedalaşıp merak ettiğim diğer teknolojileri konuşacağız. Sadece merak ettiklerim 🐤
O zaman klasiği bozmuyoruz; KübikFM’in bu geceki parçası gönüllerin bir olduğu eski dostlara gelsin. 🐸
