ºìÁªLinuxÃÅ»§
Linux°ïÖú

Linux¶à·¾¶µÄʹÓü°½éÉÜ

·¢²¼Ê±¼ä:2008-09-02 16:21:27À´Ô´:ºìÁª×÷Õß:Lisboa
×÷Õߣºkent¡¡³ö×Ô£ºhttp://kentfang.blog.sohu.com/

¶à·¾¶£¨multi-path£©Èí¼þµÄ½éÉÜ
ÆÕͨµÄµçÄÔÖ÷»ú¶¼ÊÇÒ»¸öÓ²Å̹ҽӵ½Ò»¸ö×ÜÏßÉÏ£¬ÕâÀïÊÇÒ»¶ÔÒ»µÄ¹ØÏµ¡£¶øµ½ÁËÓйâÏË×é³ÉµÄSAN»·¾³£¬ÓÉÓÚÖ÷»úºÍ´æ´¢Í¨¹ýÁ˹âÏ˽»»»»úÁ¬½Ó£¬ÕâÑùµÄ»°£¬¾Í¹¹³ÉÁ˶à¶Ô¶àµÄ¹ØÏµ¡£Ò²¾ÍÊÇ˵£¬Ö÷»úµ½´æ´¢¿ÉÒÔÓжàÌõ·¾¶¿ÉÒÔÑ¡Ôñ¡£Ö÷»úµ½´æ´¢Ö®¼äµÄIOÓɶàÌõ·¾¶¿ÉÒÔÑ¡Ôñ£¬ÈçÏÂͼ£º

¸ù¾ÝÉÏͼËùʾ£¬Ã¿¸öÖ÷»úµ½Ëù¶ÔÓ¦µÄ´æ´¢¿ÉÒÔ¾­¹ý¼¸Ìõ²»Í¬µÄ·¾¶£¬Èç¹ûÊÇͬʱʹÓõϰ£¬I/OÁ÷Á¿ÈçºÎ·ÖÅ䣿ÆäÖÐÒ»Ìõ·¾¶»µµôÁË£¬ÈçºÎ´¦Àí£¿»¹ÓÐÔÚ²Ù×÷ϵͳµÄ½Ç¶ÈÀ´¿´£¬Ã¿Ìõ·¾¶£¬²Ù×÷ϵͳ»áÈÏΪÊÇÒ»¸öʵ¼Ê´æÔÚµÄÎïÀíÅÌ£¬µ«Êµ¼ÊÉÏÖ»ÊÇͨÏòͬһ¸öÎïÀíÅ̵IJ»Í¬Â·¾¶¶øÒÑ£¬ÕâÑùÊÇÔÚʹÓõÄʱºò£¬¾Í¸øÓû§´øÀ´ÁËÀ§»ó¡£¶à·¾¶Èí¼þ¾ÍÊÇΪÁ˽â¾öÉÏÃæµÄÎÊÌâÓ¦Ô˶øÉúµÄ¡£¶à·¾¶µÄÖ÷Òª¹¦ÄܾÍÊǺʹ洢É豸һÆðÅäºÏʵÏÖÈçϹ¦ÄÜ£º

1.¹ÊÕϵÄÇл»ºÍ»Ö¸´

2.IOÁ÷Á¿µÄ¸ºÔؾùºâ

3.´ÅÅ̵ÄÐéÄ⻯

ÓÉÓÚ¶à·¾¶Èí¼þÊÇÐèÒªºÍ´æ´¢ÔÚÒ»ÆðÅäºÏʹÓõ쬲»Í¬µÄ³§ÉÌ»ùÓÚ²»Í¬µÄ²Ù×÷ϵͳ£¬¶¼ÌṩÁ˲»Í¬µÄ°æ±¾¡£²¢ÇÒÓеij§ÉÌ£¬Èí¼þºÍÓ²¼þÒ²²»ÊÇÒ»ÆðÂôµÄ£¬Èç¹ûҪʹÓöà·¾¶Èí¼þµÄ»°£¬¿ÉÄÜ»¹ÐèÒªÏò³§É̹ºÂòlicense²ÅÐС£±ÈÈçEMC¹«Ë¾»ùÓÚlinuxϵĶà·¾¶Èí¼þ£¬¾ÍÐèÒªµ¥¶ÀµÄ¹ºÂòlicense¡£ºÃÔÚ£¬ RedHatºÍSuseµÄ2.6µÄÄÚºËÖж¼×Ô´øÁËÃâ·ÑµÄ¶à·¾¶Èí¼þ°ü£¬²¢ÇÒ¿ÉÒÔÃâ·ÑʹÓã¬Í¬Ê±Ò²ÊÇÒ»¸ö±È½ÏͨÓõİü£¬¿ÉÒÔÖ§³Ö´ó¶àÊý´æ´¢³§É̵ÄÉ豸£¬¼´Ê¹ÊÇһЩ²»ÊdzöÃûµÄ³§ÉÌ£¬Í¨¹ý¶ÔÅäÖÃÎļþ½øÐÐÉÔ×÷Ð޸ģ¬Ò²ÊÇ¿ÉÒÔÖ§³Ö²¢ÔËÐеĺܺõġ£

