Linux İşletim Sistemlerinde Multipath Yapılandırması

Multipath

Bu makalemizde Linux İşletim Sistemlerinde SAN ortamlarındaki depolama ünitelerinde bağlantı yöntemi olan “Multipath” yapılandırmasını inceleyeceğiz.

Multipath Nedir ?

Multipath SAN (Storage Area Network) ortamlarında sunucular HBA (Host Bus Adaptor) kartı, SAN switch, Storage controller gibi bileşenlerden biri arızalansa bile SAN disklere erişimin devam etmesini sağlayan teknolojidir. Windows, Unix ve Linux ortamları için değişik ürünler olmasına rağmen biz Linux ortamlarında işletim sistemiyle birlikte gelen “device mapper multipath” çözümünü inceleyeceğiz. Ö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 (Storage Admin) size istediğiniz diski SAN storage üzerinden tahsis ederler. Bu aşamadan sonra artık bizim multipath’i sunucumuzun işletim sisteminde yapılandırmamız gerekmektedir. Bu yapılandırmalar her depolama ünitesi için birbirine çok yakın yapılandırmalardır. Biz örnek olarak Linux işletim sistemine bağlı NetAPP depolama sunucusu üzerindeki yapılandırmamızı uygulayacağız.

1. Öncelikle sunucumuza gerekli olan multipath paketlerini kuracağız.

# yum install device-mapper
Loaded plugins: aliases, changelog, downloadonly, kabi, 
presto, refresh-packagekit, security, tmprepo, verify,
Loading support for kernel ABI
Setting up Install Process
Package device-mapper-1.02.77-9.el6.x86_64
already installed and latest version
Nothing to do

# yum install device-mapper-multipath
Loaded plugins: aliases, changelog, downloadonly, kabi, 
presto, refresh-packagekit, security, tmprepo, verify,
Loading support for kernel ABI
Setting up Install Process
Package device-mapper-multipath-0.4.9-64.0.1.el6.x86_64
already installed and latest version
Nothing to do

-- Benim sunucumda daha önce kurulu olduğu için bu uyarıları veriyor.

2. İhtiyacımız olabilir düşüncesiyle “DevMapper” haricinde depolama ünitesi üreticisi tarafından çıkarılmış olan “Host Utility” paketini kuruyoruz. Biz örnek kurulumuzu NetAPP depolama ünitesi üzerinde yaptığımız için işletim sistemimize uygun “Netapp Host Utility” paketini  “NetAPP Support” hesabımızla indirip kuruyoruz.

-- Paketimizi koyduğumuz dizine geçiyoruz.

# cd /u01/orainstall/netapp/
# ls
netapp_linux_host_utilities-6-1.x86_64.rpm

-- Paketin kurulumunu yapıyoruz.

# rpm -i netapp_linux_host_utilities-6-1.x86_64.rpm

-- Herhangi bir bağımlılık ihtiyacı veya sorun yoksa paketimiz kuruluyor.

3. Sunucumuz LUN bağlantılarını görüyormu kontrol ediyoruz.

# sanlun lun show

controller:	lun-pathname          		device filename  adapter  protocol     lun size            lun state
netapp1:	/vol/ASLDWH01/dwh_DWH01_lun0  	/dev/sde         host3    FCP          2t (2040130437120)  GOOD    

4. Sunucumuzun LUN bağlantılarının anlık durumunu listeleyelim.

# sanlun lun show -p
netapp1	:	/vol/servervol/serverlun (LUN 0) Lun state: GOOD
Lun Size:	100g (107374182400) Controller_CF_State: Cluster Enabled

Protocol: FCP Controller Partner: netapp2
Multipath-provider: NONE

5. Multipath servisimizi başlatalım ve sunucumuz yeniden başladığında otomatik açılması için gerekli ayarları yapalım.

# service multipathd start
Starting multipathd daemon: [  OK  ]

# chkconfig --add multipathd
# chkconfig multipathd on

6. Multipath yapılandırma dosyasına eklemek için disklerimizin “WWID” numaralarını bulmalıyız. Şuan sunucumuz kaç kanaldan diske gidiyorsa o kadar disk varmış gibi görüyor multipath yapılandırma ayarlarımızdan sonra bu diskleri tek diskmiş gibi göreceğiz.

-- Bunu anlamak için aşağıdaki komutu çalıştırdığımızda 
aynı disk ünitesinden atanmış olan disklerden birden
fazla varmış gibi göreceğiz.

# fdisk -l

-- Disklerimizin "WWID" numaralarını bulabilmek için

# multipath -v3

veya

# multipath -ll
disk1 (3600a0b800047683200001c3f4bfcc7f6)

veya

# cd /dev/disk/by-path
# ll
scsi-3600a0b800047683200001c3f4bfcc7f6 -> ../../sde

-- komutlarından istediğimizi çalıştırıyoruz.

7. Şimdi “/etc/multipath.conf” dosyamızı yapılandırabiliriz. Burada dikkat edeceğimiz “Blacklist” dediğimiz satırlara sistem disklerimizi yazıyoruz yani sunucumuzda bulunan bu SAN yapılandırması ile alakası olmayan diskler. Bunlar sda vb. gibi işletim sisteminin kullandığı diskler olabilir. Bunların hangileri olduğunu tespit edip “blacklist” olarak aşağıdaki örneğimizdeki gibi yazıyoruz.

-- Multipath yapılandırma dosyamızı açıyoruz.

