1    システム・チューニングの概要

Tru64 UNIX は,システムの性能をモニタリングするためのさまざまなツールを備えています。 本書では,システムの性能を改善するための推奨チューニング方法について説明します。 どのようなシステム属性でも,変更を行う場合は,事前に以下の内容を理解しておく必要があります。

この章ではシステム・チューニングの概要を説明します。 以下の項目があります。

1.1    ハードウェア構成

構成には,オペレーティング・システムとアプリケーション・ソフトウェアだけでなく,システム,ディスク・ストレージ,ネットワーク・ハードウェアも含まれます。 どのように構成するかによって,CPU パワー,メモリ・リソース,入出力性能,および記憶容量が変化します。 本書で説明する構成ガイドラインに従って,作業負荷,性能,および可用性の要件に合った構成を選択してください。

システムの構成後は,オペレーティング・システムをチューニングして性能を改善できます。 通常のチューニングでは,カーネル・サブシステムの動作と性能に影響する属性の省略時の値を変更して,カーネルを変更します。

以降の節では,CPU,メモリ,および入出力構成がどのように性能に影響するかを理解する上で役立つ情報を説明します。 ハードウェアやオペレーティング・システムの性能の特性については,Tru64 UNIX Version 5.1B QuickSpecsおよび 『Tru64 UNIX 概要』を参照してください。

1.1.1    ハードウェア構成の概要

ご使用のシステムのハードウェア環境を理解するために,ハードウェア構成図を作成することをお勧めします。 図 1-1 に,ハードウェア構成の例を示します。 この例では,CPU,ホスト・バス・アダプタ,ネットワーク・インタフェース・カード,ファイバ・チャネル・スイッチとファイバ・チャネル接続,およびストレージ・アレイの数など,システムのハードウェア構成要素のうち性能に影響を与える主要な構成要素を図で示しています。

図 1-1:  ハードウェア構成図の作成

1.2    性能に関する用語と概念

システムの性能は,システムのリソースの利用効率に従って変化します。 リソースとは,ユーザやアプリケーションが利用できるハードウェアおよびソフトウェアの構成要素です。 システムは,アプリケーションやユーザによる通常の作業負荷で,十分に動作しなければなりません。

作業負荷は時が経つに従って変化するため (たとえば,アプリケーションの実行を追加するなど),システムはスケーラブルでなければなりません。 スケーラブルとは,ハードウェア・リソースを追加することで,期待どおりの効果を得ることができる,システムの能力のことです。 スケーラビリティは,性能を大幅に悪化させることなく,作業負荷の増加を吸収できる,システムの能力も指します。

構成分野によっては,性能上の問題はボトルネックと呼ばれます。 ボトルネックは,作業負荷の増大によって能力 (システム・リソースの論理上の最大スループット) よりも多くのリソースが必要となった場合に発生します。

多くの場合,性能は 2 つの速度で表されます。 帯域幅は,入出力サブシステムや構成要素がデータ・バイトを転送できる速度です。 帯域幅は,転送速度とも呼ばれます。 帯域幅は,大規模なシーケンシャル・データ転送を行うアプリケーションで特に重要です。

スループットは,入出力サブシステムや構成要素が入出力操作を行える速度です。 スループットは,小規模な入出力操作をたくさん行うアプリケーションで特に重要です。

性能は,待ち時間でも計測されます。 待ち時間は,特定の動作が完了するまでの時間です。 待ち時間は,遅延とも呼ばれます。 高性能のシステムは,待ち時間が短い必要があります。 入出力待ち時間はミリ秒単位,メモリ待ち時間はナノ秒単位で計測されます。 メモリ待ち時間は,メモリのバンク構成と,メモリ量により異なります。

ディスクの性能は通常,ディスク・アクセス時間で表されます。 ディスク・アクセス時間は,シーク時間 (ディスクのヘッドが,特定のディスク・トラックへ移動するための時間) と回転待ち時間 (ディスクが特定のディスク・セクタまで回転するための時間) を合わせたものです。

データ転送には,ファイル・システムのデータの転送と,raw 入出力 (ファイル・システムを含まないディスクまたはディスク・パーティションへの入出力) があります。 raw 入出力では,バッファとキャッシュがバイパスされるため,場合によってはファイル・システム入出力よりも性能が良いことがあります。 raw 入出力は,オペレーティング・システムやデータベース・アプリケーション・ソフトウェアでよく使用されます。

データ転送には,アクセス・パターンが複数あります。 シーケンシャル・アクセス・パターンは,ディスク上の連続する (隣接する) ブロックからデータの読み取り/書き込みを行うアクセス・パターンです。 ランダム・アクセス・パターンは,ディスク上の異なる位置 (通常は,隣接していない位置) のブロックからデータの読み取り/書き込みを行うアクセス・パターンです。

1.3    ディスク・ストレージ・リソース

ディスク・ストレージの構成は幅が広いため,どの構成がアプリケーションやユーザの性能や可用性の要件に合っているかを判断しなければなりません。

ディスク・ストレージの構成では,個々のディスクを従来の個別ディスク・パーティションに分割した構成とすることもできます。 ただし,LSM (Logical Storage Manager) を使用して,大規模なディスク・ストレージを管理することもできます。 LSM を使用すると,ストレージの共用プールの設定が可能で,RAID サポートなどの高性能,高可用性の機能も利用できます。

ストレージの構成には,ハードウェア RAID サブシステムを含めることもできます。 このサブシステムを使用すると,1 つの入出力バスに接続できるディスク数が大幅に増え,RAID サポートやライトバック・キャッシュなど,多くの高性能機能や高可用性機能が利用できます。 ハードウェア RAID サブシステムにはさまざまなタイプがあり,各種の環境に適合できます。

ホスト・バス・アダプタ,RAID コントローラ,およびディスクにはさまざまな性能のものがあり,ファイバ・チャネルと,さまざまなバージョンのパラレル SCSI (Small Computer SYstem Interface) をサポートします。 ファイバ・チャネルと SCSI はデバイスおよび相互接続の技術であり,高性能,高可用性,および構成の柔軟さの点で進化し続けています。 ディスク・ストレージ・リソースについての詳細は,以下の項を参照してください。