±¾ÎÄһϵIJ¿·Ö½«×¨ÃÅÕë¶ÔLinux϶෾¶Èí¼þµÄÅäÖð²×°£¬ÒÔ¼°Ò»Ð©½áºÏʵ¼ÊµÄ²Ù×÷½øÐÐÏêϸµÄ½éÉÜ£¨ÒÔϲÙ×÷¾ùÔÚSuse10 SP1ϽøÐУ©

Linux¶à·¾¶µÄʹÓÃ

¶à·¾¶Èí¼þ°üµÄ¹¹³É
device-mapper-1.02.13-6.9.i586.rpm

¸ÃÈí¼þÔËÐÐÔڵײ㣬Ö÷Òª½øÐÐÉ豸ÐéÄ⻯ºÍÓ³Éä¡£

multipath-tools-0.4.7-34.18.i586.rpm£¬Õâ¸öÈí¼þ°ü¿ÉÒÔÔÚ

¶à·¾¶µÄ¹ÜÀíºÍ¼à¿Ø¹¤¾ß£¬Ö÷Òª½øÐз¾¶×´Ì¬µÄ¼ì²â£¬¹ÜÀí¹¤×÷

¶à·¾¶Èí¼þ°üµÄ°²×°
Rpm -ivh device-mapper-1.02.13-6.9.i586.rpm
Rpm -ivh multipath-tools-0.4.7-34.18.i586.rpm

°²×°Íê³Éºó£¬Ê¹ÓÃÃüÁîmodprobe dm_multipathÀ´¼ÓÔØÏàÓ¦µÄÄ£¿é£¬¿ÉÒÔʹÓÃlsmod |grep dm_multipathÀ´¼ì²é°²×°ÊÇ·ñÕý³£¡£

ÅäÖÃÎļþµÄÐ޸ļ°´´½¨
½ÓÏÂÀ´µÄ¹¤×÷¾ÍÊÇÒª´´½¨Ò»¸ömultipath.confµÄÅäÖÃÎļþ£¬¸ÃÎļþÔÚ°²×°ºó²»»á×Ô¶¯´´½¨¡£²»¹ýÓÐÒ»¸öÄ£°å¿ÉÒÔʹÓã¬Ê¹ÓÃÈçÏÂÃüÁî¿ÉÒÔ´´½¨Ò»¸ömultipath.confµÄÎļþÁË

cp /usr/share/doc/packages/multipath-tools/multipath.conf.synthetic /etc/multipath.conf

È»ºóÔÙ¸ÃÎļþµÄ×îºóÒ»¶Î¼ÓÉÏÈçÏÂÅäÖãº

ÒýÓÃ:
devices {

device {

vendor "EMC" //³§ÉÌÃû³Æ

product "CaXXXXX" //²úÆ·ÐͺÅ

path_grouping_policy group_by_prio //ĬÈϵÄ·¾¶×é²ßÂÔ

getuid_callout "/sbin/scsi_id -p 0x80 -g -u -s /block/%n" //»ñµÃΨһÉ豸ºÅʹÓõÄĬÈϳÌÐò

prio_callout "/sbin/acs_prio_alua %d" //»ñÈ¡ÓÐÏÞ¼¶ÊýֵʹÓõÄĬÈϳÌÐò

hardware_handler "1 acs" //È·ÈÏÓÃÀ´ÔÚ·¾¶Çл»ºÍIO´íÎóʱ£¬Ö´ÐÐÌØ¶¨µÄ²Ù×÷µÄÄ£¿é¡£

path_checker hp_sw //¾ö¶¨Â·¾¶×´Ì¬µÄ·½·¨

path_selector "round-robin 0" //Ñ¡ÔñÄÇÌõ·¾¶½øÐÐÏÂÒ»¸öIO²Ù×÷µÄ·½·¨

failback immediate //¹ÊÕϻָ´µÄģʽ

no_path_retry queue //ÔÚdisable queue֮ǰϵͳ³¢ÊÔʹÓÃʧЧ·¾¶µÄ´ÎÊýµÄÊýÖµ

rr_min_io 100 //ÔÚµ±Ç°µÄÓû§×éÖУ¬ÔÚÇл»µ½ÁíÍâÒ»Ìõ·¾¶Ö®Ç°µÄIOÇëÇóµÄÊýÄ¿

}

}


