« え、古いOSを下取り・・むむむ。 | トップページ | Mac de Oracle - 10万円未満 de RAC (11g編)#6 »

2008年10月11日 (土) / Author : Hiroshi Sekiguchi.

Mac de Oracle - 10万円未満 de RAC (11g編)#5

つづきです。今回はOracle RACノード側でiSCSIボリュームの構成を行う。
  1. ハードウェア構成と価格(Mac De Oracle - 10万円 de RAC #1とMac De Oracle - 10万円 de RAC #5参照のこと)
  2. Linux (CentOS 5.2)のインストール
  3. Openfiler2.3のインストール
  4. Openfiler2.3によるiSCSIボリュームの構成
  5. Oracle RACノードでのiSCSIボリュームの構成 その1
  6. Oracle所有者と関連ディレクトリの作成及び環境変数の設定
  7. Oracle向けLinuxサーバーの構成(カーネルパラメータの設定)
  8. hangcheck-timerカーネル・モジュールの構成
  9. Oracle RACノード間リモートアクセスの構成
  10. Oracle RACノード構成ファイルの確認
  11. Oracle Cluster File System (OCFS2)のインストール及び構成
  12. Oracle Automatic Storage Management(ASMLib 2.0)のインストール及び構成
  13. Oracle11g R1 インストール事前作業
  14. Oracle11g R1 Clusterwareのインストール
  15. Oracle11g R1 Database softwareのインストール
  16. Oracle11g R1 examplesのインストール
  17. TNS Listenerの構成
  18. Oracle Cluster databaseの作成
  19. Oracle Net Serviceの確認
  20. Oralce RAC ClusterとDatabase構成の確認
  21. Clusterの開始と停止の確認
  22. Oracle Clusterwareプロセス・モニター・デーモンの構成
  23. 簡単なTransparent Application Failover (TAF)の確認
  24. MacOSXからの接続確認(Mac De Oracleではお約束!なので)

5.Oracle RACノードでのiSCSIボリュームの構成 尚、iscsi-targetがOpenfiler2.3でもiscsi-initiator側の設定手順には違いはないのでUS OTNのBuild Your Own Oracle RAC Clusters on Oracle Enterprise Linux and iSCSI - 11.COnfigure iSCSI Volumes on Oracle Rac Nodesも参照のこと。 注)iscsi-initiatorの構成はOracle RACの全ノードで行うがパーティションの作成は1ノードだけで行う。 ・iscsi-initiator-utilsのインストール
rpmでやるのもいいが今回はyumを使ってiscsi-initiator-utilsパッケージをインストールする。Oracle RACの全ノードのrootユーザで実行する。(以下のdiscus1で実施したログ。)


(20101013訂正というか追記)
以下の例ではiscsidを自動起動にしていますが、CentOS5.5ではiscsiを自動起動にすればiscsi起動・停止時にiscsidの起動・停止も行っているのでCentOS5.5ではiscsidの自動起動は不要。CentOS5.4以前はどうか未確認なので、/etc/rc.d/init.d/iscsiを確認するか、service iscsi start/stopでiSCSI deamonが起動・停止されるか確認するよいかと。
[root@discus1 ˜]# yum list iscsi-initiator-utils
Available Packages
iscsi-initiator-utils.i386               6.2.0.868-0.7.el5      base            
[root@discus1 ˜]# yum -y install iscsi-initiator-utils
Setting up Install Process
Parsing package install arguments
Resolving Dependencies
--> Running transaction check
---> Package iscsi-initiator-utils.i386 0:6.2.0.868-0.7.el5 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================
Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
iscsi-initiator-utils   i386       6.2.0.868-0.7.el5  base              550 k

Transaction Summary
=============================================================================
Install      1 Package(s)         
Update       0 Package(s)         
Remove       0 Package(s)         

Total download size: 550 k
Downloading Packages:
(1/1): iscsi-initiator-ut 100% |=========================| 550 kB    00:00    
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing: iscsi-initiator-utils        ######################### [1/1]

Installed: iscsi-initiator-utils.i386 0:6.2.0.868-0.7.el5
Complete!
[root@discus1 ˜]# service iscsid start
Turning off network shutdown. Starting iSCSI daemon: [  OK  ]
                                                     [  OK  ]

[root@discus1 ˜]# chkconfig iscsid on
[root@discus1 ˜]# chkconfig iscsi on
 
/etc/iscsi/initiatorname.iscsiの設定。
分かり易いIQNにしておいたほうがいいですよ。RACを構成する全ノードで実施
[root@discus1 ˜]# cat /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.1994-05.jp.macdeoracle:discus1
[root@discus1 ˜]#

