Cisco VFrame Third Party インテグレーション ガイド Release 3.1.1
Linux 版 PowerPath のマルチパス機能 の設定
Linux 版 PowerPath のマルチパス機能の設定
発行日;2012/01/07 | ドキュメントご利用ガイド | ダウンロード ; この章pdf , ドキュメント全体pdf (PDF - 3MB) | フィードバック

目次

Linux 版 PowerPath のマルチパス機能の設定

マルチパスを介した起動の設定

システムの準備と PowerPath のインストレーション

ファイルとディレクトリの設定

必要なオブジェクトとコンフィギュレーション ファイルのコピー

ファイルの修正

bootdisk ディレクトリのアーカイブ

PowerPath 設定の完了

マルチパスを介した起動の設定

PowerPath を使用する IB を介した起動の設定手順を次に示します。例として X86_64(AMD)上で Linux RHEL3 Update7 を使用します。

システムの準備と PowerPath のインストレーション

システムの準備および PowerPath のインストレーション手順は、次のとおりです。


ステップ 1 システムを、SRP を介して起動するように設定します。システムが SRP を介して起動できる場合、次の手順に進んで PowerPath を介して起動できるよう設定します。

ステップ 2 システムに PowerPath をインストールします。通常の EMC PowerPath インストレーション手順に従い、PowerPath をインストールします。手順については、PowrPath インストレーション マニュアルを参照してください。

pm -ivh EMCpower.LINUX-4.5.1-022.rhel.x86_64.rpm
/etc/init.d/PowerPath start
emcpreg -install (register powerpath)
 

ステップ 3 PowerPath が正しくインストールされ、起動したら、 fdisk -1 コマンドを実行します。次の例に示すような出力が表示されます。この例では、ホストには LUN が 1 つだけ割り当てられ、それに応じたパーティションが作成されています。

[root@sw-n4300-1 ~]# fdisk -l
Disk /dev/sda: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 38 305203+ 83 Linux
/dev/sda2 39 293 2048287+ 82 Linux swap
/dev/sda3 294 2610 18611302+ 83 Linux
Disk /dev/emcpowera: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/emcpowera1 * 1 38 305203+ 83 Linux
/dev/emcpowera2 39 293 2048287+ 82 Linux swap
/dev/emcpowera3 294 2610 18611302+ 83 Linux
 

PowerPath が起動し実行しています。emcpowera* は PowerPath の擬似デバイスです。


 

ファイルとディレクトリの設定

ファイルとディレクトリを設定する手順は、次のとおりです。


ステップ 1 bootdisk という新しいディレクトリを作成します。

ステップ 2 initrd ファイルを /boot から新しい bootdisk ディレクトリにコピーします。

-cp -p /boot/initrd-2.6.9-34.ELsmp.img bootdisk/
 

ステップ 3 initrd-2.6.9-34.ELsmp.img ファイルを同じ bootdisk ディレクトリ内に解凍します。

zcat initrd-2.6.9-34.ELsmp.img > initrd-2.6.9-34.ELsmp
 

ステップ 4 initrd ディレクトリ構造およびすべての関連ファイルを、次のように同じ bootdisk ディレクトリにコピーします。

-cpio -i -I initrd-2.6.9-34.ELsmp
 

ステップ 5 この段階で bootdisk ディレクトリに次のファイルとディレクトリ、および initrd-2.6.9-34.ELsmp.img と initrd-2.6.9-34.ELsmp ファイルがあることを確認します。

bin dev etc init lib loopfs proc sbin sys sysroot
 

ステップ 6 initrd-2.6.9-34.ELsmp.img および initrd-2.6.9-34.ELsmp ファイルを bootdisk ディレクトリから削除します。

ステップ 7 bootdisk ディレクトリに、さらに 2 つのディレクトリを lib64 と usr の名前で作成します。

ステップ 8 bookdisk ディレクトリに次のファイルとディレクトリがあることを確認します。

bin dev etc init lib lib64 loopfs proc sbin sys sysroot usr
 


 

必要なオブジェクトとコンフィギュレーション ファイルのコピー

必要な PowerPath オブジェクトとコンフィギュレーション ファイルをコピーする手順は、次のとおりです。


ステップ 1 PowerPath オブジェクトとコンフィギュレーション ファイルを新しい bootdisk ディレクトリにコピーします。コピーする必要のある Linux オブジェクトもいくつかあります。

次の表に項目全体の一覧を示します。

IB モジュールについては、すでに /lib ディレクトリ内のオリジナルの initrd ファイルに含まれているのでコピーする必要はありません。

この例は x86_64 システムなので、/lib64 ディレクトリが必要です。すべての必要なライブラリ ファイルを /lib または /lib64 ディレクトリにコピーします。

次の例に示すように、ldd コマンドを使用して、必要なライブラリを取得します。

