(58)【調査した分野】(Int.Cl.,DB名)
前記作成待ちのストレージボリュームの属性情報、およびサブストレージプールの属性情報に基づき、前記正常な実行状態にあるサブストレージプールをスコアリングすることは、
前記正常な実行状態にあるサブストレージプールの総空間サイズから使用済み空間サイズを減らして前記正常な実行状態にあるサブストレージプールの残りの空間サイズを取得することと、
前記正常な実行状態にあるサブストレージプールの総読み書き帯域幅から使用済み読み書き帯域幅を減らして前記正常な実行状態にあるサブストレージプールの残りの読み書き帯域幅を取得することと、
前記要求空間サイズと残りの空間サイズとの比を前記要求読み書き帯域幅と残りの読み書き帯域幅との比に重み付け加算し、前記正常な実行状態にあるサブストレージプールのスコアを取得することと、を含む、
請求項3に記載の方法。
前記少なくとも1つのサブストレージプールの情報に、サブストレージプールの名称、サブストレージプールにおける物理記憶媒体の組み合わせ方式、バックエンドストレージ、ファイルシステムタイプ、およびサブストレージプールにおける物理記憶媒体の情報が含まれている、
請求項1に記載の方法。
前記作成待ちのストレージボリュームの属性情報に基づき、前記ターゲットサブストレージプールにおいて、前記ターゲットサブストレージプールの物理記憶媒体によりストレージボリュームを作成した後、
前記作成待ちのストレージボリュームに必要なファイルシステムタイプおよびマウントポイントを取得することと、
前記ストレージボリュームを前記ファイルシステムタイプに対応するファイルシステムにフォーマット化することと、
前記ストレージボリュームを前記マウントポイントにマウントすることと、を更に含む、
請求項1に記載の方法。
前記作成待ちのストレージボリュームの属性情報に基づき、前記ターゲットサブストレージプールにおいて、前記ターゲットサブストレージプールの物理記憶媒体によりストレージボリュームを作成した後、
ストレージボリュームの使用済みの要求情報から前記ストレージボリュームの情報を取得することと、
前記ストレージボリュームの情報に基づき、前記ストレージボリュームの所属するサブストレージプールを確定することと、
前記所属するサブストレージプールから前記ストレージボリュームを削除することと、を更に含む、
請求項1乃至7のいずれか一項に記載の方法。
作成待ちのストレージボリュームの属性情報、および前記作成待ちのストレージボリュームを作成するための統合ストレージプールの情報を取得するように構成される取得モジュールと、
前記統合ストレージプールの情報に対応する統合ストレージプールから、ターゲットサブストレージプールを選定するように構成される選定モジュールと、
前記作成待ちのストレージボリュームの属性情報に基づき、前記ターゲットサブストレージプールにおいて、前記ターゲットサブストレージプールの物理記憶媒体によりストレージボリュームを作成するように構成される作成モジュールと、を備え、
前記統合ストレージプールに、少なくとも1つのサブストレージプールが含まれ、
前記取得モジュールは、更に、少なくとも1つの統合ストレージプールの情報に基づき、少なくとも1つの統合ストレージプールを作成し、各統合ストレージプールにおける少なくとも1つのサブストレージプールの情報に基づき、対応する統合ストレージプールにおいて少なくとも1つのサブストレージプールを作成し、各サブストレージプールに対応する物理記憶媒体の情報に基づき、対応する物理記憶媒体を対応するサブストレージプールに加えるように構成される、
ストレージボリューム作成装置。
プロセッサにより実行されると、請求項1乃至8のいずれか一項に記載のストレージボリューム作成方法を実現するコンピュータプログラムが記憶されている、コンピュータ可読記憶媒体。
【発明を実施するための形態】
【0012】
以下、図面および実施例を参照しながら本発明について更に説明する。ここで説明する具体的な実施例は本発明を解釈するためのものに過ぎず、本発明を限定するものではないことが理解できる。なお、説明の便宜上、図面において、全ての構造ではなく、本発明に関連する部分のみを示す。
【0013】
実施例1
図2aは、本発明の実施例1に係るストレージボリューム作成方法のフローチャートであり、本実施例は、ローカル記憶のシーンで記憶アーキテクチャによりストレージボリュームを作成する場合に適用され、ローカル記憶では、ダイレクトアタッチトストレージ(Direct Attached Storage、DAS)機構を大量に使用し、そのメンテナンスが簡単で、操作が早く、IO効率が高い。本実施例における記憶アーキテクチャはDAS記憶アーキテクチャの1種である。該方法は、ストレージボリューム作成装置により実行でき、該装置はハードウェアおよびソフトウェアのうちの少なくとも1つで構成されてサーバに集積されてもよい。
図2aに示すように、具体的に、ステップS110、ステップS120およびステップS130が含まれる。
【0014】
ステップS110において、作成待ちのストレージボリュームの属性情報、および作成待ちのストレージボリュームを作成するための統合ストレージプールの情報を取得する。
【0015】
作成待ちのストレージボリュームは、アプリケーションプログラムに提供され、データ記憶を行うために用いられる。作成待ちのストレージボリュームの属性情報に、作成待ちのストレージボリュームの要求空間サイズおよび要求読み書き帯域幅等が含まれているが、これらに限定されない。ここで、読み書き帯域幅は、1秒当たりの読み書き操作の回数(Input/Output Operations Per Second、iops)、1秒当たりの伝送ビット数(bits per second、bps)または読み書きスケジューリング周期毎に占有する物理記憶媒体の帯域幅の割合等を含み、読み書きスケジューリング周期毎に占有する物理記憶媒体の帯域幅の割合は、例えば、0.5個の物理記憶媒体の帯域幅である。
【0016】
本発明の実施例は、ストレージプール統合(Pool Federation)記憶アーキテクチャによりストレージボリュームを作成する。
図2bは、本発明の実施例1に係るPool Federation記憶アーキテクチャの構造模式図である。
図2bに示すように、Pool Federation記憶アーキテクチャの最上層は、統合ストレージプール(Federation Pool)層であり、この層はユーザが見えるものであり、例えば、Federation Pool層は、通常、サービスの形式でユーザに表現される。
【0017】
Federation Pool層は少なくとも1つの統合ストレージプールを含む。
図2bに示すように、bronzeは比較的安価で安全性が低い低速ストレージサービスを表し、silverは安全性およびスループットを兼ね備え、コストパフォーマンスが高いストレージサービスを表し、goldは高速ストレージサービスを表し、ironは高速であるが一時的な計算のみを提供するストレージサービスを表す。統合ストレージプールの異なる性能は、それに含まれるサブストレージプールのバックエンドストレージ、ファイルシステムタイプ、物理記憶媒体のタイプ、数、および記憶空間サイズ等に依存する。
【0018】
統合ストレージプールの情報は、1つの統合ストレージプールを指向または標識することができ、例えば、統合ストレージプールのアドレス、統合ストレージプールの名称、統合ストレージプールの総空間サイズ、および統合ストレージプール下属の物理記憶媒体のタイプ等を含む。一例において、統合ストレージプールの名称bronze、silver、gold、およびironを統合ストレージプールの情報として用いる。
【0019】
ストレージボリューム作成装置は、様々な方式により作成待ちのストレージボリュームの属性情報、および前述した統合ストレージプールの情報を取得することができる。一実施形態において、ストレージボリューム作成装置は、通信リンクを介してクライアントから送信されたストレージボリューム設定ファイル、例えば、yamlファイルまたはjsonファイルを受信する。続いて、ストレージボリューム設定ファイルから作成待ちのストレージボリュームの属性情報、および前述した統合ストレージプールの情報を解析する。別の実施形態において、ストレージボリューム作成装置は、コマンドライン、設定インタフェースまたはブラウザを介してユーザが入力した作成待ちのストレージボリュームの属性情報、および前述した統合ストレージプールの情報を取得する。なお、サーバにアクセスできてサーバにおけるストレージボリューム作成装置に作成待ちのストレージボリュームの属性情報、および前述した統合ストレージプールの情報を提供する任意の方法は、いずれも本発明の保護範囲内に属する。
【0020】
ステップS120において、統合ストレージプールの情報に対応する統合ストレージプールからターゲットサブストレージプールを選定し、統合ストレージプールに少なくとも1つのサブストレージプールが含まれている。
【0021】
各統合ストレージプールに少なくとも1つのサブストレージプールが含まれている。
図2bにおいて、Pool Federation記憶アーキテクチャの第2層はサブストレージプール(Sub−Pool)層である。サブストレージプール層は少なくとも1つのサブストレージプールを含み、各サブストレージプールは1つの統合ストレージプールに属する。例えば、bronzeはbronze1、bronze2およびbronze3という3つのサブストレージプールを含み、bronze1、bronze2およびbronze3はdevicemapperをストレージバックエンドとして用い、silverはsilver1およびsilver2という2つのサブストレージプールを含み、silver1およびsilver2はdevicemapperをストレージバックエンドとして用い、goldはgold1およびgold2という2つのサブストレージプールを含み、gold1およびgold2はaufsをストレージバックエンドとして用い、ironはiron1という1つのサブストレージプールを含み、iron1はtmpfsをストレージバックエンドとして用いる。
【0022】
統合ストレージプールにおいて、1つのサブストレージプールをターゲットストレージプールとして任意に選定してもよく、または所定の条件を満たすサブストレージプールをターゲットストレージプールとして選定してもよく、所定の条件は、作成待ちのストレージボリュームの属性情報に合わせる条件または開発者がカスタマイズした条件であってもよい。
【0023】
ステップS130において、作成待ちのストレージボリュームの属性情報に基づき、ターゲットサブストレージプールにおいて、前記ターゲットサブストレージプールの物理記憶媒体によりストレージボリュームを作成する。
【0024】
図2bに示すように、Pool Federation記憶アーキテクチャの第3層は物理記憶媒体(Storage)層であり、記憶された物理エンティティ層でもある。物理記憶媒体は、物理ディスク、ソリッドステートドライブ(Solid State Drives、SSD)、ハードディスクドライブ(Hard Disk Drive、HDD)等を含むが、これらに限定されない。ここで、物理ディスクは、Raidを作って記憶されたIOの性能および安全性を向上させる可能があり、SSDは、優れたIOスループットにより、IOバウンドの記憶媒体として使用されてもよく、またはメモリ(Memory)を一時的な計算のストレージサービスとして使用し、短時間で使用した後に速やかに回収してもよい。
【0025】
各サブストレージプールに少なくとも1つの物理記憶媒体を加えることができ、
図2bにおいて、各サブストレージプールには1つの物理記憶媒体が加えられる。
【0026】
ターゲットサブストレージプールにおける物理記憶媒体から作成待ちのストレージボリュームの属性情報に合わせる1つの領域を分割してデータ記憶として使用し、ストレージボリューム作成を実現する。
図2bに示すPool Federation記憶アーキテクチャにおいて、最終層はストレージボリューム(Volume)層であり、ストレージボリューム層は、作成される少なくとも1つのストレージボリュームを含む。
【0027】
本発明の実施例は、新たなPool Federation記憶アーキテクチャを提供し、該記憶アーキテクチャは、複数のサブストレージプールの上層に1層の統合ストレージプール層を加え、即ち、複数のサブストレージプールを連結して1つのより大きなストレージプールを構成し、複数のサブストレージプールの間のスケジューリングを実現する。Pool Federation記憶アーキテクチャの基に、本発明の実施例は、作成待ちのストレージボリュームの属性情報、および作成待ちのストレージボリュームを作成するための統合ストレージプールの情報を取得し、統合ストレージプールの情報に対応する統合ストレージプールからターゲットサブストレージプールを選定し、作成待ちのストレージボリュームの属性情報に基づき、ターゲットサブストレージプールにおいて、該ターゲットサブストレージプールの物理記憶媒体によりストレージボリュームを作成することにより、物理記憶媒体が破損した後、所属するサブストレージプールのみが使用不可となり、他のサブストレージプールは依然として使用可能であり、ひいては記憶アーキテクチャ全体は使用可能であり、一部の物理記憶媒体の破損の影響を受けることがなく、安全に実行することができ、良好な安定性および安全性を有し、アプリケーションプログラムにストレージリソースをスムーズに割り当て、アプリケーションプログラムの正常実行を確保する。
【0028】
本実施例に係る方法は、更に以下の技術的効果を達成する。統合ストレージプールの情報を取得することにより、統合ストレージプールからターゲットサブストレージプールを選定し、更にストレージボリュームを作成し、統合ストレージプールの情報に基づいてストレージボリュームを作成する形態を実現し、ユーザにとって、統合ストレージプールの情報および属性情報を配置すれば、ターゲットサブストレージプールを自動的に選定してストレージボリュームを作成することができ、下地(下位)層のストレージ詳細に注目する必要がなく、ユーザの操作を減少し、且つストレージの配置を最適化する。
【0029】
いくつかの実施例において、作成待ちのストレージボリュームの属性情報に基づき、ターゲットサブストレージプールにおいて、該ターゲットサブストレージプールの物理記憶媒体によりストレージボリュームを作成した後、ストレージボリュームの割り当て過程を更に含む。一実施例において、作成待ちのストレージボリュームに必要なファイルシステムタイプおよびマウントポイントを取得し、ストレージボリュームをファイルシステムタイプに対応するファイルシステムにフォーマット化し、ストレージボリュームをマウントポイントにマウントする。
【0030】
ストレージボリューム作成装置は、様々な方式により作成待ちのストレージボリュームに必要なファイルシステムタイプおよびマウントポイントを取得することができ、具体的な方式は作成待ちのストレージボリュームの属性情報、および前述した統合ストレージプールの情報の取得方式と同じであり、ここでは説明を省略する。ここで、作成待ちのストレージボリュームに必要なファイルシステムタイプとは、作成されたストレージボリュームをそれにフォーマット化する必要があるファイルシステムタイプを意味し、例えば、高性能なログファイルシステム(xfs)、第4世代の拡張ファイルシステム(Fourth extended filesystem、ext4)等であり、マウントポイントは、アプリケーションプログラムがデータを記憶するディレクトリまたはアプリケーションプログラムが位置するコンテナを含む。フォーマット化後のストレージボリュームをマウントポイントにマウントした後、アプリケーションプログラムは該ストレージボリュームを直接用いてデータを記憶することができる。
【0031】
本実施例に係る方法により、ローカル記憶アーキテクチャはコンテナ環境での急速な動的割り当てに適用でき、大量のアプリケーションエンジニアおよびクラスタ管理者の作業負担を軽減する。
【0032】
実施例2
図3は、本発明の実施例2に係るストレージボリューム作成方法のフローチャートであり、以下のステップS210〜ステップS240を含む。
【0033】
ステップS210において、作成待ちのストレージボリュームの属性情報、および作成待ちのストレージボリュームを作成するための統合ストレージプールの情報を取得する。
【0034】
ステップS210はステップS110と同じであり、ここでは説明を省略する。
【0035】
ステップS220において、統合ストレージプールにおける少なくとも1つのサブストレージプールの実行状態を取得する。
【0036】
本実施例において、物理記憶媒体のドライバがアップロードしたスキャン結果を受信し、スキャン結果に基づいて物理記憶媒体の状態を取得し、物理媒体の状態に基づいて所属するサブストレージプールの実行状態を確定する。
【0037】
ステップS230において、正常な実行状態にあるサブストレージプールをターゲットサブストレージプールとして選定する。
【0038】
ここで、正常な実行状態にあるサブストレージプールにおける物理記憶媒体は、使用可能な状態にある。
【0039】
サブストレージプールにおける物理記憶媒体が使用可能状態にあれば、該サブストレージプールは正常実行状態にあり、ストレージボリュームを作成することができ、該サブストレージプールの状態フラグをreadyにセットし、サブストレージプールにおける物理記憶媒体が実行中状態にあれば、該サブストレージプールは中間状態、例えば、他のストレージボリュームを作成するかまたはストレージボリュームを削除する状態にあり、該サブストレージプールの状態フラグをunreadyにセットし、サブストレージプールにおける物理記憶媒体がオフラインまたは非アクティブ化段階にあれば、該サブストレージプールは待機状態にあり、該サブストレージプールの状態フラグをpendingにセットし、サブストレージプールにおける物理記憶媒体が破損状態、ドロップ状態またはドライブレターエラー等であれば、該サブストレージプールはエラー、使用不可状態にあり、該サブストレージプールの状態フラグをerrorにセットする。
【0040】
本実施例において、サブストレージプールの状態フラグがerrorにセットされると、その中の物理記憶媒体を修復することを開発者に通知する。修復が成功した後、該サブストレージプールの状態フラグをreadyにリセットする。
【0041】
ステップS240において、作成待ちのストレージボリュームの属性情報に基づき、ターゲットサブストレージプールにおいて、前記ターゲットサブストレージプールの物理記憶媒体によりストレージボリュームを作成する。
【0042】
本実施例において、統合ストレージプールにおける少なくとも1つのサブストレージプールの実行状態を取得することにより、その中の物理記憶媒体が使用可能状態にあるサブストレージプールをターゲットサブストレージプールとして選定し、ひいてはターゲットサブストレージプールにおいて、該ターゲットサブストレージプールの物理記憶媒体によりストレージボリュームを作成し、物理記憶媒体が破損した後、正常に実行する他のサブストレージプールを選定してストレージボリューム作成を行うことができ、ストレージシステムの安定性および安全性を効果的に確保し、更にアプリケーションプログラムにストレージリソースをスムーズに割り当て、アプリケーションプログラムの正常実行を確保する。
【0043】
実施例3
図4は、本発明の実施例3に係るストレージボリューム作成方法のフローチャートであり、以下のステップS310〜ステップS360を含む。
【0044】
ステップS310において、作成待ちのストレージボリュームの属性情報、および作成待ちのストレージボリュームを作成するための統合ストレージプールの情報を取得する。
【0045】
一実施例において、ストレージボリューム作成装置は通信リンクを介してハイパーテキスト転送プロトコル(hypertext transport protocol、http)の形式でクライアントから送信されたストレージボリューム設定ファイル、例えば、yamlファイルまたはjsonファイルを受信する。フォーマットおよびパラメータは以下に示すとおりである。
name:volume1
poolName:bronze/silver/gold/iron
size:500Mi
io bandwidth(iops):200
【0046】
ここで、nameは作成待ちのストレージボリュームの名称であり、poolNameは統合ストレージプールの名称であり、sizeは要求空間サイズであり、io bandwidthは要求読み書き帯域幅であり、ここで、iopsで説明する。
【0047】
続いて、ストレージボリューム作成装置はストレージボリューム設定ファイルから作成待ちのストレージボリュームの名称、統合ストレージプールの名称、要求空間サイズおよび要求読み書き帯域幅を解析する。
【0048】
ステップS320において、統合ストレージプールにおける少なくとも1つのサブストレージプールの実行状態を取得する。
【0049】
ストレージボリューム作成装置は、poolNameに基づいて対応する統合ストレージプールを見つけ、統合ストレージプールにおける全てのサブストレージプールの実行状態をスキャンし、サブストレージプールの実行状態の取得方法の詳細は実施例2に示され、ここでは説明を省略する。
【0050】
ステップS330において、少なくとも1つのサブストレージプールの実行状態に基づき、正常な実行状態にあるサブストレージプールを確定する。
【0051】
ここで、正常な実行状態にあるサブストレージプールにおける物理記憶媒体は、使用可能な状態にある。
【0052】
スキャンしたサブストレージプール実行状態によって、以下の5つの場合がある。
【0053】
(1)サブストレージプールの実行状態がreadyである場合、ステップS340を実行し続ける。
【0054】
(2)サブストレージプールの実行状態がunreadyである場合、ストレージボリューム作成装置はそれを待機キューに入れ、所定の時間だけ待機した後にその実行状態を再び取得し、その実行状態がreadyである場合、(1)に従って実行し、その実行状態が依然としてunreadyである場合、該サブストレージプールをスキップして次のサブストレージプールの状態をスキャンし、ワーニング(warning:警告)情報を返してユーザに提示し、その実行状態がpendingである場合、(3)に従って実行し、その実行状態がerrorである場合、(4)に従って実行する。
【0055】
(3)サブストレージプールの実行状態がpendingである場合、ストレージボリューム作成装置は、該サブストレージプール配置情報を含むerrorエラーメッセージを印刷し、該サブストレージプールをスキップして次のサブストレージプールの状態をスキャンする。
【0056】
(4)サブストレージプールの実行状態がerrorである場合、ストレージボリューム作成装置は、下地層の物理記憶媒体のエラー情報を含むerrorエラーメッセージを印刷し、該サブストレージプールをスキップして次のサブストレージプールの状態をスキャンする。
【0057】
(5)最終的にready実行状態にあるサブストレージプールがない場合、ストレージボリューム作成装置はエラーを直接返して各種の状態のサブストレージプール数を印刷する。
【0058】
以上から分かるように、ready、unready、pending、およびerrorという4種の状態は、現れる可能性がある全ての場合をカバーし、且つどのような状態にあっても、ストレージボリューム作成装置はいずれも対応策を有しており、ストレージシステムが使用不可となることがなく、物理記憶媒体の障害回復および障害復旧に寄与する。
【0059】
ステップS340において、作成待ちのストレージボリュームの属性情報、および正常な実行状態にあるサブストレージプールの属性情報に基づき、正常な実行状態にあるサブストレージプールをスコアリングする。
【0060】
作成待ちのストレージボリュームの属性情報に、作成待ちのストレージボリュームの要求空間サイズおよび要求読み書き帯域幅のうちの少なくとも1つが含まれ、サブストレージプールの属性情報に、サブストレージプールの総空間サイズ、総読み書き帯域幅、使用済み空間サイズ、使用済み読み書き帯域幅のうちの少なくとも1つが含まれている。
【0061】
一実施形態において、要求空間サイズと総空間サイズとの比を該サブストレージプールのスコアとするか、または要求読み書き帯域幅と総読み書き帯域幅との比を該サブストレージプールのスコアとするか、または要求空間サイズと総空間サイズとの比を要求読み書き帯域幅と総読み書き帯域幅との比に重み付け加算し、該サブストレージプールのスコアを取得する。
【0062】
別の実施形態において、サブストレージプールの総空間サイズから使用済み空間サイズを減らして該サブストレージプールの残りの空間サイズを取得し、要求空間サイズと残りの空間サイズとの比を該サブストレージプールのスコアとするか、または該サブストレージプールの総読み書き帯域幅から使用済み読み書き帯域幅を減らして該サブストレージプールの残りの読み書き帯域幅を取得し、要求読み書き帯域幅と残りの読み書き帯域幅との比を該サブストレージプールのスコアとする。
【0063】
更なる実施形態において、下記式に基づき、正常な実行状態にあるサブストレージプールの総空間サイズtotal_size
iから使用済み空間サイズused_size
iを減らして正常な実行状態にあるサブストレージプールの残りの空間サイズを取得し、正常な実行状態にあるサブストレージプールの総読み書き帯域幅であるtotal_io_bandwidth
iから使用済み読み書き帯域幅であるused_io_bandwidth
iを減らして正常な実行状態にあるサブストレージプールの残りの読み書き帯域幅を取得し、要求空間サイズrequest_sizeと残りの空間サイズとの比を要求読み書き帯域幅request_io_bandwidthと残りの読み書き帯域幅との比に重み付け加算し、正常な実行状態にあるサブストレージプールのスコアを取得する。
【0065】
ここで、iはサブストレージプールの番号であり、weight_sizeはrequest_sizeと残りの空間サイズとの比に対応する重みであり、weight_io_bandwidthはrequest_io_bandwidthと残りの読み書き帯域幅との比に対応する重みである。
【0066】
ステップS350において、スコアが所定の要求を満たすサブストレージプールをターゲットサブストレージプールとする。
【0067】
所定の要求はスコアの計算方法に関連し、一般的には、所定の要求を満たすサブストレージプールは作成待ちのストレージボリュームの属性情報に更に合わせ、例えば、サブストレージプールの総空間サイズまたは残りの空間サイズは作成待ちのストレージボリュームの要求制御サイズよりも大きく、サブストレージプールの総読み書き帯域幅または残りの読み書き帯域幅は作成待ちのストレージボリュームの要求読み書き帯域幅よりも大きい。
【0068】
一実施例において、上記式を用いてサブストレージプールのスコアを計算する時、スコアが所定の閾値よりも大きい任意のサブストレージプールをターゲットサブストレージプールとし、またはスコアが最も高いサブストレージプールをターゲットサブストレージプールとする。
【0069】
ステップS360において、作成待ちのストレージボリュームの属性情報に基づき、ターゲットサブストレージプールにおいて、前記ターゲットサブストレージプールの物理記憶媒体によりストレージボリュームを作成する。
【0070】
ストレージボリューム作成装置は、対応するストレージバックエンドの関数セットを呼び出し、要求空間サイズおよび読み書き帯域幅に基づいて対応するストレージボリュームを作成して割り当て、且つ、ストレージボリュームを必要なファイルシステムにフォーマット化する。割り当てが成功すると、このストレージボリュームはユーザに返されて使用され、その後、この割り当てられたストレージボリュームをシステムキャッシュに加えることで、該ストレージボリュームがどのサブストレージプールおよびどの統合ストレージプールに属するかを効率的に照会しやすくする。それと同時に、このストレージボリュームの空間サイズおよび読み書き帯域幅を該サブストレージプールのused_size
iおよびused_io_bandwidth
iに加えることで、次回のストレージボリューム作成過程でサブストレージプールをスコアリングしやすくする。
【0071】
本実施例において、作成待ちのストレージボリュームの属性情報、および正常な実行状態にあるサブストレージプールの属性情報に基づき、正常な実行状態にあるサブストレージプールをスコアリングし、スコアが所定の要求を満たすサブストレージプールをターゲットサブストレージプールとすることにより、物理記憶媒体が破損した後、正常に実行する他のサブストレージプールのうちのスコアが所定の要求を満たすサブストレージプールを選定してストレージボリューム作成を行うことができ、ストレージシステムの安定性および安全性を効果的に確保するとともに、Federation Pool記憶アーキテクチャ全体におけるストレージリソースの使用が傾斜しない(偏らない)ことも確保する。このように、Federation Pool記憶アーキテクチャにおいて、ストレージボリュームが均一に割り当てられ、ストレージリソースの利用率を向上させ、記憶空間やIOの無駄使いおよび単一の物理記憶媒体の負荷が大きすぎることを回避し、IO性能を向上させ、最終的にデータ分布のバランスを実現する。
【0072】
実施例4
本実施例は、作成待ちのストレージボリュームの属性情報、および作成待ちのストレージボリュームを作成するための統合ストレージプールの情報を取得する前に、Federation Pool記憶アーキテクチャの統合ストレージプール層、サブストレージプール層および物理記憶媒体層の作成過程を更に含む。
図5は、本発明の実施例4に係るストレージボリューム作成方法のフローチャートであり、
図5に示すように、以下のステップS410〜ステップS470が含まれる。
【0073】
ステップS410において、作成待ちの少なくとも1つの統合ストレージプールの情報、各統合ストレージプールにおける少なくとも1つのサブストレージプールの情報、および各サブストレージプールにおける物理記憶媒体の情報を取得する。
【0074】
統合ストレージプールの情報に、統合ストレージプールの名称およびその内のサブストレージプールの名称が含まれている。各統合ストレージプールにおける少なくとも1つのサブストレージプールの情報に、サブストレージプールの名称、サブストレージプールにおける物理記憶媒体の組み合わせ方式、バックエンドストレージ、ファイルシステムタイプ、およびその中の物理記憶媒体の情報が含まれている。各サブストレージプールにおける物理記憶媒体の情報に、物理記憶媒体の名称、アドレス、およびバージョン等の情報が含まれている。
【0075】
ストレージボリューム作成装置は、様々な方式によりステップS410における情報を取得することができる。一実施形態において、ストレージボリューム作成装置は、通信リンクを介してクライアントから送信されたhttp要求を受信し、http要求から記憶アーキテクチャ設定ファイル、例えば、yamlファイルまたはjsonファイルを解析する。続いて、ストレージボリューム設定ファイルから作成待ちの少なくとも1つの統合ストレージプールの情報、各統合ストレージプールにおける少なくとも1つのサブストレージプールの情報、および各サブストレージプールにおける物理記憶媒体の情報を解析する。一実施例において、記憶アーキテクチャ設定ファイルにおけるフォーマット、パラメータおよび注釈は以下に示すとおりである。
Federation Pool:
name:bronze//統合ストレージプールの名称
sub Pools:
−name:bronzel//1つ目のサブストレージプールの名称
driver:devicemapper//サブストレージプールbronzelのバックエンドストレージ
filesystem:xfs//サブストレージプールbronzelのファイルシステムタイプ
type:stripe//サブストレージプールbronzelにおける物理記憶媒体の組み合わせ方式
devices://サブストレージプールbronzelにおける物理記憶媒体の情報
−/dev/saa
−/dev/sdb
−name:bronze2//2つ目のサブストレージプールの名称
driver:aufs//サブストレージプールbronze2のバックエンドストレージ
filesystem:ext4//サブストレージプールbronze2のファイルストレージタイプ
type:linear//サブストレージプールbronze2における物理記憶媒体の組み合わせ方式
devices://サブストレージプールbronze2における物理記憶媒体の情報
−/dev/sdc
−/dev/sdd
【0076】
別の実施形態において、ストレージボリューム作成装置は、コマンドライン、設定インタフェースまたはブラウザを介してユーザが入力した上記情報を取得する。なお、サーバにアクセスできてサーバにおけるストレージボリューム作成装置に少なくとも1つの統合ストレージプールの情報、各統合ストレージプールにおける少なくとも1つのサブストレージプールの情報、および各サブストレージプールにおける物理記憶媒体の情報を提供する任意の方法は、いずれも本発明の実施例の保護範囲内に属する。
【0077】
本実施例において、少なくとも1つのサブストレージプールは異なる構造、即ち、異なるストレージバックエンド、磁気ディスク数、ファイルシステムタイプ、および物理記憶媒体の組み合わせ方式等を有してもよい。異なる構造のサブストレージプールは、異なるストレージバックエンド、例えば、devicemapper、aufs、およびtmpfs等で作成される。異なる構造のストレージバックエンドは、異なる記憶性能を提供してユーザの異なるニーズを満たすことができる。もちろん、これらに限定されず、少なくとも1つのサブストレージは同じ構造、即ち、同じストレージバックエンド、磁気ディスク数、ファイルシステムタイプ、およびストレージタイプ等を有してもよい。各サブストレージプールは独立して存在し、互いに干渉しないと考えられる。
【0078】
ステップS420において、少なくとも1つの統合ストレージプールの情報に基づき、少なくとも1つの統合ストレージプールを作成する。
【0079】
ステップS430において、各統合ストレージプールにおける少なくとも1つのサブストレージプールの情報に基づき、対応する統合ストレージプールにおいて少なくとも1つのサブストレージプールを作成する。
【0080】
ステップS440において、各サブストレージプールに対応する物理記憶媒体の情報に基づき、対応する物理記憶媒体を対応するサブストレージプールに加える。
【0081】
一実施例において、ストレージボリューム作成装置は、記憶アーキテクチャ設定ファイルの内容を解析し、それをGolangプログラムのオブジェクト配列に翻訳し、プログラムは各オブジェクトのパラメータに従って対応するストレージバックエンド関数を呼び出し、「name」に基づいて統合ストレージプールおよびサブストレージプールに対応する名称を生成し、「driver」に基づいて異なるストレージバックエンド関数セットを呼び出し、「devices」に基づいて異なる物理記憶媒体を下地層ストレージとして用い、「type」に基づいて下地層ストレージの組み合わせ方式を決定し、「filesystem」に基づいてこのサブストレージプールがストレージボリュームを作成するファイルシステムタイプを決定する。
【0082】
ステップS450において、作成待ちのストレージボリュームの属性情報、および作成待ちのストレージボリュームを作成するための統合ストレージプールの情報を取得する。
【0083】
ステップS460において、統合ストレージプールの情報に対応する統合ストレージプールからターゲットサブストレージプールを選定し、統合ストレージプールに、少なくとも1つのサブストレージプールが含まれている。
【0084】
ステップS470において、作成待ちのストレージボリュームの属性情報に基づき、ターゲットサブストレージプールにおいて、前記ターゲットサブストレージプールの物理記憶媒体によりストレージボリュームを作成する。
【0085】
本実施例において、作成待ちの少なくとも1つの統合ストレージプールの情報、各統合ストレージプールにおける少なくとも1つのサブストレージプールの情報、および各サブストレージプールにおける物理記憶媒体の情報を取得し、取得した情報に基づいて記憶アーキテクチャ全体を自動的に作成することにより、記憶アーキテクチャの作成過程を簡略化し、人件費を節約し、作成の効率を向上させる。更に、複数のサブストレージプールの構造が異なり、更に異なるストレージバックエンドを有する場合、統合ストレージプール層は、該構造が異なり、異なるストレージバックエンドを有する複数のサブストレージプールの統一な設定およびスケジューリングを実現することができ、ユーザの様々なストレージニーズを満たす。
【0086】
一実施例において、本発明の実施例は、ローカル記憶システムのカーネルに内蔵されたファイルシステムを用いて記憶アーキテクチャの作成、ストレージボリューム作成および割り当てを行い、ローカルシステムがLinux(登録商標)であると、Linux(登録商標)のカーネルに内蔵されたファイルシステムを用い、IO性能およびストレージボリュームの割り当て性能は高くなり、特に、大量のストレージボリュームを割り当てた後にも、依然として高い割り当てるレートを維持する。
【0087】
上記実施例または下記実施例において、各サブストレージプールに対応する物理記憶媒体の情報に基づいて対応する物理記憶媒体を対応するサブストレージプールに加えた後、記憶容量の拡張スキームを更に含み、以下の少なくとも4段階の拡張を含む。
【0088】
統合ストレージプール層の拡張:少なくとも1つの統合ストレージプールが位置する統合ストレージプール層の拡張インタフェースを呼び出し、新たな統合ストレージプール、例えば、
図2bにおけるironを増加させる。一実施例において、該拡張インタフェースはアプリケーションプログラミングインタ(Application Programming Interface、API)である。
【0089】
サブストレージプール層の拡張は、少なくとも1つの統合ストレージプールが位置する統合ストレージプール層の拡張インタフェースを呼び出し、統合ストレージプールのうちの新たなサブストレージプール、例えば、
図2bにおけるgold2およびiron1を増加させることと、サブストレージプールの拡張インタフェースを呼び出し、該サブストレージプールの空間サイズ、例えば、gold1の空間サイズを増加することと、記憶装置を小型コンピュータシステムインタフェース(Small Computer System Interface、SCSI)または光ファイバチャネルを介してサーバに直接接続することで物理記憶媒体を増加させ、増加した物理記憶媒体を元のまたは新たに増加したサブストレージプールに加え、対応するサブストレージプールの空間サイズを増加させることとの少なくとも1つを含む。
【0090】
物理記憶媒体層の拡張:記憶装置をSCSIインタフェースまたは光ファイバチャネルを介してサーバに直接接続することで物理記憶媒体、例えば、
図2bにおけるMemoryおよびSSDを増加させる。
【0091】
ストレージボリューム層の拡張:ストレージボリュームの拡張インタフェースを呼び出し、ストレージボリュームの空間サイズを増加させる。ストレージボリュームが拡張された後、ストレージボリュームの増加された空間サイズに基づき、所属するサブストレージプールの属性情報、および所属する統合ストレージプールの属性情報を更新する。ここで、統合ストレージプールの属性情報に、統合ストレージプールの総空間サイズ、総読み書き帯域幅、使用済み空間サイズ、および使用済み読み書き帯域幅等が含まれている。
【0092】
本実施例は、下地層ストレージの数を直接増加させることによりPool Federation記憶アーキテクチャの縦方向の拡張を実現し、上記統合ストレージプール層、サブストレージプール層およびストレージボリューム層の拡張スキームにより、データ構造を水平方向に拡張し、更に記憶容量を横方向に増加させ、これにより、Pool Federation記憶アーキテクチャは強い横方向と縦方向の拡張能力を有することが分かる。
【0093】
一実施例において、作成待ちのストレージボリュームの属性情報に基づいてターゲットサブストレージプールにおいて、該ターゲットサブストレージプールの物理記憶媒体によりストレージボリュームを作成した後、ストレージボリュームの使用済みの要求情報からストレージボリュームの情報を取得することと、ストレージボリュームの情報に基づき、ストレージボリュームの所属するサブストレージプールを確定することと、サブストレージプールからストレージボリュームを削除することとを更に含む。
【0094】
ストレージボリュームの使用が済んだ後、ユーザはストレージボリューム作成装置に使用済みの要求情報を送信し、該要求情報には、ストレージボリュームの名称、所属するサブストレージプールおよび統合ストレージプール、総空間サイズ、総読み書き帯域幅、使用済み空間サイズ、使用済み読み書き帯域幅、およびマウントポイント等のようなストレージボリュームの情報が含まれる。ストレージボリューム作成装置は、該要求情報から上記ストレージボリュームの情報を取得し、ストレージボリュームの所属するサブストレージプールを確定し、およびサブストレージプールから該ストレージボリュームを削除する。該ストレージボリュームを割り当てた後にシステムキャッシュに加えるため、更にシステムキャッシュにおけるストレージボリュームを削除し、所属するサブストレージプールの使用済み空間サイズおよび使用済み読み書き帯域幅を更新する必要がある。
【0095】
本実施例において、ストレージボリュームの使用済みの要求情報からストレージボリュームの情報を取得し、ストレージボリュームの情報に基づいてストレージボリュームの所属するサブストレージプールを確定し、サブストレージプールからストレージボリュームを削除することにより、要求情報に基づいてストレージボリュームの迅速かつタイムリーな回収を実現することができる。例えば、コンテナ環境において、コンテナに使用可能な記憶空間を迅速に割り当てることができるとともに、コンテナが停止した後に更に迅速に回収できる必要があり、本実施例の技術案はコンテナ環境に適用でき、ストレージボリュームの迅速な割り当ておよび回収を実現する。
【0096】
実施例5
図6は、本発明の実施例5に係るストレージボリューム作成装置の構造模式図であり、取得モジュール51と、選定モジュール52と、作成モジュール53とを備える。
【0097】
取得モジュール51は、作成待ちのストレージボリュームの属性情報、および作成待ちのストレージボリュームを作成するための統合ストレージプールの情報を取得するように構成される。
【0098】
選定モジュール52は、統合ストレージプールの情報に対応する統合ストレージプールから、ターゲットサブストレージプールを選定するように構成され、前記統合ストレージプールに、少なくとも1つのサブストレージプールが含まれている。
【0099】
作成モジュール53は、作成待ちのストレージボリュームの属性情報に基づき、ターゲットサブストレージプールにおいて、前記ターゲットサブストレージプールの物理記憶媒体によりストレージボリュームを作成するように構成される。
【0100】
本発明の実施例は、新たなPool Federation記憶アーキテクチャを提供し、該記憶アーキテクチャは、複数のサブストレージプールの上層に1層の統合ストレージプール層を追加し、複数のサブストレージプールを連結して1つのより大きなストレージプールを構成することにより、複数のサブストレージプールの間のスケジューリングを実現する。Pool Federation記憶アーキテクチャの基に、本発明の実施例は、作成待ちのストレージボリュームの属性情報、および作成待ちのストレージボリュームを作成するための統合ストレージプールの情報を取得し、統合ストレージプールの情報に対応する統合ストレージプールからターゲットサブストレージプールを選定し、作成待ちのストレージボリュームの属性情報に基づき、ターゲットサブストレージプールにおいて、該ターゲットサブストレージプールの物理記憶媒体によりストレージボリュームを作成することにより、物理記憶媒体が破損した後、所属するサブストレージプールのみが使用不可となり、他のサブストレージプールは依然として使用可能であり、ひいては記憶アーキテクチャ全体は使用可能であり、一部の物理記憶媒体の破損の影響を受けることがなく、安全に実行することができ、良好な安定性および安全性を有し、アプリケーションプログラムにストレージリソースをスムーズに割り当て、アプリケーションプログラムの正常実行を確保する。
【0101】
一実施例において、選定モジュール52は、統合ストレージプールにおける少なくとも1つのサブストレージプールの実行状態を取得し、正常な実行状態にあるサブストレージプールをターゲットサブストレージプールとして選定するように構成され、ここで、正常な実行状態にあるサブストレージプールにおける物理記憶媒体は、使用可能な状態にある。
【0102】
一実施例において、選定モジュール52は、統合ストレージプールにおける少なくとも1つのサブストレージプールの実行状態を取得し、少なくとも1つのサブストレージプールの実行状態に基づき、正常な実行状態にあるサブストレージプールを確定し、作成待ちのストレージボリュームの属性情報、および正常な実行状態にあるサブストレージプールの属性情報に基づき、正常な実行状態にあるサブストレージプールをスコアリングし、スコアが所定の要求を満たすサブストレージプールをターゲットサブストレージプールとするように構成され、ここで、正常な実行状態にあるサブストレージプールにおける物理記憶媒体は、使用可能な状態にあり、作成待ちのストレージボリュームの属性情報に、作成待ちのストレージボリュームの要求空間サイズ、要求の1秒当たりの読み書き操作の回数、および読み書き帯域幅のうちの少なくとも1つが含まれ、サブストレージプールの属性情報に、サブストレージプールの総空間サイズ、総読み書き帯域幅、使用済み空間サイズ、使用済み読み書き帯域幅のうちの少なくとも1つが含まれ、読み書き帯域幅は、1秒当たりの読み書き操作の回数iops、1秒当たりの伝送ビット数bpsまたは読み書きスケジューリング周期毎に占有する物理記憶媒体の帯域幅の割合を含む。
【0103】
一実施例において、選定モジュール52は、作成待ちのストレージボリュームの属性情報、およびサブストレージプールの属性情報に基づいて正常な実行状態にあるサブストレージプールをスコアリングする時、正常な実行状態にあるサブストレージプールの総空間サイズから使用済み空間サイズを減らして正常な実行状態にあるサブストレージプールの残りの空間サイズを取得し、正常な実行状態にあるサブストレージプールの総読み書き帯域幅から使用済み読み書き帯域幅を減らして正常な実行状態にあるサブストレージプールの残りの読み書き帯域幅を取得し、要求空間サイズと残りの空間サイズとの比を要求読み書き帯域幅と残りの読み書き帯域幅との比に重み付け加算し、正常な実行状態にあるサブストレージプールのスコアを取得するように構成される。
【0104】
一実施例において、取得モジュール51は、更に、作成待ちの少なくとも1つの統合ストレージプールの情報、各統合ストレージプールにおける少なくとも1つのサブストレージプールの情報、および各サブストレージプールにおける物理記憶媒体の情報を取得するように構成される。作成モジュール53は、少なくとも1つの統合ストレージプールの情報に基づき、少なくとも1つの統合ストレージプールを作成し、各統合ストレージプールにおける少なくとも1つのサブストレージプールの情報に基づき、対応する統合ストレージプールにおいて少なくとも1つのサブストレージプールを作成し、各サブストレージプールに対応する物理記憶媒体の情報に基づき、対応する物理記憶媒体を対応するサブストレージプールに加えるように構成される。
【0105】
一実施例において、少なくとも1つのサブストレージプールの情報に、サブストレージプールの名称、サブストレージプールにおける物理記憶媒体の組み合わせ方式、バックエンドストレージ、ファイルシステムタイプ、およびサブストレージプールにおける物理記憶媒体の情報が含まれている。
【0106】
一実施例において、ストレージボリューム作成装置は拡張モジュールを更に備え、前記拡張モジュールは、各サブストレージプールに対応する物理記憶媒体の情報に基づいて対応する物理記憶媒体を対応するサブストレージプールに加えた後、少なくとも1つの統合ストレージプールが位置する統合ストレージプール層の拡張インタフェースを呼び出し、新たな統合ストレージプールを増加させる動作と、少なくとも1つの統合ストレージプールが位置する統合ストレージプール層の拡張インタフェースを呼び出し、統合ストレージプールのうちの新たなサブストレージプールを増加させる動作と、サブストレージプールの拡張インタフェースを呼び出し、サブストレージプールの空間サイズを増加させる動作と、ストレージボリュームの拡張インタフェースを呼び出し、ストレージボリュームの空間サイズを増加させる動作との少なくとも1つを実行するように構成される。
【0107】
一実施例において、ストレージボリューム作成装置は割り当てモジュールを更に備え、前記割り当てモジュールは、作成待ちのストレージボリュームの属性情報に基づいてターゲットサブストレージプールにおいて、該ターゲットサブストレージプールの物理記憶媒体によりストレージボリュームを作成した後、作成待ちのストレージボリュームに必要なファイルシステムタイプおよびマウントポイントを取得し、ストレージボリュームをファイルシステムタイプに対応するファイルシステムにフォーマット化し、ストレージボリュームをマウントポイントにマウントするように構成される。
【0108】
一実施例において、ストレージボリューム作成装置は削除モジュールを更に備え、前記削除モジュールは、作成待ちのストレージボリュームの属性情報に基づいてターゲットサブストレージプールにおいて、該ターゲットサブストレージプールの物理記憶媒体によりストレージボリュームを作成した後、ストレージボリュームの使用済みの要求情報からストレージボリュームの情報を取得し、ストレージボリュームの情報に基づいてストレージボリュームの所属するサブストレージプールを確定し、サブストレージプールからストレージボリュームを削除するように構成される。
【0109】
本発明の実施例に係るストレージボリューム作成装置は、本発明のいずれかの実施例に係るストレージボリューム作成方法を実行でき、方法の実行に対応する機能モジュールおよび有益な効果を備える。
【0110】
実施例6
図7は、本発明の実施例6に係るサーバの構造模式図であり、
図7に示すように、該サーバは、プロセッサ60と、メモリ61とを備え、サーバにおけるプロセッサ60の数は1つまたは複数であってもよく、
図7において、1つのプロセッサ60を例とし、サーバにおけるプロセッサ60、メモリ61はバスまたは他の方式により接続でき、
図7においてバスによる接続を例とする。
【0111】
メモリ61は、コンピュータ可読記憶媒体として、本発明の実施例におけるストレージボリューム作成方法に対応するプログラム命令/モジュール(例えば、ストレージボリューム作成装置における取得モジュール51、選定モジュール52および作成モジュール53)のようなソフトウェアプログラム、コンピュータ実行可能プログラムおよびモジュールを記憶するために使用できる。プロセッサ60は、メモリ61に記憶されたソフトウェアプログラム、命令およびモジュールを実行することにより、サーバの様々な機能アプリケーションおよびデータ処理を実行し、即ち、上記ストレージボリューム作成方法を実現する。
【0112】
メモリ61は、主にプログラム記憶エリアおよびデータ記憶エリアを含んでもよく、ここで、プログラム記憶エリアはオペレーティングシステム、少なくとも1つの機能に必要なアプリケーションプログラムを記憶することができ、データ記憶エリアは、端末の使用に基づいて作成されたデータ等を記憶することができる。また、メモリ61は高速ランダムアクセスメモリを含んでもよく、少なくとも1つの磁気ディスク記憶装置、フラッシュメモリデバイス、または他の不揮発性固体記憶装置のような不揮発性メモリを含んでもよい。いくつかのインスタンスにおいて、メモリ61は、プロセッサ60に対して遠隔に設けられたメモリを更に含んでもよく、これらのリモートメモリは、ネットワークを介してサーバに接続することができる。上記ネットワークのインスタンスは、インターネット、イントラネット、ローカルエリアネットワーク、移動体通信ネットワークおよびその組み合わせを含むが、これらに限定されない。
【0113】
実施例7
本発明の実施例7は、コンピュータプログラムが記憶されているコンピュータ可読記憶媒体を更に提供し、コンピュータプログラムは、コンピュータプロセッサにより実行されると、ストレージボリューム作成方法を実行するために使用され、該方法は、
作成待ちのストレージボリュームの属性情報、および作成待ちのストレージボリュームを作成するための統合ストレージプールの情報を取得することと、
統合ストレージプールの情報に対応する統合ストレージプールから、ターゲットサブストレージプールを選定することと、
作成待ちのストレージボリュームの属性情報に基づき、ターゲットサブストレージプールにおいて、前記ターゲットサブストレージプールの物理記憶媒体によりストレージボリュームを作成することと、を含み、
統合ストレージプールに、少なくとも1つのサブストレージプールが含まれている。
【0114】
もちろん、本発明の実施例所に係るコンピュータプログラムが記憶されているコンピュータ可読記憶媒体は、そのコンピュータプログラムは以上に記載の方法の操作に限定されず、更に本発明のいずれかの実施例に係るストレージボリューム作成方法における関連操作を実行することができる。
【0115】
以上の実施形態についての説明により、当業者は、本発明がソフトウェアおよび必要な汎用ハードウェアを介して実現でき、もちろん、ハードウェアで実現されてもよいが、多くの場合、前者はより好適な実施形態であることを明らかに理解できる。このような理解の上、本発明の技術案は、本質的にまたは関連技術に貢献する部分はソフトウェア製品の形式で具現化でき、該コンピュータソフトウェア製品は、コンピュータのフレキシブルディスク、読み出し専用メモリ(Read−Only Memory、ROM)、ランダムアクセスメモリ(Random Access Memory、RAM)、フラッシュメモリ(FLASH(登録商標))、ハードディスクまたは光ディスク等のようなコンピュータ可読記憶媒体に記憶でき、1台のコンピュータ装置(パーソナルコンピュータ、サーバ、またはネットワーク装置等であってもよい)に本発明の複数の実施例に記載の方法を実行させるための複数の命令を含む。
【0116】
なお、上記ストレージボリューム作成装置の実施例において、含まれる複数のユニットおよびモジュールは機能ロジックに従って分割されるだけであり、上記分割に限定されず、対応する機能を実現できればよい。また、複数の機能ユニットの具体的な名称も、互いに区別しやいためのものに過ぎず、本発明の保護範囲を制限するものではない。