[root@discus2 ˜]# cat /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.1994-05.jp.macdeoracle:discus2
[root@discus2 ˜]#
・iscsi-targetの検出
以下のコマンドでiscsi-targetの検出しそのIQNのリストしてくれる。-p にはiscsi-targetのip addressを指定する。以下の例はdiscus1からarowana-privに存在するiscsi-targetを検出した例。尚、この操作はRACの全ノードのrootユーザで実施する。
[root@discus1 ˜]# iscsiadm -m discovery -t sendtargets -p 192.168.2.5
192.168.2.5:3260,1 iqn.2006-01.com.openfiler:tsn.asm1
192.168.2.5:3260,1 iqn.2006-01.com.openfiler:tsn.asm2
192.168.2.5:3260,1 iqn.2006-01.com.openfiler:tsn.asm3
192.168.2.5:3260,1 iqn.2006-01.com.openfiler:tsn.asm4
192.168.2.5:3260,1 iqn.2006-01.com.openfiler:tsn.crs
・iscsi-targetへの手動接続
iscsi-target側では認証設定はしていないので以下のコマンドで手動ログインする。
-Tで接続するiscsi-targetのIQNを指定する。-pはiscsi-targetが起動しているホストのhostname又はip addressを指定する。詳細はこの操作はRACの全ノードのrootユーザで実施する。
[root@discus1 ˜]# iscsiadm -m node -T iqn.2006-01.com.openfiler:tsn.asm1 -p 192.168.2.5 -l
Logging in to [iface: default, target: iqn.2006-01.com.openfiler:tsn.asm1, portal: 192.168.2.5,3260]
Login to [iface: default, target: iqn.2006-01.com.openfiler:tsn.asm1, portal: 192.168.2.5,3260]: successful
[root@discus1 ˜]# iscsiadm -m node -T iqn.2006-01.com.openfiler:tsn.asm2 -p 192.168.2.5 -l
Logging in to [iface: default, target: iqn.2006-01.com.openfiler:tsn.asm2, portal: 192.168.2.5,3260]
Login to [iface: default, target: iqn.2006-01.com.openfiler:tsn.asm2, portal: 192.168.2.5,3260]: successful
[root@discus1 ˜]# iscsiadm -m node -T iqn.2006-01.com.openfiler:tsn.asm3 -p 192.168.2.5 -l
Logging in to [iface: default, target: iqn.2006-01.com.openfiler:tsn.asm3, portal: 192.168.2.5,3260]
Login to [iface: default, target: iqn.2006-01.com.openfiler:tsn.asm3, portal: 192.168.2.5,3260]: successful
[root@discus1 ˜]# iscsiadm -m node -T iqn.2006-01.com.openfiler:tsn.asm4 -p 192.168.2.5 -l
Logging in to [iface: default, target: iqn.2006-01.com.openfiler:tsn.asm4, portal: 192.168.2.5,3260]
Login to [iface: default, target: iqn.2006-01.com.openfiler:tsn.asm4, portal: 192.168.2.5,3260]: successful
[root@discus1 ˜]# iscsiadm -m node -T iqn.2006-01.com.openfiler:tsn.crs -p 192.168.2.5 -l
Logging in to [iface: default, target: iqn.2006-01.com.openfiler:tsn.crs, portal: 192.168.2.5,3260]
Login to [iface: default, target: iqn.2006-01.com.openfiler:tsn.crs, portal: 192.168.2.5,3260]: successful
[root@discus1 ˜]#
・iscsi-targetへの自動ログインの構成
iscsiadmコマンドでiscsi-targetへの自動ログインができるようにしておく。この操作はRACの全ノードのrootユーザで実施する。
[root@discus1 ˜]# 
[root@discus1 ˜]# iscsiadm -m node -T iqn.2006-01.com.openfiler:tsn.asm1 -p 192.168.2.5 --op update -n node.startup -v automatic
[root@discus1 ˜]# iscsiadm -m node -T iqn.2006-01.com.openfiler:tsn.asm2 -p 192.168.2.5 --op update -n node.startup -v automatic
[root@discus1 ˜]# iscsiadm -m node -T iqn.2006-01.com.openfiler:tsn.asm3 -p 192.168.2.5 --op update -n node.startup -v automatic
[root@discus1 ˜]# iscsiadm -m node -T iqn.2006-01.com.openfiler:tsn.asm4 -p 192.168.2.5 --op update -n node.startup -v automatic
[root@discus1 ˜]# iscsiadm -m node -T iqn.2006-01.com.openfiler:tsn.crs -p 192.168.2.5 --op update -n node.startup -v automatic
[root@discus1 ˜]#
・ローカルデバイス名の作成
iSCSIでは再起動する度にiscsi-targetにマッピングされるSCSIデバイス名が変ってしまうことがある。(少々面倒)。
ということでudevを利用してデバイス名を固定しておきましょう。そのほうが使い易いですから。
たとえば、ip-192.168.2.5:3260-iscsi-iqn.2006-01.com.openfiler:tsn.asm1が /dev/sdaにマッピングされているが再起動すると/dev/sdbにマッピングされたりすることがある。
[root@discus1 ˜]# (cd /dev/disk/by-path; ls -l *openfiler* | awk '{FS=" "; print $9 " " $10 " " $11}')
ip-192.168.2.5:3260-iscsi-iqn.2006-01.com.openfiler:tsn.asm1 -> ../../sda
ip-192.168.2.5:3260-iscsi-iqn.2006-01.com.openfiler:tsn.asm2 -> ../../sdb
ip-192.168.2.5:3260-iscsi-iqn.2006-01.com.openfiler:tsn.asm3 -> ../../sdc
ip-192.168.2.5:3260-iscsi-iqn.2006-01.com.openfiler:tsn.asm4 -> ../../sdd
ip-192.168.2.5:3260-iscsi-iqn.2006-01.com.openfiler:tsn.crs -> ../../sde
[root@discus1 ˜]#

