Oracle VMの世界

Oracle VMの世界(7)

Oracle VM上でRACを利用する(3)


日本オラクル株式会社
中嶋 一樹
2009/10/8

Oracle VMとは、オラクルが提供している無償のサーバ仮想化ソフトウェアである。Xenをベースとしているが、さまざまな機能追加や使いやすさの改善が行われている。本連載では、Oracle VMの製品コンセプトから機能、利用シーンまでを解説する

連載:Oracle VMの世界 INDEX

 ストレージアクセスの設定

- PR -

 今回はストレージの設定に進みます。VM ServerからiSCSIストレージに接続し、VM Serverの/OVS用に用意されたボリュームを認識させます。

[root@vmserver1]# iscsiadm -m discovery -t  sendtargets -p [iSCSIストレージのターゲットIP]
[root@vmserver1]# iscsiadm -m node --login

 2台のVM Serverはどちらも同じボリュームを認識し、さらにこれを同じデバイス名で構成しなければなりません。一般にiSCSI接続のボリュームは認識されると/dev/sd[a-z]というデバイス名で構成されます。しかしデフォルトでは必ずしも特定のボリュームがいつも同じデバイス名で構成されるとは限りません。今回の例ではLU: OVSはVM Server #1では/dev/sdbとして構成され、場合によってはVM Server #2では/dev/sdcとして構成されるかもしれません。これを確実にどのVM Serverでも特定のボリュームが同じデバイス名で認識されるようにするには2通りの方法あります。

  • udevのルールを作成する
  • device mapper multipathを適用する

 udevはOSが認識するボリュームへの命名やパーミション設定などを行う機構です。一方、device mapper multipathはストレージへの接続経路を冗長化するための機構です。どちらも内部的にはSCSIデバイスにユニークに割り振られているSCSI IDを利用してデバイスを識別し、ルールに従って命名を行います。今回はudevでの設定を紹介します。

 まずSCSI ID設定ファイルを編集し、udevが内部的にscsi_idコマンドを発行したときに渡されるオプションを設定しておきます。

[root@vmserver1]# vi /etc/scsi_id.config
vendor="ATA",options=-p 0x80
options=-g

 次に対象のボリュームのSCSI IDを取得します。 手動でscsi_idコマンドを実行します。引数のパスが/devではなく/blockで始まっていることに注意してください。

[root@vmserver1]# scsi_id -s /block/sdb
1212121212

 udevの命名規則設定ファイルを編集します。RESULTの値には先の手順で取得したSCSI IDを代入してください。

[root@vmserver1]# vi  /etc/udev/rules.d/20-names.rules
KERNEL=="sd*",BUS=="scsi",PROGRAM="/sbin/scsi_id",RESULT=="1212121212",SYMLINK="OVS"

 start_udevコマンドを発行し、命名規則を適用します。

[root@vmserver1]# start_udev
[root@vmserver1]#

 /dev/OVSというシンボリックリンクが作成され、対象のボリュームをポイントしていることを確認します。

[root@vmserver1]# ls -l /dev

 次に名前解決の設定を行います。特に/etc/hostsファイルの中でループバックアドレス(127.0.0.1) が当該VM Serverのホスト名にマッピングされている場合、そのホスト名をループバックアドレスの行から削除してください。Oracle VM 2.1.2までは、デフォルトでループバックアドレスの行にホスト名が入ってしまっているので注意が必要です。

# Do not remove the following line, or  various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6

 次にすべてのホスト名がDNSによって解決できることを確認してください。DNSが用意できない場合は、すべてのVM Serverの/etc/hostsファイルにすべてのIPアドレスとホスト名のマッピングを記述してください。

 ここまでの作業をVM Server #1、VM Server #2の両方で実施します。

 次に/OVSにマウントするボリュームを設定していきます。ここからの作業はVM Server #1でのみ行います。

 まず/dev/OVSをOCFS2でフォーマットします。

[root@vmserver1]# mkfs.ocfs2 /dev/OVS
mkfs.ocfs2 1.2.7
Filesystem label=
Block size=4096 (bits=12)
Cluster size=4096 (bits=12)
Volume size=137436200960 (33553760 clusters) (33553760 blocks)
1041 cluster groups (tail covers 7520 clusters, rest cover 32256 clusters)
Journal size=268435456
Initial number of node slots: 4
Creating bitmaps: done
Initializing superblock: done
Writing system files: done
Writing superblock: done
Writing backup superblock: 4 block(s)
Formatting Journals: done
Writing lost+found: done
mkfs.ocfs2 successful

[root@vmserver1]#
 ovs-cluster-configureスクリプトを実行し、OCFS2の設定ファイルである/etc/ocfs2/cluster.confを自動生成して、o2cbサービスを起動させます。

[root@vmserver1]# /usr/lib/ovs/ovs-cluster-configure
O2CB cluster ocfs2 already online

[root@vmserver1]#

 次にovs-makerepoスクリプトを実行して/dev/OVSをレポジトリに登録します。これでVM Serverは/dev/OVSが/OVSにマウントすべきボリュームであることを認識し、自動的にボリュームをマウントします。

[root@vmserver1]# /usr/lib/ovs/ovs-makerepo  /dev/ovs C "cluster root"
Initializing NEW repository /dev/ovs
SUCCESS: Mounted /OVS
Updating local repository list.
ovs-makerepo complete

[root@vmserver1]#

 ovs-cluster-checkスクリプトを実行し、設定を確認します。

[root@vmserver1]# /usr/lib/ovs/ovs-cluster-check --master --alter-fstab
O2CB cluster ocfs2 already online
Cluster setup complete.

[root@vmserver1]#

 これでVM Server #1が正しく構成され、ストレージのボリュームを/OVSにマウントすることができました。この時点ではVM Server #2ではOCFS2のクラスタサービスが構成されておらず、まだ共有すべきボリュームをマウントしていませんが、これはVM ManagerへVM Serverを登録した後に行います。

 
1/3

Index
Oracle VM上でRACを利用する(3)
Page1
ストレージアクセスの設定
  Page2
VM ServerをVM Managerに登録する
  Page3
ゲストOSの作成

Server & Storage フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Server & Storage 記事ランキング

本日 月間