Linux Multipath

Kurumsal seviyede çalışan sunucu sistemleri için çalışır olmak çok önemlidir. Bu yüzden pek çok teknloji geliştirilmiştir.
  • RAID : Disklerden biri çökse bile servis aksaması ve (daha önemlisi) veri kaybı olmasın
  • Cluster: sunuculardan biri çökse bile servis aksaması olmasın
  • Network Teaming, bonding: Bilgisayar Ağ kartlarından biri gitse bile iletişim aksamasın (Ayrıca yük dengeleme ile ağ kapasitesi daha etkin kullanılsın)
  • Stackable Network switch: Network switch'lerinden biri arızalansa bile iletişim aksamasın
işte bunlardan biri de SAN (Storage Area Network) ortamlarında bilgisayar HBA kartı, SAN switch, Storage controller gibi bileşenlerden biri arızalansa bile SAN disklere erişimin devam etmesini sağlayan multipath teknolojisidir.



Windows, Unix ve linux ortamları için değişik ürünler olmasına rağmen biz -başlığımız gereği- linux ortamlarında işletim sistemiyle birlikte gelen device mapper multipath çözümünü inceleyeceğiz. Bu teknoloji cidden kafamı karıştırdığı için daha iyi öğrenmek adına bunları yazma ihityacı hissettim.

multipath'in ne işe yaradığını öğrendikten sonra artık faydalı teknolojiyi nasıl kullanabilirze gelelim... Elbette önce Sunucu (HBA) - SAN switch - SAN Storage şeklinde bir yapınızın ve bu yapı içerisinde çoklu yolların olması gerekir. Bununla kastettiğim şey birden çok HBA, SAN swicth ve SAN storage controller ünitelerinin olması. En az biri için bu olmalı. Depolama yöneticisi arkadaş size istediğiniz diski SAN storage üzerinden tahsis eder. Artık sizin multipath'i konfigüre etmenizin vakit gelmiştir.

Kurulum için
  1. device-mapper-multipath paketi kurulmalıdır. (rpm veya daha iyisi yum ile)
  2. /etc/multipath.conf dosyası düzenlenmelidir
  3. multipathd servisi çalıştırılmaldır. (Ayrıca chkconfig multipathd on ile açılış sonrası otomatik çalışma sağlanmalıdır)
2. adımda şunları yapmalıyız: (SAN üzerinden verilen diskler için linux boot sonrası otomatik olarak cihaz dosyalarını oluşturur. Örneğimizde /dev/sdb ve /dev/sdc oluşturulmuş görünüyor)
fdisk -l ile SAN diskleri gör. multipath kurulmadığı için 2 farklı disk gibi algılanacaktır. Burada fdisk kommutunun bazı hatalar vermesi normal.

/etc/multipath.conf içerisinde
devnode_blacklist { devnode "*" } 

kısmını comment haline getirelim. Yani satır başlarına #işaretini koyalım. Bu kısım tüm cihazları multipath dışı kılar. Bu yuzden youm haline getirdik.
Disk ünitesine ait wwid  değerini bul. Bu değer diskin eşsiz adresidir. multipath yazılımı bu değerin göründüğü tüm yolları tek cihaza düşürecektir.


[root@server ~]# scsi_id -g -s /block/sdb  (veya sdc aynı WWID yi gosteriyor.)
3600a0b800047652c000024f34b72591b

/etc/multipath.conf içerisinde şu bilgiyi gir:

multipath {
                wwid                    3600a0b800047652c000024f34b72591b
                alias                   oradata
}

service multipathd restart ile değişikliklerin etkin olmasını sağlıyoruz.

Artık multipath -ll komutuyla SAN disk ünitesini ve path'lerin durumlarını görüntüleyebiliriz.

1. [root@server ~]# multipath -ll
2. oradata (3600a0b800047683200001c3f4bfcc7f6) dm-2 IBM,1815      FAStT
3. [size=50G][features=1 queue_if_no_path][hwhandler=1 rdac][rw]
4. \_ round-robin 0 [prio=100][active]
5. \_ 1:0:0:0 sdb 8:16  [active][ready]
6. \_ round-robin 0 [prio=0][enabled]
7.  \_ 2:0:0:0 sdc 8:32  [active][ghost]


Yukarıdaki çıktıyı biraz inceleyelim ve anlayalım.. (satır numaralarını ben girdim..)

2. oradata kısa ismiyle 3600a0b800047683200001c3f4bfcc7f6 WWID li disk. dm-2 (device mapper -2) mantıksal ismi ve multipath tarafından kullanılıyor, bizimle pek işi yok. IBM 1815 FastT ise depolama ünitesinin ismi. Buna ait cihaz dosyası dev/mapper/oradata. Burayı fdisk komutuyla  kullanarak bölüm oluşturabilir ve dosyas sistemi atabilirsiniz.

3. size ile SAN diskin boyutunu görüyoruz. hwhandler path'leri denetleyip gerekirse diğer path'e geçen metodun adı. Burada rdac kullanılmış. Bu bilgi eğer SAN storage biliniyor ise multiapth tarafından otomatik olararak belirleniyor. rw ise read/write modunda çalıştığını gösteriyor.

4. ilk path group. round robin'e göre çalışıyor. Priority 100 bu yüzden tercih edilen path group. active olması ise şu an kullanımda olduğunu gösteriyor. enabled olması ise path group'un pasif olup arıza durumunda devreye alınacağını söylüyor.

5. path group içerisindeki ilk pathe ait bilgiler. cihaz dosyası sdb. active ready kullanımda olan path

6. pasif bekleyen path group . enabled ile belirleniyor. priority değeri 0 yani diğerine göre düşük olduğuna dikkat edin.

7. ghost ile belirtilen (pasif anlamında) inaktif yol. sorun olunca devreye alınacak


Sorun giderme:

multipath, pek çok depolama ünitesine ait konfigürasyon ile yüklü gelir. mutliopathd -k > show config ile tanımlı depolama ürünleri görülebilir. Aynı bilgi multipath.conf.defaults dosyasında da mevcuttur.  Eğer sizin donanımınıza ait konfigürasyon bilgisi mevcut değilse, bunu ait device bloğunu /etc/multipath.conf içerisinde tanımlamalısınız.
konfiurasuon dosyasında 4 bölüm mevcut:
  • devnode_blacklist: hangi cihazların multipath'e dahil edilmeyeceğini belirtir. Mesela locak diskler buraya yazılabilir. Varsayılan tüm cihazlardır. Bu yüzden Genellikle tamamen comment haline getirilir.
  • defaults: default ayarlar. Burada user_friendly_names kısmını yes yapmanız önerilir. Böylece multipaths kısmında friendly names (yani alias) kullanabiliriz.
  • multipaths: multipath cihazlara ait bilgi. mesela WWID ve alias değeri.
  • devices: storage unitelerine ait konfig bilgisi. eger multipath içinde öntanımlı gelmiyorsa sizin bunları burada yazmanız gerekiyor.

Yararlanılan kaynaklar:
sources.redhat.com/lvm2/wiki/MultipathUsageGuide
www.redhat.com/docs/manuals/csgfs/browse/4.6/DM_Multipath/index.html

Yorumlar

Bu blogdaki popüler yayınlar

create Virtual Machines in VMware with ansible

Yüksek Hizmet Sürekliliği (High Availability)