udevについては以下のドキュメントが参考になるのではないだろうか。
Udev on Fedora(英語) - http://docs.fedoraproject.org/udev/
Writing udev rules(英語) - http://www.reactivated.net/writing_udev_rules.html
日本語訳も見つけたのでメモ代わりに・・(翻訳してくださっている方々に感謝!)
Udev on Fedora(日本語訳) - http://mux03.panda64.net/docs/udev_on_fedora_ja.html
Writing udev rules(日本語訳) - http://www.gentoo.gr.jp/transdocs/udevrules/udevrules.html

udevを利用して固定的なデバイス名をiscsi-targetに割り当てる。内容は元ネタと同じです。(以下の操作はRACの全ノードのrootユーザで実施する。
[root@discus1 ˜]# cat /etc/udev/rules.d/55-openiscsi.rules
KERNEL=="sd*", BUS=="scsi", PROGRAM="/etc/udev/scripts/iscsidev.sh %b",SYMLINK+="iscsi/%c/part%n"
[root@discus1 ˜]#
[root@discus1 ˜]# cd /etc/udev/scripts
[root@discus1 scripts]# ls -l iscsidev.sh
-rwxr-xr-x 1 root root 334  9月 30 17:50 iscsidev.sh
[root@discus1 scripts]# cat iscsidev.sh
#!/bin/sh

# FILE: /etc/udev/scripts/iscsidev.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

echo "${target_name##*.}"
[root@discus1 scripts]#
[root@discus1 scripts]# chmod 755 iscsidev.sh
[root@discus1 scripts]# cd
[root@discus1 ˜]# service iscsi stop
Logging out of session [sid: 1, target: iqn.2006-01.com.openfiler:tsn.asm1, portal: 192.168.2.5,3260]
Logging out of session [sid: 2, target: iqn.2006-01.com.openfiler:tsn.asm2, portal: 192.168.2.5,3260]
Logging out of session [sid: 3, target: iqn.2006-01.com.openfiler:tsn.asm3, portal: 192.168.2.5,3260]
Logging out of session [sid: 4, target: iqn.2006-01.com.openfiler:tsn.asm4, portal: 192.168.2.5,3260]
Logging out of session [sid: 5, target: iqn.2006-01.com.openfiler:tsn.crs, portal: 192.168.2.5,3260]
Logout of [sid: 1, target: iqn.2006-01.com.openfiler:tsn.asm1, portal: 192.168.2.5,3260]: successful
Logout of [sid: 2, target: iqn.2006-01.com.openfiler:tsn.asm2, portal: 192.168.2.5,3260]: successful
Logout of [sid: 3, target: iqn.2006-01.com.openfiler:tsn.asm3, portal: 192.168.2.5,3260]: successful
Logout of [sid: 4, target: iqn.2006-01.com.openfiler:tsn.asm4, portal: 192.168.2.5,3260]: successful
Logout of [sid: 5, target: iqn.2006-01.com.openfiler:tsn.crs, portal: 192.168.2.5,3260]: successful
Stopping iSCSI daemon: /etc/init.d/iscsi: line 33:  8989 強制終了            /etc/init.d/iscsid stop
[root@discus1 ˜]#                                          [  OK  ]
[root@discus1 ˜]#
[root@discus1 ˜]# service iscsi start
iscsid が停止していますが PID ファイルが残っています
Turning off network shutdown. Starting iSCSI daemon:       [  OK  ]
                                                           [  OK  ]
iSCSI ターゲットを設定中: Logging in to [iface: default, target: iqn.2006-01.com.openfiler:tsn.asm4, portal: 192.168.2.5,3260]
Logging in to [iface: default, target: iqn.2006-01.com.openfiler:tsn.asm1, portal: 192.168.2.5,3260]
Logging in to [iface: default, target: iqn.2006-01.com.openfiler:tsn.asm3, portal: 192.168.2.5,3260]
Logging in to [iface: default, target: iqn.2006-01.com.openfiler:tsn.asm2, portal: 192.168.2.5,3260]
Logging in to [iface: default, target: iqn.2006-01.com.openfiler:tsn.crs, portal: 192.168.2.5,3260]
Login to [iface: default, target: iqn.2006-01.com.openfiler:tsn.asm4, portal: 192.168.2.5,3260]: successful
Login to [iface: default, target: iqn.2006-01.com.openfiler:tsn.asm1, portal: 192.168.2.5,3260]: successful
Login to [iface: default, target: iqn.2006-01.com.openfiler:tsn.asm3, portal: 192.168.2.5,3260]: successful
Login to [iface: default, target: iqn.2006-01.com.openfiler:tsn.asm2, portal: 192.168.2.5,3260]: successful
Login to [iface: default, target: iqn.2006-01.com.openfiler:tsn.crs, portal: 192.168.2.5,3260]: successful
                                                           [  OK  ]
[root@discus1 ˜]#
[root@discus1 ˜]# (cd /dev/disk/by-path; ls -l *openfiler* | awk '{FS=" "; print $9 " " $10 " " $11}')
ip-192.168.2.5:3260-iscsi-iqn.2006-01.com.openfiler:tsn.asm1 -> ../../sda
ip-192.168.2.5:3260-iscsi-iqn.2006-01.com.openfiler:tsn.asm2 -> ../../sdb
ip-192.168.2.5:3260-iscsi-iqn.2006-01.com.openfiler:tsn.asm3 -> ../../sdc
ip-192.168.2.5:3260-iscsi-iqn.2006-01.com.openfiler:tsn.asm4 -> ../../sdd
ip-192.168.2.5:3260-iscsi-iqn.2006-01.com.openfiler:tsn.crs -> ../../sde
[root@discus1 ˜]#
[root@discus1 ˜]# ls -l /dev/iscsi/*/*
lrwxrwxrwx 1 root root  9  9月 30 17:52 /dev/iscsi/asm1/part -> ../../sda
lrwxrwxrwx 1 root root  9  9月 30 17:52 /dev/iscsi/asm2/part -> ../../sdb
lrwxrwxrwx 1 root root  9  9月 30 17:52 /dev/iscsi/asm3/part -> ../../sdc
lrwxrwxrwx 1 root root  9  9月 30 17:52 /dev/iscsi/asm4/part -> ../../sdd
lrwxrwxrwx 1 root root  9  9月 30 17:52 /dev/iscsi/crs/part -> ../../sde
[root@discus1 ˜]#
これでiscsi-targetとローカルデバイス名の固定的なマッピングができた。
iscsi-targetとローカルデバイス名の対応
iscsi-target名ローカルデバイス名
iqn.2006-01.com.openfiler:tsn.asm1 /dev/iscsi/asm1/part
iqn.2006-01.com.openfiler:tsn.asm2 /dev/iscsi/asm2/part
iqn.2006-01.com.openfiler:tsn.asm3 /dev/iscsi/asm3/part
iqn.2006-01.com.openfiler:tsn.asm4 /dev/iscsi/asm4/part
iqn.2006-01.com.openfiler:tsn.crs /dev/iscsi/crs/part
chkconigで確認しておく。念のため。(RACの全ノードで)
(20101013訂正というか追記)
以下の例ではiscsidを自動起動にしていますが、CentOS5.5ではiscsiを自動起動にすればiscsi起動・停止時にiscsidの起動・停止も行っているのでCentOS5.5ではiscsidの自動起動は不要。CentOS5.4以前はどうか未確認なので、/etc/rc.d/init.d/iscsiを確認するか、service iscsi start/stopでiSCSI deamonが起動・停止されるか確認するよいかと。
[root@discus1 ˜]# chkconfig --list iscsid
iscsid          0:off   1:off   2:off   3:on    4:on    5:on    6:off
[root@discus1 ˜]# chkconfig --list iscsi
iscsi           0:off   1:off   2:off   3:on    4:on    5:on    6:off
[root@discus1 ˜]#
上記操作後openfiler storage control centerのiscsi-target-status画面では以下のようなに接続状況を確認できるようになる。

Iscsitargetstatus 次回へつづく 子供寝かしつけようと一緒に横に寝ていると、私が先に寝ちゃうんだなこれが・・・、予定していたことは早起きしてやるようになったりして。。w

| |

トラックバック


この記事へのトラックバック一覧です: Mac de Oracle - 10万円未満 de RAC (11g編)#5:

コメント

コメントを書く