1.3.1    RAID 技術

ストレージの構成で RAID (redundant array of independent disks) 技術を使用すると,性能とデータの可用性を高くできます。 LSM (Logical Storage Manager) を使用するか,ハードウェア・ベースの RAID サブシステムを使用すると,RAID 機能を利用できます。

主な RAID レベルには,次の 4 つがあります。

さらに,高性能 RAID コントローラでは,動的パリティ RAID (アダプティブ RAID3/5 とも呼ばれる) をサポートしています。 この RAID は RAID3 と RAID5 の長所を組み合わせたもので,各種のアプリケーションでのディスク入出力の性能を改善します。 動的パリティ RAID では,必要な作業負荷に応じて,データ転送を多用するアルゴリズムと入出力操作を多用するアルゴリズムの間で動的な調整を行います。

RAID の性能は,RAID サブシステム内のデバイスの状態に依存します。 この状態には,次の3 種類があります。

表 1-1 では,各 RAID レベルでの性能と,可用性のレベルを比較しています。

表 1-1:  RAID レベルごとの性能と可用性の比較

RAID レベル 性能 可用性のレベル
RAID0 (ストライピング) 入出力負荷が平均化し,スループットが向上する。 単独のディスクより低い。
RAID1 (ミラーリング) 読み込みの性能は向上するが,書き込みの性能は低下する。 最高。
RAID0+1 入出力負荷が平均化し,スループットが向上する。 ただし,書き込みの性能は低下する。 最高。
RAID3 帯域幅が改善されるが,複数のディスクで障害が発生した場合は,性能が低下することがある。 単独のディスクより高い。
RAID5 スループットが改善されるが,複数のディスクで障害が発生した場合は,性能が低下することがある。 単独のディスクより高い。
動的パリティ RAID (RAID3/5) 帯域幅とスループットが改善されるが,複数のディスクで障害が発生した場合は,性能が低下することがある。 単独のディスクより高い。

RAID 構成を選択するときには,考慮しなければならない事項が多数あります。

RAID 構成についての詳細は,第 9 章を参照してください。

1.3.2    SCSI の概念

最も一般的な SCSI タイプは,パラレル SCSI です。 これは,SCSI の一種であり,幅広い性能オプションや構成オプションをサポートしています。 この SCSI には,データ・パス (ナローまたはワイド),バス速度 (Slow,Fast,Ultra,Ultra2,Ultra3),および転送方式 (シングルエンドまたはディファレンシャル) によるバリエーションがあります。 これらの SCSI 属性によって,バスの帯域幅と,SCSI バスの最大長が決まります。

シリアル SCSI は,次世代の SCSI です。 シリアル SCSI は,パラレル SCSI の速度,距離,接続性 (バス上のデバイス数) の制限を緩和し,ホット・スワップやフォールト・トレランスなどの高可用性機能も提供します。

ファイバ・チャネルは,シリアル SCSI の一種です。 ファイバ・チャネルは,複数のプロトコル (SCSI,IPI,FIPS60,TCP/IP,HIPPI など) をサポートする高性能入出力バスで,インテリジェント・スイッチのネットワークをベースとしています。 リンク速度は,全二重モードで最大 100 MB/秒です。

以降の項では,パラレル SCSI の概念を詳細に説明します。

1.3.2.1    データ・パス

ディスク,ホスト・バス・アダプタ,入出力コントローラ,およびストレージ筐体は,固有のデータ・パスをサポートします。 データ・パスとバス速度によって,バスの実際の帯域幅が決まります。 データ・パスには,次の 2 種類があります。

最近の大部分のディスクは,ワイド・データ・パスをサポートしています。 旧式のディスクには,ワイド・データ・パスをサポートするバージョンと,ナロー・データ・パスをサポートするバージョンがあります。 データ・パスの異なる (または転送方式の異なる) デバイスは,同じバス上で直接接続することはできません。 データ・パスの異なるデバイスを接続するには,SCSI 信号変換器 (たとえば,DWZZA や DWZZB) か,UltraSCSI エクステンダ (たとえば,DWZZC や DWZZH (SCSI ハブ)) を使用しなければなりません。

1.3.2.2    SCSI バス速度

SCSI バス速度は 1 秒あたりの転送数であり,転送速度または帯域幅ともいいます。 バス速度が速いほど,性能も良くなります。 バス速度とデータ・パス (ナローまたはワイド) によって,実際のバス帯域幅 (1 秒あたりの転送バイト数) が決まります。

すべてのデバイスが,すべてのバス速度をサポートしているわけではありません。 ホスト・バス・アダプタのバス速度を設定するには,アダプタのタイプに応じて,コンソール・コマンドか LFU (Loadable Firmware Update) ユーティリティを使用します。 SCSI デバイスのサポート状況については,TruCluster Server Software Version 5.1B QuickSpecsを参照してください。

表 1-2 に,利用できるバス速度を示します。

表 1-2:  SCSI バス速度

バス速度 最大転送速度 (100 万転送/秒) 最大バイト転送速度: ナロー (MB/秒) 最大バイト転送速度: ワイド (MB/秒)
Ultra3 80 80 160
Ultra2 40 40 80
UltraSCSI 20 20 40
Fast SCSI 10 10 20
Slow 5 5 10

弊社の Ultra3 は,Ultra3 SCSI 仕様を実装した Ultra 160/m と互換性があり,これに準拠しています。

Fast SCSIFast10 とも呼ばれ,SCSI-2 仕様の拡張です。 Fast SCSI には高速同期転送オプションがあり,入出力デバイスは同期モードで最高の転送速度になります。

UltraSCSI は Fast20 とも呼ばれ,Fast SCSI の性能や構成上の欠点の多くに対処した,SCSI-2 の高性能な拡張バージョンです。 Fast SCSI のバス速度に比べて,UltraSCSI では帯域幅と構成距離が 2 倍になりますが,費用は変わりません。 また,UltraSCSI では処理時間が短縮され,データ分析が速く正確になります。 すべての UltraSCSI の構成要素は,通常の SCSI-2 の構成要素と互換性があります。

