(57)【要約】【課題】本発明は、ディスクエンクロージャの保守作業に要する労力および時間を軽減可能なサーバ、ディスクエンクロージャ、ディスク配置制御システム、ディスク配置制御方法、ディスク配置制御プログラムを提供することを目的とする。【解決手段】アレイ状に位置する複数のディスクドライブを備えるディスクエンクロージャを制御するためのサーバであって、前記複数のディスクドライブの配置を記憶する記憶部と、前記配置に基づいて、アレイの空きスペースに隣接するディスクドライブのいずれかを前記空きスペースへ移動させることを繰り返すことにより所定のディスクドライブを所望の位置に移動させる手順を決定する決定部と、前記ディスクエンクロージャに前記手順を実行するように指示する指示部とを備えるサーバを提供する。【選択図】図２
2019032691.tif 000002
【特許請求の範囲】
【請求項１】
アレイ状に位置する複数のディスクドライブを備えるディスクエンクロージャを制御するためのサーバであって、
前記複数のディスクドライブの配置を記憶する記憶部と、
前記配置に基づいて、アレイの空きスペースに隣接するディスクドライブのいずれかを前記空きスペースへ移動させることを繰り返すことにより所定のディスクドライブを所望の位置に移動させる手順を決定する決定部と、
前記ディスクエンクロージャに前記手順を実行するように指示する指示部とを備えるサーバ。
【請求項２】
前記複数のディスクドライブを含む少なくとも１つのＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  ｄｉｓｋｓ）を制御するＲＡＩＤ制御部をさらに備えることを特徴とする請求項１に記載のサーバ。
【請求項３】
前記所定のディスクドライブは点検または交換の対象となるディスクドライブであることを特徴とする請求項１または２に記載のサーバ。
【請求項４】
前記所望の位置は、前記ディスクエンクロージャのフロントパネルの側にあることを特徴とする請求項１〜３のいずれか１項に記載のサーバ。
【請求項５】
前記アレイは２次元矩形アレイであることを特徴とする請求項１〜４のいずれか１項に記載のサーバ。
【請求項６】
ディスクエンクロージャであって、
アレイ状に配置された複数のディスクドライブを含むディスク部と、
前記ディスクエンクロージャに接続されたサーバからの指示に従って、アレイの空きスペースに隣接するディスクドライブのいずれかを前記空きスペースへ移動させる移動部とを備えることを特徴とするディスクエンクロージャ。
【請求項７】
サーバと、前記サーバに接続されたディスクエンクロージャとを含むディスク配置制御システムであって、
前記サーバは、
複数のディスクドライブの配置を記憶する記憶部と、
前記配置に基づいて、アレイの空きスペースに隣接するディスクドライブのいずれかを前記空きスペースへ移動させることを繰り返すことにより所定のディスクドライブを所望の位置に移動させる手順を決定する決定部と、
前記ディスクエンクロージャに前記手順を実行するように指示する指示部とを備え、
前記ディスクエンクロージャは、
アレイ状に配置された複数のディスクドライブを含むディスク部と、
前記指示部からの指示に従って前記アレイの空きスペースに隣接するディスクドライブのいずれかを前記空きスペースへ移動させる移動部とを備えることを特徴とするディスク配置制御システム。
【請求項８】
アレイ状に配置された複数のディスクドライブを備えるディスクエンクロージャを制御するためのディスク配置制御方法であって、
アレイの空きスペースに隣接するディスクドライブのいずれかを前記空きスペースへ移動させることを繰り返すことによって所定のディスクドライブを所望の位置に移動させる手順を決定するステップと、
前記ディスクエンクロージャに前記手順を実行するように指示するステップとを含むことを特徴とする方法。
【請求項９】
前記所定のディスクドライブを含む１組のディスクを用いてＲＡＩＤを構築するステップと、
前記所定のディスクドライブが属するＲＡＩＤの冗長性が確保されなくなった場合に、前記所定のディスクドライブの代わりにスペアのディスクドライブを用いてＲＡＩＤを再構築するステップをさらに含むことを特徴とする請求項８に記載の方法。
【請求項１０】
前記ディスクエンクロージャを制御するサーバからの指示に従って、前記アレイの前記空きスペースに隣接するディスクドライブのいずれかを前記空きスペースへ移動させるステップをさらに含み、
前記ディスクドライブが前記ディスクエンクロージャのコネクタに接続されている場合に、
前記移動させるステップは、
前記ディスクドライブが属するＲＡＩＤの冗長性が確保されるまで待機するステップと、
前記ディスクドライブを前記コネクタから取り外すステップと、
前記ディスクドライブを前記空きスペースへ移動させるステップとを含むことを特徴とする請求項８または９に記載の方法。
【請求項１１】
アレイ状に配置された複数のディスクドライブを備えるディスクエンクロージャを制御するためのディスク配置制御方法をコンピュータに実行させるためのディスク配置制御プログラムであって、
アレイの空きスペースに隣接するディスクドライブのいずれかを前記空きスペースへ移動させることを繰り返すことによって所定のディスクドライブを所望の位置に移動させる手順を決定するステップと、
前記ディスクエンクロージャに前記手順を実行するように指示するステップとを含むことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバ、ディスクエンクロージャ、ディスク配置制御システム、ディスク配置制御方法、およびディスク配置制御プログラムに関する。
【背景技術】
【０００２】
複数のディスクドライブを実装したディスクエンクロージャが大容量記憶装置として用いられている（特許文献１）。さらに複数のディスクエンクロージャはラックに収納され、さらなる大容量化が図られている。近年、ディスクドライブを高密度実装するため、ディスクドライブを２次元アレイ状に配置可能なディスクエンクロージャが提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−６６４８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来のディスクエンクロージャにおいて、ディスクドライブの点検または交換を行なう場合、保守作業者は先ず、ディスクエンクロージャをラックから取り出し、さらにディスクエンクロージャのアッパーパネルを取り外す必要がある。この後、保守作業者は、アレイ状に配置されたディスクドライブの中から、点検等の対象となるディスクドライブを取り外していた。しかしながら、ディスクエンクロージャは多数のディスクドライブを実装しているため、重いディスクエンクロージャをラックから取り出すのは多大な労力を要する。また、保守作業者は、数多くのディスクドライブの中から対象となるディスクドライブを探さなければならず、誤って別のディスクを交換し、最悪データロストの障害を誘発する危険性があった。このように保守作業に要する労力および時間は過大なものとなっていた。
【０００５】
本発明は、上述の課題に鑑みてなされたものであり、保守作業に要する労力および時間を軽減可能なサーバ、ディスクエンクロージャ、ディスク配置制御システム、ディスク配置制御方法、およびディスク配置制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一実施態様によるサーバは、アレイ状に位置する複数のディスクドライブを備えるディスクエンクロージャを制御するためのサーバであって、前記複数のディスクドライブの配置を記憶する記憶部と、前記配置に基づいて、アレイの空きスペースに隣接するディスクドライブのいずれかを前記空きスペースへ移動させることを繰り返すことにより所定のディスクドライブを所望の位置に移動させる手順を決定する決定部と、前記ディスクエンクロージャに前記手順を実行するように指示する指示部とを備えるサーバである。
【発明の効果】
【０００７】
本発明によれば、ディスクエンクロージャにおいて、保守作業に要する労力および時間を軽減することができる。
【図面の簡単な説明】
【０００８】
【図１】第１の実施形態におけるディスクエンクロージャの模式図である。
【図２】第１の実施形態におけるディスク配置制御システムのブロック図である。
【図３】第１の実施形態におけるエクスパンダのブロック図である。
【図４】第１の実施形態におけるディスクドライブおよびコネクタの断面図である。
【図５】第１の実施形態におけるアクチュエータの概略図である。
【図６】第１の実施形態におけるディスクドライブの配置例を示す概略図である。
【図７】第１の実施形態におけるディスクドライブの他の配置例を示す概略図である。
【図８】第１の実施形態におけるディスクドライブの移動手順の例を示す図である。
【図９】第１の実施形態におけるディスクドライブの移動手順の移動元および移動先を示す図である。
【図１０】第１の実施形態におけるディスクエンクロージャおよびサーバの動作を表すフローチャートである。
【図１１】第１の実施形態におけるディスクドライブの移動処理を表すフローチャートである。
【図１２】第１の実施形態におけるサーバの概略構成図である。
【発明を実施するための形態】
【０００９】
以下、図面を参照して、本発明の実施形態を説明する。
（第１の実施形態）
図１は、本実施形態におけるディスクエンクロージャの模式図である。ディスクエンクロージャ２は箱型をなし、骨組みをなすフレームと、フレームにそれぞれ取り付けられたフロントパネル２０１、リアパネル（不図示）、アッパーパネル２０２、ボトムパネル（不図示）、およびサイドパネル２０３を含み得る。ディスクエンクロージャ２は多数のディスクドライブを格納可能である。また、複数のディスクエンクロージャ２はラック１に積層されて収納され、フロントパネル２０１はラック１の前面に位置する。フロントパネル２０１またはアッパーパネル２０２はディスクエンクロージャ２から取り外し可能に構成される。フロントパネル２０１は、ディスクエンクロージャ２がラック１に収納された状態において、取り外し可能に構成されている。
【００１０】
図２は、本実施形態におけるサーバを含むディスク配置制御システムの全体のブロック図である。ディスク配置制御システムは、ディスクエンクロージャ２およびサーバ３を備える。
図１２はディスク配置制御システムの機能図である。ディスク配置制御システムは記憶部（図１２ １２０１）、決定部（図１２ １２０２）、指示部（図１２ １２０３）を備える。記憶部（図１２ １２０１）は、ディスクの配置状況や状態を記憶する。決定部（図１２ １２０２）は、ディスクの移動順序を決定する。指示部（図１２ １２０３）は、後述するディスクの移動操作やＲＡＩＤ操作など移動に伴って連携させる操作を実行する。
本実施例のディスク配置制御システムは、サーバ３上のプログラムとして組み込むが、必ずしもそうである必要はなくディスクエンクロージャ２に制御基盤と供に組み込んだり、サーバ３とディスクエンクロージャ２とで分散して構成するなど様々な構成で実現できる。
【００１１】
ディスクエンクロージャ２は、アクチュエータ２５、エクスパンダ４、および複数のディスクドライブ５を含む。ディスクドライブ５は磁気ディスク、磁気ヘッド、モータ、制御回路を備え、大容量のデータを読み書き可能である。ディスクドライブ５は、少なくとも１つのＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋｓ）を構成し得る。アクチュエータ２５は、サーバ３からの命令に従い、ディスクエンクロージャ２においてディスクドライブ５を前後左右方向に移動させる。また、アクチュエータ２５は、ディスクドライブ５の位置を検出する撮像装置などのセンサを備え得る。エクスパンダ４は、後述するようにサーバ３と複数のディスクドライブ５とを相互に接続する装置である。
【００１２】
サーバ３は、ディスクエンクロージャ２に接続され、ディスクドライブ５の配置を記憶するとともに、点検等の対象のディスクドライブ５をディスクエンクロージャ２のフロントパネル２０１の側まで移動させるように制御可能である。サーバ３は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１、メモリ３０２、記憶装置３０３、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）３０４、およびＲＡＩＤコントローラ３０５を備える。ＣＰＵ３０１は、予め定められたアプリケーションプログラムに従って、ディスクドライブ５の移動を制御する。メモリ３０２は、ＣＰＵ３０１によって実行されるアプリケーションプログラムを記憶し得るとともに、ＣＰＵ３０１の動作に必要な記憶領域を提供し得る。記憶装置３０３は、ディスク移動が制御されるにあたって記憶されるべきデータを格納し得る。記憶装置３０３は例えばハードディスクドライブまたはメモリカードなどの外部記憶装置である。Ｉ／Ｆ３０４は、サーバ３とアクチュエータ２５との間の入出力信号を中継することができるインターフェイスユニットである。なお、Ｉ／Ｆ３０４とアクチュエータ２５との間の通信は、ＳＣＳＩコマンドセットの拡張を行うことによってＳＡＳケーブルを通して行い得る。ただし、その場合はエクスパンダ４などに拡張が必要である。なお、他の実施形態では、別途シリアル通信などの通信機能をディスクエンクロージャ２とサーバ３との間に設けても良い。
【００１３】
ＲＡＩＤコントローラ３０５は、ディスクエンクロージャ２内のディスクドライブ５に接続され、ＲＡＩＤの構築および再構築などの制御を行う。ＲＡＩＤコントローラ３０５は、接続されたディスク５を制御するために、適宜、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）プロトコルなどを用いることができる。本実施形態では、ＲＡＩＤコントローラ３０５は、ＳＡＳ（Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩ）  ＲＡＩＤコントローラである。ＳＡＳ  ＲＡＩＤコントローラ３０５は、少なくとも１つのＳＡＳイニシエータポート（不図示）を有する。ディスクドライブ５などの複数のデバイスは、それぞれ、少なくとも１つのＳＡＳターゲットポート（不図示）を有する。
【００１４】
図３は、本実施形態におけるエクスパンダ４のブロック図である。エクスパンダ４は、ＲＡＩＤコントローラ３０５とディスクドライブ５との間の接続を中継する。エクスパンダ４は、ＣＰＵ４０１、メモリ４０２、Ｉ／Ｆ４０３、Ｉ／Ｆ４０４、およびスイッチ回路４０５を有する。ＣＰＵ４０１は、予め定められたアプリケーションプログラムに従って、ＳＡＳエクスパンダ４を制御する。メモリ４０２は、ＣＰＵ４０１によって実行されるアプリケーションプログラムを記憶し得る。Ｉ／Ｆ４０３およびＩ／Ｆ４０４は、それぞれ、上述のＳＡＳイニシエータポートおよびＳＡＳターゲットポートと通信を行う。スイッチ回路４０５は、Ｉ／Ｆ４０３と複数のＩ／Ｆ４０４との間でのルーティングを行う。このようにして、エクスパンダ４は、ＳＡＳ  ＲＡＩＤコントローラ３０５と複数のディスクドライブ５との間の通信を実現するための拡張スイッチとして動作する。
【００１５】
図４は、本実施形態におけるディスクドライブおよびコネクタの断面図である。複数のディスクドライブ５はディスク保持板６０４上において２次元アレイ状に配置されている。それぞれのディスクドライブ５は箱型をなし、底面には凹部５０１が形成されている。凹部５０１には複数の端子が形成されている。端子には電源端子およびデータ端子が含まれている。ディスクドライブ５の下方には、コネクタ駆動部６０１、コネクタ基板６０２、コネクタ６０３が設けられている。コネクタ６０３はコネクタ基板６０２上に取り付けられ、コネクタ基板６０２はコネクタ駆動部６０１によって支持されている。コネクタ駆動部６０１はモータまたはソレノイドから構成され、サーバ３からの信号に基づき、コネクタ基板６０２およびコネクタ６０３を上下に移動可能である。コネクタ駆動部６０１がコネクタ基板６０２を上方に移動させると、コネクタ６０３はディスク保持板６０４に形成された開口部６０５を貫通し、ディスクドライブ５の凹部５０１に勘合する。これにより、コネクタ６０３はディスクドライブ５の端子に接続され、ディスクドライブ５はディスクエンクロージャ２によって読み書き可能な状態となる。一方、コネクタ駆動部６０１がコネクタ基板６０２を下方に移動させると、コネクタ６０３はディスクドライブ５から外れ、ディスクドライブ５はディスク保持板６０４の表面において２次元移動可能な状態となる。ディスクドライブ５とコネクタ６０３との接続は、コネクタ６０３の上下方向の移動によってのみ制御されるので、ディスクドライブ５を前後左右方向に移動させることによって配線が絡まるという問題は回避され得る。
【００１６】
図５は、本実施形態におけるアクチュエータ２５の概略図である。ここで、ディスクエンクロージャ２のフロントパネル２０１の平面に垂直な方向をＸ方向とし、フロントパネル２０１の平面に平行な方向をＹ方向とする。サイドパネル２０３の上部にはレール２５０ａ、２５０ｂが設けられている。レール２５０ａ、２５０ｂは互いに平行に延在し、レール２５０ａ、２５０ｂの上部には可動部２５２ａ、２５２ｂがＸ方向に移動可能に保持されている。また、レール２５０ａ、２５０ｂの表面には、可動部２５２ａ、２５２ｂの位置を検出するための光学パターンまたは磁気パターンが形成され得る。可動部２５２ａ、２５２ｂはＹ方向に延びたガイドアーム２５１の両端に取り付けられている。ガイドアーム２５１には可動部２５３がＹ方向に移動可能に保持され、可動部２５３の下部には把持部２５４が設けられている。把持部２５４は可動部２５３に対して上下動可能に構成され、さらに開閉可能な２本のアームを備える。このように構成されたアクチュエータ２５によれば、所望のディスクドライブ５を把持部２５４によって吊り上げ、移動させることが可能である。
【００１７】
図６は、本実施形態におけるディスクドライブ５の配置例を示しており、ディスクエンクロージャ２を上方から見た概略図である。本実施形態では、ディスクエンクロージャ２における１２個のディスクドライブ５が３行×４列に配置されている。パワーユニットを含む制御基板２０９はディスクエンクロージャ２の装置後部に配置される。ディスクドライブ５の移動を可能にするためには、少なくとも１個のディスクドライブ５の空きスペース２１０が退避領域として用意される。図６には、１つの空きスペース２１０が設けられている例が示されている。図６に示されるように、ディスクエンクロージャ２がディスクドライブ５Ａ〜５Ｋの１１台のディスクドライブ５から構成され得る。なお、本実施形態では、ディスクアレイは２次元の矩形をなしているが、２次元のその他の形状あるいは３次元であっても良い。また、本実施形態では、ＲＡＩＤコントローラ３０５は、ＳＡＳアドレスと呼ばれる識別子を用いて、ディスクエンクロージャ２内の個々のディスクドライブ５を識別している。ここでは、１１台のディスクドライブ５Ａ〜５Ｋが識別されているものとする。
【００１８】
図７は、本実施形態におけるディスクドライブ５の他の配置例を示している。上述の配置例においては、ディスクドライブ５を取り外すことで空きスペース２１０を用意しているが、ディスクエンクロージャ２の設計段階から空きスペース２１０を用意しても良い。ここでは、空きスペース２１０に必ずしもコネクタ６０３を設けることを要しない。図７においては、ディスクエンクロージャ２は１２台のディスクドライブ５Ａ〜５Ｌを収納可能である。
【００１９】
本実施形態では、空きスペース２１０を利用して、故障などにより検査および交換の対象となる所定のディスクドライブ５を所望の位置へ移動させることができる。例えば、ディスクドライブ５をラック前面の側に移動させることにより、保守作業者はディスクエンクロージャ２をラックから引き出すことなく、ディスクドライブ５を交換することが可能となる。このようにして、ディスクエンクロージャ２内において大きな空間を作ることなく、ディスク１台分の空きスペース２１０を用いることで、ディスクドライブ５を所望の位置まで移動させることができる。
【００２０】
図８は、本実施形態におけるディスクドライブ５の移動手順の例を示す図である。図９は、本実施形態におけるディスクドライブ５の移動手順の移動元および移動先を示す図である。ここでは理解を容易にするため先にディスクの移動部分のみを説明する。
【００２１】
図８の状態１において、第２行、第３列にあるディスクドライブ５Ｇに障害が発生しているとする。ここで、第２行、第３列を位置（２，３）と表記する。位置（３，３）にあるディスクドライブ５Ｋがディスクドライブ５Ｇの代替として使用される。空きスペース２１０は位置（３，４）に設けられている。ＣＰＵ３０１は、ディスクドライブ５Ｈの位置（２，４）のコネクタ６０３を下方に移動させ、ディスクドライブ５Ｈを移動可能な状態にする。続いて、ＣＰＵ３０１はアクチュエータ２５を駆動し、把持部２５４をディスクドライブ５Ｈ上まで移動させる。把持部２５４は下方に移動し、ディスクドライブ５Ｈを把持し、上方に持ち上げる。その後、把持部２５４はディスクドライブ５Ｈを位置（３，４）の空きスペース２１０に移動させる。コネクタ駆動部６０１はコネクタ６０３を上方に移動させ、コネクタ６０３をディスクドライブ５Ｈに接続させる。すなわち、ディスクドライブ５Ｈは位置（２，４）から位置（３，４）に移動し、位置（２，４）が空きスペース２１０となる（状態２）。
【００２２】
続いて、ＣＰＵ３０１は位置（２，３）のディスクドライブ５Ｇを空きスペース２１０の位置（２，４）に移動させる。このとき、位置（２，３）が空きスペース２１０となる（状態３）。さらに、位置（１，３）のディスクドライブ５Ｃを空きスペース２１０の位置（２，３）に移動させ、位置（１，３）が空きスペース２１０となる（状態４）。次に、ＣＰＵ３０１は位置（１，４）のディスクドライブ５Ｄを空きスペース２１０の位置（１，３）に移動させる。このとき、位置（１，４）が空きスペース２１０となる（状態５）。さらに、ＣＰＵ３０１は位置（２，４）のディスクドライブ５Ｇを空きスペース２１０の位置（１，４）に移動させる（状態６）。
【００２３】
障害が発生していたディスクドライブ５Ｇはディスクエンクロージャ２の前面の位置（１，４）まで移動する。これにより、保守作業者はディスクエンクロージャ２をラック１から取り外すことなく、ディスクドライブ５Ｇを交換することが可能となる。
【００２４】
このような移動手順は、ディスクドライブの配置の開始状態、および終了状態に基づいてサーバ上で計算し、メモリに格納する。また移動手順を作業者などが予め決定し記憶装置上へ格納しておき、必要になった際にメモリへロードする方式をとってもよい。取り扱う配置数が多くなればなるほど計算に時間を要するため、動的に手順を算出するのと、予め算出しておいた手順を組み合わせる方式をとっても良い。
【００２５】
ディスクアクセスを止めることなくディスクドライブ５を移動させるため、本実施形態ではＲＡＩＤのように冗長性を確保することが好ましい。ここでは、ディスクエンクロージャ２がＲＡＩＤ５によって運用される場合、例えばディスクドライブ５Ａ〜５ＥにおけるＲＡＩＤ、およびディスクドライブ５Ｆ〜５ＪのＲＡＩＤが構築される。いずれかのディスクドライブの故障に備え、少なくとも１台のスペアのディスクドライブ５が用意される。ここでは、ディスクドライブ５Ｋをスペアのディスクドライブ５であるとする。なお、複数台のディスクドライブ５の故障に備えて複数台のスペアのディスクドライブ５を用意しても良い。
【００２６】
図１０は、本実施形態におけるディスクエンクロージャ２およびサーバ３の動作を表すフローチャートである。ディスクドライブ５が故障すると、ＲＡＩＤコントローラ３０５からの入出力要求に応答しないなどの現象が起こり得る。所定の時間内に入出力要求に対して応答されない回数が閾値の回数を超えた場合、ＲＡＩＤコントローラ３０５は当該ディスクドライブ５が故障したと判断する（ステップＳ１００１）。
【００２７】
ＲＡＩＤコントローラ３０５は、すべてのディスクドライブ５の配置をメモリ３０２に記憶させる。ＣＰＵ３０１は、メモリ３０２に記憶された情報をもとに、ディスクドライブ５が移動対象であるか否かを判断する（ステップＳ１００２）。例えば、ディスクドライブ５がディスクエンクロージャ２の外部のディスクドライブ５であるなど移動対象でなかった場合（ステップＳ１００２でＮＯ）は、ＣＰＵ３０１は処理を終了する。ディスクドライブ５が移動対象である場合（ステップＳ１００２でＹＥＳ）は以下のように動作する（ステップＳ１００３〜Ｓ１００６）。
【００２８】
ＣＰＵ３０１は、図８、図９に示されたアルゴリズムに従い、ディスクドライブ５の総移動回数Ｎおよび移動手順を決定する（ステップＳ１００３）。次に、ＣＰＵ３０１は移動対象のディスクドライブ５が属していたＲＡＩＤの冗長性を確認する。ＲＡＩＤの冗長性が確保されている場合（ステップＳ１００４でＹＥＳ）、ステップＳ１００６へ進む。ＲＡＩＤの冗長性が確保されていない場合（ステップＳ１００４でＮＯ）、移動対象のディスクドライブ５の代替として予め用意されていたスペアのディスクドライブ５を用いてＲＡＩＤを再構築し、冗長性を復旧させる（ステップＳ１００５）。冗長性が復旧した後、ＣＰＵ３０１はメモリ３０２から総移動回数Ｎおよび移動手順を読み出し、ディスクドライブ５を順次移動させる（ステップＳ１００６）。すなわち、ＣＰＵ３０１は決定した移動手順をＩ／Ｆ３０４を介してディスクエンクロージャ２のアクチュエータ２５に通知し、アクチュエータ２５は、通知された移動手順に従ってディスクドライブ５を順次移動させる。アクチュエータ２５は、ディスクドライブ５を空きスペースに退避させながら、対象となるディスクドライブ５を所望の移動先まで移動させる。これにより、保守作業者はディスクエンクロージャ２をラック１から取り外すことなく、ディスクドライブ５を交換することが可能となる。
【００２９】
図１１は、本実施形態におけるディスクドライブ５の移動処理を表すフローである。図中の「ｉ」は移動回数を示す変数である。ＣＰＵ３０１は変数ｉを「１」に設定する（ステップＳ１１０１）。ＣＰＵ３０１は最初に移動させるディスクドライブ５にコネクタ６０３が接続されているか否かを確認する。コネクタ６０３が接続されている場合（ステップＳ１１０２でＹＥＳ）、ＲＡＩＤコントローラ３０５はＲＡＩＤの冗長性が確保されているか否かを確認する。まだ冗長性が確保されていない場合、ＣＰＵ３０１はＲＡＩＤの冗長性が復旧するまで待機する（ステップＳ１１０３）。これにより、移動対象のディスクドライブ５が属するＲＡＩＤへの入出力機能を停止することなく、ディスクドライブ５の移動を行うことが可能となる。ＲＡＩＤの冗長性が確保された後、ディスクエンクロージャ２の電源制御部はディスクドライブ５の電源を遮断する。ＣＰＵ３０１はコネクタ６０３をディスクドライブ５から取り外す（ステップＳ１１０４）。ＣＰＵ３０１はアクチュエータ２５を駆動し、アクチュエータ２５は空きスペース２１０へディスクドライブ５を移動させる（ステップＳ１１０５）。ステップＳ１１０２において、ディスクドライブ５にコネクタ６０３が接続されていない場合には、ＣＰＵ３０１はコネクタ６０３を外した状態のまま、ディスクドライブ５を移動させる。
【００３０】
（ｉ＋１）番目に移動させるディスクドライブ５がｉ番目に移動させるディスクドライブ５と同じ場合（ステップＳ１１０６でＹＥＳ）、ＣＰＵ３０１はコネクタ６０３を外した状態のまま、変数ｉ＝ｉ＋１とする（ステップＳ１１０９）。一方、（ｉ＋１）番目に移動させるディスクドライブ５がｉ番目に移動するディスクドライブ５と異なる場合（ステップＳ１１０６でＮＯ）、アクチュエータ２５はｉ番目に移動させたディスクドライブ５にコネクタ６０３を接続し、電源を投入する（ステップＳ１１０７）。ＲＡＩＤコントローラ３０５は、ディスク識別情報からディスクドライブ５を認識し、ディスクドライブ５が属するＲＡＩＤの再構築を行なう（ステップＳ１１０８）。これにより、ＲＡＩＤの冗長性は復旧する。続いて、ＣＰＵ３０１は変数ｉ＝ｉ＋１とする（ステップＳ１１０９）。現在の移動回数ｉが総移動回数Ｎ以下の場合（ステップＳ１１１０でＹＥＳ）、ＣＰＵ３０１はステップＳ１１０２以降の処理を繰り返す。予め定められた移動手順がすべて完了すると（ステップＳ１１１０でＮＯ）、ＣＰＵ３０１は処理を終了する。これにより、交換対象となるディスクドライブ５が例えばディスクエンクロージャ２の前面まで移動する。
【００３１】
本実施形態によれば、高密度ディスクエンクロージャ２をラック１から取り外すことなく、ディスクエンクロージャ２のフロントパネル２０１より奥にある所定のディスクドライブ５をフロントパネル２０１の側まで移動できる。さらに、移動させるディスクドライブ５が属するＲＡＩＤの冗長性が確保されていることを確認してからディスクドライブ５を移動させるので、ＲＡＩＤへの入出力機能が停止されることなく所定のディスクドライブ５をディスクエンクロージャ２のフロントパネル２０１の側まで移動できる。
【００３２】
（第２の実施形態）
第１実施形態においては、移動先および移動元のコネクタ６０３を下方に移動させていたが、コネクタ６０３を移動させずにアクチュエータ２５の上下動によってコネクタ６０３の着脱を行なっても良い。すなわち、アクチュエータ２５の把持部２５４が移動対象のディスクドライブ５を把持しながら上昇移動させることで、ディスクドライブ５はコネクタ６０３から取り外される。また、把持部２５４はディスクドライブ５を移動先において降下させることで、ディスクドライブ５はコネクタに接続される。本実施形態によれば、コネクタ６０３を駆動させる機構を設けずに本発明の効果を奏することが可能となる。すなわち、対象となるディスクドライブ５をディスクエンクロージャ２の前面まで移動させることで、ディスクエンクロージャ２をラック１から引き出すことなくディスクドライブ５を交換することができる。
【００３３】
（第３の実施形態）
第１および第２の実施形態では、ＲＡＩＤへの入出力機能が停止されることなく所定のディスクドライブ５を所望の位置まで移動するという観点から、できるだけ少ない数のディスクドライブ５の電源を停止し、コネクタ６０３を取り外すことが望ましいので、１つまたは２つのコネクタ６０３だけをディスクドライブ５から取り外す構成とした。しかしながら、ＲＡＩＤへの入出力機能が停止されることを許容する代わりに、すべてのコネクタ６０３を下方向に移動させても良い。この場合、ディスクエンクロージャ２のサイドパネル、フロントパネル、リアパネルにアクチュエータを設け、アレイ状に配列された複数のディスクドライブ５のうちの外側に位置するいずれかのディスクドライブ５を押圧しても良い。これにより、外側のディスクドライブ５に連動して内側のディスクドライブ５を同時に移動させることができる。すなわち、空きスペース２１０が存在する行あるいは列にある複数のディスクドライブ５を一度に玉突き状に移動させることができる。
【００３４】
（第４の実施形態）
サーバ３を汎用的なコンピュータとしてではなく、ストレージコントローラとして専有利用する形態、すなわち本発明を有するストレージコントローラやディスクエンクロージャでストレージシステムを構成し、他コンピュータへ記憶装置への入出力機能を提供する。ＳＡＮ装置などディスクを集中管理するコンピュータシステムに本発明を組み込み、システムの機能の一つとして本発明の機能を提供する。
【００３５】
（他の実施形態）
本発明は、上述の実施形態に限定されることなく、本発明の趣旨を逸脱しない範囲において適宜変更可能である。
【００３６】
例えば、第１の実施形態においては、移動するディスクドライブ５が属するＲＡＩＤが冗長性を確保するまでアクチュエータ２５は待機するが、継続的なディスクアクセスを止めても良い場合、ＲＡＩＤの冗長性の復旧を必ずしも待機しなくて良い。この場合でも、所定のディスクドライブ５を所望の目的地まで移動できる。
【００３７】
また、第１の実施形態においては、ＳＡＳプロトコルが用いられ、ＲＡＩＤコントローラ３０５は、ＳＡＳアドレスと呼ばれる識別子を用いてディスクエンクロージャ２内の個々のＳＡＳディスクドライブ５を識別している。ＳＡＳプロトコルの代わりにファイバチャネル（Ｆｉｂｅｒ  Ｃｈａｎｎｅｌ）プロトコルを用いても良い。この場合においても、ＷＷＮ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｎａｍｅ）と呼ばれる識別子を用いても良い。また、上述のような識別子を有さないプロトコルが用いられ得る。そのような場合も、個々のディスクドライブ５の一部の領域に識別用のデータを書き込むことによって対応され得る。ただし、ディスクドライブ５を移動するとき、移動前にＲＡＩＤグループから取り除く必要がある。移動後のディスクドライブ５を検出後、内部に書き込まれているディスク識別用のデータを確認したうえでＲＡＩＤに取り込む必要がある。
【００３８】
サーバ３にＳＣＳＩターゲットドライバを実装することによって、ストレージコントローラとして機能させることも考え得る。この場合、ＲＡＩＤコントローラ３０５などをストレージコントローラの内部機能として、サーバ３から隠蔽することが可能である。
【００３９】
上述の実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
【００４０】
（付記１）
アレイ状に位置する複数のディスクドライブを備えるディスクエンクロージャを制御するためのサーバであって、
前記複数のディスクドライブの配置を記憶する記憶部と、
前記配置に基づいて、アレイの空きスペースに隣接するディスクドライブのいずれかを前記空きスペースへ移動させることを繰り返すことにより所定のディスクドライブを所望の位置に移動させる手順を決定する決定部と、
前記ディスクエンクロージャに前記手順を実行するように指示する指示部とを備えるサーバ。
【００４１】
（付記２）
前記複数のディスクドライブを含む少なくとも１つのＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  ｄｉｓｋｓ）を制御するＲＡＩＤ制御部をさらに備えることを特徴とする付記１に記載のサーバ。
【００４２】
（付記３）
前記所定のディスクドライブは点検または交換の対象となるディスクドライブであることを特徴とする付記１または２に記載のサーバ。
【００４３】
（付記４）
前記所望の位置は、前記ディスクエンクロージャのフロントパネルの側にあることを特徴とする付記１〜３のいずれか１項に記載のサーバ。
【００４４】
（付記５）
前記アレイは２次元矩形アレイであることを特徴とする付記１〜４のいずれか１項に記載のサーバ。
【００４５】
（付記６）
ディスクエンクロージャであって、
アレイ状に配置された複数のディスクドライブを含むディスク部と、
前記ディスクエンクロージャに接続されたサーバからの指示に従って、前記アレイの空きスペースに隣接するディスクドライブのいずれかを前記空きスペースへ移動させる移動部とを備えることを特徴とするディスクエンクロージャ。
【００４６】
（付記７）
サーバと、前記サーバに接続されたディスクエンクロージャとを含むディスク配置制御システムであって、
前記サーバは、
複数のディスクドライブの配置を記憶する記憶部と、
前記配置に基づいて、アレイの空きスペースに隣接するディスクドライブのいずれかを前記空きスペースへ移動させることを繰り返すことにより所定のディスクドライブを所望の位置に移動させる手順を決定する決定部と、
前記ディスクエンクロージャに前記手順を実行するように指示する指示部とを備え、
前記ディスクエンクロージャは、
アレイ状に配置された複数のディスクドライブを含むディスク部と、
前記指示部からの指示に従って前記アレイの空きスペースに隣接するディスクドライブのいずれかを前記空きスペースへ移動させる移動部とを備えることを特徴とするディスク配置制御システム。
【００４７】
（付記８）
アレイ状に配置された複数のディスクドライブを備えるディスクエンクロージャを制御するためのディスク配置制御方法であって、
アレイの空きスペースに隣接するディスクドライブのいずれかを前記空きスペースへ移動させることを繰り返すことによって所定のディスクドライブを所望の位置に移動させる手順を決定するステップと、
前記ディスクエンクロージャに前記手順を実行するように指示するステップとを含むことを特徴とする方法。
【００４８】
（付記９）
前記所定のディスクドライブを含む１組のディスクを用いてＲＡＩＤを構築するステップと、
前記所定のディスクドライブが属するＲＡＩＤの冗長性が確保されなくなった場合に、前記所定のディスクドライブの代わりにスペアのディスクドライブを用いてＲＡＩＤを再構築するステップをさらに含むことを特徴とする付記８に記載の方法。
【００４９】
（付記１０）
前記ディスクエンクロージャを制御するサーバからの指示に従って、前記アレイの前記空きスペースに隣接するディスクドライブのいずれかを前記空きスペースへ移動させるステップをさらに含み、
前記ディスクドライブが前記ディスクエンクロージャのコネクタに接続されている場合に、
前記移動させるステップは、
前記ディスクドライブが属するＲＡＩＤの冗長性が確保されるまで待機するステップと、
前記ディスクドライブを前記コネクタから取り外すステップと、
前記ディスクドライブを前記空きスペースへ移動させるステップとを含むことを特徴とする付記８または９に記載の方法。
【００５０】
（付記１１）
アレイ状に配置された複数のディスクドライブを備えるディスクエンクロージャを制御するためのディスク配置制御方法をコンピュータに実行させるためのディスク配置制御プログラムであって、
アレイの空きスペースに隣接するディスクドライブのいずれかを前記空きスペースへ移動させることを繰り返すことによって所定のディスクドライブを所望の位置に移動させる手順を決定するステップと、
前記ディスクエンクロージャに前記手順を実行するように指示するステップとを含むことを特徴とするプログラム。
【符号の説明】
【００５１】
１  ラック
２  ディスクエンクロージャ
２０１  フロントパネル
２０２  アッパーパネル
２０３  サイドパネル
２０９  制御基板
２１０  空きスペース
２５  アクチュエータ
２５０ａ  レール
２５０ｂ  レール
２５１  ガイドアーム
２５２ａ  可動部
２５２ｂ  可動部
２５３  可動部
２５４  把持部
３  サーバ
３０１  ＣＰＵ
３０２  メモリ
３０３  記憶装置
３０４  インターフェイス
３０５  ＲＡＩＤコントローラ
４  エクスパンダ
４０１  ＣＰＵ
４０２  メモリ
４０３  インターフェイス
４０４  インターフェイス
４０５  スイッチ回路
５  ディスクドライブ
５０１  凹部
６０１  コネクタ駆動部
６０２  コネクタ基板
６０３  コネクタ
６０４  ディスク保持板
６０５  開口部
１２０１  記憶部
１２０２  決定部
１２０３  指示部
【図１】
2019032691.tif 000003
【図２】
2019032691.tif 000004
【図３】
2019032691.tif 000005
【図４】
2019032691.tif 000006
【図５】
2019032691.tif 000007
【図６】
2019032691.tif 000008
【図７】
2019032691.tif 000009
【図８】
2019032691.tif 000010
【図９】
2019032691.tif 000011
【図１０】
2019032691.tif 000012
【図１１】
2019032691.tif 000013
【図１２】
2019032691.tif 000014