(57)【特許請求の範囲】
【請求項１】
複数のディスクドライブと、
ホストコンピュータから受信されるデータからパリティデータを生成するものであり、前記複数のディスクドライブにデータ及びパリティデータを転送するディスクドライブインタフェース部を備える、ディスクアレイ制御部と、
前記複数のディスクドライブ及び前記ディスクドライブインタフェース部と接続される複数のスイッチと、を備え、
前記複数のディスクドライブの各々は、少なくとも１つの第１経路を介してポイント・ツー・ポイントで前記複数のスイッチのうち少なくとも１つのスイッチに接続され、
前記複数のディスクドライブのうち第１のディスクドライブと接続される前記第１経路と、前記複数のディスクドライブのうち第２のディスクドライブと接続される前記第１経路とは、相互に異なり、
前記複数のスイッチの各々は、少なくとも１つの第２経路を介して前記ディスクドライブインタフェース部に接続され、
前記複数のスイッチのうちの少なくとも１つのスイッチは、前記ディスクドライブインタフェース部からパリティデータを受信する場合に、当該スイッチに接続される複数のディスクドライブのうちパリティデータの転送先のディスクドライブに接続された第１経路を介して、パリティデータを前記転送先のディスクドライブに転送するものであり、 前記複数のスイッチのうちのその他のスイッチは、前記ディスクドライブインタフェース部からデータを受信する場合に、当該スイッチに接続される複数のディスクドライブのうちデータの転送先のディスクドライブに接続された第１経路を介して、データを前記転送先のディスクドライブに転送するものであることを特徴とするディスクアレイ装置。
【請求項２】
請求項１に記載のディスクアレイ装置において、
前記複数のスイッチの各々は、複数の前記第１経路と前記第２経路との接続を動的に切り替えることを特徴とするディスクアレイ装置。
【請求項３】
請求項１に記載のディスクアレイ装置において、
前記複数のディスクドライブの少なくとも１つはスペアディスクドライブであり、前記スペアディスクドライブは、前記複数のディスクドライブの他の１つのディスクドライブのデータ又はパリティデータを格納することを特徴とするディスクアレイ装置。
【請求項４】
請求項１に記載のディスクアレイ装置において、
前記第２経路は、ファイバチャネルインタフェースによって通信する経路であることを特徴とするディスクアレイ装置。
【請求項５】
請求項１乃至４記載のディスクアレイ装置において、
前記第１経路の数は、前記第２経路の数よりも多いものであることを特徴とするディスクアレイ装置。
【請求項６】
請求項１乃至４記載のディスクアレイ装置において、
前記複数のスイッチの各々は、前記インタフェース部からデータとパリティデータと前記転送先のディスクドライブの識別情報とを受信し、前記識別情報に基づいてデータ又はパリティデータを前記転送先のディスクドライブに転送することを特徴とするディスクアレイ装置。
【請求項７】
データが格納される複数のディスクドライブと、
ホストコンピュータから受信されるデータからパリティデータを生成するものであり、前記複数のディスクドライブにデータ又はパリティデータを転送するディスクドライブインタフェース部を備える、ディスクアレイ制御部と、
前記複数のディスクドライブ及び前記ディスクドライブインタフェース部と接続される複数のスイッチと、を備え、
前記複数のディスクドライブの各々は、少なくとも１つの第１経路を介してポイント・ツー・ポイントで前記複数のスイッチのうちの少なくとも一つのスイッチに接続され、
前記複数のディスクドライブのうち第１のディスクドライブと接続される前記第１経路と、前記複数のディスクドライブのうち第２のディスクドライブと接続される前記第１経路とは、相互に異なり、
前記複数のスイッチの各々は、少なくとも１つの第２経路を介して前記ディスクドライブインタフェース部に接続され、
前記複数のスイッチのうちの少なくとも１つのスイッチは、前記第２経路を介して受信するパリティデータを、当該スイッチに接続される複数のディスクドライブの中から選択された転送先のディスクドライブに対して、前記転送先のディスクドライブに接続された第１経路を介して転送するものであり、
前記複数のスイッチのうちのその他のスイッチは、前記第２経路を介して受信するデータを、当該スイッチに接続される複数のディスクドライブの中から選択された転送先のディスクドライブに対して、前記転送先のディスクドライブに接続された第１経路を介して転送するものであることを特徴とするディスクアレイ装置。
【請求項８】
請求項７記載のディスクアレイ装置において、
前記第１経路の数は、前記第２経路の数よりも多いものであることを特徴とするディスクアレイ装置。
【請求項９】
請求項７記載のディスクアレイ装置において、
前記複数のスイッチの各々は、前記少なくとも１つの第２経路を介して、データとパリティデータと前記転送先のディスクドライブの識別情報とを受信し、前記識別情報に基づいてデータを前記転送先のディスクドライブに転送することを特徴とするディスクアレイ装置。
【請求項１０】
複数のディスクドライブと、
ホストコンピュータから受信されるデータからパリティデータを生成するものであり、前記複数のディスクドライブにデータ又はパリティデータを転送するディスクドライブインタフェース部を備える、ディスクアレイ制御部と、
前記複数のディスクドライブ及び前記ディスクドライブインタフェース部と接続される複数のスイッチと、を備え、
前記複数のディスクドライブの各々は、少なくとも１つの第１経路を介してポイント・ツー・ポイントで前記複数のスイッチのうち少なくとも１つのスイッチに接続され、
前記複数のディスクドライブのうち第１のディスクドライブと接続される前記第１経路と、前記複数のディスクドライブのうち第２のディスクドライブと接続される前記第１経路とは、相互に異なり、
前記複数のスイッチの各々は、少なくとも１つの第２経路を介して前記ディスクドライブインタフェース部に接続され、
前記複数のスイッチのうちの少なくとも１つのスイッチは、前記第２経路を介してパリティデータを受信する場合に、当該スイッチ内部の接続関係を切替え、前記受信したパリティデータを前記第１経路を介して当該スイッチに接続される複数のディスクドライブのうちの１つのディスクドライブに転送し、
前記複数のスイッチのうちのその他のスイッチは、前記第２経路を介してデータを受信する場合に、当該スイッチ内部の接続関係を切替え、前記受信したデータを前記第１経路を介して当該スイッチに接続される複数のディスクドライブのうちの１つのディスクドライブに転送することを特徴とするディスクアレイ装置。
【請求項１１】
請求項１０記載のディスクアレイ装置において、
前記第１経路の数は、前記第２経路の数よりも多いものであることを特徴とするディスクアレイ装置。
【請求項１２】
請求１０記載のディスクアレイ装置において、
前記複数のスイッチの各々は、前記第２経路を介して、データと、パリティデータと、データの転送先のディスクドライブを示す識別情報と、を受信し、前記識別情報に基づいてデータを前記転送先のディスクドライブに転送することを特徴とするディスクアレイ装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ディスクサブシステム、ディスクアレイ、ディスクドライブを内蔵した計算機等の電子機器に関し、特にアレイディスクをファブリックスイッチ接続し高速転送を可能とする技術に関する。
【０００２】
【従来の技術】
一般に、ディスクアレイにおいてディスク制御装置と複数のディスクドライブとを接続する場合には、特開平１０−１７１７４６号公報に記載のようにＳＣＳＩインタフェース、若しくはファイバチャネル・アービトレイテッドループ・トポロジが利用されている。
【０００３】
ＳＣＳＩインタフェースは、同一線路上にデータを時分割して転送する方式をとっており、イニシエータに対するアクセスは、１伝送路上に１時刻あたり１対１の通信を行う方式である。
【０００４】
ファイバチャネル・アービトレイテッドループ・トポロジでは、ＳＣＳＩインタフェースに対して、シリアルインタフェースによりループ状にイニシエータ、ディスクドライブを接続することができ、フレームに分割されたデータを時分割して転送し、同時に多数デバイスの通信が行え、接続可能ディスクドライブ数も１２６と拡張できる。
【０００５】
【発明が解決しようとする課題】
今後ディスクドライブの小型化・高密度化により、より多くのディスクドライブを使用することが可能となると考えられる。
【０００６】
ＳＣＳＩインタフェースは、１伝送路上に１時刻あたり１対１の通信を行う方式であるため同時に多数のイニシエータとディスクドライブの通信ができない。また、接続可能なディスクドライブの数も７から１５台と少ない。そのためＳＣＳＩを用いたインタフェースでドライブが増加した場合に１本のインタフェースで１対１の接続を行おうとすると、多数のインタフェースが必要となり、実装面で困難が生ずる。また、１つの制御回路で接続可能なディスクドライブの数が少ないため、多数の制御回路を使用する必要が生じる。
【０００７】
一方、ファイバチャネルを使用した場合、ディスクドライブはプロトコルが制御装置とは異なるためにスイッチ接続が出来ず、多数のディスクドライブが同一ループを共有するファイバチャネル・アービトレイテッドループを用いてループ接続とせざるを得なかった。そのため、同一ループに接続されるディスクドライブ数を増加すると、ディスクドライブのデータ転送速度がループの最大データ転送速度よりも大きくなり、結果的にループの最大データ転送速度以上の効率では転送が行えなくなりＳＣＳＩインタフェースと同程度のデータ転送速度でしか接続できなかった。
【０００８】
【課題を解決するための手段】
上記課題を解決するため本発明では、ディスクドライブと制御装置とをスイッチ接続を可能とするため、プロトコル制御部をファイバチャネル・ファブリック・スイッチとディスクドライブとの間に設ける。
【０００９】
【発明の実施の形態】
以下、図面を用いて本発明を適用した外部記憶装置（ディスクサブシステム）の実施例を説明する。図１は全体図である。
【００１０】
図に示す外部記憶装置において、Ｎ個のディスクアレイ制御回路（制御部）（１−１）〜（１−Ｎ）（途中の１−２等は省略、以下同じ）は、上位側はホストコンピュータ（図示せず）に接続され、下位側はＭ個のディスクドライブインターフェイス（ディスクドライブＩ／Ｆ）制御回路（２−１）〜（２−Ｍ）を備えている。ディスクアレイ制御回路のハード構成の詳細は後述する。Ｍ個のファイバチャネル・ファブリック・スイッチ制御回路（３−１）〜（３−Ｍ）は、ファイバチャネル・インタフェース５によってディスクドライブを制御するディスクドライブインターフェイス（Ｉ／Ｆ）制御回路（２−１）〜（２−Ｍ）にそれぞれ接続されている。そして一つのファイバチャネル・ファブリック・スイッチ制御回路に対してＬ個、計Ｍ×Ｌ個のディスクドライブ（４（１，１）〜４（Ｍ，Ｌ））は、ファイバチャネル・インタフェース６によって、ファイバチャネル・ファブリック・スイッチ制御回路（３−１）〜（３−Ｍ）と接続されている。
【００１１】
また、各ディスクドライブインタフェース制御回路（２−１）〜（２−Ｍ）、及びデータを格納しておくディスクドライブ４（１，１）〜４（Ｍ，Ｌ）はそれぞれ個別の識別子（ＩＤ番号）をもつ。ファイバチャネル・ファブリック・スイッチ制御回路（３−１）〜（３−Ｍ）は、ディスクドライブインタフェース制御回路（２−１）〜（２−Ｍ）から接続するディスクドライブのＩＤ番号を受け取り、対応するディスクドライブインタフェース制御回路（２−１）〜（２−Ｍ）とディスクドライブ４（１，１）〜４（Ｍ，Ｌ）の１対１の接続を確立する。
【００１２】
図２にディスクアレイ制御回路（１−１）〜（１−Ｎ）のハードウェア構成を示す。上位ホストコンピュータ（図示せず）から転送されるデータは、ホストインタフェース制御部７により制御されキャッシュメモリ８に一時格納されると共にパリティデータ生成部９によりパリティデータを付加され、データブロックとパリティデータブロックとに分解（全体でＭ個）される。これらのデータ及びパリティのブロックは、それぞれ対応するインタフェースであるディスクドライブインタフェース制御回路（２−１）〜（２−Ｍ）によりディスクドライブグループ（図示せず）に格納される。
【００１３】
上位ホストコンピュータにデータを転送する場合は、転送するデータがキャッシュメモリ８に存在する場合には、そのデータをホストインタフェース制御部７が上位ホストコンピュータに転送する。転送するデータがキャッシュメモリ８に存在しない場合には、ディスクドライブインタフェース制御回路（２−１）〜（２−Ｍ）がディスクドライブグループより分解されたデータを読み出し、パリティデータ生成部９で分解されたデータを結合した後にキャッシュメモリ８に一時格納するとともにホストインタフェース制御部７が上位ホストコンピュータに転送する。
【００１４】
なお、以上の例はＲＡＩＤを用いた場合のデータ格納方法であり、ＲＡＩＤ方式を用いずにデータを格納することも当然可能である。その場合にはパリティデータ生成部９が存在せずに上位ホストコンピュータ（図示せず）から転送されるデータは、ホストインタフェース制御部７によりキャッシュメモリ８に一時格納されると共にディスクドライブグループ内の何れかのディスクドライブに格納され、ミラー方式の場合には、複数のディスクドライブに同一のデータを複数格納する。読み出す際にもディスクドライブからデータを読み出し、キャッシュメモリ８に一時格納するとともにホストインタフェース制御部７が上位ホストコンピュータに転送する。
【００１５】
以下の例もＲＡＩＤを使用したディスクサブシステムについて説明するが、ＲＡＩＤを用いた場合に限らないことはもちろんである。
【００１６】
図３にファイバチャネル・ファブリック・スイッチ制御回路（３−１）〜（３−Ｍ）のハードウェア構成を示す。ディスクドライブインタフェース制御回路（２−１）と接続されるプロトコル制御部１６（第一のプロトコル制御部）は、アクセス対象となるディスクドライブ４（１，１）〜４（１，Ｌ）のＩＤ番号検出及びファイバチャネル・プロトコルの制御を行う。ディスクドライブ４（１，１）〜４（１，Ｌ）と接続されるプロトコル制御部１６’（第二のプロトコル制御部）はディスクドライブ４（１，１）〜４（１，Ｌ）にＩＤ番号を割り付け、スイッチ制御部１７に担当するディスクドライブ４（１，１）〜４（１，Ｌ）のＩＤ番号を報告する。スイッチ制御部１７は、各ディスクドライブ４（１，１）〜４（１，Ｌ）のＩＤ番号を記憶しており、ディスクドライブインタフェース制御回路（２−１）〜（２−Ｍ）より受領したＩＤ番号によりスイッチ１８を設定し、１対１の接続を確立する。
【００１７】
尚、プロトコル制御はプロトコル制御部１６’側で行うように設定してもよいし、ホストコンピュータからのデータ転送時とホストコンピュータへデータ転送時とや、通常のデータ転送とディスク障害時のデータ移送とでプロトコル制御部１６とプロトコル制御部１６’とを切り換えるように設定してもよい。
【００１８】
また、プロトコル制御部１６或いはプロトコル制御部１６’の何れか一方のみとし、プロトコル制御部１６の代わりにＩＤ番号検出手段を設ける、或いはプロトコル制御部１６’の代わりにＩＤ番号割り付け手段を設けてもよい。
【００１９】
また、ファイバチャネル・ファブリック・スイッチを独立した装置としてではなく、ディスクドライブインターフェイス制御回路（２−１）〜（２−Ｍ）内にプロトコル制御部とスイッチとを設け、直にディスクドライブ４（１，１）〜４（１，Ｌ）と接続するようにしてもよい。
【００２０】
図４にファイバチャネルファブリックスイッチ制御回路（３−１）〜（３−Ｍ）の動作を示す。
【００２１】
ディスクアレイ制御回路（１−１）は、Ｍ個に分解されたデータをディスクドライブグループ（１０−１）に格納する。この際、ディスクアレイ制御回路（１−１）のＭ個のディスクドライブインタフェース制御回路（２−１）〜（２−Ｍ）は、ファイバチャネル・ファブリック・スイッチ制御回路（３−１）〜（３−Ｍ）に対し、ディスクドライブグループ（１０−１）に属するディスクドライブのＩＤ番号を送信し、スイッチの確立を行う。ファイバチャネル・ファブリック・スイッチ制御回路（３−１）〜（３−Ｍ）内のプロトコル制御部１６（図３参照）は、ＩＤ番号を検出し、スイッチ制御部１７にスイッチ接続の切替を要求する。そしてディスクドライブに合わせたプロトコル制御を行う。スイッチ制御部１７（図３参照）はスイッチ１８（図３参照）を接続要求もとのディスクアレイ制御回路（１−１）と接続要求先のディスクドライブグループ（１０−１）に属するディスクドライブ４とを接続するよう切り替える。
【００２２】
このとき、ディスクアレイ制御回路（１−１）は、ディスクドライブグループ（１０−１）とファイバチャネル・ファブリック・スイッチ制御回路（３−１）〜（３−Ｍ）を介して１対１で対応しているので、他のディスクアレイ制御回路（１−Ｎ）と他のディスクドライブグループ（１０−２）は独立して他のデータ転送を行うことが出来る。つまり、ディスクアレイ制御回路（１−Ｎ）がディスクドライブグループ（１０−Ｌ）に対する接続の確立を行っても、ディスクアレイ制御回路（１−１）とディスクドライブグループ（１０−１）及びディスクアレイ制御回路（１−Ｎ）とディスクドライブグループ（１０−Ｌ）との接続は互いに独立して動作することができるので、それぞれのディスクアレイ制御回路及びディスクドライブ間で可能となる最高のデータ転送速度でデータ転送を行うことができる。
【００２３】
尚、詳細は説明しないが、スイッチ制御部１７は上記のスイッチ切換えを行うと共に、データ読み書きの際にディスクドライブが既に読み書きを出来る状態になったという信号を受けてスイッチ１８の接続切換えを行うことで転送時間を有効に最大限確保することができる。
【００２４】
図５に本発明の拡張された実施例を示す。先に示した実施例において、ファイバチャネル・ファブリック・スイッチ制御回路３のプロトコル制御部１６とディスクドライブ４とを１対１で対応させて接続していた部分を、プロトコル制御部１６からファイバチャネル・アービトレイテッド・ループ制御回路１１を介して複数のディスクドライブ４をループ接続するしている。この様に接続することで、安価なディスクドライブ４を多数の接続することで大容量のディスクドライブを備えた場合と同等な性能にできる。この場合でも、全てのディスクドライブがループ接続となる訳ではなく、見かけ上はファイバチャネル・アービトレイテッド・ループ制御回路１１と多数のディスクドライブ４で一つのディスクドライブ４であるので、アクセス性能は低下することがない。
【００２５】
また図示はしないが、ディスクドライブのアクセス速度に対し、ファイバチャネルインタフェースの最大データ転送速度に充分余裕がある場合には、複数のディスクドライブ４をファイバチャネル・アービトレイテッド・ループ制御回路１１に接続し、複数のディスクドライブを同一ループ内に接続し、ファイバチャネルの最大転送レートを複数のディスクドライブ４で共有することで、アクセス性能を低下させることなくディスクドライブ４を増加させることも可能である。
【００２６】
図６に図５に示した実施例に用いるアービトレイテッドループ制御回路１１のハードウェア構成図を示す。
【００２７】
アービトレイテッドループ制御回路１１は、ループバイパス回路１３と複数のディスクドライブ接続ポート１２、及びファブリックスイッチ接続ポート１５からなる。ディスクドライブ４からはループバイパス回路切替信号１４が出力され、ディスクドライブ障害時にはポートをバイパスさせ、ループを切断することなく、他の動作しているディスクドライブへ影響を与えずにディスクドライブの取り外し、追加を行うことを可能とする。
【００２８】
図７に本発明の他の拡張された実施例を示す。
【００２９】
本実施例は、各ファイバチャネル・ファブリック・スイッチ制御回路（３−１）〜（３−Ｍ）に接続されるスペアディスク制御回路１９と、このスペアディスク制御回路１９に接続される複数のスペアディスクドライブ（４−ａ），（４−ｂ）を備えている。そしてファイバチャネル・ファブリック・スイッチ制御回路３内では、故障したディスクドライブ４を含むディスクドライブグループ（図では４（１，２）のディスクドライブグループ）と接続しているプロトコル制御部１６’（図３参照）は、スイッチ１８を介してスペアディスク制御回路１９と接続しているプロトコル制御部１６’に接続される。何れかのディスクドライブが障害を起こした場合、ディスクアレイ制御回路（１−１）〜（１−Ｎ）は、スペアディスクドライブ（４−ａ）または（４−ｂ）にデータの再構築を行う。
【００３０】
特定のディスクドライブ４にエラーが多発し故障のおそれが出た場合には、エラーが多発するディスクドライブ４のデータをスペアディスクドライブ（４−ａ）または（４−ｂ）に移管させ再構築を行う。ディスクドライブ４が完全に破損してしまいデータの移管が不可能な場合には、破損したディスクドライブ４のディスクドライブグループのデータを用いて、図２に示したキャッシュメモリ８とパリティデータ生成部９にて破損データを再生しスペアディスクドライブ（４−ａ）または（４−ｂ）に書き込む。
【００３１】
或いは、スペアディスク制御回路１９が独立して行うようにしてもよい。そのためこのスペアディスク制御回路１９内にキャッシュメモリやパリティデータ再生部を備える。そして、ディスクドライブ４が完全に破損した場合には、残りのディスクドライブグループのデータをスペアディスク制御回路１９で読み込み、破損データを再生してスペアディスクドライブ（４−ａ）または（４−ｂ）に書き込むようにする。
【００３２】
そのため、故障したディスクドライブ４或いは故障個所を修復するためにパリティデータを含め分割されたデータを記憶した各ディスクドライブからスペアディスク制御回路１９へのアクセスと、ディスクアレイ制御回路（１−１）〜（１−Ｎ）を介して行うディスクドライブ４（図では４（１，１）及び４（１，Ｌ）のディスクドライブグループ）とホストコンピュータからのデータアクセスとが独立して動作可能となることで、ホストコンピュータのデータアクセスに影響を与えずにデータの再構築を行うことを可能とする。
【００３３】
また、障害ディスクドライブが正常ディスクドライブと取り替えられた場合も同様にして、スペアディスク制御回路１５がファイバチャネル・ファブリック・スイッチ制御回路（３−１）〜（３−Ｍ）に対し、スペアディスクドライブ（４−ａ），（４−ｂ）と、障害ディスクドライブから取り替えられた正常ディスクドライブと１対１の接続を行い、ディスクアレイ制御回路（１−１）〜（１−Ｎ）とディスクドライブグループ（１０−１）〜（１０−Ｌ）（図４参照）とのアクセスを妨げることなく、独立してデータのコピーを行うことで、ホストコンピュータからのアクセスにまったく影響なく障害ディスクドライブの復旧を行うことができる。
【００３４】
【発明の効果】
本発明により、シリアルインタフェースであるファイバチャネルインタフェースを用い接続線数を減少させ、さらにスイッチ接続を可能とするファイバチャネル・ファブリック・トポロジを用いることでディスクドライブインタフェース回路に多数ディスクドライブを伝送性能を犠牲にすることなく接続することが可能となる。また、各制御装置、ディスクドライブグループ毎に接続を動的に切り替えることで、少数のディスクドライブ制御回路で多数のディスクドライブを制御することができる。更に、ディスクドライブ障害時のデータ移行をディスクドライブインタフェース制御回路とディスクドライブのデータ転送と独立して行うことでシステムの信頼性を向上させることができる。
【図面の簡単な説明】
【図１】本発明実施例の全体図である。
【図２】ディスクアレイ制御回路の詳細図である。
【図３】ファイバチャネルファブリックスイッチ制御回路の詳細図である。
【図４】ファイバチャネルファブリックスイッチの接続図である。
【図５】ファイバチャネルファブリックスイッチとアービトレイテッドループの接続図である。
【図６】ファイバチャネルアービトレイテッドループ制御回路の詳細図である。
【図７】スペアディスク制御回路の接続図である。
【符号の説明】
１…ディスクアレイ制御回路、２…ディスクドライブインタフェース制御回路、３…ファイバチャネルファブリックスイッチ制御回路、４…ディスクドライブ、５…ファイバチャネルインタフェース、６…ファイバチャネルインタフェース、７…ホストインタフェース制御部、８…キャッシュメモリ、９…パリティデータ生成部、１０…ディスクドライブグループ、１１…ファイバチャネルアービトレイテッドループ制御回路、１２…ディスクドライブ接続ポート、１３…ループバイパス回路、１４…ループバイパス信号切替信号、１５…ファブリックスイッチ接続ポート、１６…プロトコル制御部、１７…スイッチ制御部、１８…スイッチ、１９…スペアディスク制御回路。
【図１】
0004294142.tif 000002
【図２】
0004294142.tif 000003
【図３】
0004294142.tif 000004
【図４】
0004294142.tif 000005
【図５】
0004294142.tif 000006
【図６】
0004294142.tif 000007
【図７】
0004294142.tif 000008