1.3.2.3    転送方式

バスの転送方式とは,SCSI 仕様の電気的な実装方式を指します。 サポートされている転送方式は,次のとおりです。

1.3.2.4    UltraSCSI バス・セグメントの拡張

UltraSCSI デバイスには,シングルエンドとディファレンシャルがあります。 UltraSCSI のバス速度は高速なため,シングルエンド UltraSCSI の信号は,シングルエンドの Fast SCSI の信号と同じ距離まで強度と完全性を維持することができません。 このため,UltraSCSI ではバス・セグメントバス・エクステンダを使用して,システムとストレージ間の距離が長くても構成できるようにしています。

UltraSCSI バス・エクステンダは,SCSI プロトコルに影響することなく,2 つのバス・セグメントを連結します。 バス・セグメントは,コンダクタ (ケーブルまたはバックプレーン) とコネクタからなる,切り離せない電気的パスとして定義されています。 各 UltraSCSI バス・セグメントには,バス・セグメントの両端に 1 つずつ,2 つのターミネータがなければなりません。 このため,UltraSCSI のバス・セグメントは,Fast SCSI のバス全体に相当します。 SCSI ドメインは,すべてのバス・セグメント上の SCSI デバイスの集まりです。 Fast SCSI バスの場合と同様に,UltraSCSI のバス・セグメントは,同じタイプ (シングルエンドまたはディファレンシャル) のデバイスのみをサポートします。

UltraSCSI の構成要素を使用すると,UltraSCSI ドメインは Fast SCSI バスよりも遠くまで延長できますが,限界があります。 また,バス・エクステンダを使用すると UltraSCSI ドメインを直線ではなくツリー状にできるため,バスの長さを考慮する代わりに,UltraSCSI ドメインの直径を考慮しなければなりません。

1.3.2.5    SCSI バスの長さとターミネーション

SCSI バスのケーブルの長さには制限があります。 ケーブルの最大長は,バス速度と転送方式 (シングルエンドまたはディファレンシャル) に依存します。 物理バスまたは UltraSCSI バス・セグメントのケーブルのトータル長は,ターミネートされた端から端までで計算します。

さらに,各 SCSI バスまたはバス・セグメントは,各終端でのみターミネートしなければなりません。 不適切なバス・ターミネーションや,不適切なバス長は,バスの誤動作の原因となります。

転送方式とデータ・パスが同じデバイス (たとえば,ワイドでディファレンシャル) を使用している場合,バスは 1 つの物理バス (UltraSCSI の場合は,複数のバス・フラグメント) で構成できます。 転送方式の異なるデバイスを使用している場合は,シングルエンドとディファレンシャルの両方の物理バスまたはバス・セグメントが必要になります。 各バスまたはバス・セグメントは両端でのみターミネートし,バス長の規則に従わなければなりません。

表 1-3 に,各種のバス速度と転送方式での最大バス長を示します。

表 1-3:  SCSI バスおよびセグメントの長さ

バス速度 転送方式 バスまたはセグメントの最大長
Slow シングルエンド 6 メートル
Fast シングルエンド 3 メートル
Fast ディファレンシャル 25 メートル
Ultra ディファレンシャル 25 メートル
Ultra シングルエンド 1.5 メートル (デバイス間の距離が 1 メートル未満のデイジー・チェーン構成)
Ultra シングルエンド 4 メートル (デバイス間の距離が 1 メートルを超えるデイジー・チェーン構成)
Ultra シングルエンド 20 メートル (デバイスがバス・セグメントの端だけにある,ポイント・ツー・ポイント構成)

物理バスのトータル長には,各システムやディスク・ストレージのシェルフ内にあるケーブルの長さも含めなければなりません。 この長さは,デバイスによって異なります。 たとえば,BA350,BA353,または BA356 ストレージのシェルフ内部のケーブルの長さは,約 1.0 メートルです。

1.3.3    ファイバ・チャネル

ファイバ・チャネルは,同一の物理インタフェース上で,複数のプロトコルをサポートします。 ファイバ・チャネルは,基本的にはプロトコルから独立したトランスポート・メディアです。 したがって,使用目的には依存しません。

Tru64 UNIX では,SCSI 用ファイバ・チャネル・プロトコル (FCP) を使用して,ファイバ・チャネルを物理インタフェースとして使用します。

ファイバ・チャネルではシリアル転送を行うため,以下の機能を備えることで,パラレル SCSI に存在する制限をなくしています。

ファイバ・チャネルでは,高速なデータ転送速度を達成するために,極めて高速な転送クロック周波数が使用されます。 光ファイバ・ケーブルを使用した場合は,最大 40 km の距離を高速で送信できます。 40 km がトランスミッタとレシーバ間の最大の距離です。 短い距離では,銅ケーブルも使用できます。

以降の項では,ファイバ・チャネルについて詳しく説明します。

1.3.3.1    ファイバ・チャネル・トポロジ

ファイバ・チャネルでは,以下の 3 種類の相互接続トポロジがサポートされています。

注意

調停ループとファブリックを相互接続することもできますが,ハイブリッド構成は現在サポートされていません。 このため,本書では,このようなハイブリッド構成は説明していません。

1.3.3.1.1    ポイント・ツー・ポイント・トポロジ

ポイント・ツー・ポイント・トポロジは,最も簡単なファイバ・チャネル・トポロジです。 ポイント・ツー・ポイント・トポロジでは,1 つの N_Port と,他の N_Port を単一のリンクで接続します。

片方の N_Port から送信されたフレームがすべて,送信したときと同じ順序で他方の N_Port に受信されるため,フレームをルーティングする必要がありません。

図 1-2 に,ポイント・ツー・ポイント・トポロジの例を示します。

図 1-2:  ポイント・ツー・ポイント・トポロジ

1.3.3.1.2    ファブリック・トポロジ

