RHEL/CentOS üzərindən multipathing – 1-ci hissə
Salamlar,
Bu günki məqaləmizdə, RHEL ailəsinə aid olan linux distributivlərində multipathing sazlamaları ilə tanış olacağıq. Məqaləni yazmadan öncə, adı çəkilən bəzi terminlər haqqında, wikipediadan məlumat əldə edə bilərsiniz :
HBA – http://goo.gl/WlD0lo
SAN-Switch (və ya Fibre Channel switch) – http://goo.gl/Qc1YZU
WWN ( və ya WWID, WWPN) – http://goo.gl/vL8SKX
Məqalə, ümumilikdə, aşağıdakı 2 hissədən ibarət olacaq:
- MPP/RDAC drayverləri vasitəsilə multipathing
- Native alətlər vasitəsilə multipathing
İlk öncə, multipathing barəsində – multipathing nədir? Multipathing – serverin, eyni yaddaş avadanlığını 1 neçə müxtəlif fiziki yolla görməsidir. Çox zaman, mərkəzləşdirilmiş yaddaş avadanlığında yerləşdirilmiş informasiya kifayət qədər kritik əhəmiyyətə malik olur ( məsələn, verilənlər bazasının faylları) və mövcud tək bağlantının hər hansı səbəbdən sıradan çıxması nəticəsində bazanın əlçatmaz olması qəbuledilməzdir. Belə hallardan qorunmaq üçün, ən yaxşı təcrübələrə uyğun olaraq, mərkəzi yaddaş qurğusuna gedən yolda istifadə olunan bütün fiziki avadanlıqların ( HBA, switch, controller və s) 2 nüsxədə istifadəsinə nail olmaq olar. Məsələn, aşağıdakı sxemə baxsaq, storage avadanlığında yerləşən yaddaş massivinə server tərəfdən 2 fiziki yol mövcuddur və bu yollardan hər hansı birində problem yaranarsa, trafik digər yola yönləndiriləcək :
HBA1 → Controller1
HBA2 → Controller2
Sxeme 1 SANswitch əlavə etsək, mövcud yolların sayı 4-ə çatır:
1.2 4 fiziki yollu sxem
HBA2 → Controller2
HBA2 → Controller1
HBA1 → Controller1
HBA1 → Controller2
Fiziki yolların artırılması bizə yüksək dayanıqlılıq imkanı versə də, ortaya bir məsələ çıxır – linux ƏS-lərində, ənənəvi olaraq, hər yaddaş avadanlığının təyin edilməsində fiziki yolun unikallığı rol oynadığına görə, hər fiziki yolla təqdim olunmuş yaddaş massivi fərqli avadanlıq kimi görünür. Məsələn, multipathing drayverləri olmadan, 1.2 şəklində göstərilən sxem formasında təqdim olunan vahid 160 GB-lıq yaddaş massivi sistem tərəfindən 4 fərqli avadanlıq kimi görünür:
[[email protected] ~]# lsscsi [0:2:0:0] disk IBM ServeRAID M5015 2.70 /dev/sda [1:0:0:240] disk IBM 1746 FAStT 1070 /dev/sdb [1:0:1:240] disk IBM 1746 FAStT 1070 /dev/sdc [2:0:0:240] disk IBM 1746 FAStT 1070 /dev/sdd [2:0:1:240] disk IBM 1746 FAStT 1070 /dev/sde [3:0:0:0] cd/dvd MATSHITA DVD-ROM UJ890 WAA3 /dev/sr0
Təqdim olunan yolların eyni LUN-a aid olduğunu həmin yolların WWID-lərinə baxmaqla demək olar:
[[email protected] ~]# scsi_id --device /dev/sdd --whitelisted page=0x83 360080e50002ec56600000931551e37d5 [[email protected] ~]# scsi_id --device /dev/sdb --whitelisted page=0x83 360080e50002ec56600000931551e37d5 [[email protected] ~]# scsi_id --device /dev/sdc --whitelisted page=0x83 360080e50002ec56600000931551e37d5 [[email protected] ~]# scsi_id --device /dev/sde --whitelisted page=0x83 360080e50002ec56600000931551e37d5
Multipathing bu problemin qarşısından, mövcud disk layerlərinə daha 1-ni – vahid virtual disk massivini yaratmaqla gəlir – yəni eyni WWID-ə məxsus olan 4 fiziki yol ƏS-nə vahid yaddaş massivi kimi təqdim olunur ki , bu barədə də aşağıda danışacağıq.
MPP/RDAC vasitəsil multipathing.
Ilk öncə , hazırda işləyəcəyimiz topologiyaya və istifadə olunan avadanlıqlara nəzər salaq:
ƏS : CentOS 6 x86_64, node1.technet.local;
SANSwitch : HP AM867B;
Storage : IBM DS3524, 2 controller, hər controllerde 2 port;
Drayver: MPP/RDAC 09.03;
LUN : 160 GB, N=240;
Qeyd: Məqalədə istifadə olunan topologiyada SAN zoning funksiyaları sazlanmamışdır.
1.3 Topologiya
1.3 şəklində göstərilən sxem,ən yaxşı təcrübələrə uyğun olaraq, təqdim olunan bütün elementlərin ( HBA, switch və kontrollerlərin) 2 nüsxədə istifadəsini özündə ehtiva edir.
Ilk öncə repozitoriylərdən tələb olunan paketləri yükləyirik:
[[email protected] ~]# yum install perl gcc kernel-headers -y
Ardınca, bizə uyğun MPP/RDAC drayverlərini aşağıda göstərilən saytdan yükləyirik – bizim misalımızda, CentOS 6.3, kernel 2.6.32-279:
[[email protected] ~]# uname -a Linux centos6.3 2.6.32-279.el6.x86_64 #1 SMP Fri Jun 22 12:19:21 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
http://mysupport.netapp.com/NOW/public/apbu/oemcp/
Drayverlərin mənbə kodunu arxivdən çıxarırıq və yüklənmə prosesini hazırlayırıq:
[[email protected] ~]# tar -xzvf rdac-LINUX-09.03.0C05.0652-source.tar.gz [[email protected] ~]# cd linuxrdac-09.03.0C05.0652 [[email protected] linuxrdac-09.03.0C05.0652]# make make[1]: Entering directory `/usr/src/kernels/2.6.32-279.el6.x86_64' CC [M] /root/linuxrdac-09.03.0C05.0652/MPP_hba.o CC [M] /root/linuxrdac-09.03.0C05.0652/mppLnx26p_upper.o CC [M] /root/linuxrdac-09.03.0C05.0652/mppLnx26p_sysdep.o CC [M] /root/linuxrdac-09.03.0C05.0652/mppCmn_s2tos3.o CC [M] /root/linuxrdac-09.03.0C05.0652/mppCmn_SysInterface.o CC [M] /root/linuxrdac-09.03.0C05.0652/mppLnx26p_vhbamisc.o CC [M] /root/linuxrdac-09.03.0C05.0652/mppLnx26p_vhbatask.o CC [M] /root/linuxrdac-09.03.0C05.0652/mppLnx26p_vhba.o ......................................................... ......................................................... gcc -I/root/linuxrdac-09.03.0C05.0652 -I/root/linuxrdac-09.03.0C05.0652/mpp_linux_headers/ -I/root/linuxrdac-09.03.0C05.0652/mpp_linux_sys_headers/ -c ./utility/mppUtil26p_sysdep.c -o mppUtilSysdep.o gcc mppUtil.o mppUtilSysdep.o -o mppUtil gcc -o genuniqueid genuniqueid.c
Yüklənmə əmrini buraxırıq:
[[email protected] linuxrdac-09.03.0C05.0652]# make install make[1]: Entering directory `/root/linuxrdac-09.03.0C05.0652' make[2]: Entering directory `/usr/src/kernels/2.6.32-279.el6.x86_64' Building modules, stage 2. MODPOST 2 modules make[2]: Leaving directory `/usr/src/kernels/2.6.32-279.el6.x86_64' make[2]: Entering directory `/usr/src/kernels/2.6.32-279.el6.x86_64' ..................................................................... ..................................................................... Please wait while we modify the system configuation files. MPP: Running dracut You must now edit your boot loader configuration file, /boot/grub/menu.lst, to add a new boot menu, which uses mpp-2.6.32-279.el6.x86_64.img as the initrd image. Now Reboot the system for MPP to take effect. The new boot menu entry should look something like this (note that it may vary with different system configuration): ... title Red Hat Linux (2.6.32-279.el6.x86_64) with MPP support root (hd0,5) kernel /vmlinuz-2.6.32-279.el6.x86_64 ro root=LABEL=RH9 initrd /mpp-2.6.32-279.el6.x86_64.img ... MPP driver package has been successfully installed on your system. make[1]: Leaving directory `/root/linuxrdac-09.03.0C05.0652'
Yüklənmə prosesinin nəticəsi olaraq, drayverlərin integrasiya olunduğu kernel versiyası generasiya olunur və /boot direktoriyasına atılır. Bundan sonra biz, /etc/grub.conf faylını redaktə edərək, yeni boot rekordu yaradırıq:
[[email protected] linuxrdac-09.03.0C05.0652]# nano /boot/grub/menu.lst # grub.conf generated by anaconda # # Note that you do not have to rerun grub after making changes to this file # NOTICE: You have a /boot partition. This means that # all kernel and initrd paths are relative to /boot/, eg. # root (hd0,0) # kernel /vmlinuz-version ro root=/dev/mapper/vg_centos6-vol_root # initrd /initrd-[generic-]version.img #boot=/dev/sda default=0 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title CentOS (2.6.32-279.el6.x86_64) root (hd0,0) kernel /vmlinuz-2.6.32-279.el6.x86_64 ro root=/dev/mapper/vg_centos6-vol_root rd_NO_LUKS LANG=en_US.UTF-8 rd_LVM_LV=vg_centos6/vol_swap rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=vg_centos6/vol_root KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet initrd /initramfs-2.6.32-279.el6.x86_64.img ### ASHAGIDA GOSTERILEN BOOT SECHENEYI MULTIPATH DRAYVERLERI INTEGRASIYA OLUNMUSH KERNELI BASHLADACAQ title CentOS (2.6.32-279.el6.x86_64) with MPP support root (hd0,0) kernel /vmlinuz-2.6.32-279.el6.x86_64 ro root=/dev/mapper/vg_centos6-vol_root initrd /mpp-2.6.32-279.el6.x86_64.img
ƏS-ni restart edirik və yüklənmə zamanı yeni yaratdığımız boot rekordu seçirik. Ardınca, MPP modullarının uğurla yükləndiyini yoxlamaq üçün aşağıdakı əmri veririk – əgər əmrin nəticələrində mppVhba və mppUpper modulları görünürsə, yüklənmənin uğurla bitdiyini demək olar:
[[email protected] ~]# lsmod | grep mpp mppVhba 141419 1 mppUpper 157575 1 mppVhba
Sistemə təqdim olunmuş yaddaş massivinin vahid disk qurğusu kimi identifikasiyasına əmin olaq :
[[email protected] ~]# fdisk -l Disk /dev/sda: 146.0 GB, 145999527936 bytes 255 heads, 63 sectors/track, 17750 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x000c94fa .................................................. .................................................. Disk /dev/sdb: 161.1 GB, 161061273600 bytes 255 heads, 63 sectors/track, 19581 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x439ec069 Device Boot Start End Blocks Id System /dev/sdb1 1 19581 157284351 83 Linux
Artıq, təqdim olunmuş LUN massiviyle ( /dev/sdb) adi disk massivi kimi işləyə bilərik – partitionlar yarada silə və s.
Həmçinin, hal-hazırda mövcud fiziki yollar və həmun yolların statusu barədə mppUtil əmri vasitəsilə məlumat ala bilərik:
[[email protected] ~]# mppUtil -S H7C0T0 Active Active Test_array H5C0T1L240 Up H5C0T0L240 Up H6C0T1L240 Up H6C0T0L240 Up
Bununla MPP/RDAC vasitəsilə multipathing sazlanmasını bitmiş hesab etmək olar.
Şərhlər ( 1 )
Təşəkkürlər əhəmiyyətli mövzudu
davamlı olsun….