アットマーク・アイティ @IT@IT情報マネジメント@IT自分戦略研究所QA@ITイベントカレンダー  
 
 @IT > サーバを増やす「打ち出の小づち」、vPars
 
@IT[FYI] 企画:アットマーク・アイティ 営業企画局
制作:アットマーク・アイティ 編集局

掲載内容有効期限:2005年3月13日

 

 

サーバ増強の“最適解”──「サーバ仮想化」最前線(4)
サーバを増やす「打ち出の小づち」、vPars

 「テスト用や開発用のサーバがほしい。でも予算はない」──。HP-UX 11iのVirtual Partition(以下、vPars)は、そうした悩みを抱える管理者にとっての「打ち出の小づち」だ。

 手持ちのHP-UXマシンにvParsをインストールするだけで、新たなサーバを購入することなく仮想サーバを2台、3台と増やせる。仮想サーバとはいえ、その使い勝手や信頼性は本物のサーバとほぼ同じ。個別にリブートできるし、OSのバージョンやパッチレベルを揃える必要もない。それぞれが一定のCPUやメモリを占有するので、過負荷やハングアップなどのトラブルがほかのサーバに影響することもない。ここでは、“小づち”を振るほどに便利さが増すvParsの使い方を紹介する。

  vParsとは何か?

 例えば管理者が「新しいプロジェクトで使う開発用サーバを手配してほしい」という要望を受けたとしよう。既存の開発用サーバの処理能力には余裕があるものの、ほかのプロジェクトでも利用しているので、新しいプロジェクトと共用させるわけにはいかない。例えばOSのバージョンやパッチレベルを変更したり、何度もリブートしたりすれば、ほかの開発者からたちまちクレームが付くだろう。とはいえ、新しいサーバを購入するにはコストも時間もかかる。

 こうしたとき、何もないところからサーバを生み出す「打ち出の小づち」として威力を発揮するのが、vParsだ。vParsは、HP-UX 11iにて利用できる論理パーティション技術である。

 例えば、4CPUで構成されたHP-UXサーバ環境があったとしよう。

 vParsを使えば、1台のHP-UXサーバが備えるCPUとメモリ、I/Oを論理的なパーティションに分割できる。図1は、このHP-UXサーバを2つのパーティションに分割した例である。

図1 vPars導入後のサーバ構成例

 この2つのパーティションは、あたかも独立したサーバであるかのように運用可能な、いわば仮想サーバである。それぞれがCPUやメモリを占有できるうえ、OSの構成変更やリブートも個別に実施できる。よって、開発作業で多少乱暴な使い方をしても、ほかのvParsに影響を及ぼすことはない。作業中に何度もリブートしたり、新しいパッチを当てたり、コードのバグでCPUが過負荷状態に陥ったりしても、もう一方のパーティションは安定した運用を継続できる。

 vParsのもう1つの特徴は、パーティション間でCPUを即座に移動できる点である。例えば、あるパーティションのCPU能力が不足している一方で、ほかのパーティションの負荷が低い状況を考えよう。その際には、OSやアプリケーションの動作を止めずとも、コマンド1つ実行するだけで一方からもう一方へとCPUを振り向けられる。マシンパワーの一時的な不足にもすぐに対応でき、むやみに新規購入する必要も少なくなる。

 以下では、このvParsによる仮想サーバの管理の実際を見ていきたい。

 vParsを導入する

 vParsの個々のパーティションには、最低でも以下のリソースを占有させる必要がある。

  • 1個以上のCPU
  • HP-UX 11iおよびアプリケーションを動作可能なメモリ容量
  • 独立したPCIバス/LBA(Local Bus Adapter)
  • 独立したブートディスクとLANカード

 なお、コンソールやDVDドライブはパーティション間で共有することができる。vParsのインストール作業の詳細や方法については、HPが以下のサイトで公開しているテクニカル・ドキュメントを参照していただきたい。

 参考リンク
 HP-UX Virtual Partitions (vPars) インストール/管理ガイド

 vParsの管理コマンド

 vParsソフトウェアをインストールすることで、以下の各種コマンドが利用可能になる。

コマンド名機能
/sbin/vparcreateパーティションを作成する。CPU数、メモリサイズ、I/Oデバイス、ブートデバイス等を指定できる
/sbin/vparmodifyパーティションの構成を変更する。CPU数、メモリサイズ、I/Oデバイス、ブートデバイス等を指定できる
/sbin/vparstatusパーティションの構成を表示する
/sbin/vparresetパーティションをハードリセットする
/sbin/vparremove パーティションを削除する
/stand/vpmon vParsモニターを起動する(ISLから)
/sbin/vparload パーティションを起動する(vParモニターから)
/sbin/vparboot パーティションを起動する(コマンドラインから)
表1 vParsの主な管理コマンド

 vParsインストールの仕上げとして、各パーティション用のブートディスクのいずれか1つにHP-UXをインストールしておく。これでパーティション作成の準備は整ったことになる。

 続いて、これらの管理コマンドを利用してパーティションを作成する手順を見ていこう。

  パーティションを作ろう

 vParsのパーティションを作成するには、vparcreateコマンドを実行すればよい。以下は、Bergenという名称のパーティションを新規作成する例である。