ファブリック・トポロジは,ポイント・ツー・ポイント・トポロジよりも高い接続性を備えています。 ファブリック・トポロジでは,最大 224 ポートまで接続できます。

ファブリックは,フレーム・ヘッダ内のデスティネーション・アドレスを検査して,フレームをデスティネーション・ノードにルーティングします。

ファブリックは,1 台のスイッチで構成することも,または相互接続された数台のスイッチ (最大 3 台のスイッチの相互接続をサポートします) で構成することもできます。 各スイッチには 2 つ以上のファブリック・ポート (F_Port) があり,それらのポートはファブリックのスイッチ機能によって内部で接続されています。 このファブリックのスイッチ機能により,スイッチ内の F_Port 間でフレームがルーティングされます。 2 台のスイッチ間の通信は,2 つの拡張ポート (E_Port) 間でルーティングされます。

N_Port を F_Port に接続すると,ファブリックは,ファブリックに接続された N_Port にファイバ・チャネル・アドレスを割り当てます。 また,ファブリックは,ファブリック内で,フレームがデスティネーションに到達するための経路を選択する必要もあります。

ファブリックが複数のスイッチで構成されている場合,ファブリックは,代替経路を決定して,フレームがデスティネーションに確実に到達するようにできます。

図 1-3 に,ファブリック・トポロジの例を示します。

図 1-3:  ファブリック・トポロジ

1.3.3.1.3    調停ループ・トポロジ

調停ループ・トポロジでは,フレームはノード間のリンクによって形成されたループに沿って伝送されます。 ノードやノードのケーブルに障害が発生した場合,ノードの電源が切断された場合,または保守のためにノードを切り離した場合には,ハブによりそれらのノードがバイパスされ,ループの接続が維持されます。 ハブは,プロトコルからは見えません。 ハブにはファイバ・チャネルの調停ループ・アドレスが割り当てられないため,ハブはファイバ・チャネルの調停ループ・ポートによってアドレス指定することはできません。

ノードは,ループの制御を得る (マスタになる) ために調停を行います。 1 台のノードがマスタになると,各ノードは,ビットマスクにビットを設定することにより,独自のAL_PA (Arbitrated Loop Physical Address) を選択します。 AL_PA は,ループ上にあるノードをアドレス指定するために使用されます。 AL_PA は動的なので,ループが初期化されたり,ノードが追加または削除されたり,またはループの構成が変化するような状況が発生すると,AL_PA が変わります。 ノードは,データを送信する準備が整うと,自身を識別する AL_PA を含むファイバ・チャネル基本信号を送信します。

調停ループ・トポロジでは,ノード・ポートを NL_Port (ノード・ループ・ポート) と呼び,ファブリック・ポートを FL_Port (ファブリック・ループ・ポート) と呼びます。

図 1-4 に,調停ループ・トポロジの例を示します。

図 1-4:  調停ループ・トポロジ

1.3.3.2    ファイバ・チャネル・トポロジの比較

ここでは,ファブリック・トポロジと調停ループ・トポロジを比較対比して,これらのトポロジを選択する理由について説明します。

ファブリック (スイッチ) ・トポロジと比べると,調停ループ・トポロジは低コスト,低性能であり,ファブリックの代わりとして選択できる方式です。 調停ループ・トポロジは,比較的高価なスイッチに代わり,インテリジェントではなく,管理不要なことが多い安価なハブを使用することにより,ファイバ・チャネルのコストを削減します。 ハブは,物理ループを論理スター型に変形させた状態で動作します。 ケーブル,関連するコネクタ,および可能なケーブル長は,ファブリック・トポロジの場合と似ています。 調停ループでは,論理上,ループ内に最大 127 のノードがサポートされます。 調停ループのノードは,自己構成ノードであり,ファイバ・チャネル・アドレス・スイッチは不要です。

調停ループは,帯域幅を犠牲にしてコストを削減します。 ループ内のすべてのノードが帯域幅 (ループごとに 100 MB/秒) を共有するため,ノードとケーブルを追加するに従って帯域幅がわずかに減少します。 ループ上のノードは,他のノード間のトラフィックも含め,ループ上のすべてのトラフィックを扱います。 ハブにポート・バイパス機能を追加すると,ループ上のノードの追加,削除を管理することができます。 たとえば,ポート・バイパス・ロジックが問題を検出すると,ハブは,人手による介入なしでそのノードをループから除くことができます。 このように,ノード障害,ケーブル切断,およびネットワーク再構成などによるダウン時間を回避することで,データの可用性が維持されます。 ただし,ノードの追加や削除,エラーなどにより生じたトラフィックにより,ループが一時的に途絶えることがあります。

ファブリック・トポロジは比較的高価ですが,接続性が高まり,性能も向上します。 スイッチにより,ファブリックへ全二重 100 (200) MB/秒のポイント・ツー・ポイント接続を行えます。 また,ファブリック内のノードが自ノード宛のデータのみを処理することに加え,それぞれのノードがファブリック内の他ノードの再構成や障害回復から切り離されるため,性能とスケーラビリティが向上します。 スイッチでは,ファイバ・チャネル・ファブリックの全体的な構造に関する管理情報を得ることもできます。 これは,通常,調停ループのハブではできません。

表 1-4 は,ファブリック・トポロジと調停ループ・トポロジの比較表です。

表 1-4:  ファイバ・チャネル・ファブリックとファイバ・チャネル調停ループの比較

調停ループを使用する場合 ファブリックを使用する場合
メンバ数が 2 までのクラスタ メンバ数が 3 以上のクラスタ
ソリューションの総コストが低いことと,簡便性が主な要件であるアプリケーション 再構成や修復のための一時的なトラフィックの中断が問題となる,マルチノードのクラスタ構成
調停ループ構成における帯域幅の共有が制限要因とならないようなアプリケーション 調停ループ・トポロジにおける帯域の共有が不適切な広帯域アプリケーション
拡張や規模拡大の予定がない構成 拡張の予定があり,性能のスケーラビリティが必要なクラスタ構成

1.3.3.3    ゾーニング

ここでは,ゾーニングの概要について簡単に説明します。

