2012年5月31日木曜日

4月 2012


KVMでHAクラスタの機能検証環境を構築


  • 2011/08/04 17:50 クラスタの基本構成まで書いた。
  • 2011/08/05 18:50 サービスリソースの構成も書いた。

「RHCS設計・運用入門」という資料を作るにあたって「そういえば、あの設定ってどういう動きになるんだっけ???」みたいなことをサクッと確認できる環境をKVMで用意しました。せっかくなので構築手順を残しておきます。

ハードウェア依存の機能や微妙なパラメータチューニングの確認は、きちんと物理サーバでやるべきですが、こういう手軽な環境を手元のPCに用意しておくともろもろの作業効率が格段に上がります。(インフラ技術はいぢり倒して学ぶのが王道ですしね。)

参考資料)High Availability Add-On 非公式技術情報


前提ソフトウェア

RHEL6.1のHigh Availability Add-Onを使用します。以前はRed Hat Cluster Suite(RHCS)として有名だったやつですが、なにげに名称が変更されています。

レポジトリからまとめて導入する時はこれでOKです。

 # yum groupinstall "High Availability" 

High Availabilityグループで入るのは下記のパッケージ(とその前提パッケージ)なので、Fedoraでがんばる方はこれらと同等パッケージをご使用ください。


眼振保険の集落
 # rpm -q cman ccs omping rgmanager cman-3.0.12-41.el6_1.1.x86_64 ccs-0.16.2-35.el6.x86_64 omping-0.0.1-4.el6.x86_64 rgmanager-3.0.12-11.el6_1.1.x86_64 

VM環境の準備

こんな感じの仮想ネットワークとVM2個を用意します。KVMの仮想ネットワークの構成方法はプロのためのLinuxシステム・ネットワーク管理技術の第5章に詳しく書いてあります。


メモメモ

ハートビートが切断してあるノードの状態が不明になった場合、相手のノードは、管理ネットワークを通じてこのノードを強制再起動します。物理サーバ環境であれば、各ノードのリモート管理NIC(IPMIの接続ポート)を管理ネットワークに接続しておいて、ここから強制再起動を実施します。

これは、ハートビートが通じない、すなわちハートビート・ネットワークが切れているかも知れない状態で実施する必要がありますので、ハートビート・ネットワークと管理ネットワークを兼用することはできません。必ずハートビート・ネットワークとは独立した経路で強制再起動できる方法を用意してください。


疼痛管理ポーツマスの中心

どうしてもネットワークが3経路用意できない場合は、サービスネットワークとハートビート・ネットワークを兼用するか、サービスネットワークと管理ネットーワークを兼用することになります。前者の場合は、サービスネットワークの通信負荷が上がってもハートビートが切れないかどうか入念な事前確認が必要です。(サービスネットワークと管理ネットワークを兼用できるかどうかは、クラスタとは直接関係なく、ネットワークの管理ポリシーに依存することですね。)

node01とnode02それぞれにRHEL6.1を入れて、前述のHigh Availabilityグループを導入します。その他には、このぐらいの準備をします。

・iptablesはoffっておく。

・ntpdで時刻同期しておく。

・/etc/hostsは下記のとおり。

 127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.7.121	node01 192.168.7.122	node02 192.168.7.123	node03  192.168.8.121	node01m 192.168.8.122	node02m 192.168.8.123	node03m  192.168.9.121	node01h 192.168.9.122	node02h 192.168.9.123	node03h 

・両ノードのrootユーザ同士でSSHの公開鍵認証を設定して、パスワード無しのSSHが打てるようにしておく。


共有ストレージの準備

ホストLinuxのiSCSIターゲットを使用します。外付ストレージ装置を用意しないでここまでできるってLinuxはすばらしぃですね。

まず、ホストLinuxで下記を実行します。


肥満のために楊州を非難する理由
 # yum install scsi-target-utils # mkdir -p /var/lib/tgtd/cluster01 # cd /var/lib/tgtd/cluster01 # dd if=/dev/zero of=volume01.img bs=1M count=100 # dd if=/dev/zero of=volume02.img bs=1M count=1000 

targetedモードでSELinuxを動かしている場合は、Volumeファイルは/var/lib/tgtd/以下に置く必要があるので注意してください。続いて、/etc/tgt/targets.confの末尾に下記を追加します。

      backing-store /var/lib/tgtd/cluster01/volume01.img     backing-store /var/lib/tgtd/cluster01/volume02.img 

