Kategori arşivi: GlusterFS

GlusterFS Hata : volume create: {volumename} : failed: {path} is already part of a volume

GlusterFS üzerinde nadiren karşılaştığım bir problem var, bu problem genellikle bir volume oluştururken karşıma çıkıyor ve ilgili path daha önce bir volume tarafından kullanıldıysa veya volume oluştururken bir şekilde hata döndüyse, sorunu düzeltmenize rağmen başlıktakine benzer bir hata almanız muhtemeldir.

Çözüm için aşağıdaki komutları uygulamanız yeterli olacaktır;

($brick_path’i kendi pathiniz ile değiştirin)

setfattr -x trusted.glusterfs.volume-id $brick_path
setfattr -x trusted.gfid $brick_path
rm -rf $brick_path/.glusterfs

Ubuntu Üzerine GlusterFS Kurulumu

Özet
Bu yazıda Ubuntu üzerine GlusterFS ile bir replicated volume’ün 2 node üzerine nasıl kurulacağını anlatmaya çalışacağım. Hemen hemen tüm Debian based sistemlerde benzer şekilde kurulum yapılabileceği gibi Redhat based sistemlerde de yapı çok farklı değildir. Sadece kullanılan paket yöneticileri farklı olacaktır.

GlusterFS nedir?

GlusterFS aslen Gluster firması tarafından geliştirilmiş 2011 yılında da Redhat tarafından satın alınmış bir çeşit NAS (network-attached storage) dosya sistemidir. GNU GPL lisanslı bir üründür ve bilindiği kadarıyla enterprise seviyede dahi birçok firma tarafından kullanılmaktadır. Hali hazırda iyi işler yapabilen bir sistemken bir de Redhat tarafından satın alınıp geliştirilmesine devam edilmesi ve yine büyük firmalar tarafından da desteklenmesi sebebiyle günden güne daha stabil, daha hızlı, daha güvenli ve daha kullanışlı olmuştur. Yaklaşık 3 yıldır aktif olarak kullandığım bir sistem olduğu için gelişimine bizzat tanıklık etmiş olduğumu söyleyebilirim. Gerek doküman bulma gerek IRC vb. platformlarda destek alma konusunda herhangi bir sıkıntı yaşamadım. Kadim dostum Alper Yalçıner sayesinde uzun yıllardır kullandığım freeNode serverlarında ben daha önce böyle organize bir ekip görmedim. Düzenli toplantılar, sürekli bug ayıklamalar vs. vs.. Uzun lafın kısası GlusterFS enterprise seviyede bir storage sistemi ve ücretsiz…

Tanımlar

Bu yazıda kullanılan bazı kısaltmaların karşılığı şu şekilde olacaktır;

Ubuntu : Ubuntu 14.04.3 LTS

GlusterFS : glusterfs-3.7

server1 : server1.fikridal.com : 192.168.1.1

server2 : server2.fikridal.com : 192.168.1.2

Paket Kurulumu

Server1 ve Server2’de aşağıdaki komutları çalıştırınız;

add-apt-repository ppa:gluster/glusterfs-3.7
apt-get update
apt-get install glusterfs-server

Gluster repolarını sistemimize ekledik ve paketlistemizi güncelledik. Daha sonra glusterfs-server paketini sistemimize kurduk. Bu adımları her iki serverda da uygulamalısınız. Eğer ikiden fazla node üzerinde çalıştırmak istiyorsanız tüm sunucularınıza bu paket kurulumunu yapmalısınız.

Kurulum işleminden sonra yapılması gereken ilk adım sunuculara birbirini tanıtmaktır. Bunun için server1’de aşağıdaki komutu çalıştırınız;
gluster peer probe server2.fikridal.com

bu komutu sadece server1’de çalıştırmış olmanız yeterlidir. İşin özünde clusterınızda yer alan herhangi bir serverdan bir diğerini eklemek yeterlidir.

Probe successful

Çalıştırdığınız komutun çıktısı yukarıdaki gibi olmalıdır. Sonuçlarını görmek için şu komutu çalıştırmalıyız;
gluster peer status
ve çıktısı;

Number of Peers: 1

Hostname: server2.fikridal.com
Uuid: a0566de2-3b34-6d2f-644f-29ec767080dd State: Peer in Cluster (Connected)

şeklinde olmalıdır. Artık clusterımızı oluşturduğumuza göre Volume oluşturmalıyız ve datanın nerede tutulacağını göstermeliyiz.

gluster volume create cluster replica 2 transport tcp server1.fikridal.com:/mnt/cluster server2.fikridal.com:/mnt/cluster

Yukarıdaki komutla birlikte cluster isminde bir gluster volume yarattık ve node olarak server1 ve server2 adreslerini verdik, datanın tutulacağı dizin olarakta /mnt/cluster pathini belirttik ve replica parametresi ile bu volume’ün iki sunucuda birer replika halinde olacağını belirttik.

Creation of volume cluster has been successful. Please start the volume to access data.

cluster isimli volume hazır, şimdi datalarımıza erişmek için volume’ü start etmeliyiz;


gluster volume start cluster

Bu komuttan sonra volume’ün start olduğuna dair şu çıktıyı almalıyız;

Starting volume cluster has been successful

Şimdi oluşturduğumuz volume’ün bilgilerine ve durumuna bakalım;

gluster volume info cluster

Volume Name: cluster
Type: Replicate
Status: Started
Number of Bricks: 2
Transport-type: tcp
Bricks:
Brick1: server1.fikridal.com:/mnt/cluster
Brick2: server2.fikridal.com:/mnt/cluster

Yukarıdaki bilgiler Gluster volume’e ait detaylardır, volume üzerinde yapacağınız tüm değişiklikleri, opsiyonları bu komut ile görebilirsiniz.
Durum bilgisi almak için çalıştıracağınız komut ise;
gluster vol status cluster

Yukarıdaki komutu çalıştırdığınızda aldığınız çıktıda tüm briklerin birer port (4915x) alıp up (Y)olduğuna dikkat etmeniz yeterli olacaktır.

Status of volume: cluster
Gluster process TCP Port RDMA Port Online Pid
------------------------------------------------------------------------------
Brick 192.168.1.1:/mnt/cluster 49155 0 Y 24628
Brick 192.168.1.2:/mnt/cluster 49155 0 Y 9544
NFS Server on localhost 2049 0 Y 24592
Self-heal Daemon on localhost N/A N/A Y 24604
NFS Server on 192.168.1.1 2049 0 Y 8839
Self-heal Daemon on 192.168.1.1 N/A N/A Y 9529

Task Status of Volume cluster
——————————————————————————
There are no active volume tasks

Şimdi herhangi bir node üzerinde bir test dosyası oluşturabiliriz.

root@server1:~# echo "merhaba gluster" > /mnt/cluster/test.txt

ve diğer serverda dosyamızı görelim;

root@server2:~# cat /mnt/cluster/test.txt
merhaba gluster

Tebrikler artık kendinize ait bir storage sisteminiz var.
GlusterFS hakkında detaylı bilgi almak için aşağıdaki linkleri kullanabilirsiniz;

https://www.gluster.org/

https://en.wikipedia.org/wiki/GlusterFS

Fikri DAL