10.5.マルチパス化:Quantitative System Performance

10.4.2.ストリングのヘッド」の続きです。(目次はこちら

10.5. マルチパス化


 さっきまで記述していたアーキテクチャ単一パスアーキテクチャである。各々のディスクは1個のストリングのヘッドにつながっており、各々のストリングのヘッドは1台のコントローラにつながっており、各々のコントローラは1個のチャネルにつながっているので、その結果CPUから任意のディスクまでは1個のパスしか存在しない。特定の、チャネルとコントローラとストリングのヘッドを使用しなければならない。これはいくつかの点で制約を課す。

  • 信頼性:任意のパス要素の故障がその下の全てのディスクをアクセス不能にしてしまう。
  • 性能:例えば、あるディスクのストリングのヘッドとコントローラがフリーであっても、自分のチャネルが他のコントローラに関係している他のディスクのためにデータを転送していてビジーであるために、そのディスクがデータの転送が出来ないかもしれない。その時にフリーである他のチャネルを利用する方法がない。
  • 共用:単一パス・アーキテクチャにおいていくつかのCPUを、共用I/Oデバイスによって連携された疎結合マルチプロセッサとして構成することが出来ない。


 マルチパス化はこれらの制約を克服しようとしている。この章の導入での図10.1はマルチパス化I/Oサブシステムを示している。一般に、1個のディスクはいくつかのストリングのヘッドにつながっているだろうし、1個のストリングのヘッドはいくつかのコントローラに、1台のコントローラはいくつかのチャネルにつながっており、ひょっとしたら異なるCPUに接続されているかもしれない。特定のディスクをアクセスするのに使用出来る{チャネル、コントローラ、ストリングのヘッド}のさまざまな組合せの各々は、一意のパスを構成している。システムは個々のデータ転送について1つのパスを選択するアルゴリズムを含んでいる。既存のアルゴリズムは2つの一般的なクラスに該当する。静的再コネクションアルゴリズムでは、I/Oシーケンスを起動するのに任意のフリーのパスを使用するが、ディスクはデータを転送するのにこの同じパスに再コネクトしなければならない。動的再コネクションアルゴリズムでは、再コネクトは任意のフリーなパスについて起こり得る。(興味深いことに、静的再コネクションを持つマルチパス化は通常、単一パスの場合に比べて性能悪化をもたらす。それは信頼性と共用化のために大目に見られている。)
 マルチパス化をモデル化する際、我々の基本の方法は変更しないが、さまざまなディスクについての再コネクト失敗の確率(P_k[reconnect\;fails])はより複雑になる。3つの要因がこの複雑さの原因になっている。

  • さまざまなパス要素の稼動率を見積もるために、パス選択アルゴリズムを考慮しなければならない。というのは、I/Oサブシステム階層のどの「レベル」でも(つまり、チャネルあるいはコントローラあるいはストリングのヘッドのレベルで)特定のディスクに関する要求による稼動率はこのアルゴリズムによって決定される仕方でいくつかのパス要素の間で分配されるからである。この問題はセクション10.5.1で検討される。
  • 一旦、さまざまなパス要素の稼動率が分かったとしても、特定のディスクの再コネクト失敗の確率を見積もることはやはり簡単ではない。これは個々のディスクについていくつかのパスが使用可能だからである。これらのパスの各々がビジーであることを見い出す確率を見積らなければならない。次に、これらのパス・ビジー確率が与えられたならば再コネクト失敗の確率を決定するためにパス選択アルゴリズムを考慮しなければならない。この問題はセクション10.5.2で検討される。
  • 特定のディスクが特定のパスがビジーであるのを見い出す確率の式において、マルチパス化のための追加の項が導入されなければならない。この問題はセクション10.5.3で検討される。


アルゴリズム10.3はマルチパス化を待ち行列ネットワーク・モデル内に表現するための技法の一般的な構造を示している。

  • 1.
    • I/Oサブシステムがディスクによってのみ表現されているような、システムの待ち行列ネットワーク・モデルを定義する。システム・スループットXの初期見積もりを行う。
  • 2.
    • 以下のように繰り返す。
    • 2.1
      • 個々のディスク kのデータ転送による稼動率を見積もる。
        • U_k(transfer)=XV_ktransfer_k
    • 2.2
      • システムのパス構造とパス選択アルゴリズムと矛盾しない仕方でさまざまなパス要素の間でディスクのデータ転送稼動率を分配することによって、さまざまなパス要素の稼動率を見積もる。(セクション10.5.1を参照)
    • 2.3
      • 個々のディスクkの実効サービス要求時間を見積もる。
        • ディスクkが使用出来る個々のパスについてP_k[path\;busy]、ディスクkが再コネクトを試みる時にこのパスがビジーであるのを見い出す確率、を見積もる。
        • これらの確率をシステムのパス選択アルゴリズムと一緒に考慮して、P_k[reconnect\;fails]、ディスクkが再コネクトに失敗する確率を見積もる。(セクション10.5.3を参照)
        • この確率を前提として、通常の仕方でretries_kD_kを見積もる。
          • retries_k=\frac{P_k[reconnect\;fails]}{1-P_k[reconnect\;fails]}
          • D_k=V_k\left[seek_k+latency_k+transfer_k
            • \left\;+(retries_k{\times}rotation_k)\right]
    • 2.4
      • 待ち行列ネットワーク・モデルを評価する。
    • システム・スループットXの連続する見積が充分近くなるまでステップ2を繰り返す。
  • 3.
    • 最終繰返しから性能尺度を得る。

アルゴリズム10.3 未完成のマルチパス化


10.5.1.パス要素の稼動率の見積り」に続きます。