Etiket arşivi: centos

Iptables – fail2ban: Yararlı komutlar (Centos)

Iptables’ı kaydedip, servis restart işleminde silinmesini önlemek

iptables-save | sudo tee /etc/sysconfig/iptables

Kuralları listeleme (port numaraları nümerik olarak)

iptables -L -n

Herhangi bir chain’e accept kuralı ekleme

iptables -I chain_name 1 -s ip_address -j ACCEPT

Fail2ban için exception ekleme; /etc/fail2ban/jail.conf (yada duruma göre jail.local) dosyası içerisinde ilgili satırı düzenlemek gerekiyor.

ignoreip = 127.0.0.1/8 xx.xx.xx.xx # (xx eklemek istediğiniz ip adresi)

ImportError: No module named pkg_resources

Error is:

Traceback (most recent call last):
 File "/usr/bin/python-html2text", line 5, in <module>
 from pkg_resources import load_entry_point
ImportError: No module named pkg_resources
(23) Failed writing body
Traceback (most recent call last):
 File "/usr/bin/python-html2text", line 5, in <module>
 from pkg_resources import load_entry_point
ImportError: No module named pkg_resources

Solution is:

yum install python-setuptools -y

Linux/Centos LVM partition’ı bölerek iki partition yapma

Centos’ta lvm home partition’ın bir kısmını alarak başka bir partition oluşturmak istiyorum. Öncelikle

umount /home

komutuyla partition unmount ediyoruz.

lvdisplay

komutuyla logical volume’leri sıralıyoruz ve /home partition’ının LV path’ine bakıyoruz. Bu partition’ı

lvremove /dev/cl/home

komutu ile siliyoruz.

Eğer bu noktada Logical volume cl/home in use şeklinde bir hata alırsanız bilgisayarınızı yeniden başlattıktan sonra aynı işlemi tekrarlayın. Daha sonra

vgs

komutu ile sildiğimiz partition boş alan olarak görünüyor mu ona bakıyoruz. Aşağıdaki komutlarla iki yeni lvm partition oluşturuyorum ve lsblk komutu ile isimlerine bakarak bu partition’ları yeniden isimlendiriyorum.

lvcreate -L 450GB cl
lsblk
lvrename /dev/cl/lvol0 /dev/cl/mds
lvcreate -L 426GB cl
lvrename /dev/cl/lvol0 /dev/cl/home

Daha sonra bu oluşturulan partitionları istediğim dosya formatında formatlıyorum (ben ext4 olarak seçtim).

mkfs.ext4 /dev/mapper/cl-home /home/
mkfs.ext4 /dev/mapper/cl-mds /mds/

Daha sonra yeni oluşturduğum bu partitionları mount ediyorum.

mount /dev/cl/mds /mds
mount /dev/cl/home /home

Daha sonra bilgisayar her başladığında bu partitionlar mount edilsin diye /etc/fstab dosyasına aşağıdaki satırları ekliyorum. Bilgisayarı yeniden başlatıp df -h komutuyla yeni partitionların mount edilip edilmediğine bakıyorum. Sorun yok.

/dev/mapper/cl-home /home ext4 defaults 0 0
/dev/mapper/cl-mds /mds ext4 defaults 0 0

NOT:

Partition’ı dosya formatı vererek formatlamaz iseniz aşağıdaki hatayı alırsınız.

mount: /dev/mapper/cl-home is write-protected, mounting read-only
mount: unknown filesystem type '(null)'

Ben bunu yukarıda

mkfs.ext4 /dev/mapper/cl-home /home/

komutuyla hallettim.

 

Error: Package: python-smbios-2.2.27-4.12.1.el6.x86_64 (@dell-omsa-indep)

Problemi çözmek için aşağıdaki komutları çalıştırmanız yeterli olacaktır.

rpm -i --force http://linux.dell.com/repo/hardware/dsu/os_dependent/RHEL6_64/srvadmin/libsmbios-2.3.1-2193.9883.el6.x86_64.rpm
yum update -y

Aynı hata paketin farklı sürümünden dolayı geliyorsa linkten size uygun paketin url’sini kopyalayıp üstteki komutu değiştirerek çalıştırmanız yeterli olacaktır.

Some Iptables Commands

allow an IP to traffic –> sudo iptables -I INPUT 1 -s 192.168.5.6 -j ACCEPT 
allow an IP to traffic –> sudo iptables -I INPUT 1 -s 192.168.5.7 -j DROP 
allow to reach a port –> sudo iptables -A INPUT -p tcp –dport 993 -j ACCEPT 
allow server to ping –> sudo iptables -A INPUT -p icmp –icmp-type echo-request -j ACCEPT 
delete a rule –> sudo iptables -D INPUT sequence_number_of_the_rule

