GlusterFS'ye (Dosya Sistemi) Giriş ve RHEL/CentOS ve Fedora'ya Kurulum


Verilerin öngörülemez bir şekilde büyüdüğü bir dünyada yaşıyoruz ve yapılandırılmış olsun ya da olmasın bu verileri verimli bir şekilde depolamamız gerekiyor. Dağıtılmış bilgi işlem sistemleri, merkezi bilgi işlem sistemlerine göre çok çeşitli avantajlar sunar. Burada veriler, sunucu olarak birkaç düğümle dağıtılmış bir şekilde depolanır.

Dağıtılmış bir dosya sisteminde artık meta veri sunucusu kavramına ihtiyaç yoktur. Dağıtılmış dosya sistemlerinde, farklı sunucular arasında ayrılmış tüm dosyaların ortak bir bakış açısına sahip olmasını sağlar. Bu depolama sunucularındaki dosyalara/dizinlere normal yollarla erişilir.

Örneğin, dosya/dizin izinleri olağan sistem izin modelinde olduğu gibi (sahip, grup ve diğerleri) ayarlanabilir. Dosya sistemine erişim temel olarak belirli protokolün aynı şekilde çalışacak şekilde nasıl tasarlandığına bağlıdır.

GlusterFS nedir?

GlusterFS, kullanıcı alanında kullanılmak üzere tanımlanmış dağıtılmış bir dosya sistemidir, yani Kullanıcı Alanındaki Dosya Sistemi (FUSE). Kendi esneklik özelliğini hesaba katan yazılım tabanlı bir dosya sistemidir.

GlusterFS'nin hiyerarşik bir modeldeki konumunu şematik olarak temsil eden aşağıdaki şekle bakın. GlusterFS tarafından varsayılan olarak TCP protokolü kullanılacaktır.

GlusterFS'nin Avantajları

  1. İnovasyon – Meta verileri ortadan kaldırır ve performansı önemli ölçüde iyileştirerek verileri ve nesneleri birleştirmemize yardımcı olur.
  2. Esneklik – Veri boyutunun büyümesine ve küçülmesine uyarlanmıştır.
  3. Doğrusal Olarak Ölçeklendir – Petabaytlar ve ötesinde kullanılabilirliğe sahiptir.
  4. Basitlik – Yönetilmesi kolaydır ve kullanıcı alanında çalışırken çekirdekten bağımsızdır.

Gluster'ı diğer dağıtılmış dosya sistemleri arasında öne çıkaran şey nedir?

  1. Satılabilir – Meta veri sunucusunun olmaması, daha hızlı bir dosya sistemi sağlar.
  2. Uygun fiyatlı – Ticari donanımlara dağıtılır.
  3. Esnek – Daha önce de söylediğim gibi GlusterFS yalnızca yazılıma dayalı bir dosya sistemidir. Burada veriler ext4, xfs vb. gibi yerel dosya sistemlerinde depolanır.
  4. Açık Kaynak – Şu anda GlusterFS, Red Hat Storage'ın bir parçası olarak milyar dolarlık bir açık kaynak şirketi olan Red Hat Inc tarafından yönetilmektedir.

