LPIC 304の参考資料(仮) (1)

まだ試験として始まっておらず、少々気が早いのだが、LPIC304 "Virtualization and High Availability" のシラバスを見て、参考リンクを探してみようと思う。
304はクラスタリングと仮想化に関する試験となるらしく、Linuxの資格のうちでも需要が高い資格となりそうだ。。

現在定まっている範囲はこちらになる。。
http://wiki.lpi.org/wiki/LPIC-3_304_Objectives


トピックは、

1. Virtualization
2. Load Balancing and Storage
3. Cluster Management
4. Message Layer

となる。ただし、まだまだ作成中の資格ということもあり、実際の範囲がどうなるかはまだ決まっていないようなので、念のため。 w

1. Virtualization

1. Virtualization は、Linux originの仮想化を扱う部分で、ハイパーバイザとしては、XenKVMが範囲になるようだ。。 いきなりで恐縮だが、Xen, KVMの概略については、情報があまりにも多く、動きも速いので、個別に検索していただきたい。。 ディストリビューションによって使えるハイパーバイザに違いがあるため、(Fedora12ではXenは使えない、SUSEではKVMはサポート外、など) 必要に応じて使い分けることになりそうだ。。

仕様上の大きな違いとして、
1. KVMIntel-VT, AMD-Vなどの仮想化支援機構が無いと動かない(XenはCPUの助けが無くてもある程度使えるが、動かせるOSが制限される)
というあたりは抑えておいてもよさそうだ。

実際Xen, KVMを試してみる際の手順なのだが、現状では、ディストリビューションごとのGUIVMの構築から起動・停止、構成変更まで行えてしまうため(CentOS, Fedoraで確認)、一概には言えない感じである。。( つい最近まで、Xen: xm, KVM, qemu-kvm, qemu-img が必要だった気がするのだが。。一気に使いやすくなってしまい、書くことが無い。。 orz ) ディストリビューションごとの対応の一例としてCentOSでは、上流のマニュアルが参考になる。
http://www.redhat.com/docs/manuals/enterprise/RHEL-5-manual/ja-JP/Virtualization/index.html
ただし、確認時点ではXenの手順しか無かった。。RHELでは5.3までXenのみの対応で5.4でKVM対応となったため、まだ日本語化がなされていないらしい。 英語版だと5.4の手順にアップデートされており、KVMの記述も加わっている。。
http://www.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/5.4/html/Virtualization_Guide/index.html

他にも役に立つリンクは山ほどあるのだが、あまりにも量が多く、またディストリビューションごとの変化も非常に早いので、今リンクを張っても304が出たころには状況が変わっていそうだ。そのため、ここではあまりたくさんリンクを張るのは控えておく。。 orz

2. Load Balancing and Storage

2. Load Balancing and Storage では、サブカテゴリとして、

 1. Load Balancing
 2. DRBD
 3. Global File System
 4. Others

がある。どれも面白い内容で、1. Virtualizationと比べると、比較的変化が少ない部分なので、こちらは多めにリンクを張っていこうと思う。。

1. Load Balancing