±à¼­modprobe.confÎļþ£¬ÓÃÀ´ÉèÖÃÇý¶¯³ÌÐòµÄ²ÎÊý¡£

/etc/modprobe.conf.local

Ôö¼ÓÒ»ÐÐ "options scsi_mod dev_flags=Accusys:ACS92102:0x1000"

ÖØÐ±àÒëÒýµ¼Îļþ

"cp -f /boot/initrd-2.6.[kernel_version].img ./initrd-2.6.[k_v].img.bak"
"mkinitrd"

×öÍêÉÏÊö²Ù×÷ºó£¬×¢ÒâÒª½«²Ù×÷ÏµÍ³ÖØÐÂÆô¶¯

´ÅÅ̵ķÖÇø¼°Ê¹ÓÃ
´´½¨¶à·¾¶É豸µÄ·ÖÇø£¬ÕâÀïÖ÷Ҫһϣ¬¶à·¾¶µÄ·ÖÇøÖ»ÊʺÏʹÓÃkpartx¹¤¾ß£¬²»ÒªÊ¹ÓÃfdisk½øÐзÖÇø¡£

Step2, kpartx -l /dev/dm-0 //lists all partitions on this device

Step3, kpartx -a /dev/dm-0 //create all device node on this device

kpartx -a /dev/mapper/ //¶à·¾¶µÄÉ豸²»¿ÉÒÔʹÓÃfdisk½øÐзÖÇø£¬±ØÐëʹÓÃkpartx -a½øÐзÖÇøºó£¬ÔÙ½øÐиñʽ»¯¡£

²é¿´Ó³Éä¹ØÏµ

Suse3:/sbin # ls -la /dev/disk/by-name/

total 0

drwxr-xr-x 2 root root 200 Aug 1 09:01 .

drwxr-xr-x 7 root root 140 Jul 31 18:05 ..

lrwxrwxrwx 1 root root 10 Aug 1 09:01 SAccusys_ACS92102_010c3b973ffbc469ce11eb4d2db9d677 -> ../../dm-5

lrwxrwxrwx 1 root root 10 Aug 1 09:01 SAccusys_ACS92102_010c3b973ffbc469ce11eb4d2db9d677-part1 -> ../../dm-7

lrwxrwxrwx 1 root root 10 Aug 1 09:01 SAccusys_ACS92102_1fbdf62d63e62b625aaea9eb8c7e45cf -> ../../dm-4

lrwxrwxrwx 1 root root 10 Aug 1 09:01 SAccusys_ACS92102_1fbdf62d63e62b625aaea9eb8c7e45cf-part1 -> ../../dm-6

lrwxrwxrwx 1 root root 10 Aug 1 08:46 SAccusys_ACS92102_6d71358b45505925b5bd17ff49d554f3 -> ../../dm-0

lrwxrwxrwx 1 root root 10 Aug 1 08:46 SAccusys_ACS92102_6d71358b45505925b5bd17ff49d554f3-part1 -> ../../dm-1

lrwxrwxrwx 1 root root 10 Jul 31 18:08 SAccusys_ACS92102_f0ade6db4a8d13de2c30fd5efae7b91c -> ../../dm-2

lrwxrwxrwx 1 root root 10 Jul 31 18:10 SAccusys_ACS92102_f0ade6db4a8d13de2c30fd5efae7b91c-part1 -> ../../dm-3

¼¸¸ö±È½ÏÓÐÓõÄÃüÁî
1.start/stop multipathd process "service multipathd start/stop"

2.display the multipath topology "multipath -ll" //·Ç³£ÓÐÓõÄÃüÁî¡£

3.display the multipath debug info "multipath -v3"

4.Scan the HD "fdisk -l"