GlusterFS'de depolama kavramları

  1. Brick – Brick temel olarak güvenilir depolama havuzu arasında paylaşılması amaçlanan herhangi bir dizindir.
  2. Güvenilir Depolama Havuzu – tasarlanan protokolü temel alan bu paylaşılan dosyalardan/dizinlerden oluşan bir koleksiyondur.
  3. Blok Depolama – Verilerin sistemler arasında bloklar halinde taşındığı cihazlardır.
  4. Küme – Red Hat Storage'da hem küme hem de güvenilir depolama havuzu, tanımlanmış bir protokole dayalı olarak depolama sunucularının işbirliğinin aynı anlamını taşır.
  5. Dağıtılmış Dosya Sistemi – Kullanıcıların dosyanın gerçek konumunu bilmeden dosyaya erişebildiği, verilerin farklı düğümlere yayıldığı bir dosya sistemi. Kullanıcı uzaktan erişim hissini yaşamaz.
  6. FUSE – Kullanıcıların herhangi bir çekirdek kodu gerektirmeden çekirdeğin üzerinde dosya sistemleri oluşturmasına olanak tanıyan, yüklenebilir bir çekirdek modülüdür.
  7. glusterd – glusterd, sunucular aktif durumdayken tüm zaman boyunca çalışacak olan dosya sisteminin omurgası olan GlusterFS yönetim arka plan programıdır.
  8. POSIX – Taşınabilir İşletim Sistemi Arayüzü (POSIX), Uygulama Programlanabilir Arayüz (API) biçimindeki Unix varyantları arasındaki uyumluluğa bir çözüm olarak IEEE tarafından tanımlanan standartlar ailesidir.
  9. RAID – Yedekli Bağımsız Disk Dizisi (RAID), yedeklilik yoluyla artırılmış depolama güvenilirliği sağlayan bir teknolojidir.
  10. Alt hacim – En az bir çevirmen tarafından işlenen bir tuğla.
  11. Çevirmen – Çevirmen, kullanıcı tarafından bağlama noktasından başlatılan temel eylemleri gerçekleştiren kod parçasıdır. Bir veya daha fazla alt birimi birbirine bağlar.
  12. Hacim – Birimler mantıksal bir tuğla koleksiyonudur. Tüm işlemler, kullanıcı tarafından oluşturulan farklı birim türlerine dayanmaktadır.
Farklı Birim Türleri

Aşağıda gösterildiği gibi farklı hacim türlerinin ve bu temel hacim türleri arasındaki kombinasyonların temsillerine de izin verilmektedir.

Dağıtılmış Çoğaltılan Hacim

Dağıtılmış-çoğaltılmış bir birimin temsili.

GlusterFS'nin RHEL/CentOS ve Fedora'ya kurulumu

Bu yazıda, yüksek depolama kullanılabilirliği için GlusterFS'yi ilk kez kurup yapılandıracağız. Bunun için birimler oluşturmak ve aralarında verileri çoğaltmak için iki sunucu alıyoruz.

Adım:1 En az iki düğüme sahip olun

  1. İki düğüme CentOS 6.5'i (veya başka bir işletim sistemini) yükleyin.
  2. "Sunucu1" ve "Sunucu2" adlı ana makine adlarını ayarlayın.
  3. Çalışan bir ağ bağlantısı.
  4. Her iki düğümdeki “/data/brick“ adlı depolama diski.

Adım 2: EPEL ve GlusterFS Deposunu Etkinleştirin

GlusterFS'yi her iki sunucuya da kurmadan önce, dış bağımlılıkları karşılamak için EPEL ve GlusterFS depolarını etkinleştirmemiz gerekiyor. Her iki sistemde de epel deposunu kurmak ve etkinleştirmek için aşağıdaki bağlantıyı kullanın.

  1. RHEL/CentOS'ta EPEL Deposu Nasıl Etkinleştirilir?

Daha sonra GlusterFs deposunu her iki sunucuda da etkinleştirmemiz gerekiyor.

wget -P /etc/yum.repos.d http://download.gluster.org/pub/gluster/glusterfs/LATEST/EPEL.repo/glusterfs-epel.repo

Adım 3: GlusterFS'nin Kurulumu

Yazılımı her iki sunucuya da yükleyin.

yum install glusterfs-server

GlusterFS yönetim arka plan programını başlatın.

service glusterd start

Şimdi daemon'un durumunu kontrol edin.

service glusterd status
Örnek Çıktı
service glusterd start
  service glusterd status
  glusterd.service - LSB: glusterfs server
   	  Loaded: loaded (/etc/rc.d/init.d/glusterd)
  	  Active: active (running) since Mon, 13 Aug 2012 13:02:11 -0700; 2s ago
  	 Process: 19254 ExecStart=/etc/rc.d/init.d/glusterd start (code=exited, status=0/SUCCESS)
  	  CGroup: name=systemd:/system/glusterd.service
  		  ├ 19260 /usr/sbin/glusterd -p /run/glusterd.pid
  		  ├ 19304 /usr/sbin/glusterfsd --xlator-option georep-server.listen-port=24009 -s localhost...
  		  └ 19309 /usr/sbin/glusterfs -f /var/lib/glusterd/nfs/nfs-server.vol -p /var/lib/glusterd/...

