Oracle Rac On Amazon EC2 その2 ISCSI編

OpenVPN用サーバ上にISCSIターゲットを構築します。

iSCSI用のボリュームとして、以下のボリュームを作成しOpenvpnサーバに割り当てる

1G #dummy →/dev/sdf
1G #OCR and Voting Disk →/dev/sdg
5G #Oracle Fast Recovery Area →/dev/sdh
10G #Oracle Database Files →/dev/sdi


openvpnサーバと同じzoneに作成しないとattachできない

iSCSI Target側(OpenVPNがインストールされているサーバ)
yum -y install scsi-target-utils

#vi /etc/targets.conf


# List of files to export as LUNs
backing-store /dev/sdf

# Authentication :
# if no "incominguser" is specified, it is not used
incominguser user password



# List of files to export as LUNs
backing-store /dev/sdg

# Authentication :
# if no "incominguser" is specified, it is not used
incominguser user password



# List of files to export as LUNs
backing-store /dev/sdh
# Authentication :
# if no "incominguser" is specified, it is not used
incominguser user password



# List of files to export as LUNs
backing-store /dev/sdi

# Authentication :
# if no "incominguser" is specified, it is not used
incominguser user password


※user とpasswordはイニシエータ側でも使う

iscsi target 自動起動
# chkconfig tgtd on


iscsi target
# /etc/init.d/tgtd start



ISCSI イニシエータ側(RACノード側)
#vi /etc/iscsi/iscsid.conf

node.session.auth.username = user
node.session.auth.password = password
discovery.sendtargets.auth.username = user
discovery.sendtargets.auth.password = password

※userとpasswordはtarget側で設定したもの


通常、iscsiでマウントしたLUは/dev/sdX のどこになるのか不特定なので、/dev/iscsi/crs/part1 の様に固定で割当ができるようにする。@discus-hamburgさんのHPとOTNを参考に

http://discus-hamburg.cocolog-nifty.com/mac_de_oracle/2010/12/virtualbox-de-5.html
http://www.oracle.com/technetwork/articles/hunter-rac11gr2-iscsi-088677.html#13

#rm -rf /etc/udev/rules.d/80-oracle.rules
#vi /etc/udev/rules.d/55-openiscsi.rules

KERNEL=="sd*", BUS=="scsi", PROGRAM="/etc/udev/scripts/iscsidev.sh %b",SYMLINK+="iscsi/%c/part%n"

vi /etc/udev/scripts/iscsidev.sh

#!/bin/sh
BUS=${1}
HOST=${BUS%%:*}

[ -e /sys/class/iscsi_host ] || exit 1

file="/sys/class/iscsi_host/host${HOST}/device/session*/iscsi_session*/targetname"

target_name=$(cat ${file})

# This is not an open-scsi drive
if [ -z "${target_name}" ]; then
exit 1
fi

# Check if QNAP drive
check_qnap_target_name=${target_name%%:*}
if [ $check_qnap_target_name = "iqn.2004-04.com.qnap" ]; then
target_name=`echo "${target_name%.*}"`
fi

echo "${target_name##*.}"

#chmod 755 /etc/udev/scripts/iscsidev.sh

#chkconfig iscsid on
#/etc/init.d/iscsid start


#vi /root/iscsi.sh

#!/bin/sh
iscsiadm --mode discovery --type sendtargets -p mydomain.dyndns.info
iscsiadm --mode node --targetname iqn.2011-04.info.dyndns.mydomain:server.aaa --login
iscsiadm --mode node --targetname iqn.2011-04.info.dyndns.mydomain:server.crs --login
iscsiadm --mode node --targetname iqn.2011-04.info.dyndns.mydomain:server.fra --login
iscsiadm --mode node --targetname iqn.2011-04.info.dyndns.mydomain:server.data --login

#chmod 755 /root/iscsi.sh


# vi iscsi_end.sh

#!/bin/sh
iscsiadm --mode node --targetname iqn.2011-04.info.dyndns.mydomain:server.aaa --logout
iscsiadm --mode node --targetname iqn.2011-04.info.dyndns.mydomain:server.crs --logout
iscsiadm --mode node --targetname iqn.2011-04.info.dyndns.mydomain:server.fra --logout
iscsiadm --mode node --targetname iqn.2011-04.info.dyndns.mydomain:server.data --logout
iscsiadm --mode discovery --op delete --portal mydomain.dyndns.info

#chmod 755 /root/iscsi_end.sh


iscsiターゲットのマウント
./iscsi.sh

どこにマッピングされているか確認する。
ls -al /dev/iscsi/*/*

iscsi.shにて手動でマッピングしているため、毎回こうなるはず

[root@ip-10-150-179-105 ~]# ls -al /dev/iscsi/*/*
lrwxrwxrwx 1 root root 9 May 16 12:23 /dev/iscsi/aaa/part -> ../../sda
lrwxrwxrwx 1 root root 9 May 16 12:23 /dev/iscsi/crs/part -> ../../sdb
lrwxrwxrwx 1 root root 9 May 16 12:23 /dev/iscsi/data/part -> ../../sdd
lrwxrwxrwx 1 root root 9 May 16 12:23 /dev/iscsi/fra/part -> ../../sdc

# /dev/sda以外を使う。(/dev/sdaはルートデバイスと被ってしまっているので触らない)

#fdisk /dev/sdb
#fdisk /dev/sdc
#fdisk /dev/sdd

[root@ip-10-150-179-105 ~]# ls -al /dev/iscsi/*/*
lrwxrwxrwx 1 root root 9 May 16 12:34 /dev/iscsi/aaa/part -> ../../sda
lrwxrwxrwx 1 root root 9 May 16 12:34 /dev/iscsi/crs/part -> ../../sdb
lrwxrwxrwx 1 root root 10 May 16 12:35 /dev/iscsi/crs/part1 -> ../../sdb1
lrwxrwxrwx 1 root root 9 May 16 12:34 /dev/iscsi/data/part -> ../../sdd
lrwxrwxrwx 1 root root 10 May 16 12:36 /dev/iscsi/data/part1 -> ../../sdd1
lrwxrwxrwx 1 root root 9 May 16 12:34 /dev/iscsi/fra/part -> ../../sdc
lrwxrwxrwx 1 root root 10 May 16 12:35 /dev/iscsi/fra/part1 -> ../../sdc1