ゾーンとは,ファブリックに接続されたファイバ・チャネル・デバイスの論理的なサブセットです。 ゾーニングにより,リソースを分割して,管理やアクセス制御を行うことができます。 構成によっては,1 台のスイッチで,複数のクラスタ,さらには複数のオペレーティング・システムに対してサービスを行うようにすることで,ハードウェア・リソースを有効に活用することができます。 ゾーニングでは,ファブリックが複数のゾーンに分割されるので,各ゾーンは実質的に仮想ファブリックになります。

ゾーニングは,以下のような場合に使用します。

注意

最初のゾーニングは,ホスト・バス・アダプタとストレージをスイッチに接続する前に行う必要があります。 ただし,ゾーニングを構成した後は,動的に変更することができます。

1.3.3.3.1    スイッチ・ゾーニングとセレクティブ・ストレージ・プレゼンテーション

HSG80 コントローラのスイッチ・ゾーニング機能とセレクティブ・ストレージ・プレゼンテーション (SSP) 機能は,類似の機能を持っています。

スイッチ・ゾーニングは,どのサーバが相互に通信可能であるか,および各ストレージ・コントローラのホスト・ポートと通信可能であるかを制御します。 SSP は,どのサーバが各ストレージ・ユニットにアクセスできるかを制御します。

スイッチ・ゾーニングでは,ストレージ・システムのレベルでアクセスを制御しますが,SSP ではストレージ・ユニットのレベルでアクセスを制御します。

以下の構成では,ゾーニング,またはセレクティブ・ストレージ・プレゼンテーションが必要です。

ストレージへのアクセスを制御するためには,セレクティブ・ストレージ・プレゼンテーションが好ましい方式です (ゾーニングが不要になります)。

1.3.3.3.2    ゾーニングの種類

ゾーニングには,ソフト・ゾーニングとハード・ゾーニングの 2 種類があります。

どのようなゾーンでも確実にゾーン外へアクセスしないようにするには,ハードウェア・ゾーニングを使用するか,またはソフトウェア・ゾーニングをサポートしていることが明記されているオペレーティング・システムを使用してください。

表 1-5 に,サポートされている各ファイバ・チャネル・スイッチが対応しているゾーニングの種類を示します。

表 1-5:  スイッチがサポートしているゾーニングの種類

スイッチの種類 サポートされるゾーニングの種類
DS-DSGGA ソフト
DS-DSGGB ソフトおよびハード
DS-DSGGC ソフトおよびハード

1.3.3.3.3    ゾーニングの例

図 1-5 に,ゾーニングを使用した構成例を示します。 この構成は,2 つの独立したゾーンからなり,各ゾーンには独立したクラスタがあります。

図 1-5:  単純なゾーン構成

ゾーニングの設定方法については,スイッチに付属の SAN スイッチ・ゾーニングに関するドキュメントを参照してください。

詳細については,『クラスタ・ハードウェア構成ガイド』 を参照してください。

1.3.3.4    スイッチのカスケード接続

複数のスイッチを相互に接続して,スイッチのネットワーク,つまりスイッチのカスケード接続を形成することができます。

スイッチがカスケード接続された構成では,そのスイッチまでのネットワーク (スイッチも含む) に障害が発生しても,SAN 接続ノードへのデータ・パスが失われません。 この構成をメッシュ,またはメッシュ・ファブリックと呼びます。

図 1-6 に,4 台のスイッチを相互にカスケード接続した,回復力の強いメッシュ・ファブリックの例を示します。 この構成は,複数のデータ・パスに障害が発生しても耐久性があり,シングル・ポイント障害を発生させない (NSPOF) 構成です。

図 1-6:  回復力のあるメッシュ・ファブリック (カスケード接続されたスイッチを 4 台使用)

注意

ISL (スイッチ間リンク) が失われると,通信は別のスイッチを経由して別のコントローラの同じポートへルーティングされます。 これは,最大許容ホップ数 2 を満たしています。

ファイバ・チャネルについての詳細は,『クラスタ・ハードウェア構成ガイド』を参照してください。

1.4    ネットワーク・リソース

システムでは,性能の異なるさまざまな種類のネットワークとネットワーク・アダプタがサポートされます。 たとえば,ATM (Asynchronous Transfer Mode) の高性能ネットワークは,ATM ネットワークが提供する高速かつ低遅延という特徴 (交換式,全二重のネットワーク・インフラストラクチャ) を必要とするアプリケーションに適しています。

さらに,複数のネットワーク・アダプタを構成するか,または NetRAIN を使用して,ネットワーク・アクセスを増強し,ネットワークの可用性を高めることができます。

システムは,ネットワーク・インタフェース・カード (NIC) (ネットワーク・インタフェースまたはネットワーク・アダプタと呼ばれることもあります) を経由してネットワークに接続されます。 エンド・システムまたはホストでは,インタフェースについて以下のような選択肢があります。

ルータは,通常,複数のインタフェースを備え,それぞれが異なるサブネットに接続されます。 図 1-7 に,ホスト A とホスト B という 2 つのホストがあり,それぞれが単一のネットワーク・インタフェースでサブネットに接続されているネットワークを示します。

図 1-7:  単一インタフェースの構成

以降の項で,システムの性能改善のために重要なネットワーク・リソースについて説明します。

1.4.1    ネットワーク・サブシステム

ネットワーク・サブシステムによって使用されるリソースの大部分は,動的に割り当てられ,調整されます。 しかし,性能を改善するためのチューニング・ガイドラインがいくつかあり,特に,Webサーバ,プロキシ・サーバ,ファイアウォール・サーバ,ゲートウェイ・サーバなどのインターネット・サーバのようなシステムで有効です。

ネットワークの性能が影響されるのは,リソースの供給がリソースの需要に追いつかない場合です。 以下のような 2 つの条件で,このような状況が発生することがあります。

