Merhaba,
Kullanmakta olduğumuz yada yeni kurulumunu yaptığımızı sunucularımızın kesintisi olarak hizmet vermesini isteriz. Bu kapsamda sunucuların network bağlantılarında yaşanabilecek kesintileri minimuma indirmek için nic bonding denilen ve ihtiyaca göre farklı şekillerde ayarlanabilen (ben en fazla kullanılan Aktif-Pasif yedeklilik modelini anlatacağım) network yedekliliğinden bahsetmek istiyorum. Windows sunucularda bu tarz yedeklilikleri kullanılan ethernet kartınızın modeline göre (intel yada broadcom) üretici firmaların kendi uygulamaları ile yapabiliyorsunuz. Ancak linux tarafında ilave bir uygulamaya gerek kalmadan da network yedekliliği yapılabiliyor.
RedHat/CentOS için
İlk olarak alias tanımlamalarını yapıyoruz.
"/etc/modprobe.conf" dosyası içerisine kaç tane bond yapacaksanız hepsini tanımlamamız gerekiyor.
alias bond0 bonding
alias bond1 bonding
alias bond2 bonding
.
.
.
Alias tanımlama işlemlerini yaptıktan sonra bond0-1-2 için gerekli konfigürasyon dosylarını oluşturmamız gerekiyor. Bu işlem için;
"/etc/sysconfig/network-scripts" yoluna gidilir.
vi yada vim komutu ile ifcfg-bond0 dosyamızı oluşturup içerisinde aşağıdaki şekilde konfigürasyon bilgilerini yazarız.
vim ifcfg-bond0
DEVICE=bond0
BOOTPROTO=none
ONBOOT=yes
NETWORK=192.168.1.0
NETMASK=255.255.255.0
IPADDR=192.168.1.171
GATEYAW=192.168.1.1
USERCTL=no
BONDING_OPTS="mode=1 miimon=100"
vim ifcfg-bond1
DEVICE=bond1
BOOTPROTO=none
ONBOOT=yes
NETWORK=172.24.1.0
NETMASK=255.255.255.0
IPADDR=172.24.1.171
#GATEYAW=172.24.1.1 #bond0 üzerinde GW tanımlaması yaptığımız için gerek yoktur.
USERCTL=no
BONDING_OPTS="mode=1 miimon=100"
Benzer şekilde bond1 ve bond2 ye ihityaç duyuyorsanız onlar için ge aynı tanımlamaları yapmanız gerekmektedir.
Şimdi tanımlamış olduğumuz bond0 a dahil olacak ethernet kartlarındaki konfigürasyonu yapmaya.
Ben bond0 için eth0 ve eth1 portlarını kullandım.
#eth0
DEVICE=eth0
MASTER=bond0
SLAVE=yes
USERCTL=no
BOOTPROTO=none
ONBOOT=yes
#eth1
DEVICE=eth1
MASTER=bond0
SLAVE=yes
USERCTL=no
BOOTPROTO=none
ONBOOT=yes
#eth2
DEVICE=eth2
MASTER=bond1
SLAVE=yes
USERCTL=no
BOOTPROTO=none
ONBOOT=yes
#eth3
DEVICE=eth3
MASTER=bond1
SLAVE=yes
USERCTL=no
BOOTPROTO=none
ONBOOT=yes
İlgili tanımlamaları yaptıktan sonra devreye girebilmesi için network servisini yada sunucuyu resetlememiz gerekmektedir.
service network restart #komutu ile servisimizi resetleyebiliriz.
Diğer Bonding mode'ları;
mode=1 (active-backup) – This mode provides fault tolerance.
mode=2 (balance-xor) – This mode provides load balancing and fault tolerance.
mode=3 (broadcast) – This mode provides fault tolerance.
mode=4 (802.3ad) – This mode provides load balancing and fault tolerance.
mode=5 (balance-tlb) – Prerequisite: Ethtool support in the base drivers for retrieving the speed of each slave.
mode=6 (balance-alb) – Prerequisite: Ethtool support in the base drivers for retrieving the speed of each slave.
------------------------------------------------------
Solaris için;
Solaris tarafında işlemler biraz daha farklı. İlk olarak sunucumuza ve vereceğimiz bond iplerini ve hostname bilgilerini /etc/hosts dosyarına eklememiz gerekiyor.
vi /etc/hosts # hosts dosyasını açarız.
hostname1 172.20.19.12 #bond0 için
hostname1-1 192.168.1.12 #bond1 için
ilgili tanımlamaları yaparak kaydederiz.
Bond yapılacak interfaceleri hazırlıyoruz.
/etc/hostname.eth0 #Bond0 için aşağıdaki parametreler ilgili eth dosyasına yazılır.
group bond0 up
hostname1
/etc/hostname.eth1 #Bond0 için aşağıdaki parametreler ilgili eth dosyasına yazılır.
group bond0 up
Diğer Ip için 2 bond ayarını yapalım.
/etc/hostname.eth2 #Bond1 için aşağıdaki parametreler ilgili eth dosyasına yazılır.
group bond1 up
hostname1-1
/etc/hostname.eth3 #Bond1 için aşağıdaki parametreler ilgili eth dosyasına yazılır.
group bond1 up
Bond0 için eth0 ve eth1 portları, Bond1 içinde eth2 ve eth3 portlarını ayarladık. kullanılan sunucunun donanımına göre ethernet isimleri değişiklik gösterebilir. (bnx0-1-2-3, e100g0-1-2-3 gibi)
Eğer sunucuya ssh la bağlıysanız aşağıdaki komutu çalıştırdığınızda bağlantınız kopacaktır.
Bu nedenle aşağıdaki komut için sunucuya console dan bağlanmanız daha iyi olacaktır.
svcadm disable network
svcadm enable network
Eğer sunucuya console dan bağlanma şansınız yoksa aşağıdaki komutla network'ünüzü restart edebilirsiniz. Anlık olarak bağlantınız gidip gelecektir.
svcadm restart network/physical
Solaris tarafında yapılan bond işleminde hostname bilgisini hanbi ethernet altına girdiyseniz o primary olarak kullanılacaktır. (bizim yapmış olduğumuz konfigürasyonda eth0 ve eth2 primary olarak çalışacaktır.)
Hiç yorum yok:
Yorum Gönder