5.view the FC wwn " cat /sys/class/fc_host/host1/node_name "

ÏÂÃæÊǾÙÀý£º

ÒýÓÃ:
multipath -ll
Successful info:
SAccusys_ACS92102_3a095edea90dc919f0da043d118fd8c5dm-0 Accusys,ACS92102

[size=20G][features=1 queue_if_no_path][hwhandler=1 acs]

\_ round-robin 0 [prio=400][active]----//±íʾµ±Ç°µÄÕýÔÚʹÓÿØÖÆÆ÷

\_ 1:0:1:0 sdc 8:32 [active][ready]

\_ 1:0:2:0 sdd 8:48 [active][ready]

\_ 2:0:1:0 sdg 8:96 [active][ready]

\_ 2:0:2:0 sdh 8:112 [active][ready] ----//c,d,g,h¿ÉÒÔÀí½âΪ·¾¶

\_ round-robin 0 [prio=0][enabled]-----//±¸·Ý¿ØÖÆÆ÷

\_ 1:0:0:0 sdb 8:16 [active][ghost]

\_ 1:0:3:0 sde 8:64 [active][ghost]

\_ 2:0:0:0 sdf 8:80 [active][ghost]

\_ 2:0:3:0 sdi 8:128 [active][ghost] //

faulty info£º

sdc: checker msg is "hp_sw checker reports path is down" //·¾¶³öÏÖ¹ÊÕÏ

sdd: checker msg is "hp_sw checker reports path is down" //·¾¶³öÏÖ¹ÊÕÏ

sdh: checker msg is "hp_sw checker reports path is down" //·¾¶³öÏÖ¹ÊÕÏ

SAccusys_ACS92102_3a095edea90dc919f0da043d118fd8c5dm-0 Accusys,ACS92102

[size=20G][features=1 queue_if_no_path][hwhandler=1 acs]

\_ round-robin 0 [prio=0][enabled] ---- //Á½¸ö¶¼ÊÇenabled״̬£¬Ò»¿ØÖÆÆ÷¹ÊÕÏ£¬ÁíÍâÒ»¸ö¿ØÖÆÆ÷ûÓÐfailover¡£

\_ 1:0:1:0 sdc 8:32 [failed][faulty]

\_ 1:0:2:0 sdd 8:48 [failed][faulty]

\_ 2:0:1:0 sdg 8:96 [failed][faulty]

\_ 2:0:2:0 sdh 8:112 [failed][faulty]

\_ round-robin 0 [prio=0][enabled] ----

\_ 1:0:0:0 sdb 8:16 [active][ghost]

\_ 1:0:3:0 sde 8:64 [active][ghost]

\_ 2:0:0:0 sdf 8:80 [active][ghost]

\_ 2:0:3:0 sdi 8:128 [active][ghost]


¿ØÖÆÆ÷ÖØÐÂÆô¶¯ºó£¬SuseÓÐʱºòÐèÒªÖØÐÂÆô¶¯²Å¿ÉÒÔʹÓá£

ÒýÓÃ:
multipath -ll

SAccusys_ACS92102_3a095edea90dc919f0da043d118fd8c5dm-0 Accusys,ACS92102

[size=20G][features=1 queue_if_no_path][hwhandler=1 acs]

\_ round-robin 0 [prio=200][active]

\_ 1:0:0:0 sdb 8:16 [active][ready]

\_ 1:0:1:0 sdc 8:32 [active][ready]

\_ 2:0:0:0 sdd 8:48 [active][ready]

\_ 2:0:1:0 sde 8:64 [active][ready]


multipathµÄËùÓеÄÏà¹ØµÄÎļþ

ÒýÓÃ:
-rwxr--r-- 1 root root 2554 Jun 30 16:26 /etc/init.d/boot.multipath

-rwxr--r-- 1 root root 3700 Jun 30 16:26 /etc/init.d/multipathd

drwxr-xr-x 2 root root 0 Jun 30 16:26 /etc/udev

drwxr-xr-x 2 root root 0 Jun 30 16:26 /etc/udev/rules.d

-rw-r--r-- 1 root root 1185 Jun 30 16:26 /etc/udev/rules.d/71-multipath.rules

-rw-r--r-- 1 root root 262 Jun 30 16:26 /etc/udev/rules.d/72-multipath-compat.rules

-rwxr-xr-x 1 root root 4872 Jun 30 16:26 /sbin/devmap_name