上記の問題はいずれも,ネットワークのチューニングとは関係ありません。 ネットワーク上の問題の場合は,その問題を切り分けて解消しなければなりません。 ネットワーク・トラフィックが多い場合 (たとえば,システムが 100% の能力で動作しているときに,Web サーバのヒット率が最大値に達した場合) は,ネットワークを再設計して負荷を再分散するか,ネットワーク・クライアントの数を減らすか,またはネットワーク負荷を処理するシステムの数を増やさなければなりません。

1.4.2    冗長ネットワークの使用

ネットワークの接続は,ネットワーク・インタフェースの障害やネットワーク自体の障害のために失われることがあります。 ネットワーク接続に冗長性を持たせることで,ネットワーク接続の可用性を高めることができます。 1 つの接続が利用不能になった場合でも,別の接続を使用してネットワーク・アクセスを継続することができます。 複数のネットワークを使用できるかどうかは,アプリケーション,ネットワーク構成,およびネットワーク・プロトコルに依存します。

また,NetRAIN (redundant array of independent network adapters) を使用すると,同じ LAN セグメント上の複数のインタフェースを単一のインタフェースとして構成し,ネットワーク・アダプタおよびネットワーク接続に対してフェイルオーバをサポートするようにできます。 1 つのインタフェースが常にアクティブになり,その他のインタフェースはアイドルの状態になります。 アクティブなインタフェースが故障すると,アイドル状態のインタフェースが 10 秒以内にオンラインに切り替わります。

NetRAIN は,イーサネットおよび FDDI のみをサポートします。 NetRAIN についての詳細は,1.4.3 項を参照してください。

NetRAIN についての詳細は, nr(7) を参照してください。 ネットワーク構成については,『ネットワーク管理ガイド:接続編』 を参照してください。 ネットワーク性能の改善方法については,第 10 章 を参照してください。

1.4.3    NetRAIN

NetRAIN (Redundant Array of Independent Network Adaptors) インタフェースは,ある種のネットワーク接続障害から保護するメカニズムを提供します。

NetRAIN では,同じローカル・エリア・ネットワーク (LAN)・セグメント上の複数のネットワーク・インタフェースを,NetRAIN セットと呼ばれる,単一の仮想インタフェースに統合します。 セット内の 1 つのネットワーク・インタフェースは常にアクティブであり,その他のインタフェースはアイドルの状態になります。 アクティブなインタフェースに障害が発生すると,アイドル状態のセット・メンバのうちの 1 つのインタフェースが,同じ IP アドレスを使用して,フェイルオーバ時間 (調整可能) 内にオンラインに切り替わります。 図 1-8 に,NetRAIN セットの一部として 3 つのインタフェースを持つホスト A を示します。 この NetRAIN 仮想インタフェースには,アドレス 16.1.1.1 が割り当てられています。

図 1-8:  複数のインタフェース

NetRAIN は,ネットワーク障害の可能性を検出して報告するツール NIFF (Network Interface Failure Finder) を使用して,セット内のネットワーク・インタフェースの状態をモニタリングします。 このツールは,NetRAIN と独立して使用することができます。 NIFF についての詳細は, NIFF(7) を参照してください。

1.4.4    ルーティング

ネットワークに接続されたすべてのシステム (ホストおよびルータ) は,別のネットワークにある他のシステムと通信できるように,ネットワーク・ルーティングをサポートするように構成しなければなりません。 経路とは,あるシステムから別のシステムへパケットがネットワークを通過する際にたどる道筋です。 このようにして,別のネットワークにある他のシステムと通信することができるようになります。 経路は,各システムのルーティング・テーブルまたはルーティング・データベースに保存されます。 各経路のエントリは,以下の項目から成り立ちます。

インターネット制御メッセージ・プロトコル (ICMP) のリダイレクト・メッセージにより,ルーティング・テーブルにその他の経路が追加されることがあります。 これらは,ローカル・ネットワーク内の別のルータにトラフィックを転送するようにホストに伝えるための,ルータからホストに送られるメッセージです。

1.4.5    LAG インタフェース

リンク・アグリゲーション (LAG) インタフェースを使用すると,複数のネットワーク・アダプタを備えたシステムの可用性が高まり,フォルト・トレランス,負荷分散が実現されます。 また,リンク・アグリゲーション,つまりトランキングにより,管理者は 1 つ以上の物理イーサネット NIC を組み合わせて,1 本の論理リンクを作成することができます。 このリンク・アグリゲーション・グループは,上位層のソフトウェアからは単一の論理インタフェースとして見えます。 この単一の論理リンクでは,単一のインタフェースよりも速いデータ転送速度でトラフィックを伝送できます。 これは,リンク・アグリゲーション・グループを構成するすべての物理ポートにトラフィックが分散されるためです。

リンク・アグリゲーションを使用すると,以下の利点があります。

リンク・アグリゲーション・グループの仮想インタフェースは,サーバ間,およびサーバとスイッチ間のポイント・ツー・ポイント接続で使用できます。 詳細は,『ネットワーク管理ガイド:接続編』を参照してください。

1.5    ファイル・システム・リソース

AdvFS (Advanced File System) およびネットワーク・ファイル・システム (NFS) では,ファイル・システムのチューニングが重要です。 一般的に,ファイル・システムのチューニングを行うと,入出力多用型のユーザ・アプリケーションの性能が改善されます。 以降の項では,AdvFS,UNIX ファイル・システム (UFS),および NFS に関係するファイル・システム・リソースについて説明します。

1.5.1    AdvFS の使用

AdvFS (Advanced File System) ファイル・システムは従来の UNIX ファイル・システム (UFS) と異なります。 AdvFS では,システムをシャットダウンせずにいつでもシステムの構成を変更することができます。 AdvFS Utilities を使用する AdvFS では,マルチボリューム・ファイル・システムがサポートされるため,システム要件の変化に従って,簡単にストレージを追加または削除できます。 さらに,LSM (Logical Storage Manager) ボリュームとストレージ・エリア・ネットワーク (SAN) を AdvFS ストレージとして使用できます。

