Günümüzde çokça gördüğümüz çokça duyduğumuz çalıştığımız ortamlarda kullanmaya başladığımız HCI, Hyper Converged Infrastructure (Hiper Bütünleşik Mimari) olarak isimlendirilen sistemlerin hayatımıza gireli çok oldu.
Piyasada baktığınızda başı çeken birçok ürün var. DellEMC Vxrail, HPE Simplivity, Nutanix ve daha birçoğunu görmekteyiz.
Ben bugün sizlere açık kaynak dünyasından gelen Proxmox KVM sanallaştırma ve onun ile beraber uyumlu bir şekilde çalışan Ceph storage teknolojisi ile tanıştırmak istiyorum.
Ceph Nedir?
Nesne, blok ve dosya sistemi tipi depolama ortamlarının tamamını bir arada sunan ve depolama sistemlerinin geleceği olarak görülen açık kaynak kodlu bir depolama çözümüdür. 2003 yılında California Üniversitesi’nde Sage Weil adlı öğrencinin doktora tezi olarak başlayan Ceph projesi, açık kaynak dünyasında ilgili topluluğun ciddi katkıları ile hızla gelişerek günümüzde bir çok önemli projenin ilk akla gelen depolama tercihi olmaya başlamıştır. Özellikle OpenStack bulut ortamlarında de-facto depolama çözümü haline gelmiştir. Literatürde “Software-defined storage (SDS)” olarak geçen yazılım tanımlı depolama çözümleri arasında açık kaynak kodlu olması, donanım bağımsız çalışabilmesi ve oldukça yüksek performanslara çıkabilmesi sayesinde hep bir adım önde yer almaktadır. Başlangıcından itibaren exabyte seviyesinde ölçeklenebilmek üzere tasarlanmış olan Ceph, tek nokta hatalarına karşı dayanıklı, yüksek erişilebilir yapıda hizmet vermektedir.
Ceph başka bir makale hatta makale serisi konusundur. Merak edenler buradan daha fazla bilgi alabilir.
Ceph hakkında kısa bir not: En önemli yönlerinden biride, Ceph yapısı içerisinde kullanacağız disklerin modeli ve kapasitesi hiç önemli değildir, ister aynı ceph yapısı içerisinde ssd+sata+sas hepsi aynı kaynak içinde aynı anda kullanılabilir ve bu hiç bir sorun yaratmaz. Söylediğim gibi Ceph ayrı bir makale serisi konusudur.
Şimdi yapımızdan ve makalenin hedefinden bahsetmek istiyorum.
Hedefimiz şunlar
1 – 3 Sunucu arasında Cluster yapısı kurmak
2 – Ceph Yapısı kurmak
3 – Cluster testleri yapmak ( Live Migration )
4 – Failover Cluster testleri yapmak
Yapımız bu şekilde.
İlk önce şunu belirtmek isterim Ceph Cluster için en az 3 server gerekmektedir.
3 Adet sunucumuz var, her sunucu üzerinde 2 adet disk var. Disk 1 de sistem kurulu vaziyette ( Proxmox 6.1-3 ) Disk 2 ise Ceph için kullanılacak.
Network yapımıza baktığımda 3 adet networkumuz var
VMs Network – 192.168.1.0/24 – Sanal sunucuların dış dünya ile bu network ile iletişim sağlayacak.
Cluster Network – 192.168.90.0/24 – Sunucular Cluster iletişimini buradan sağlanacak. ( Live Migration)
Ceph Network – 172.16.90.0/24 – Ceph yapısında iletişim bu network ile sağlanacak.
Aşağıda görüldüğü gibi 3 adet sunucum var. Her birinde Proxmox (6.1-3) yüklü durumda.
İlk önce Cluster Network – 192.168.90.0/24 network ayarlarını yapıyoruz ve sunuculara sırayla ip adreslerini veriyoruz. Sırayla
Server 1 - 192.168.90.1
Server 2 - 192.168.90.2
Server 3 - 192.168.90.3
Sıra geldi Ceph Network – 172.16.90.0/24 ayarlarına
Server 1 - 172.16.90.1
Server 2 - 172.16.90.2
Server 3 - 172.16.90.3
Tüm networklerimizi hazırladık.
İlk olarak Cluster kurmakla başlıyoruz.
Server 1 gidiyorum ismi “pve11” ve Datacenter kısmına tıklıyorum gelen ekranda “Cluster” kısmına tıklayarak “Create Cluster” butonuna tıklıyorum. Sonrasında “Cluster Name” bölüme cluster ismini yazıyorum.
“Link 0 ” kısmına cluster networkumu seçiyorum.
“Link 1 ” kısmında alternatif olarak “192.168.1.0” networküm olan VMs Networkü seçtim.
Cluster yapımı oluşturdum. Şimdi diğer serverlarımı bu oluşturduğum clustera dahil edeceğim.
Bunun için clusterı oluşturduğum sunucu üzerinde cluster bölümündeki “Join Information” butonuna tıkladım ve “Join Information” kısmında oluşturulmuş olan kodu kopyaladım.
Server 2’e gelip yine cluster bölümünde “Join Cluster” butonuna tıkladım.
“Information” kısmına az önce kopyladığım kodu yapıştırdım. “Link 0” kısmında yine “Cluster Network” aralığını seçtim ve yine “Link 1” kısmına alternatif olarak “VMs Network” aralığını seçtim ve “Join” butonunu tıkladım
Aynı işlemi Server 3 içinde tekrarladım.
İşlemlerim ardında tüm sunucularım Cluster içerisine dahil oldu.
Sıra Ceph yapısını kurmaya geldi. Bunun için yine Server 1’e geri döndüm ve “Ceph” bölüme tıkladım, karışma gelen “Install Ceph nautilus” butonuna tıklıyorum.
Ceph için gerekli paketleri yüklemek için “y” yazıp devam ediyorum.
Gelen ekran “Public Network” kısmında “Ceph Network – 172.16.90.0/24” seçtim ve “Cluster Network” kısmına “Cluster Network – 192.168.90.0/24” seçtim bu network heartbeat kontrolleri için kullanılıyor. İstenmesi durumda bu iletişimler için ayrı bir network oluşturulabilir.
Ve işlem başarılı bir şekilde tamalanıyor.
Diğer iki server içinde aynı adımları yapıyorum.
Server 2 “pve12“
Sıra geldi son server’a
Server 3 “pve13”
Tüm server’lara başarı ile Ceph kurulumu yaptık. Sıra geldi “Monitor” eklemeye.
Ceph MON (Monitor): Monitör bileşenleri tüm depolama ortamının sağlıklı çalışmasını takip amacıyla haritasını tutar. MAP ismi verilen bu haritalar arasında OSD Map, Monitor Map, PG Map ve CRUSH Map bulunur. Monitör bileşenleri diğer tüm bileşenlerden durum bilgilerini alarak haritayı çıkarır ve bunu diğer monitör ve OSD bileşenleri ile paylaşır. Ceph istemcileri bir okuma veya yazma yapacağı zaman yazacağı OSD ve PG’leri belirledikten sonra bu OSD’lerin çalışır durumda olup olmadığına bakar. İlk belirlenen erişilebilir durumda değilse duruma göre 2. veya 3. OSD kullanılır. Burada belirlenen OSD sayısı replikasyon sayısına bağlıdır.
Sırayla her server gelip “Ceph” bölümde “Monitor” kısmına tıkıyor ve “Create” butonuna tıklıyorum ve her server’ı ekliyorum.
Tüm serverlar başarıyla eklendi.
Ceph teknolojisinde “OSD” kavramı var
Ceph OSD (Object Storage Daemon): OSD bileşenleri veriyi nesne halinde tutmakla yükümlüdür. Verinin kopyalar halinde (replikasyon) tutulmasını yönetir. Disk ekleme/çıkarma işlemleri sonrasında verinin depolama ortamı üzerinde yeniden yapılandırılarak gerekli kopyaların oluşturulmasını ve diskler üzerinde dengeli olarak dağıtılmasını sağlar. Ayrıca monitör sunucularına disklerin durumu ile ilgili bilgi sağlar. Önerilen yapıda her disk için ayrı bir OSD kullanılması önemli konulardan birisidir.
Şimdi her bir diskimizi “OSD” olarak eklememiz gerekli. Bunun için “CEPH \ OSD \ Create: OSD” yolunu takip ederek serverlar üzerindeki ikinici diskleri “OSD” olarak ekleyelim ama bazen diskleri sistem görmeyebiliyor ben bu tür durumlarda görmeyen diskleri formatlıyorum ve sonrasında sorun çözülüyor.
Aşağıda görüldüğü gibi server 1 “pve11” üzerindeki ikinci disk olan “sdb“‘i ext4 formatında formatladım. Kullandığım komut aşağıdadır.
mkfs.ext4 /dev/sdb
“/dev/sdb” diski seçip ekliyorum.
Aynı şeyleri diğerleri serverlar içinde tekrarlıyorum.
Sistemin son hali bu şekilde tüm “OSD” ler eklendi.
Sıra geldi “pool” oluşturmaya
“Name” kısmına isim veriyorum
Size : Replikayon Sayısı
Min. Size : İzin verilen en az sayıdaki veri kopyası sayısı
Evet yapımız sağlıklı bir şekilde oluşturuldu.
Şimdi sıra testlere geldi.
Live Migration Testi
Örnek senaryoda sistemde çalışmakta olan bir adet “Ubunu Server 18.04 LTS” mevcuttur.
Sunucuma sağ tıkladım ve “Migrate” dedim sonrasında “pve12” server seçtim.
Sonuç olarak başarılı bir şekilde Live Migration gerçekleşti.
Failover Testi
Şimdi sora “Failover” testine, bu testi yapmak için direk sunucunun power fişini çekiyorum bakalım neler olacak.
Önce “HA Grup” oluşturuyorum ve tüm serverları bu gruba dahil ediyorum
Sonra sanal sunucumu HA olarak ayarlıyorum.
İsmi“ubuntu” olan sanal sunucu, “pve13” isimli cluster node’u üzerinde görülmekte, şimdi direk bu sunucumun fişini çekiyorum.
Failover başarılı bir şekilde gerçekleşti ve sana sunucum “pve11” cluster node’u üzerinde başladı. Ceph bir süre sonra kendine gelerek her şey yeşil konuma geçti.
Görüldüğü gibi bütçeniz kısıtlı veya yeni bir şey denemek istiyorsanız Proxmox tam size göre.
Yararlı olmasını dilerim.