Kategori arşivi: Ubuntu

Eski ZFS’yi Güncelledikten sonra Alınan Hatalar

Eğer ZFS versiyonunuz bir hayli geri kalmışsa son versiyona yükselttiğinizde poolunuzu göremeyebilirsiniz.

root@fd1:~# zfs list
no datasets available
root@fd1:~# zpool import
zpool: ../../lib/libzfs/libzfs_import.c:356: Assertion `nvlist_lookup_uint64(zhp->zpool_config, ZPOOL_CONFIG_POOL_GUID, &theguid) == 0' failed.
Aborted (core dumped)

Çözümü çok kolay,

Debian türevleri için;

apt-get update
apt-get upgrade

İşin özünde zfs gücellenirken bir kaç paketinin güncellenmemiş olması yatar;

Reading state information... Done
The following packages have been kept back:
landscape-common linux-headers-generic-lts-saucy linux-image-generic-lts-saucy
The following packages will be upgraded:
libnvpair1 libuutil1 libzpool2 zfsutils
4 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.
Need to get 824 kB of archives.
After this operation, 306 kB disk space will be freed.
Do you want to continue [Y/n]?
<

Linux, Performans, Güvenlik ve Sistem Yöneticisi

Özet

Aşağıda okuyacağınız bilgileri herhangi bir kitapta bulamazsınız, herhangi bir yerde doğru veya yanlış olduğuna dair teyit edecek net bir kaynakla karşılaşamazsınız. Bunlar yıllar içinde edindiğim tecrübelerin basit bir şekilde yazıya dökülmüş ham halleridir. Burada yazılanları uygulayıp/uygulamamak tamamen sizin inisiyatifinizdedir.

Bir sunucudan yüksek performans sağlamasını istemek sıradan bir beklentidir. Ancak bu beklentimizi sağlaması için sunucuyu yeterince optimize ediyor muyuz? Benzer şekilde “Linux nasılsa güvenli” diye düşünerek sunucuyu savunmasız bırakmanın yüksek ihtimalle karşılacağımız felaketlere davetiye çıkartmak olduğunun bilincinde miyiz?.

Bu yazımda da komutlardan ziyade mantıksal konular üzerinde durup performans arttırımı ve güvenlik için bir bilinç oluşturmaya çalışacağım. Sunucudan verebileceği tam performansı veya ona yakın olasılıkları almak için neler yapmalıyız kısaca bunlara değineceğim. Linux, Performans, Güvenlik ve Sistem Yöneticisi yazısına devam et

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