Anasayfa » Linux Ağlarda Yedekli Çalışma

Makaleyi Paylaş

Linux Unix

Linux Ağlarda Yedekli Çalışma

 

Günümüz bilişim dünyasında önemli faktörlerden biride, hizmet verilen durumlarda erişilebilirliğin kesintisiz en yüksek seviyede olmasıdır. Bilişim konusundaki hizmetlerin aksaması konusunda ki kehanetlerimden biri internetin 1 saat durması örneğidir. Bu durumu düşünmek çok zor olacaktır diye düşünüyorum. Kehanetin bu kadar büyük çaplı olmasına gerek yok aslında, bugün ülkemizde bulunan büyük datacenter firmalarından birinde aynı problemin yaşandığını düşünecek olduğumuzda bile, gerçekten hizmet kalitesinin burada çok önemli olduğu göze çarpmıyor değil.

 

 

Bu makalede Linux işletim sistemi konusunda büyük ağ yapısına sahip kurum, kuruluş, firma vb. gibi hizmet veren yerlerin kullanabileceği (kullandığı) bonding modülü anlatılacaktır. Bonding modülü Ethernet kartlarının aktif / pasif veya beraber çalışmalarını sağlayan modüldür. Arayüzleri birleştirme işlemi sistemin ağ performansını arttırmak için yapılabileceği gibi yedeklilik, sürdürülebilirlik için de yapılabilir.  Windows sistemlerdeki ismi “teaming” olarak geçmektedir.

 

 

 

image001

 

 

 

Bonding modülü Linux işletim sistemi çekirdeği desteği ile gelir. Ethernet kartı standartı olarak IEEE 802 kullanılır. Bonding modülünün 6 farklı şekilde çalışma yapısı bulunur.

 

mode=0

Sponsor

Round-robin çalışır. Yani ağ trafiğini çalışan arayüzlere sırası ile göndermektedir. Yük paylaşımı ve hata toleransı sağlar.

mode=1

Aktif-yedek mantığı ile çalışır. Sadece bir arayüz aktiftir. Diğerleri sadece ve sadece asıl olan çalışmaz ise devreye girer. Hata toleransı sağlar.

mode=2

[(Kaynak MAC adresi XOR hedef MAC adresi) % arayüz sayısı] algoritmasına göre paketleri gönderir. Böylece her hedef için aynı arayüzü seçmiş olur. Yük paylaşımı ve hata toleransı sağlar.

mode=3

Broadcast çeşididir. Tüm paketleri tüm arayüzlerden gönderir. Hata toleransı sağlar.

mode=4

IEEE 802.3ad Dynamic link aggregation. Belirtilen standarda göre çalışır. Çalışması için sürücülerinin ethtool desteğinin olması gerekir. Ayrıca anahtarlama cihazı üzerinde de 802.3ad ayarlarının yapılması gerekir.

mode=5

Bu modda ise toplam yük her arayüzün kendi yüküne göre paylaşılır. Her arayüzün yükü hızına oranla ölçülür. Gelen trafik aktif ilk arayüz tarafından alınır. Eğer bu arayüz çalışmaz ise herhangi diğer bir arayüz aynı MAC adresi ile işlemi devralır. Çalışması için sürücülerinin ethtool desteğinin olması gerekir.

mode=6

Bu modda ise hem gidiş hemde geliş trafiği yük paylaşımı yapılır ve özel bir anahtarlama cihazı desteği gerektirmez. IPv4 üzerinden bu işlemi gerçekleştirir.

 

Bonding modülünün kullanılması için aşağıdaki adımlar uygulanmalıdır.

 

Öncelikle “bond0” ağ arayüzü dosyası oluşturulur.

 

 

 

# vi /etc/sysconfig/network-scripts/ifcfg-bond0

 

 

 

Açılan dosya aşağıdaki gibi düzenlenir.

 

 

 

DEVICE=bond0                                  [bond0 ağ arayüzünün belirtilmesi]
IPADDR=192.168.2.10                     [ip adresi]
NETWORK=192.168.2.0                  [network adresi]
NETMASK=255.255.255.0                              [ağ maskesi]
USERCTL=no                                                     
BOOTPROTO=none                                         [yerine göre dhcp,static olabilir]
ONBOOT=yes                                                    [başlangıçta aktif olması]

 

 

 

Gerekli değişiklik ve ip adresi ayarlamaları yapıldıktan sonra oluşturulan “/etc/sysconfig/network-scripts/ifcfg-bond0” dosyası kayıt edilerek çıkılır.

 

 

 

“bond0” ağ arayüzü oluşturulduktan sonra bonding yapılacak ağ arayüzü dosyalarınında içeriğinin değiştirilmesi gerekmektedir. Bu işlem için aşağıdaki adımlar uygulanır.

 

 

 

# vi /etc/sysconfig/network-scripts/ifcfg-eth0

 

 

 

Açılan dosya aşağıdaki gibi düzenlenir.

 

 

 

DEVICE=eth0
USERCTL=no
ONBOOT=yes
MASTER=bond0
SLAVE=yes
BOOTPROTO=none

 

 

 

Gerekli değişiklikler yapıldıktan sonra dosya kayıt edilerek çıkılır.

 

 

 