Centos 7.2 Ceph Kurulum

Ceph ile ilgili yazdığımız bildiriye bağlantıdan ulaşabilirsiniz.

You can access our report about Ceph from the link.


Ceph’in network mimarisi tamamlandıktan sonra sunucularda yaptığım işlemleri anlatacağım. Bizim mimaride 3 adet Monitör node, 4 adet OSD node ve 1 adet de mds olmak üzere toplamda 8 adet node var. Ceph’i MDS olarak kullanacağımız makineden cephdeploy ile kurduk. Sunucu isimlerini şu şekilde verdik;

cephdeploy
csmon1
csmon2
csmon3
csnode1
csnode2
csnode3
cdnode4

Öncelikle tüm node’ların güncellemeleri yapıldı. Selinux disabled edildi. /etc/hosts dosyaları düzenlendi. Iptables’ın kapalı olduğu kontrol edildi. Her node’da ceph kullanıcısı açıldı ve password’e ihtiyaç olmadan root olacak şekilde ayarlandı. cephdeploy sunucusunda ssh-keygen üretilip diğer sunuculara gönderildi. Bu sayede cephdeploy sunucusu diğer tüm sunuculara şifresiz olarak erişebilecek duruma geldi.

Tüm node’larda gerekli rpm key’leri yüklüyoruz.

sudo rpm --import 'https://download.ceph.com/keys/release.asc'
sudo rpm --import 'https://download.ceph.com/keys/autobuild.asc'

Tüm node’lara ntp kuruyoruz. Konfigürasyonunu yaptıktan sonra servisini başlatıyoruz.

sudo yum install ntp ntpdate ntp-doc
sudo systemctl start ntpd

Bütün node’larda /etc/sudoers dosyasındaki Defaults requiretty satırını kapatıyoruz. Yine tüm node’larda /etc/yum.repos.d/ceph.repo dosyasını aşağıdaki şekilde oluşturuyoruz.

[ceph]
name=Ceph packages for $basearch
baseurl=http://download.ceph.com/rpm-infernalis/el7/$basearch
enabled=1
priority=2
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc

[ceph-noarch]
name=Ceph noarch packages
baseurl=http://download.ceph.com/rpm-infernalis/el7/noarch
enabled=1
priority=2
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc

[ceph-source]
name=Ceph source packages
baseurl=http://download.ceph.com/rpm-infernalis/el7/SRPMS
enabled=0
priority=2
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc

Ceph deploy olarak kullanacağım node’da ceph kullanıcı ile girdikten sonra mkdir dosyaismi diyerek bir klasör oluşturuyorum ve cd ile bu klasör içerisine giriyorum. Bundan sonra yapacağım bütün işlemleri bu klasör içerisindeyken yapacağım. yum install ceph-deploy diyerek, ceph-deploy aracını kuruyoruz.

Daha sonra başlangıç için bir monitör seçiyoruz. Biz bunun için csmon2 node’unu seçtik. ceph-deploy new csmon2 komutunu çalıştırıyoruz. Başlangıç monitörü oluşturulduktan sonra içinde bulunduğumuz klasörde ceph.conf dosyası oluşmuş olacaktır. Bu dosyayı aşağıdaki gibi düzenliyoruz.

[global]
fsid = 148f06d8-bb31-4344-b6cf-ccaefc8f6184
mon_initial_members = csmon2
mon_host = 192.168.1.7
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
filestore_xattr_use_omap = true
public_network = 192.168.1.0/24
cluster_network = 192.168.2.0/24
osd_journal_size = 23000
osd_pool_default_size = 3
osd_pool_default_min_size = 2

Biz osd_journal_size‘i 23000 olarak (yaklaşık 23 GB) verdik. Kendi istediğiniz miktarı belirtebilirsiniz. osd_pool_default_size replika sayısını belirtiyor. Biz bir dosyanın üç kopyasının tutulmasını istediğimizden dolayı 3 olarak belirttik. Konfigürasyonu kaydedip kapatıyoruz. Daha sonra aşağıdaki komut satırıyla tüm node’lara ceph-deploy ile ceph’i kuruyoruz. ceph-deploy new csmon2 komutu hata verip tamamlanamadı ise önce aşağıdaki komut satırı ile ceph’i kurup sonrasında tekrar deneyebilirsiniz.