これに対し,UFS モデルは柔軟性がありません。 各ディスク (またはディスク・パーティション) に 1 つのファイル・システムがあります。 UFS のディレクトリ階層構造は,物理ストレージ層と堅く結びついています。 ファイル・システムがいっぱいになった場合,この結びつきのため,一部のファイルを別のディスクに移動すると,それらのファイルの完全パス名が変わります。 論理的なディレクトリをディレクトリ・サブツリーに分割して,それらのサブツリーを別のディスクに移動する作業は,慎重に行う必要があります。 広範囲にわたって計画を立てたとしても,UFS モデルではディレクトリ構造の調節に限界があります。

1.5.1.1    UBC の使用

データが頻繁に再利用される場合は,キャッシングを行うと性能が向上します。 AdvFS では,ユニファイド・バッファ・キャッシュ (UBC) という動的メモリ・キャッシュを使用して,ファイルのメタデータおよびユーザ・データを管理します。

キャッシングに UBC を使用することで,AdvFS は,メモリが利用できる限り,ファイル・データをメモリに保持することができます。 別のシステム・リソースが,ファイル・システムのキャッシュとして使用されているメモリの一部を必要とする場合,UBC はファイル・システムが使用しているメモリの一部を再生して,メモリを要求しているリソースに対してそのメモリを再割り当てします。

AdvFS は,UBC を使用してキャッシングを制御するので,キャッシュのチューニングは UBC のチューニング・パラメータを使用して行います。 UBC のチューニング・パラメータは以下のとおりです。

これらのパラメータを変更する際のガイドラインについては,第 11 章を参照してください。

1.5.2    NFS の使用

ネットワーク・ファイル・システム (NFS) を使用すると,ネットワークを通じて透過的にファイルにアクセスできます。 NFS は,小規模で単純なネットワークから,大規模で複雑なネットワークまで,各種のネットワーク・トポロジをサポートします。 NFS は,ユニファイド・バッファ・キャッシュ (UBC) を,仮想メモリ・サブシステムおよびローカル・ファイル・システムと共有します。

NFS 要求の処理で CPU 時間と実時間の大部分が消費されるため,NFS ではファイル・システムのチューニングが重要です。 理想的には,UBC ヒット率が高くなければなりません。 UBC のヒット率を高くするには,メモリを増やしたり,他のファイル・システムのキャッシュのサイズを小さくする必要があります。

NFS は単純な,状態のない (stateless) プロトコルを使っているので,各クライアントの要求は完全で自己完備型である必要があります。 また,サーバは各要求を完全に処理してから,クライアントに肯定応答を送信する必要があります。

NFS のサービスだけを行っているシステムで性能を改善するのは,汎用タイムシェアリング用に使用しているシステムでのチューニングとは異なります。 これは,NFS サーバは少数の小規模なユーザ・レベル・プログラムだけを実行しており,システム・リソースはほとんど使用しないからです。 ページングやスワッピングも最低限しか発生しないので,メモリ・リソースは,ファイル・システムのデータのキャッシングに重点を置いて割り当てなければなりません。

NFS のチューニングについての詳細は,第 5 章および第 10 章を参照してください。

1.6    メモリ・リソース

システムの性能を確保するためには,メモリ・リソースが十分にあることが重要です。 CPU やメモリを多用するアプリケーションを動作させる構成では,64 ビット・アーキテクチャを使用し,マルチプロセシングで,メモリ容量が最低でも 2 GB の大規模メモリ (VLM) システムが必要です。 大規模データベース (VLDB) システムは,複雑なストレージ構成も使用する VLM システムです。

物理メモリの総量は,システムに実装されているメモリ・ボードの容量によって決まります。 仮想メモリ (vm) サブシステムは物理メモリを,ページという 8 KB の単位で管理します。 ページは,次の領域に分配されます。

図 1-9 に,物理メモリの区分を示します。

図 1-9:  物理メモリの用途

1.6.1    ページングとスワッピング

物理メモリは,すべてのアクティブなプロセスが使用するリソースです。 多くの場合,システム上のアクティブなプロセスすべてに十分な物理メモリを割り当てることはできません。 使用可能な物理メモリを増やすために,vm サブシステムは使用可能な物理メモリの量をモニタリングして,スワップ・デバイスという 2 次メモリ・デバイスにページを移動することがあります。 スワップ・デバイスは,ディスクの構成可能なセクション内にあるブロック・デバイスです。 カーネルは,プロセスがページを参照すると,要求に応じて (on demand) スワップ・デバイスからページを取り出します。 このメモリ管理方式をページングといいます。

負荷が重い場合,プロセス全体がスワップ・デバイスに移動されることがあります。 スワッパと呼ばれるプロセスが,物理メモリとスワップ・デバイスの間の移動を管理します。 このメモリ管理方式をスワッピングといいます。

ページングおよびスワッピングに関連する属性のチューニング方法については,第 12 章 を参照してください。

1.6.2    データのキャッシング

カーネルは,最近アクセスされたデータをメモリにキャッシュ (一時的に保管) します。 データは何度も再使用され,ディスクからデータを取り出すよりもメモリから取り出すほうが高速なので,データをキャッシュすると効率が上がります。 カーネルがデータを取り出すときには,まずデータがキャッシュされているかどうかをチェックします。 データがキャッシュされていれば,すぐにそのデータを返します。 キャッシュされていなければ,ディスクからデータを取り出してキャッシュします。 キャッシュされたデータが後で再使用されると,ファイル・システムの性能が改善されます。

キャッシュされるデータには,ファイルに関する情報,ユーザまたはアプリケーションのデータ,メタデータ (ファイルなどのオブジェクトを記述するデータ) などがあります。 キャッシュされるデータのタイプを,以下のリストに示します。

1.7    CPU リソース

CPU には,さまざまなプロセッサ速度やオンボード・キャッシュ・サイズのものがあります。 さらに,シングル CPU システムか,マルチプロセッサ・システム (2 つ以上のプロセッサが共通の物理メモリを共有する) かを選択できます。 大規模なデータベース環境のように CPU を多用する環境では,作業負荷に対応するためにマルチプロセシング・システムが必要になります。