[root@host-1 bin]# ldd /bin/mkdir
libselinux.so.1 => /lib64/libselinux.so.1 (0x0000003977b00000)
libc.so.6 => /lib64/tls/libc.so.6 (0x0000003976800000)
/lib64/ld-linux-x86-64.so.2 (0x0000003976600000)
[root@host-1 bin]# ldd /sbin/powermt
linux-gate.so.1 => (0xffffe000)
libc.so.6 => /lib/tls/libc.so.6 (0x00adf000)
/lib/ld-linux.so.2 (0x00ac6000)
 

 

表11-1 PowerPath オブジェクトとコンフィギュレーション ファイルのディレクトリへのコピー

注記
コピー元
bootdisk ディレクトリ

 

/bin/ash

---->

/sbin/ash

 

/bin/gawk

---->

/sbin/gawk

 

/bin/mkdir

---->

/sbin/mkdir

 

/sbin/powermt

---->

/sbin/powermt

 

/sbin/rmmod

---->

/sbin/rmmod

 

/bin/mount

---->

/sbin/mount

 

/bin/umount

---->

/sbin/umount

 

/bin/cat

---->

/sbin/cat

 

/bin/mknod

---->

/sbin/mknod

 

/sbin/pivot_root

---->

/sbin/pivot_root

 

/bin/sleep

---->

/sbin/sleep

ディレクトリ全体をコピー

/etc/emc

---->

/etc/emc

 

/etc/emcp_devicesDB.dat

---->

/etc/emcp_devicesDB.dat

 

/etc/emcp_devicesDB.idx

---->

/etc/emcp_devicesDB.idx

 

/etc/emcp_registration

---->

/etc/emcp_registration

このディレクトリには /etc/opt/emcpower/powercf および /etc/opt/emcpower/emcpmgr オブジェクトが含まれています。これらのオブジェクトは init ファイルで使用されます。

/etc/opt/emcpower

---->

/etc/opt/emcpower

 

/etc/fstab

---->

/etc/fstab

PowerPath モジュール全体をコピー

/lib/modules/2.6.9-34.ELsmp/extra/emc*.ko

---->

/etc/lib

 

/usr/lib/libemcp_core.so

---->

/lib/libemcp_core.so

 

/usr/lib/libemcp_lam.so

---->

/lib/libemcp_lam.so

 

/usr/lib/libemcp_lic_rtl.so

---->

/lib/libemcp_lic_rtl.so

 

/usr/lib/libemcp_mp_rtl.so

---->

/lib/libemcp_mp_rtl.so

 

/usr/lib/libemcpmp.so

---->

/lib/libemcpmp.so

 

/usr/lib/libemcp.so

---->

/lib/libemcp.so

 

/lib/ld-linux.so.2

---->

/lib/ld-linux.so.2

 

/lib/tls/libm.so.6

---->

/lib/libm.so.6

 

/lib/tls/libc.so.6

---->

/lib/libc.so.6

 

/lib64/libdl.so.2

---->

/lib64/libdl.so.2

 

/lib64/tls/libm.so.6

---->

/lib64/tls/libm.so.6

 

/lib64/tls/libc.so.6

---->

/lib64/tls/libc.so.6

 

/lib64/ld-linux-x86-64.so.2

---->

/lib64/ld-linux-x86-64.so.2

 

/lib64/libselinux.so.1

---->

/lib64/libselinux.so.1

 

/lib64/tls/librt.so.1

---->

/lib64/tls/librt.so.1

 

/lib64/tls/libpthread.so.0

---->

/lib64/tls/libpthread.so.0

 

/lib/libpn.so

---->

/lib/libpn.so

 

/usr/sbin/chroot

---->

/usr/sbin/chroot


 

ファイルの修正

前回コピーした /etc/fstab ファイルを修正する手順は、次のとおりです。


ステップ 1 PowerPath デバイスを反映して /etc/fstab ファイルを修正します。

この例では、 /dev/emcpowera3 がルート パーティションで、 /dev/emcpowera1 がブート パーティションです。

# This file is edited by fstab-sync - see ‘man fstab-sync’ for details
/dev/emcpowera3 / ext3 defaults 1 1
/dev/emcpowera1 /boot ext3 defaults 1 2
none /dev/pts devpts gid=5,mode=620 0 0
none /dev/shm tmpfs defaults 0 0
none /proc proc defaults 0 0
none /sys sysfs defaults 0 0
/dev/emcpowera2 swap swap defaults 0 0
/dev/hdc /media/cdrom auto
pamconsole,exec,noauto,managed 0 0
/dev/fd0 /media/floppy auto
pamconsole,exec,noauto,managed 0 0
 

ステップ 2 デフォルトの init ファイルを次のファイルに修正します。

#!/bin/ash
 
mount -t proc /proc /proc
 