Adım 4: SELinux ve iptables'ı yapılandırın

'/etc/sysconfig/selinux' dosyasını açın ve her iki sunucuda da SELinux'u "izin verilen" veya "devre dışı" moduna değiştirin. Dosyayı kaydedip kapatın.

This file controls the state of SELinux on the system.
SELINUX= can take one of these three values:
    enforcing - SELinux security policy is enforced.
    permissive - SELinux prints warnings instead of enforcing.
    disabled - No SELinux policy is loaded.
SELINUX=disabled
SELINUXTYPE= can take one of these two values:
    targeted - Targeted processes are protected,
    mls - Multi Level Security protection.
SELINUXTYPE=targeted

Daha sonra, her iki düğümdeki iptables'ı temizleyin veya diğer düğüme iptables aracılığıyla erişime izin vermeniz gerekir.

iptables -F

Adım 5: Güvenilir Havuzu Yapılandırma

'Sunucu1' üzerinde aşağıdaki komutu çalıştırın.

gluster peer probe server2

'Sunucu2' üzerinde aşağıdaki komutu çalıştırın.

gluster peer probe server1

Not: Bu havuz bağlandıktan sonra yalnızca güvenilir kullanıcılar bu havuzdaki yeni sunucuları inceleyebilir.

Adım 6: GlusterFS Birimi Ayarlayın

Hem sunucu1 hem de sunucu2'de.

mkdir /data/brick/gv0

Herhangi bir sunucuda birim oluşturun ve birimi başlatın. Burada 'Sunucu1'i aldım.

gluster volume create gv0 replica 2 server1:/data/brick1/gv0 server2:/data/brick1/gv0
gluster volume start gv0

Daha sonra birimin durumunu onaylayın.

gluster volume info

Not: Her ihtimale karşı birim başlatılmazsa, hata mesajları bir veya daha fazla bilgisayarda '/var/log/glusterfs' altına kaydedilir. her iki sunucu.

Adım 7: GlusterFS Birimini Doğrulayın

Birimi '/mnt' altındaki bir dizine bağlayın.

mount -t glusterfs server1:/gv0 /mnt

Artık dosya sisteminin tek bir görünümü olarak bağlama noktasındaki dosyaları oluşturabilir ve düzenleyebilirsiniz.

GlusterFS'in Özellikleri

  1. Kendini iyileştirme – Çoğaltılmış bir birimdeki tuğlalardan herhangi biri kapalıysa ve kullanıcılar diğer tuğlanın içindeki dosyaları değiştirirse, otomatik kendi kendini iyileştirme arka plan programı, tuğla bir sonraki tuğla çalışır çalışmaz devreye girecektir. zaman ve kapalı kalma süresi sırasında gerçekleşen işlemler buna göre senkronize edilir.
  2. Yeniden dengeleme – Daha önce büyük miktarda verinin bulunduğu mevcut bir birime yeni bir tuğla eklersek, verileri yeni eklenen tuğla da dahil olmak üzere tüm tuğlalar arasında dağıtmak için bir yeniden dengeleme işlemi gerçekleştirebiliriz.
  3. Coğrafi çoğaltma – Olağanüstü durum kurtarma için verilerin yedeklenmesini sağlar. İşte ana ve yardımcı birimler kavramı geliyor. Böylece eğer master devre dışı kalırsa tüm verilere köle üzerinden erişilebilir. Bu özellik, verileri coğrafi olarak ayrılmış sunucular arasında senkronize etmek için kullanılır. Coğrafi çoğaltma oturumunun başlatılması bir dizi birleştirme komutu gerektirir.

Burada Geo-çoğaltma modülünü gösteren aşağıdaki ekran görüntüsü bulunmaktadır.

Referans Bağlantıları

GlusterFS Ana Sayfası

Şimdilik bu kadar!. Gelecek makalelerimde Kendini iyileştirme ve Yeniden dengeleme, Coğrafi çoğaltma vb. özelliklerle ilgili ayrıntılı açıklamalar için güncel kalın.