マルチプロセシング・システムの一例としては,シンメトリック・マルチプロセシング (SMP) システムがあります。 このシステムでは複数の CPU が,共通メモリ上の同じオペレーティング・システムを実行し,命令を同時に実行します。

プログラムの実行中,オペレーティング・システムはデータや命令を,CPU キャッシュ,物理メモリ,およびディスク・スワップ領域の間で移動します。 データや命令のアクセス速度は,それらが置かれている場所によって異なります。 表 1-6 では,各種のハードウェア・リソースについて説明します。

表 1-6:  メモリ管理ハードウェア・リソース

リソース 説明
CPU チップ・キャッシュ CPU チップ内に実装された各種の内部キャッシュ。 サイズはプロセッサにより異なり,最大で 64 KB である。 このキャッシュには,変換索引バッファ (TLB),高速内部仮想物理間変換キャッシュ,高速内部命令キャッシュ,高速内部データ・キャッシュなどがある。
2 次キャッシュ 2 次直接マップ物理データ・キャッシュは CPU の外部にあるが,通常はメイン・プロセッサ・ボード上に実装される。 2 次キャッシュのブロック・サイズは,プロセッサのタイプによって異なり,32 〜 256 バイトである。 2 次キャッシュのサイズは,128 KB 〜 8 MB である。
3 次キャッシュ 3 次キャッシュは,一部の Alpha CPU では利用できない。 その他は,2 次キャッシュと同じ。
物理メモリ 物理メモリの実際の容量は,さまざまである。
スワップ領域 スワップ領域は,1 つ以上のディスクまたはディスク・パーティション (ブロック型特殊デバイス) からなる。

ハードウェア・ロジックと PAL (Privileged Architecture Library) コードによって,CPU キャッシュ,2 次キャッシュ,3 次キャッシュ,物理メモリ間でのアドレスおよびデータの移動の大半が制御されます。 この移動は,オペレーティング・システムからは見えません。

ディスク入出力の速度は遅いため,キャッシュと物理メモリ間の移動は,ディスクと物理メモリ間の移動よりもかなり高速です。 アプリケーションでは,可能な限りディスク入出力操作を避け,キャッシュを利用してください。

図 1-10 では,プログラムの実行中に命令やデータがハードウェア構成要素間をどのように移動するかと,各ハードウェア構成要素からデータや命令をアクセスするのに必要なマシン・サイクルを示します。

図 1-10:  メモリ・ハードウェア間での命令とデータの移動

CPU,2 次キャッシュ,3 次キャッシュについての詳細は,『Alpha Architecture Reference Manual』を参照してください。

CPU の性能を最適化する方法は,いくつかあります。 プロセスを再スケジューリングしたり,クラス・スケジューラを使用してタスクやアプリケーションに割り当てる CPU 時間の割合を指定することができます。 この方法により,CPU 時間の多くを重要なプロセス用に予約し,比較的重要でないプロセスの CPU 使用を制限することができます。 詳細については,13.2.2 項を参照してください。

1.8    作業負荷に適したリソース・モデルの明確化

構成を計画したりチューニングをする前に,作業負荷のリソース・モデルを明確にしなければなりません。 つまり,アプリケーションがメモリと CPU のどちらを多用するかや,アプリケーションがディスク入出力やネットワーク入出力をどのように実行するかを調べなければなりません。 この情報は,作業負荷に適した構成やチューニング・ガイドラインを選択する上で役立ちます。

たとえば,データベース・サーバが大規模なシーケンシャル・データ転送を行っている場合は,高い帯域幅の構成を選択します。 アプリケーションが頻繁にディスク書き込み操作を行う場合は,RAID1 (ミラー化) 構成を選択すべきではありません。

表 1-7 を使って,作業負荷のリソース・モデルを判断し,各モデルで可能な構成ソリューションを把握してください。

表 1-7:  リソース・モデルと,それに対する構成ソリューション

リソース・モデル 構成ソリューション
CPU 多用 マルチプロセシング・システム,高速の CPU,またはハードウェア RAID システム
メモリ多用 VLM システムまたは大規模なオンボード CPU キャッシュ
大量のディスク・ストレージが必要 入出力能力の高いシステム,LSM,またはハードウェア RAID サブシステム
短いディスク遅延時間が必要 半導体ディスク,高速ディスク,RAID アレイ,またはファイバ・チャネル
高スループットが必要 半導体ディスク,高性能 SCSI アダプタ,ストライピング,RAID5,または動的パリティ RAID (アダプティブ RAID3/5)
高帯域幅が必要 半導体ディスク,高性能アダプタ,ワイド・デバイス,RAID3,または動的パリティ RAID
大規模なシーケンシャル・データ転送を頻繁に実行 高性能ディスク,ワイド・デバイス,ストライピング,パリティ RAID
小規模なデータ転送を頻繁に実行 RAID5
読み取り転送を主に発行 ミラーリング,RAID5,またはストライピング
書き込み転送を主に発行 Prestoserve またはライトバック・キャッシュ
頻繁にネットワーク操作を実行 複数のネットワーク・アダプタ,NetRAIN,または高性能アダプタ
アプリケーションの高可用性が必要 クラスタ
データの高可用性が必要 ミラーリング (特に,異なるバスにまたがったミラーリング) またはパリティ RAID
ネットワーク入出力多用 複数のネットワーク・アダプタまたは NetRAIN

1.9    一般的なチューニング対象サブシステム

本書では多くのサブシステム属性のチューニング方法を説明します。 システムに固有の,性能問題に影響を与える属性だけをチューニングすることをお勧めします。 通常チューニングの対象となるのは,次の 5 つのサブシステムです。

本書では,アプリケーションのタイプ別,およびコンポーネント別にシステムをチューニングする方法を説明します。 システムのチューニングを行う前に,システムのハードウェア構成を理解する必要があります (詳細は,1.1 節を参照)。 最も一般的なチューニング対象サブシステムを本書で紹介しますが,性能問題に関係する属性だけをチューニングしてください。

システム性能を改善するために変更すべき属性を詳細に説明している章は,以下のとおりです。

サブシステム属性の詳細は, sys_attrs(5) を参照してください。