echo Mounted /proc filesystem
echo Mounting sysfs
mount -t sysfs none /sys
echo Creating /dev
mount -o mode=0755 -t tmpfs none /dev
mknod /dev/console c 5 1
mknod /dev/null c 1 3
mknod /dev/zero c 1 5
mkdir /dev/pts
mkdir /dev/shm
echo Starting udev
udevstart
echo -n “/sbin/hotplug” > /proc/sys/kernel/hotplug
echo “Loading mlxsys.ko module”
insmod /lib/mlxsys.ko
echo “Loading mod_vip.ko module”
insmod /lib/mod_vip.ko
echo “Loading mod_thh.ko module”
insmod /lib/mod_thh.ko
echo “Loading mod_rhh.ko module”
insmod /lib/mod_rhh.ko
echo “Loading ts_kernel_services.ko module”
insmod /lib/ts_kernel_services.ko
echo “Loading ts_ib_packet_lib.ko module”
insmod /lib/ts_ib_packet_lib.ko
echo “Loading ts_ib_core.ko module”
insmod /lib/ts_ib_core.ko
echo “Loading ts_ib_mad.ko module”
insmod /lib/ts_ib_mad.ko
echo “Loading ts_ib_tavor.ko module”
insmod /lib/ts_ib_tavor.ko
echo “Loading scsi_mod.ko module”
insmod /lib/scsi_mod.ko
echo “Loading sd_mod.ko module”
insmod /lib/sd_mod.ko
echo “Loading ts_kernel_poll.ko module”
insmod /lib/ts_kernel_poll.ko
echo “Loading ts_ib_client_query.ko module”
insmod /lib/ts_ib_client_query.ko
echo “Loading ts_ib_sa_client.ko module”
insmod /lib/ts_ib_sa_client.ko
echo “Loading ts_ib_dm_client.ko module”
insmod /lib/ts_ib_dm_client.ko
echo “Loading ts_ib_cm.ko module”
insmod /lib/ts_ib_cm.ko
echo “Loading ts_srp_host.ko module”
insmod /lib/ts_srp_host.ko
echo “Loading emcplib.ko module”
insmod /lib/emcplib.ko
echo “Loading emcp.ko module”
insmod /lib/emcp.ko
echo “Loading emcpmp.ko module”
insmod /lib/emcpmp.ko
echo “Loading emcpmpc.ko module”
insmod /lib/emcpmpc.ko
echo “Loading emcpmpaa.ko module”
insmod /lib/emcpmpaa.ko
echo “Loading emcpmpap.ko module”
insmod /lib/emcpmpap.ko
echo “Loading emcphr.ko module”
insmod /lib/emcphr.ko
echo “Loading emcpioc.ko module”
insmod /lib/emcpioc.ko
echo “Removing module emcpioc.ko”
rmmod emcpioc
echo “Loading mptbase.ko module”
insmod /lib/mptbase.ko
echo “Loading mptscsih.ko module”
insmod /lib/mptscsih.ko
echo “Loading jbd.ko module”
insmod /lib/jbd.ko
echo “Loading ext3.ko module”
insmod /lib/ext3.ko
udevstart
 
rm -f /dev/emcpower
mmaj=`cat /sys/class/misc/emcpower/dev | gawk -F : '{print $1}'`
mmin=`cat /sys/class/misc/emcpower/dev | gawk -F : '{print $2}'`
mknod /dev/emcpower c $mmaj $mmin
 
sleep 2
 
echo “Start the configuration of powerpath”
powermt config
powermt load
/etc/opt/emcpower/emcpmgr map
 
sleep 7
 
/etc/opt/emcpower/powercf -C powermt save
powermt register
 
sleep 2
 
echo “Creating root device”
echo “mkrootdev /dev/root” | /sbin/nash
 
umount /sys
echo “Mounting root filesystem”
mount -o defaults --ro -t ext3 /dev/root /sysroot
mount -t tmpfs --bind /dev /sysroot/dev
 
umount /proc
cd /sysroot
echo “Switching to the new root”
pivot_root . initrd
exec chroot . /sbin/init <dev/console >dev/console 2>&1
 
echo “Unmount the old dev now”
umount /initrd/dev
 


 

bootdisk ディレクトリのアーカイブ

bootdisk ディレクトリをアーカイブする手順は、次のとおりです。


ステップ 1 必要なすべてのファイルが bootdisk ディレクトリにコピーされているので、bootdisk ディレクトリをアーカイブします。

この例では、アーカイブ ファイル を /root/ に置きます。

a. bootdisk ディレクトリに cd します。

b. ファイルを検索してコピーします。

find . | cpio -v -c -o > /root/initrd-2.6.9-34.ELsmp
 

c. ファイルを圧縮します。

gzip -9 initrd-2.6.9-34.ELsmp
 

d. ディレクトリを移動します。

mv initrd-2.6.9-34.ELsmp.gz initrd-2.6.9-34.ELsmp.img
 


 

PowerPath 設定の完了

PowerPath 設定を完了する手順は、次のとおりです。


ステップ 1 initrd-2.6.9-34.ELsmp.img ファイルを /boot ディレクトリに移動します。

ステップ 2 カーネルのルート パラメータに関するブートローダのアペンドを適切な PowerPath 擬似デバイスに変更します。

この例では、PowerPath 擬似デバイスは root=/dev/emcpowera3 でした。

ステップ 3 サーバを再起動します。サーバは sd デバイスではなく PowerPath デバイスのルート ファイルシステムから起動します。