ceph-deploy install cephdeploy csnode1 csnode2 csnode3 csnode4 csmon1 csmon2 csmon3

Ceph kurulduktan sonra ceph-deploy mon create-initial komutu ile tüm sunuculara monitör nodu deploy ediyoruz.

Bu aşamada osd-node’ları tanımlayacağız. Sırasıyla aşağıdaki işlemleri yapıyoruz.

ceph-deploy disk zap <ceph-node>:<data-drive>
ceph-deploy disk zap csnode1:/dev/sdc csnode1:/dev/sdd csnode1:/dev/sde ...
ceph-deploy disk zap csnode2:/dev/sdc csnode2:/dev/sdd csnode2:/dev/sde ...
ceph-deploy disk zap csnode3:/dev/sdc csnode3:/dev/sdd csnode3:/dev/sde ...
ceph-deploy disk zap csnode4:/dev/sdc csnode4:/dev/sdd csnode4:/dev/sde ...

ceph-deploy osd prepare <ceph-node>:<data-drive>:<journal-partition> [<ceph-node>:<data-drive>:<journal-partition>]
ceph-deploy osd prepare csnode1:/dev/sdc1:/dev/sda5 csnode1:/dev/sdd1:/dev/sda6 csnode1:/dev/sde1:/dev/sda7 ...
ceph-deploy osd prepare csnode2:/dev/sdc1:/dev/sda5 csnode2:/dev/sdd1:/dev/sda6 csnode2:/dev/sde1:/dev/sda7 ...
ceph-deploy osd prepare csnode3:/dev/sdc1:/dev/sda5 csnode3:/dev/sdd1:/dev/sda6 csnode3:/dev/sde1:/dev/sda7 ...
ceph-deploy osd prepare csnode4:/dev/sdc1:/dev/sda5 csnode4:/dev/sdd1:/dev/sda6 csnode4:/dev/sde1:/dev/sda7 ...
ceph-deploy osd activate <ceph-node>:<data-drive>:<journal-partition> [<ceph-node>:<data-drive>:<journal-partition>]
ceph-deploy osd activate csnode1:/dev/sdc1:/dev/sda5 csnode1:/dev/sdd1:/dev/sda6 csnode1:/dev/sde1:/dev/sda7 ...
ceph-deploy osd activate csnode2:/dev/sdc1:/dev/sda5 csnode2:/dev/sdd1:/dev/sda6 csnode2:/dev/sde1:/dev/sda7 ...
ceph-deploy osd activate csnode3:/dev/sdc1:/dev/sda5 csnode3:/dev/sdd1:/dev/sda6 csnode3:/dev/sde1:/dev/sda7 ...
ceph-deploy osd activate csnode4:/dev/sdc1:/dev/sda5 csnode4:/dev/sdd1:/dev/sda6 csnode4:/dev/sde1:/dev/sda7 ...

Hata vermeden osd’ler oluşmuş ise ceph osd tree komutu ile osd’lerin durumunu görebilirsiniz. Yukarıdaki işlemleri hatasız tamamlamışsanız şimdi sıra pool oluşturmakta. ceph osd lspool komutu oluşturulan pool’ları gösteriyor. Default olarak rbd pool’u oluşmuş olacaktır. Aşağıdaki komut ile mypool adında pg_num ve pgp_num değeri 768 olan pool oluşturulmuş olacak.

ceph osd pool create <pool-name> <pg-num> [<pgp-num>] [replicated] [crush-ruleset-name]
ceph osd pool create mypool 768 768

Sonrasında admin node’u belirliyoruz.

ceph-deploy admin cephdeploy
sudo chmod +r /etc/ceph/ceph.client.admin.keyring

ceph health komutu ile ceph’in durumunu kontrol ederek kurulumu bitiriyoruz. HEALTH_OK şeklinde çıktı vermeli.

Kaynaklar:

Ceph: monitor does not being up after reboot (Centos 7.2)

When I reboot monitor nodes, one of monitor node wasn’t up. So I found a way to wake monitor up. I edited /etc/rc.local in the monitor node like this;

ceph-mon -i mon_hostname --cluster-addr ipof_mon:6789

Dont forget to run the commandline chmod +x /etc/rc.local after edited rc.local file. After this modification will monitor service will be up when computer restart.

 


Ceph ile ilgili yazdığımız bildiriye bağlantıdan ulaşabilirsiniz.

You can access our report about Ceph from the link.