Loading
|
@IT > サーバを増やす「打ち出の小づち」、vPars |
企画:アットマーク・アイティ
営業企画局 制作:アットマーク・アイティ 編集局 掲載内容有効期限:2005年3月13日 |
|
|
「テスト用や開発用のサーバがほしい。でも予算はない」──。HP-UX 11iのVirtual Partition(以下、vPars)は、そうした悩みを抱える管理者にとっての「打ち出の小づち」だ。 手持ちのHP-UXマシンにvParsをインストールするだけで、新たなサーバを購入することなく仮想サーバを2台、3台と増やせる。仮想サーバとはいえ、その使い勝手や信頼性は本物のサーバとほぼ同じ。個別にリブートできるし、OSのバージョンやパッチレベルを揃える必要もない。それぞれが一定のCPUやメモリを占有するので、過負荷やハングアップなどのトラブルがほかのサーバに影響することもない。ここでは、“小づち”を振るほどに便利さが増すvParsの使い方を紹介する。
例えば管理者が「新しいプロジェクトで使う開発用サーバを手配してほしい」という要望を受けたとしよう。既存の開発用サーバの処理能力には余裕があるものの、ほかのプロジェクトでも利用しているので、新しいプロジェクトと共用させるわけにはいかない。例えばOSのバージョンやパッチレベルを変更したり、何度もリブートしたりすれば、ほかの開発者からたちまちクレームが付くだろう。とはいえ、新しいサーバを購入するにはコストも時間もかかる。 こうしたとき、何もないところからサーバを生み出す「打ち出の小づち」として威力を発揮するのが、vParsだ。vParsは、HP-UX 11iにて利用できる論理パーティション技術である。 例えば、4CPUで構成されたHP-UXサーバ環境があったとしよう。 vParsを使えば、1台のHP-UXサーバが備えるCPUとメモリ、I/Oを論理的なパーティションに分割できる。図1は、このHP-UXサーバを2つのパーティションに分割した例である。
この2つのパーティションは、あたかも独立したサーバであるかのように運用可能な、いわば仮想サーバである。それぞれがCPUやメモリを占有できるうえ、OSの構成変更やリブートも個別に実施できる。よって、開発作業で多少乱暴な使い方をしても、ほかのvParsに影響を及ぼすことはない。作業中に何度もリブートしたり、新しいパッチを当てたり、コードのバグでCPUが過負荷状態に陥ったりしても、もう一方のパーティションは安定した運用を継続できる。 vParsのもう1つの特徴は、パーティション間でCPUを即座に移動できる点である。例えば、あるパーティションのCPU能力が不足している一方で、ほかのパーティションの負荷が低い状況を考えよう。その際には、OSやアプリケーションの動作を止めずとも、コマンド1つ実行するだけで一方からもう一方へとCPUを振り向けられる。マシンパワーの一時的な不足にもすぐに対応でき、むやみに新規購入する必要も少なくなる。 以下では、このvParsによる仮想サーバの管理の実際を見ていきたい。
vParsの個々のパーティションには、最低でも以下のリソースを占有させる必要がある。
なお、コンソールやDVDドライブはパーティション間で共有することができる。vParsのインストール作業の詳細や方法については、HPが以下のサイトで公開しているテクニカル・ドキュメントを参照していただきたい。
vParsソフトウェアをインストールすることで、以下の各種コマンドが利用可能になる。
vParsインストールの仕上げとして、各パーティション用のブートディスクのいずれか1つにHP-UXをインストールしておく。これでパーティション作成の準備は整ったことになる。 続いて、これらの管理コマンドを利用してパーティションを作成する手順を見ていこう。
vParsのパーティションを作成するには、vparcreateコマンドを実行すればよい。以下は、Bergenという名称のパーティションを新規作成する例である。
以下、このコマンドの各オプションの意味を簡単に説明しよう。
上記コマンド例の「-a cpu::3」というオプション指定は、ブート時のCPU数を表している。よって同パーティションが起動した時点では、3つのCPUが割り当てられることになる。続く「-a cpu:::2:4」は、「最小CPU数は2、最大CPU数は4」という指定を意味する。 ここで、vParsにおける「バウンドCPU」と「アンバウンドCPU」について説明しておこう。バウンドCPUとは、個々のパーティションが占有するCPUのことである。同CPUは、パーティションにおけるI/O割り込み処理を担当しており、ほかのパーティションに移動することはできない。一方アンバウンドCPUとは、各パーティションの間を移動できるCPUを指す。上記コマンド例では、バウンドCPUを2個、アンバウンドCPUを2個にそれぞれ設定していることになる。 この2種類のCPUは、用途に応じて適切に使い分ければよい。例えばI/O処理中心のアプリケーションであれば、バウンドCPUを多めに用意しておく。一方、CPU処理中心であれば、アンバウンドCPUを増やしておくことで、パーティション間でプロセッサ・パワーを融通しやすくなるだろう。
上記コマンド例のオプション「-a mem::1024」は、このパーティションのメモリサイズを1024MB(1GB)に設定することを表している。メモリサイズは64MBの倍数で指定する必要がある。また、上記例のようなサイズ指定だけでなく、メモリのアドレス範囲を特定することも可能だ。なお、いったんパーティションをシャットダウンすれば、パーティションのメモリサイズを後から変更することもできる。 続くオプション「-a io:0/0」は、パーティションが占有するI/Oとして、LBAレベル0/0を割り当てることを表す。HP-UXサーバが有するLBAレベルを知るには、ioscanコマンドを実行すればよい。
上記のリストは、ioscanの実行結果から抜粋したものだ。この例では、LBAレベル0/0に2台のSCSIディスクが接続されていることが分かる。上述したとおり、vParsでは各パーティションに独立したLBAを占有させる必要がある。よって、この例のように1つのLBAに接続された複数のディスクを複数のパーティションから共有することはできない。 次のオプション「-a io:0/0/2/0.6.0:BOOT」と「-b /stand/vmunix」は、パーティションのブートに関する指定である。ブートディスクは、前者の例のように、同パーティションに割り当てたLBA配下にあるディスクのハードウェアパスを記述する。また後者は、ブートするカーネルイメージのファイル名を表す。そして最後のオプション「-B auto」は、HP-UXサーバのコールドスタート時にパーティションを自動ブートさせる設定である。
以上の設定でパーティションを作成したならば、さっそくそれを起動してみよう。vParsのパーティションを起動するには、HP-UXサーバ起動時に表示されるISLプロンプトより以下のコマンドを実行する。
この例では、ISLからvParsモニター(vpmon)を呼び出し、そのvparloadコマンドを実行することでパーティションBergenを起動している。vParsモニターとは、HP-UXサーバのハードウェアと各パーティションのHP-UXカーネルの間に位置するモニターソフトウェアであり、パーティション構成の管理やハードウェアリソースの割り当て、パーティションの起動などを担当している。vParsの要ともいえるソフトウェアだ。
上述したとおり、vParsではシステムの動作を止めずに、アンバウンドCPUをパーティション間で移動することが可能だ。実際には、パーティション構成を変更するコマンドvparmodifyを以下のように実行すればよい。
この例では、オプション「-a cpu::1」を指定し、パーティションBergenのアンバウンドCPUを1つ増やしている。一方アンバウンドCPUを1つ減らすには「-d cpu::1」と記述すればよい。CPUの移行はたいてい即座に実行されるが、場合によっては移行までに若干の時間を要することもある。 パーティション構成の変更結果を確認するには、vparstatusコマンドを用いる。図1は、BergenのほかにOslo、Trondheimと名付けられた3つのパーティションを有するHP-UXサーバにて同コマンドを実行した例だ。
この例を見れば分かるように、各パーティションの動作状態をはじめ、アンバウンド/バウンドCPUの数、メモリサイズなどを知ることができる。 以上、ここではvParsによるパーティショニングの実例を紹介した。ご覧いただいたとおり、vParsの管理は数種類のコマンドだけで実施でき、さほど難しいものではない。CPUパワーに余裕のあるHP-UXサーバをお持ちであれば、ぜひ一度vParsを導入し、その便利さを実感してみてはいかがだろうか。
|
|