#vim /etc/multipath.conf

-- Aşağıdaki satırları kendi sunucumuza göre yapılandırıp
dosyamıza yazıyoruz.

defaults
{
user_friendly_names yes
max_fds max
queue_without_daemon no
}
blacklist {
###devnode “*”
devnode “^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*”
devnode “^sda”
devnode “^hd[a-z]”
devnode “^cciss!c[0-9]d[0-9]*” # Note the cciss, usual in HP
}
multipaths {
multipath {
wwid  3600a0b800047683200001c3f4bfcc7f6  # önceden bulduğunuz WWID
alias asmdisk1 #  buradaki alias name size kalmış. 
# server LUN on NETAPPFILER
}
}
devices
{
device
{
vendor “NETAPP” #Storage üreticimiz
product “LUN”
getuid_callout “/sbin/scsi_id -g -u -s /block/%n”
prio_callout “/sbin/mpath_prio_ontap /dev/%n”
features “1 queue_if_no_path”
hardware_handler “0″
path_grouping_policy group_by_prio
failback immediate
rr_weight uniform
rr_min_io 128
path_checker directio
flush_on_last_del yes
}
}

8. Değişikliklerin uygulanabilmesi için “multipath” servisimizi yeniden başlatıyoruz.

# service multipathd restart
ok
Stopping multipathd daemon: [  OK  ]
Starting multipathd daemon: [  OK  ]

9. Disklerimizin multipath yapılandırmasını kontrol edelim.

# multipath -l 
netapp (3600a0b800047683200001c3f4bfcc7f6) dm-2 NETAPP,LUN
[size=100G][features=1 queue_if_no_path][hwhandler=0][rw]
\_ round-robin 0 [prio=0][active]
\_ 4:0:1:0 sdd 8:16 [active][undef]
\_ 5:0:1:0 sdd 8:48 [active][undef]
\_ 6:0:1:0 sdf 8:80 [active][undef]

-- Eğer bu komutun çıktısını göremiyorsanız şunu deneyebilirsiniz.

# vim /etc/lvm/lvm.conf

-- Dosyasına aşağıdaki satırları ekleyebilirsiniz.
Dosya biraz büyük olduğu için VI editörü komut
modundayken "shift+g" tuşlarına aynı anda basarak
sayfa sonuna gidebilirsiniz.

filter = [ "a/mapper/", "r/.*/" ]

types = [ "device-mapper", 1]

-- Bu işlemimiz sonrası değişikliklerin geçerli olabilmesi için
multipath servisimizi yeniden başlatıyoruz.

# service multipathd restart
ok
Stopping multipathd daemon: [  OK  ]
Starting multipathd daemon: [  OK  ]

11. İstersek “Netapp Hosts Utility” aracı ile multipath durumunu kontrol edebiliriz.

# sanlun lun show -p

NETAPPFILER:/vol/servervol/serverlun (LUN 0) Lun state: GOOD
Lun Size: 100g (107374182400) Controller_CF_State: Cluster Enabled
Protocol: FCP Controller Partner: NETAPPFILER2
DM-MP DevName: netapp (3600a0b800047683200001c3f4bfcc7f6) dm-2
Multipath-provider: NATIVE

12. Artık birden fazlaymış gibi gördüğümüz disklerimizin tek bir disk olarak göründüğünü sorgulayabiliriz.

# fdisk -l

Komutunu çalıştırdığımızda disklerimizin tek bir olarak listelendiğini
göreceğiz.

13. Oluşan Lun yapılandırmasına aşağıdaki dizini listeleyerek ulaşabiliriz.

# ls -l /dev/mapper
brw-rw—- 1 root disk 253,  Dec 21 10:54 netapp 

14. Disklerimizi istersek formatlayıp sonrada “/” dizini altına bağlayarak kullanmaya başlayabiliriz. Bununla ilgili yapılandırmayı daha önce yayınlanmış olan makalemizdeki 3, 4, 5, 6 ve 7. adımları uygulayarak yapabiliriz. Ancak disklerimizi “Oracle ASM” için kullanacaksak  “UDEV” veya “Oracle ASM Library” ile yapılandırmalıyız.

15. Yapılandırmayı ve disklerimizi silmek içinde aşağıdaki komutu kullanabiliriz.

# multipath -F

Linux İşletim Sistemlerinde “multipath” yapılandırmamızı tamamladık artık kullanabilir. Burada uygulanan adımlar Oracle Enterprise Linux 6.4 64 Bit üzerinde denenmiştir. Aynı zamanda diğer Linux sürümleriyle uyumludur.

Hp-Ux İşletim Sistemi kullananlar içinde ufak bir hatırlatma yapalım. Multipath yapılandırması  için “Hp-Ux 11.31” öncesi işletim sistemlerinde “Secure Path”  yazılımının kurulması gerekmektedir. Ancak Hp-Ux 11.31 işletim sisteminde bu paket entegre olarak geldi ve işletim sistemi kurulduğunda otomatik yüklenmiş oluyor bizim ayrıca bir yükleme yapmamıza gerek kalmıyor. Sadece kullanmış olduğumuz depolama ünitesine göre “host utility” gibi araçlar kurulabilir.

Başka bir makalede görüşmek üzere…

Bu yazı Unix / Linux kategorisine gönderilmiş ve , , , , , , , , , , , , ile etiketlenmiş. Kalıcı bağlantıyı yer imlerinize ekleyin.