“eth0” ağ arayüzü oluşturulduktan sonra bonding yapılacak diğer ağ arayüzü dosyasının içeriğinin değiştirilmesi gerekmektedir. Bu işlem için aşağıdaki adımlar uygulanır.

 

 

 

# vi /etc/sysconfig/network-scripts/ifcfg-eth1

 

 

 

Açılan dosya aşağıdaki gibi düzenlenir.

 

 

 

DEVICE=eth1
USERCTL=no
ONBOOT=yes
MASTER=bond0
SLAVE=yes
BOOTPROTO=none

 

 

 

Gerekli değişiklikler yapıldıktan sonra dosya kayıt edilerek çıkılır.

 

 

 

Bonding modülünün Linux işletim sisteminde aktif hale getirilmesi için aşağıdaki adımlar uygulanır.

 

 

 

# vi /etc/modprobe.conf

 

 

 

Açılan dosya aşağıdaki gibi düzenlenir.

 

 

 

alias bond0 bonding
options bond0 mode=1 miimon=100

 

 

 

Gerekli değişiklikler yapıldıktan sonra dosya kayıt edilerek çıkılır.

 

 

 

Bonding modülü aktif hale getirildi. Bu işlemin test edilmesi işlemi için aşağıdaki adımlar uygulanır.

 

 

 

 

# modprobe bonding

 

 

 

 

# service network restart

 

 

 

“/proc/net/bonding/bond0” dosyasının çıktısı (bonding durumunu) aaşğıdaki komut ile öğrenilebilir.

 

 

 

# less /proc/net/bonding/bond0

 

Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 0
Up Delay (ms): 0
Down Delay (ms): 0
 
Slave Interface: eth0
MII Status: up
Link Failure Count: 0
Permanent HW addr: xx:yy:zz:aa:bb:cc
 
Slave Interface: eth1
MII Status: up
Link Failure Count: 0
Permanent HW addr: xx:yy:zz:aa:bb:cc

 

 

 

Ethernet kartlarının durumlarını görebilmek için aşağıdaki komut uygulanır.

 

 

 

# ifconfig

 

bond0     Link encap:Ethernet  HWaddr xx:yy:zz:aa:bb:cc
 inet addr:192.168.2.10  Bcast:192.168.2.255  Mask:255.255.255.0
 inet6 addr: fe80::200:ff:fe00:0/64 Scope:Link
 UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
 RX packets:2804 errors:0 dropped:0 overruns:0 frame:0
 TX packets:1879 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:0
 RX bytes:250825 (244.9 KiB)  TX bytes:244683 (238.9 KiB)
 
eth0      Link encap:Ethernet  HWaddr xx:yy:zz:aa:bb:cc
 inet addr:192.168.2.10  Bcast:192.168.2.255  Mask:255.255.255.0
 inet6 addr: fe80::20c:29ff:fec6:be59/64 Scope:Link
 UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
 RX packets:4819 errors:0 dropped:0 overruns:0 frame:0
 TX packets:1390 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:1000
 RX bytes:351261 (145.2 KiB)  TX bytes:180289 (176.0 KiB)
 Interrupt:11 Base address:0x1400
 
eth1      Link encap:Ethernet  HWaddr xx:yy:zz:aa:bb:cc
 inet addr:192.168.2.10  Bcast:192.168.2.255  Mask:255.255.255.0
 inet6 addr: fe80::20c:29ff:fec6:be59/64 Scope:Link
 UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
 RX packets:4 errors:0 dropped:0 overruns:0 frame:0
 TX packets:502 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:1000
 RX bytes:258 (258.0 b)  TX bytes:66516 (64.9 KiB)
 Interrupt:10 Base address:0x1480

 

 

 

 

Bonding durumunu anlık görüntülemek için aşağıdaki komut uygulanır.

 

 

 

#watch  cat /proc/net/bonding/bond0

 

Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 0
Up Delay (ms): 0
Down Delay (ms): 0
 
Slave Interface: eth0
MII Status: up
Link Failure Count: 0
Permanent HW addr: xx:yy:zz:aa:bb:cc
 
Slave Interface: eth1
MII Status: up
Link Failure Count: 0
Permanent HW addr: xx:yy:zz:aa:bb:cc

 

 

 

Örnek Uygulama:

 

 

“eth0” ağ arayüzüne takılı ağ kablosunu çıkarılır. Anlık görüntülemek için aşağıdaki komut çalıştırıldığında, komutun çıktısı aşağıdaki gibi olacaktır.

 

 

 

#watch  cat /proc/net/bonding/bond0

 

Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 0
Up Delay (ms): 0
Down Delay (ms): 0
 
Slave Interface: eth0
MII Status: down
Link Failure Count: 0
Permanent HW addr: xx:yy:zz:aa:bb:cc
 
Slave Interface: eth1
MII Status: up
Link Failure Count: 0
Permanent HW addr: xx:yy:zz:aa:bb:cc

Kaynaklar

[1] http://blog.csirt.ulakbim.gov.tr/

[2] http://www.cyberciti.biz/

[3] http://www.debianadmin.com/linux-ethernet-bonding-configuration.html

[4] http://www.howtoforge.com/network_card_bonding_centos

[5] http://www.linuxquestions.org/

[6] http://www.kernel.org/pub/linux/kernel/people/marcelo/linux-2.4/Documentation/networking/bonding.txt

 

 

Makaleyi Paylaş

Cevap bırakın