# vparcreate -p Bergen -a cpu::3 -a cpu:::2:4 -a mem::1024 \
      -a io:0/0 -a io:0/0/2/0.6.0:BOOT -b /stand/vmunix -B auto

 以下、このコマンドの各オプションの意味を簡単に説明しよう。

  バウンドCPUとアンバウンドCPU

 上記コマンド例の「-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を増やしておくことで、パーティション間でプロセッサ・パワーを融通しやすくなるだろう。

  メモリとI/Oの割り当て

 上記コマンド例のオプション「-a mem::1024」は、このパーティションのメモリサイズを1024MB(1GB)に設定することを表している。メモリサイズは64MBの倍数で指定する必要がある。また、上記例のようなサイズ指定だけでなく、メモリのアドレス範囲を特定することも可能だ。なお、いったんパーティションをシャットダウンすれば、パーティションのメモリサイズを後から変更することもできる。

 続くオプション「-a io:0/0」は、パーティションが占有するI/Oとして、LBAレベル0/0を割り当てることを表す。HP-UXサーバが有するLBAレベルを知るには、ioscanコマンドを実行すればよい。

0/0 ba Local PCI Bus Adapter (782)
0/0/2/0 ext_bus SCSI C875 Ultra Wide Single-Ended
0/0/2/1 ext_bus SCSI C875 Ultra Wide Single-Ended

 上記のリストは、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プロンプトより以下のコマンドを実行する。

hpux /stand/vpmon vparload -p Bergen

 この例では、ISLからvParsモニター(vpmon)を呼び出し、そのvparloadコマンドを実行することでパーティションBergenを起動している。vParsモニターとは、HP-UXサーバのハードウェアと各パーティションのHP-UXカーネルの間に位置するモニターソフトウェアであり、パーティション構成の管理やハードウェアリソースの割り当て、パーティションの起動などを担当している。vParsの要ともいえるソフトウェアだ。

  CPUの動的な移動

 上述したとおり、vParsではシステムの動作を止めずに、アンバウンドCPUをパーティション間で移動することが可能だ。実際には、パーティション構成を変更するコマンドvparmodifyを以下のように実行すればよい。

# vparmodify -p Bergen -a cpu::1

 この例では、オプション「-a cpu::1」を指定し、パーティションBergenのアンバウンドCPUを1つ増やしている。一方アンバウンドCPUを1つ減らすには「-d cpu::1」と記述すればよい。CPUの移行はたいてい即座に実行されるが、場合によっては移行までに若干の時間を要することもある。

 パーティション構成の変更結果を確認するには、vparstatusコマンドを用いる。図1は、BergenのほかにOslo、Trondheimと名付けられた3つのパーティションを有するHP-UXサーバにて同コマンドを実行した例だ。

図2 vparstatusコマンドの実行結果 例

 この例を見れば分かるように、各パーティションの動作状態をはじめ、アンバウンド/バウンドCPUの数、メモリサイズなどを知ることができる。

 以上、ここではvParsによるパーティショニングの実例を紹介した。ご覧いただいたとおり、vParsの管理は数種類のコマンドだけで実施でき、さほど難しいものではない。CPUパワーに余裕のあるHP-UXサーバをお持ちであれば、ぜひ一度vParsを導入し、その便利さを実感してみてはいかがだろうか。

第3回 

index
@IT [FYI]
サーバ増強の“最適解”──「サーバ仮想化」最前線
 第1回
サーバ仮想化の新発想「仮想スケールアウト」とは
 第2回
高負荷時は数秒でサーバ増強。仮想スケールアウトの凄さ
 第3回
商用UNIXのパーティション技術最新事情
第4回
サーバを増やす「打ち出の小づち」、vPars

 
本記事は、日本ヒューレッド・パッカードのHP-UX Developer Edgeに掲載された記事を許諾を得て、再構成したものです。詳しくは、HP-UX Developer Edgeの以下の記事をご参照ください。(要登録、登録無料)

『サーバを増やす「打ち出の小づち」──vParsを使いこなす』

関連リンク

@IT [FYI] 関連記事

@IT News/記事
Javaパフォーマンスチューニングのルール(Java Solution)
IT管理者のための仮想化技術入門(System Insider)

HPの掲げるIT基盤「Adaptive Infrastructure」とは?(System Insider)
実行スピードに挑戦するJavaアーキテクチャの変遷をたどる(Java Solution)
「最重要製品の位置付け」、HP 新ブレード戦略の中身は(@IT News)
64ビット化と仮想化でエンタープライズ市場を制す、HP(@IT News)
HP、サーバ仮想化技術のマルチOS化を含む強化計画(@IT News)
国内UNIXサーバ市場の“リーダー”はHP、IDC Japan(@IT News)
ユーティリティ化に見るHPがユニークな点(@IT News)
メインフレームを駆逐せよ! HPのオープン戦略(@IT News)
SolarisエンジニアをHP-UX陣営に取り込むHPの秘策(@IT News)
日本HPと日本BEA、二度目の握手を交わす(@IT News)



 
@ITトップ@IT Special インデックス会議室利用規約プライバシーポリシーサイトマップ