-rwxr-xr-x 1 root root 22824 Jun 30 16:26 /sbin/kpartx

-rwxr-xr-x 1 root root 1114 Jun 30 16:26 /sbin/kpartx_id

-rwxr-xr-x 1 root root 296 Jun 30 16:26 /sbin/mpath_id

-rwxr-xr-x 1 root root 8404 Jun 30 16:26 /sbin/mpath_prio_alua

-rwxr-xr-x 1 root root 7852 Jun 30 16:26 /sbin/mpath_prio_balance_units

-rwxr-xr-x 1 root root 4208 Jun 30 16:26 /sbin/mpath_prio_emc

-rwxr-xr-x 1 root root 5492 Jun 30 16:26 /sbin/mpath_prio_hds_modular

-rwxr-xr-x 1 root root 5984 Jun 30 16:26 /sbin/mpath_prio_netapp

-rwxr-xr-x 1 root root 3284 Jun 30 16:26 /sbin/mpath_prio_random

-rwxr-xr-x 1 root root 4184 Jun 30 16:26 /sbin/mpath_prio_tpc

-rwxr-xr-x 1 root root 121888 Jun 30 16:26 /sbin/multipath

-rwxr-xr-x 1 root root 146996 Jun 30 16:26 /sbin/multipathd

drwxr-xr-x 2 root root 0 Jun 30 16:26 /usr/share/doc/packages/multipath-tools

-rw-r--r-- 1 root root 49 Nov 11 2005 /usr/share/doc/packages/multipath-tools/AUTHOR

-rw-r--r-- 1 root root 25284 Nov 11 2005 /usr/share/doc/packages/multipath-tools/COPYING

-rw-r--r-- 1 root root 195 Jun 30 16:25 /usr/share/doc/packages/multipath-tools/ChangeLog

-rw-r--r-- 1 root root 15 Jun 30 16:25 /usr/share/doc/packages/multipath-tools/README

-rw-r--r-- 1 root root 9238 Jun 30 16:25 /usr/share/doc/packages/multipath-tools/multipath.conf.annotated

-rw-r--r-- 1 root root 1499 Jun 30 16:25 /usr/share/doc/packages/multipath-tools/multipath.conf.synthetic

-rw-r--r-- 1 root root 424 Jun 30 16:26 /usr/share/man/man8/devmap_name.8.gz

-rw-r--r-- 1 root root 544 Jun 30 16:26 /usr/share/man/man8/kpartx.8.gz

-rw-r--r-- 1 root root 2048 Jun 30 16:26 /usr/share/man/man8/mpath_prio_alua.8.gz

-rw-r--r-- 1 root root 979 Jun 30 16:26 /usr/share/man/man8/multipath.8.gz

-rw-r--r-- 1 root root 489 Jun 30 16:26 /usr/share/man/man8/multipathd.8.gz

drwx------ 2 root root 0 Jun 30 16:26 /var/cache/multipath


С¼¼ÇÉ
´æ´¢Ìí¼ÓÓ³Éä»òÕß×öÁËÐ޸ģ¬Ö÷»ú²»ÓÃÖØÐÂÆô¶¯µÄ·½·¨

echo 1 > /sys/class/fc_host/host1/issue_lip

echo 1 > /sys/class/fc_host/host2/issue_lip

echo "- - -" > /sys/class/scsi_host/host1/scan

echo "- - -" > /sys/class/scsi_host/host2/scan

ÖØÆô·þÎñ£¬ÈÃÅäÖÃÎļþÉúЧµÄ·½·¨£º

1.Stop the multipathd service.

2.Clear old multipath bindings by entering

/sbin/multipath -F

3.Create new multipath bindings by entering

/sbin/multipath -v2 -l

Start the multipathd service. //¸ü¸ÄÅäÖÃÎļþºóÐèÒª×öÉÏÃæµÄ²Ù×÷²Å¿ÉÒÔÈÃÅäÖÃÎļþµÄ¸ü¸ÄÉúЧ¡£

Èç¹ûÁ¬½ÓÒ»Çж¼Õý³££¬µ«ÊÇsuseÔÚ²Ù×÷ϵͳÏ¿´²»µ½´ÅÅÌ¡£Õâʱ¿ÉÄÜÐèÒªÖØÐÂÆô¶¯´æ´¢ÏµÍ³¡£
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 0 ÌõÆÀÂÛ