最後にtgtdサービスを起動します。


 # chkconfig tgtd on # service tgtd start # tgt-admin -s Target 1: iqn.2011-08.com.example.yourhost:tgt01     System information:         Driver: iscsi         State: ready     I_T nexus information:     LUN information:         LUN: 0             Type: controller             SCSI ID: IET     00010000             SCSI SN: beaf10             Size: 0 MB, Block size: 1             Online: Yes             Removable media: No             Readonly: No             Backing store type: null             Backing store path: None             Backing store flags:          LUN: 1             Type: disk             SCSI ID: IET     00010001             SCSI SN: beaf11             Size: 105 MB, Block size: 512             Online: Yes             Removable media: No             Readonly: No             Backing store type: rdwr             Backing store path: /var/lib/tgtd/cluster01/volume01.img             Backing store flags:           LUN: 2             Type: disk             SCSI ID: IET     00010002             SCSI SN: beaf12             Size: 1049 MB, Block size: 512             Online: Yes             Removable media: No             Readonly: No             Backing store type: rdwr             Backing store path: /var/lib/tgtd/cluster01/volume02.img             Backing store flags:      Account information:     ACL information:         ALL 

上記のようにvolume01.imgとvolume02.imgがLUNとして構成されていればOKです。それぞれこの後で、Quorum Diskと共有データ領域として使用します。

node01とnode02では、それぞれ次の手順でiSCSI LUNを認識させます。


 # chkconfig iscsi # service iscsi start # iscsiadm -m discovery --type sendtargets --portal 192.168.8.1 # service iscsi restart 

fdiskで見て、100MBの/dev/sdaと1GBの/dev/sdbが認識されていればOKです。(仮想マシンに接続した仮想ディスクは、virtioドライバを使っているので/dev/vdXXの前提です。)なお、iSCSIについては、プロのためのLinuxシステム構築・運用技術の第3章に詳しく書いてあります。


クラスタ構成の準備

いよいよクラスタの構成ですが、初めに下準備をしておきます。これは、node01、node02で共通に実施します。

ricciサービスを起動します。これはリモート管理用のデーモンで、cluster.confを動的に変更する際に必要になります。

 # chkconfig ricci on # service ricci start 

また、リモート管理の際にricciユーザのパスワードで認証するため、事前にパスワードの設定が必要です。

 # passwd ricci 

クラスタのトポロジーを管理するcmanとリソースの監視を行うrgmanagerは自動起動しないようにします。障害などでノードが再起動した際に、障害が残ったノードが勝手にクラスタに参加するのを防ぐためです。



These are our most popular posts:

MPLSについて - ログ速

2010年11月11日 ... ミネアポリス 痛みの研究日記 .... 時 11月21日(日)午後2時 場所) Maplewood Performing Arts Theater(←クリック, MPLSから20分ほど)。 ... 毎度、わめいており ますが民主主義の何たるか理解していない集団によるシステム運用は愚かな結果しか 招きません。政治的な話題は ... password: 管理者にだけ表示を許可する ... read more

Minneapolis編 - ミネアポリスつれづれ日記 - エキサイトブログ

2001年11月1日 ... 最近トラフィックがないけど MPLS JAPsという日本語MLもありますよ。 ..... セットアップ して、データプレーンは何が流れてもOKというのは、管理面 から見て美味しい。 #あと はLSP .... 広域Ether運用してるところにMPLS載せるのって、無謀? read more

MPLSについて

2001年11月1日 ... 7 : anonymous@ Air1Aac069.ngn.mesh.ad.jp : 01/11/08 13:15 ID:eaiGNx+k [1/1 回発言]: なんとなくMPLS JAPANから 結構スーツ/ ..... こんなの運用したら死ぬよ. .... セットアップして、データプレーンは何が流れてもOKというのは、管理面 ... read more

ミネアポリス 痛みの研究日記 オバマさんも苦しいな。

2009年9月30日 ... 戸籍はそういう怪しい奴がやってきて日本で悪事を計りにくい管理体制でもある。まあ~ ぶっちゃげて ..... しかし光の刺激で痛みに関係するニューロンが興奮するちゅうーのは、 かなり凄い所見やと思うんやけどなあ~。ちゅーか、学会とか ...... Minneapolis Police are investigating the shooting. .... 結局,運用するのはニンゲンだ。 read more

Related Posts



0 コメント:

コメントを投稿