1. Load Balancing は、主にlayer 3 でのロードバランス(いわゆるLinux Virtual Server: LVS) を扱うらしくipvsadm コマンドの使い方あたりが主題になりそうだ。
LVSは主にIntelハードウェア+普通のLinuxでロードバランスを行う仕組みで、Windowsで言う所のNLB( http://www.thinkit.co.jp/cert/compare/17/8/3.htm )に対応する。。

LVSの概略に付いては、こちらを参照。
http://www.linuxvirtualserver.org/
LVSの実際の使い方については、この辺が参考になりそう。
http://dsas.blog.klab.org/archives/50664843.html

使用例としては、Wikimediaのインフラが有名なようだ。。こちらのインフラは寄付によってまかなわれていることもあり、かなり詳しく情報が公開されているので、色々と参考になる。
Wikimediaのインフラについての説明はこちら。
http://meta.wikimedia.org/wiki/Wikimedia_servers
Wikimediaインフラの構成図はこちらを参照。
http://meta.wikimedia.org/wiki/File:Wikimedia-servers-2009-04-05.svg

Wikimedia自身の記述を見る限り、フォワードプロキシとして、 squid, PHPの動作環境としてApacheを使っているようなのだが、これらの前の負荷分散として、LVSを使っているらしい。。 Wikimediaは世界でも上位に入るほどトラフィックの多いサイト( http://wikimediafoundation.org/wiki/4_wishes_for_year_2007 )なので、ここで使われているのは大きな実績になりそうだ。。(しかも停止しているのを見たことが無いのだが。。)

LVS(というかIPVS)は、それ自身はIPレベルでの負荷分散だけを行う仕組みで、負荷分散機自体の冗長化は別の仕組みで行う。 RHELの場合には、Piranha ( http://www.redhat.com/docs/manuals/enterprise/RHEL-5-manual/Virtual_Server_Administration/index.html )を使う。 他にkeepalivedと組み合わせることでも冗長化を実現できるらしい。。(http://dsas.blog.klab.org/archives/50665382.html)
むしろ、後者の方がWeb上の情報は多い気がするのだが、筆者はあまり試したことが無い。。 orz

2. DRBD

2. DRBDは、2台のサーバーをイーサネットで接続し、その線を通してノードを超えたRAID1を構成する(このため、SAN無しでディスク内容の引き継ぎができる。。) 仕組みで、SUSE等ではディストリビューション付属となっている。

また、最近kernel-2.6.33でkernel.orgにマージされたため、更にサポートするディストリビューションが増えそうだ。。 ( http://lwn.net/SubscriberLink/365443/d95d4be72898d026/ )

DRBDの概略についてはこちら。
http://www.drbd.org/

使い方等については、こちらが参考になる。
http://www.atmarkit.co.jp/flinux/rensai/heartbeat04/heartbeat04a.html
雰囲気は難しそうなのだが、意外に簡単に構成できるので、2台PCがある(もしくは仮想化環境で2台VMを構成できる) なら、試してみるとよさげである。。

ちなみに3.のGlobal File Systemとの組み合わせると更に面白い、、が、詳細は後述。。 orz 組み合わせ方はこちら。
http://www.drbd.org/users-guide/ch-gfs.html

3.Global File System

3.のGlobal File System(GFS) は、SANなどと組み合わせて使い、2台以上のPCから同時に1つのファイルシステムに書き込みを行うためのファイルシステムである。。 性質上、雰囲気はNFS, CIFS等のネットワークファイルシステムに近いのだが、これらと比べると媒体がイーサネットに限られず、またロック制御用の別の通信手段も組み合わせられるため、パフォーマンスが良いらしい。。 ( http://www.jp.redhat.com/magazine/No41/ )

GFSはCentOS, Fedora等のRed Hat系のディストリビューションでは(大分 orz )簡単に使うことができる。もっとも前段階として、 (2台のPC+2台のPCからアクセスできる外部ディスク ) が必要なため、機材を揃えるのは大変である。。 orz
現実的には2つのVM+ソフトウェアiSCSIターゲット等で、まずは試してみるのがよいのではなかろうか。。 これだと、PC1台から構成可なので。。

GFSは後述のRHCSと組み合わせて使うので、事前にRHCSの構成をしておく必要がある。こちらも本家のマニュアルが詳しい。。

RHCSのマニュアル:
http://www.redhat.com/docs/manuals/enterprise/RHEL-5-manual/Cluster_Administration/index.html
GFSのマニュアル:
http://www.redhat.com/docs/manuals/enterprise/RHEL-5-manual/Global_File_System/index.html

ちなみにiSCSIの構成ができなくても、DRBDを使うことで両側からアクセスできるディスクを使うことができる。(尤もiSCSIの方が構成しやすい気もするが。。 orz) DRBDはext3などの通常のファイルシステムで初期化した場合、片側(プライマリ)からしか書き込みが出来ないが、GFSを使うと両側から書き込みができるため、応用の幅が広がりそうだ。。

4. Others は筆者があまり詳しくないので、よく分からない。。


ここまでで1, 2についてまとめて力尽きたので、3, 4 は後に 。。 というか、筆者は3, 4の範囲はRed Hat Cluster Suite以外あまりよくわからない、、ため、このままになるかも。。