JP6216048B2 - ストレージネットワークにおけるデータ移行 - Google Patents

ストレージネットワークにおけるデータ移行 Download PDF

Info

Publication number
JP6216048B2
JP6216048B2 JP2016522173A JP2016522173A JP6216048B2 JP 6216048 B2 JP6216048 B2 JP 6216048B2 JP 2016522173 A JP2016522173 A JP 2016522173A JP 2016522173 A JP2016522173 A JP 2016522173A JP 6216048 B2 JP6216048 B2 JP 6216048B2
Authority
JP
Japan
Prior art keywords
data
data storage
storage node
transmission
random
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2016522173A
Other languages
English (en)
Other versions
JP2016528598A (ja
Inventor
ソン,シュエフォン
リ,チー
シュー,シージエ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Empire Technology Development LLC
Original Assignee
Empire Technology Development LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Empire Technology Development LLC filed Critical Empire Technology Development LLC
Publication of JP2016528598A publication Critical patent/JP2016528598A/ja
Application granted granted Critical
Publication of JP6216048B2 publication Critical patent/JP6216048B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/14Multichannel or multilink protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/28Timers or timing mechanisms used in protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/16Central resource management; Negotiation of resources or communication parameters, e.g. negotiating bandwidth or QoS [Quality of Service]
    • H04W28/18Negotiating wireless communication parameters
    • H04W28/22Negotiating communication rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W72/00Local resource management
    • H04W72/02Selection of wireless resources by user or terminal

Description

本明細書に説明する実施形態は一般に、ストレージネットワークにおけるデータ移行に関する。
本明細書では特に指示のない限り、この節で説明される手法は、本出願の特許請求の範囲に対する先行技術ではなく、この節に含めることによって先行技術であると認められるものではない。
ストレージネットワークは通常、データを記憶するためのデータストレージノードを有するデータセンタを含む。たとえば、ウェブベースのアプリケーションのためのデータセンタは、それぞれがいくつかの個数のストレージサーバを有する複数の分散データストレージノードを含むことができる。大量データの伝送は、ネットワーク帯域幅の大部分を占有することがあり、同じ物理サーバ上に展開される他のアプリケーションのパフォーマンスに影響を与えることがある。さらに、ネットワーク帯域幅の大部分が占有されたとき、サイドチャネル攻撃をしようとする同じゾーン内の悪意あるオブジェクトによってデータが収集され分析されることがある。
一般的に、ストレージネットワークにおけるデータ移行のための技術を説明する。さまざまな技法が、さまざまなシステム、方法、および/またはコンピュータ可読媒体で実装され得る。
ある例示的実施形態では、方法が提供され、この方法は、第1のデータストレージノードから第2のデータストレージノードへのデータの送信に対して時間要件を割り当てること、伝送チャネルの所定のパラメータに基づいて、最大数の利用可能な伝送チャネルの各々に対して最大チャネル伝送速度を割り当てること、ならびに時間要件および最大数の利用可能な伝送チャネルに従って、データを送信することを含むことができる。
別の例示的実施形態では、コンピュータ可読媒体が、実行されたときに1つまたは複数のプロセッサに動作を行わせる命令を記憶し、それらの動作は、第1のデータストレージノードから第2のデータストレージノードへのデータの送信に対して時間要件を割り当てること、伝送チャネルの所定のパラメータに基づいて、最大数の利用可能な伝送チャネルの各々に対して最大チャネル伝送速度を割り当てること、ならびに時間要件および最大数の利用可能な伝送チャネルに従って、データを送信することを含むことができる。
さらに別の例示的実施形態では、データストレージシステムが、データをそれぞれ記憶するように構成された第1のデータストレージノードおよび第2のデータストレージノードを含む複数のデータストレージノードと、プロセッサとを備えることができ、プロセッサは、第1のデータストレージノードから第2のデータストレージノードへのデータの送信に対して時間要件を割り当て、所定のパラメータに基づいて、最大数の利用可能な伝送チャネルの各々に対して最大チャネル伝送速度を割り当て、時間要件および最大数の利用可能な伝送チャネルに従って、データを送信するように構成される。
上記の概要は例示にすぎず、何ら限定することを意図していない。上述した例示的な態様、実施形態、および特徴に加えて、さらなる態様、実施形態、および特徴が、図面および以下の詳細な説明を参照することにより明らかとなろう。
以下の詳細な説明から当業者にはさまざまな変更および修正が明らかとなるので、以下の詳細な説明では、実施形態は単に例示として説明される。異なる図面における同じ参照番号の使用は、類似または同一の要素を示す。
本明細書に説明される少なくともいくつかの実施形態に従って構成される、ストレージネットワークにおけるデータ移行が実装され得るストレージネットワークの例示的構成を示す図である。 本明細書に説明される少なくともいくつかの実施形態に従って構成される、ストレージネットワークにおけるデータ移行の少なくとも一部が実装され得るデータセンタのクラスタの例示的構成を示す図である。 本明細書に説明される少なくともいくつかの実施形態に従って構成される、ノード間でストレージネットワークにおけるデータ移行の少なくとも一部が実装され得る第1のデータストレージノードおよび第2のデータストレージノードの例示的構成を示す図である。 本明細書に説明されるような、ストレージネットワークにおけるデータ移行のいくつかの実施形態による、固定伝送チャネルおよびランダム伝送チャネルの例示的構成を示す図である。 本明細書に説明される少なくともいくつかの実施形態による、データストレージネットワークにおけるデータ移行のための動作の処理フローの例示的構成を示す図である。 本開示による、ストレージネットワークにおけるデータ移行のために構成された例示的コンピューティングデバイスを示すブロック図である。
以下の詳細な説明では、本明細書の一部を形成する添付図面を参照する。図面では、同様の符号は、文脈で特に指示のない限り、通常は同様のコンポーネントを示す。さらに、一連の各図についての説明は、特に注記がない限り、先行する図の1つまたは複数における特徴を参照して、より明確な文脈および現在の例示的実施形態のより本質的な説明を与えることがある。ただし、詳細な説明、図面、および特許請求の範囲に説明される例示的実施形態は、限定的であることを意図していない。本明細書に提示される主題の趣旨または範囲から逸脱することなく、他の実施形態が利用されてもよく、他の変更が行われてもよい。本明細書に一般的に説明され図面に示される本開示の態様は、さまざまな異なる構成で配置、置換、組み合わせ、分離、および設計がされてよく、それらはすべて本明細書で明示的に企図されていることは容易に理解されよう。
ストレージネットワークにおけるデータ移行すなわち再配置を行うための技術を説明する。さまざまな実施形態において、この技術は、時間内に異なる伝送チャネルを介してデータストレージノード間のデータ送信をランダム化する。データ送信のランダム化は、データストレージノード間でデータ送信するための伝送チャネルをランダムに選択することによって達成される。
図1は、本明細書に説明される少なくともいくつかの実施形態に従って構成される、ストレージネットワークにおけるデータ移行が実装され得るストレージネットワークの例示的構成100を示す。図示のように、ストレージネットワークの例示的構成100は、少なくとも、1つまたは複数のクラスタ120、130、および140ならびにそれらに関連付けられたアドミニストレータ145を含むことができるデータセンタ110と、ネットワーククラウド150と、1つまたは複数のクラウドプロバイダ155および157と、1つまたは複数のクラスタ170、180、および190ならびにそれらに関連付けられたアドミニストレータ195を含むことができるデータセンタ160とを含むことができる。
本明細書に述べられるように、データの送信は、クラウドストレージ環境内で容易にされ得る。
本明細書で参照されるように、「クラスタ」は、互いに通信可能に結合され得るデータストレージノードたとえばサーバのグループを表すことができる。いくつかの実施形態によれば、データセンタ110およびデータセンタ160は各々が、対応するデータセンタの内部および外部の両方で互いに通信することができる複数のクラスタを含んでよく、それにより、本明細書に述べられるようにデータ移行を実装する。
各データストレージノード、たとえば、サーバは、データ移行を容易にするためのプロセッサを含むことができる。1つまたは複数の例示的実施形態によれば、データ移行は、送信データストレージノードまたは受信データストレージノードのプロセッサによって指定される時間要件に従って、そして上述のプロセッサによって決定される利用可能な伝送チャネル上の最大伝送速度までの速度で、実装することができる。最大伝送速度は、伝送チャネルの長さまたはタイプのような所定のパラメータに基づいて決定することができる。
各データセンタ110および160は、通信リンクを介して、データセンタ110および160内のデータストレージノードから、または他のデータセンタ内のデータストレージノードからデータを受信し、受信したデータをその中に記憶するように構成、設計、および/またはプログラムされ得るデータストレージノードたとえばサーバの、同一場所に配置された集合を表すことができる。構成100のいくつかの実施形態によれば、データセンタ110、160などは、「サーバファーム」と呼ばれることがある。データセンタ110、160などは、データストレージノード、たとえば、サーバを、同一場所に配置されたクラスタフォーマットに編成して、1つまたは複数の共通のデータサービスを管理するための効率的な大規模な展開を可能にすることができる。
各クラスタ120、130、および140は、データセンタ110で受信されるデータを記憶するように構成され得る1つまたは複数のデータストレージノードたとえばサーバを含むことができる。たとえば、クラスタ120、130、および140は、1つまたは複数のアプリケーション(たとえば、電子メール)を実行するためのデータを記憶することができる。各クラスタ170、180、および190は、データセンタ160で受信されるデータを記憶するための1つまたは複数のデータストレージノードを含むように同様に構成されることができる。
アドミニストレータ145は、データセンタ110に含まれてよく、クラスタ120、130、および140の1つまたは複数に実行可能命令をそれぞれ提供するように構成、設計、および/またはプログラムされてよい。アドミニストレータ145は、ユーザ入力装置を含むようにさらに構成されてよく、ユーザ入力装置は、ユーザがクラスタ120、130、および140の1つまたは複数に実行可能命令を提供し、クラスタ関連情報を閲覧することを可能にするように構成されている。
さらに、アドミニストレータ145は、ソフトウェアまたはコンピュータ実行可能命令を含むことができ、ソフトウェアまたはコンピュータ実行可能命令は、対応するデータセンタ110内のデータストレージノードたとえばサーバの間のデータ移行すなわち再配置を要求し、それにより、ユーザデータおよび/またはアプリケーションデータをバックアップすること、別のデータセンタ、たとえば、データセンタ160へのデータストレージノード間データ移行、および/または別のデータセンタからのデータストレージノード間データ移行を要求すること、ならびに、要求されたデータ移行の作動を監視し、それにより、データ移行プロセスの完了を確認することを行うように構成、設計、および/またはプログラムされている。
アドミニストレータ195は、データセンタ160に含まれてよく、同様にクラスタ170、180、および190の1つまたは複数に実行可能命令をそれぞれ提供するように構成、設計、および/またはプログラムされてよい。さらに、アドミニストレータ195は、ユーザ入力装置を含むようにさらに構成されてよく、ユーザ入力装置は、ユーザがクラスタ170、180、および190の1つまたは複数に実行可能命令を提供し、クラスタ関連情報を閲覧することを可能にするように構成されている。
さらに、アドミニストレータ195は、ソフトウェアまたはコンピュータ実装命令をさらに含むことができ、ソフトウェアまたはコンピュータ実装命令は、対応するデータセンタ170内のデータストレージノードたとえばサーバの間のデータ移行すなわち再配置を要求し、それにより、ユーザデータおよび/またはアプリケーションデータをバックアップすること、別のデータセンタ、たとえば、データセンタ110へのデータストレージノード間データ移行、および/または別のデータセンタからのデータストレージノード間データ移行を要求すること、ならびに、要求されたデータ移行の作動を監視し、それにより、データ移行プロセスの完了を確認することを行うように構成、設計、および/またはプログラムされている。
ネットワーククラウド150は、データ移行の少なくとも一部が実装され得るネットワークを表すことができる。ネットワーククラウド150は、たとえば、広域ネットワーク(WAN)(たとえば、インターネット)、ローカルエリアネットワーク(LAN)、またはデータ移行を行うのに適した任意のタイプのネットワークのいずれか1つによって実装されてもよい。
クラウドプロバイダ155は、データセンタ110のクラスタ120、130、140にそれぞれ対応するデータストレージノードたとえばサーバを利用するさまざまなコンピューティングサービスを容易にするように構成されたベンダまたはサードパーティクラウドサービスプロバイダを表すことができる。クラウドプロバイダ155はまた、データセンタ160のクラスタ170、180、および190にそれぞれ対応するデータストレージノードたとえばサーバを利用するさまざまなコンピューティングサービスを容易にするように構成されてもよい。そのようなコンピューティングサービスの例は、たとえば、コンピュータデバイスのウェブブラウザを介してアクセスされるビジネスアプリケーションを含むことができ、関連したデータはデータセンタ内のクラスタのデータストレージノードに記憶することができ、ビジネスアプリケーションの実装のための帯域幅を割り当てる。さらに、いくつかの場合には、クラウドプロバイダ155は、故障検出機能を実装して、たとえば、コンピューティングサービスが適切に動作していないと検出されたときに、代替サービスを提供するように構成、設計、および/またはプログラムされ得る。
クラウドプロバイダ157は、同様に、データセンタ110のクラスタ120、130、140にそれぞれ対応するデータストレージノードたとえばサーバを利用するさまざまなコンピューティングサービスを容易にするように構成され得る、別のベンダまたはサードパーティクラウドサービスプロバイダを表すことができる。クラウドプロバイダ157はまた、データセンタ160のクラスタ170、180、および190にそれぞれ対応するデータストレージノードたとえばサーバを利用するさまざまなコンピューティングサービスを容易にするように構成されてもよい。
いくつかの実施形態によれば、クラウドプロバイダ155が、やはり、データセンタ110のクラスタ120、130、140にそれぞれ対応するデータストレージノードたとえばサーバを利用するさまざまなコンピューティングサービスを容易にするように構成されるとともに、クラウドプロバイダ157が、データセンタ160のクラスタ170、180、および190にそれぞれ対応するデータストレージノードたとえばサーバを利用するさまざまなコンピューティングサービスを容易にするように構成されることが可能であり、あるいは逆もあり得る。
クラウドプロバイダ155は、コンピューティングデバイス、たとえば、パーソナルコンピュータで1つまたは複数のアプリケーションを実行するためのインフラストラクチャおよびプラットフォームを管理するようにさらに構成されてもよい。
クラウドプロバイダ157は、同様に、1つまたは複数のクラスタ120、130、140、170、180、および190のデータストレージノードたとえばサーバに記憶された関連付けられたアプリケーションデータを使用して、コンピューティングデバイス上で1つまたは複数のアプリケーションを実行するためのインフラストラクチャおよびプラットフォームを管理するように構成されてもよい。
図2は、本明細書に説明される少なくともいくつかの実施形態に従って構成される、ストレージネットワークにおけるデータ移行の少なくとも一部が実装され得るデータセンタのクラスタの例示的構成200を示す図である。クラスタは、クラスタ120、130、140、170、180、および190のいずれか1つであってよい。図示のように、例示的構成200は、少なくとも、各々が少なくとも1つのプロセッサ203、205、207、および209をそれぞれ含むことができる1つまたは複数のデータストレージノード202、204、206、および208と、ローカルクラウドネットワーク210と、インターフェース212とを含むことができる。しかし、この構成は、単に例示であり、いかなる形でも、たとえば、クラスタ当たりのデータストレージノードの数量、またはさらにデータストレージノード当たりのプロセッサの数量に関しても、限定することを意図していない。
各データストレージノード202、204、206、および208は、データを受信しその中にデータを記憶するように構成され得る少なくとも1つのデバイスたとえばサーバを表すことができる。
各データストレージノード202、204、206、および208には、既知のネットワークプロトコルに従って、外部ネットワークアドレスまたはローカルネットワークアドレスとされ得る一意のネットワークアドレス、たとえば、IPアドレスが割り当てられてもよい。それぞれのクラスタに対応するデータストレージノード202、204、206、208は、互いに対して、また、他のクラスタに対応する他のデータストレージノードに対して通信可能に結合されるように構成、設計、および/またはプログラムされている。
それぞれのデータストレージノードに対応する各プロセッサ203、205、207および209は、タスクを実行し、データを処理し、かつ/またはそれぞれのデータストレージノード202、204、206、および208の機能を制御するように構成することができるマイクロコントローラであってもよい。各プロセッサ203、205、207および209はさらに、1つまたは複数の他のクラスタに対応する1つまたは複数のデータストレージノードから受信した信号を処理し、受信した信号に基づいてデータを移行する命令を提供するように構成、設計、および/またはプログラムされてもよい。たとえば、1つまたは複数の実施形態によれば、各プロセッサ203、205、207および209は、データストレージノード間のデータの移行に対する時間要件を割り当て、利用可能な伝送チャネルを決定し、伝送チャネルの長さまたはタイプのような所定のパラメータに基づいて、利用可能な伝送速度の最大伝送速度を割り当てるように構成されてもよい。さらに、各プロセッサ203、205、207、および209は、データの移行のための固定伝送チャネルを算出または決定するように構成されてもよい。算出された固定伝送チャネルの個数は、データの送信を行うために利用される伝送チャネルの個数を示すことができる。各プロセッサ203、205、207、および209はまた、固定伝送チャネルを使用してデータの移行を開始した後、検出された残りのデータ、すなわち未だ移行されるべきデータを送信するために使用されるランダム伝送チャネルを選択するように構成されてもよい。したがって、各プロセッサ203、205、207、および209はさらに、それぞれ対応するデータストレージノード、たとえば、データストレージノード202から、共通のクラスタ内の別のデータストレージノード、たとえば、データストレージノード206へ、あるいは1つまたは複数の他のクラスタに対応する1つまたは複数のデータストレージノードへのデータ移行を容易にするように構成、設計、および/またはプログラムされてもよい。
1つまたは複数の実施形態において、ローカルクラウドネットワーク210は、共通のクラスタ200内のデータストレージノード202、204、206、および208の間の通信を容易にするように設けられてもよい。ローカルクラウドネットワーク210は、同様に、たとえば、広域ネットワーク(WAN)(たとえば、インターネット)、ローカルエリアネットワーク(LAN)、またはデータ移行を行うのに適した任意のタイプのネットワークのいずれか1つによって実装されてもよい。1つまたは複数の他の実施形態において、クラウドネットワーク150は、インターフェース212を使用して、データストレージノード202、204、206、および208の間の通信を容易にすることができる。
インターフェース212は、データストレージノード202、204、206、および208の1つまたは複数と、ネットワーククラウド150を介する他のクラスタおよび/またはクラウドプロバイダ155および157との通信を容易にするように構成、設計、および/またはプログラムされ得るネットワークインターフェースを表すことができる。代替的には、各データストレージノード202、204、206、および208は、共通のクラスタ内の他のデータストレージノードあるいは1つまたは複数の異なるクラスタとの通信を促進するための外部ネットワークインターフェース212の関連した実施形態を含むことができる。
図3は、本明細書に説明される少なくともいくつかの実施形態に従って構成される、ノード間でストレージネットワークにおけるデータ移行の少なくとも一部が実装され得る第1のデータストレージノードおよび第2のデータストレージノードの例示的構成を示す。例示的構成300は、プロセッサ123ならびに乱数発生器125およびチャネルコントローラ126を含むことができる、クラスタ120に対応するデータストレージノード122、すなわち、第1のデータストレージノードを図示し、コンテンツバッファ127はプロセッサ123と通信するように提供されてよく、また、プロセッサ173および乱数発生器175を含むことができるデータストレージノード172、すなわち、第2のデータストレージノードを図示する。しかし、この構成は単に例であり、いかなる形でも限定することを意図していない。データストレージノード123、すなわち第1のデータストレージと、データストレージノード172、すなわち第2のデータストレージノードとの間のデータ移行を本明細書に説明する。
いくつかの実施形態によれば、データストレージノード122およびデータストレージノード172は、共通すなわち同じクラウドプロバイダ155または157によってホストすることができる。代替的には、各データストレージノード122および172は、クラウドプロバイダ155および157のうちのそれぞれ異なるクラウドプロバイダによってホストすることができる。
各データストレージノード122および172は、共通のクラスタ、共通のデータセンタ内のクラスタ、または別のデータセンタに対応する別のクラスタに含まれ得る他のデータストレージノードから受信したデータを記憶するようにそれぞれ構成されてよい。1つまたは複数の実施形態において、プロセッサ123および173は、それぞれのデータストレージノード122および173から他方のデータストレージノード122または172へのデータの送信に対する時間要件を独立して割り当てるように構成されてもよい。たとえば、プロセッサ123は、データストレージノード122からデータストレージノード172にデータを送信するための時間要件を割り当てるように構成、設計、および/またはプログラムされてもよい。プロセッサ123は、たとえば、送信されるべきデータの量に基づいて、時間要件を割り当ていることができる。時間要件は、それぞれのデータストレージノードに割り当てられ記憶され、データ送信を行うときにそのタイミングを監視するために使用され得る。
さらに、プロセッサ123は、データストレージノード122とデータストレージノード172との間でデータを送信する際に使用するための利用可能な伝送チャネルの最大数を決定するように構成されてもよい。プロセッサ123は、データストレージノード122からデータストレージノード172へ移行されるべきデータの量に基づいて、利用可能な伝送チャネルの最大数を決定することができる。さらに、利用可能な伝送チャネルの最大数は、データストレージノード122からデータストレージノード172へのデータ移行の時に使用されない伝送チャネルの量に基づいて決定されてもよい。
本明細書に説明されるように、「時間要件」は、データストレージノード122からデータストレージノード172へのデータ移行を完了するために割り振ることができる時間の最大量を表すことができる。割り振られた時間内にデータ移行が完了しなかった場合、プロセスを停止する、かつ/またはデータ移行プロセスをリセットすることができる。
プロセッサ123は、あるデータストレージノードから別のデータストレージノードにデータを送信するために利用されるべき伝送チャネルの最大数を決定した後、利用可能な伝送チャネルの各々の所定のパラメータに基づいて、利用可能な伝送チャネルの各々に対して最大チャネル伝送速度を割り当てるようにさらに構成されてもよい。1つまたは複数の実施形態によれば、所定のパラメータは、調整を受けないそれぞれの利用可能なチャネルの物理的特性または他のファクタ、たとえば、伝送チャネルの長さまたはタイプに基づく、固定値を含むことができる。そして、データは、時間要件に従って、それぞれの伝送チャネルの各々に対する最大チャネル伝送速度までの速度で、データストレージノード122からデータストレージノード172に送信され得る。
データストレージノード122とデータストレージノード172との間のデータ送信は、いくつかの個数の固定伝送チャネル、およびいくつかの個数のランダム伝送チャネルに基づいて容易にされ得る。プロセッサ123は、データストレージノード122とデータストレージノード172との間の送信を容易にするために、利用可能な伝送チャネルのうちのいくつかの個数の固定伝送チャネルを算出するように構成、設計、および/またはプログラムされてもよい。データストレージノード122からデータストレージノード172へのデータ送信は、固定伝送チャネルを介して開始され得る。プロセッサ122は、固定伝送チャネルを介してデータの移行を開始した後、データストレージ172に送信されるべきデータストレージノード122内の残りのデータを検出するようにさらに構成されてもよい。プロセッサ123は、検出した残りのデータを送信するための利用可能な伝送チャネルのうちのいくつかの個数のランダム伝送チャネルをランダムに選択するように構成、設計、および/またはプログラムされてもよい。ランダム伝送チャネルによって送信されるべき残りのデータは、コンテンツバッファ127に入れられる。残りのデータの検出は、たとえば、コンテンツバッファ127を使用してプロセッサ124によって行われる。ランダム送信の各反復の際、プロセッサ124のチャネルコントローラ126が、コンテンツバッファ127が空であるかどうかを問い合わせることができる。コンテンツバッファ124が空であるとチャネルコントローラ126が決定した場合、チャネルコントローラ126は、データストレージノード122に残りのデータを求める要求を送ることができる。
乱数発生器125は、データストレージノード122のプロセッサ123内に設けられ、残りのデータが送信され得るランダム伝送チャネルの個数をランダムに選択するように構成され得る。
乱数発生器175は、同様に、データストレージノード172のプロセッサ173内に設けられ、残りのデータが送信され得るランダム伝送チャネルの個数をランダムに選択するように構成され得る。
このように、図3は、第1のデータストレージノードと第2のデータストレージノードとの間のデータ移行の例示的構成300を示している。
図4は、本明細書に説明されるような、ストレージネットワークにおけるデータ移行のいくつかの実施形態による、固定伝送チャネルおよびランダム伝送チャネルの例示的構成を示す。図4に示すように、固定伝送チャネル405は、チャネル1、2、および3を含むことができ、ランダム伝送チャネル410は、チャネル4、5、6、7、8、9および10を含むことができる。図4に関連して説明されるデータの送信または移行は、本明細書では図示された特徴を参照して説明され、また図3に関連して説明されるが、そのような説明は、例示的実施形態を限定するものとして解釈されるべきではない。
クラスタ120のデータストレージノード122とクラスタ170のデータストレージノード172との間のデータ移行は、本明細書に説明されるさまざまな実施形態に従って行うことができる。いくつかの実施形態によれば、データストレージノード122のプロセッサ123は、データストレージシステム100に提供された利用可能な伝送チャネルのうちのいくつかの個数の固定伝送チャネル405、たとえば、チャネル1から3を算出して、データストレージノード122すなわち送信データストレージノードと、データストレージノード172すなわち受信データストレージノードとの間のデータ移行を容易にすることができる。データストレージノード122からデータストレージノード172へのデータの移行は、固定伝送チャネル405を介して開始することができる。1つまたは複数の実施形態によれば、固定伝送チャネル405は、データストレージノードたとえばサーバ上で実行されているアプリケーションに対応するデータを送信することができる。固定伝送チャネル405を介するデータの送信の開始後、プロセッサ123が、データストレージノード172に送信されるべきデータがデータストレージノード122内に残っていると決定した場合、プロセッサ123は、残りのデータをデータストレージノード172に送信するための、利用可能な伝送チャネルのうちのいくつかの個数のランダム伝送チャネル410をランダムに選択することができる。
プロセッサ123は、乱数発生器125を使用してランダム伝送チャネル410のランダム選択を行うことができる。プロセッサ123は、ランダムに選択された伝送チャネル410の少なくとも1つ、たとえば、ランダム伝送チャネル4を使用して、検出した残りのデータを送信するようにさらに構成されてもよい。いくつかの実施形態によれば、プロセッサ123は、ランダム伝送チャネル410を設定するようにさらに構成されてもよい。たとえば、ランダム伝送チャネル410は、ランダム伝送チャネル410のランダムに選択されたいくつかの各々にライフサイクルを割り当てることによって、設定されてもよい。ランダムチャネルのライフサイクルは、ランダム値として予め定義されてもよい。代替的には、ランダムチャネルのライフサイクルは、コンテンツバッファ内で発見される残りのデータの量に基づいて決定されてもよい。残りのデータがコンテンツバッファ内で発見されない場合、ランダムチャネルのライフサイクルを終了し、ランダムチャネルを閉じてもよい。さらに、ランダム伝送チャネル4が、1つの時間間隔tのライフサイクルを有するとともに、ランダム伝送チャネル5が、2つの時間間隔2tのライフサイクルを有することもできる。各ランダム伝送チャネル410のライフサイクルは、それぞれのランダム伝送チャネル410の対応するチャネル容量の約20%から約80%の間の範囲であってもよい。プロセッサ123は、少なくとも1つのランダム伝送チャネル410、たとえば、ランダム伝送チャネル4を、そのライフサイクルの満了後、または残りのデータの送信の完了後に解放する、すなわちその使用を打ち切るように構成されてもよい。
プロセッサ123は、少なくとも1つのランダム伝送チャネル4のライフサイクルの満了後に、検出した残りのデータの送信を完了するための、別のランダム伝送チャネル110、たとえばランダム伝送チャネル5から10のうちの1つを選択するようにさらに構成されてもよい。伝送チャネルの確立および解放は、データストレージノード122または172のいずれかのプロセッサ123または173を介して行われてもよい。すなわち、1つまたは複数の実施形態によれば、送信データストレージノードまたは受信データストレージノードのいずれかが、ランダム伝送チャネル410を設定または解放することができる。
このように、図4は、データ移行が実装され得る固定伝送チャネル405およびランダム伝送チャネル410の例示的構成400を示している。
図5は、本明細書に説明される少なくともいくつかの実施形態による、ストレージネットワークにおけるデータ移行のための動作の処理フローの例示的構成を示す。図示のように、処理フロー500は、クラスタ120、130、140、170、180、または190のうちの1つまたは複数のデータストレージノード、たとえば、図3に関連して図示し説明したようなクラスタ120のデータストレージノード122またはクラスタ170のデータストレージノード172の一部となり得るさまざまなコンポーネントによって実行される、サブプロセスを含むことができる。しかし、処理フロー500は、そのようなコンポーネントに限定されず、ここで説明するサブプロセスの2つ以上の順序を変更すること、サブプロセスの少なくとも1つを除去すること、さらなるサブプロセスを追加すること、コンポーネントを置換すること、あるいはさらに以下に説明する他のコンポーネントと一致するサブ処理の役割を担うさまざまなコンポーネントを有することによって、修正が行われてもよい。処理フロー500は、ブロック502、504、506、508、510、および/または512のうちの1つまたは複数によって例示されるようなさまざまな動作、機能、または処理を含んでよい。処理フロー500は、ブロック502で開始することができる。
ブロック502(時間要件を割り当てる)は、データストレージノードのプロセッサ、たとえば、データストレージノード122のプロセッサ123が、それぞれのデータストレージノード122から別のデータストレージノードたとえばデータストレージノード172へのデータの送信に対して、時間要件を割り当てることを表すことができる。割り当てられる時間要件は、移行されるべきデータの量に基づいて、データストレージノード122からデータストレージノード172へのデータの移行を完了するために割り振られる時間の最大量とすることができる。時間要件は、データストレージノード122に割り当てられ記憶され、データストレージノード間のデータの送信のタイミングを監視する際に使用され得る。処理フロー500は、ブロック502からブロック504に進むことができる。
ブロック504(最大利用可能チャネルを決定する)は、プロセッサ123が、データストレージノード122とデータストレージノード172との間のデータ移行を完了するための利用可能なチャネルの最大数を決定することを表すことができる。1つまたは複数の実施形態によれば、移行されるべきデータの量に基づいて、またはストレージネットワーク100内の他のデータストレージノードの間の移行データのために使用されていない伝送チャネルの個数に基づいて決定を行うことができる。処理フロー500は、ブロック504からブロック506に進むことができる。
ブロック506(最大チャネル伝送速度を割り当てる)は、プロセッサ123が、伝送チャネルの所定のパラメータに基づいて、利用可能な伝送チャネルの各々に対して最大チャネル伝送速度を割り当てることを表すことができる。所定のパラメータは、調整を受けないチャネルの物理的特性またはいくつかの他のファクタに基づく、固定値を含むことができる。たとえば、所定のパラメータは、利用可能な伝送チャネルの長さまたはタイプを含むことができる。処理フロー500は、ブロック506からブロック508に引き続き進むことができる。
ブロック508(固定伝送チャネルを算出する)は、プロセッサ123が、たとえば、データストレージノード122からデータストレージノード172へのデータ移行を容易にするために、利用可能な伝送チャネルのうちのいくつかの個数の固定伝送チャネル405を算出することを表すことができる。この算出は、各伝送チャネルの伝送速度で割った移行されるべきデータの量に基づいてもよい。算出された固定伝送チャネル405の個数は、データストレージノード122とデータストレージノード172との間でデータを移行するために必要とされる伝送チャネルの個数を示すことができる。処理フロー500は、ブロック508からブロック510に引き続き進むことができる。
ブロック510(データを送信する)は、利用可能な伝送チャネルの固定伝送チャネル405を介するデータストレージノード122からデータストレージノード172へのプロセッサ123によるデータの送信の開始を表すことができる。処理フロー500は、ブロック508からブロック510に引き続き進むことができる。
ブロック512(残りのデータの存在を検出する)は、固定伝送チャネル405を介するデータの送信の開始後、プロセッサ123が、データストレージノード172に未だ送信されるべきデータストレージノード122内に残っているデータの存在を検出することを表すことができる。処理フロー500は、ブロック512からブロック514に引き続き進むことができる。
ブロック514(ランダム伝送チャネルを選択し、残りのデータを送信する)は、プロセッサ123が、検出した残りのデータを送信するための利用可能な伝送チャネルのうちのいくつかの個数のランダム伝送チャネル410をランダムに選択し、少なくとも1つのランダム伝送チャネル410を使用して、検出した残りのデータを送信することを表すことができる。ランダム伝送チャネル410の個数のランダム選択は、乱数発生器125によって容易にされ得る。プロセッサ123は、ランダム伝送チャネル410のランダムに選択されたいくつかの各々にライフサイクルを割り当て、したがって、各ランダム伝送チャネルが、そのライフサイクルの満了後、または残りのデータの送信の完了後に解放されるようにさらに構成されてもよい。選択されたランダム伝送チャネル410の総数、および固定伝送チャネル405およびランダム伝送チャネル410を使用するデータストレージノード122とデータストレージノード172との間のデータの移行を完了するための時間の量は、プロセッサ123によって割り当てられる時間要件と等しい必要がある。
このように、図5は、データストレージノードのプロセッサによって実行される例示的処理フローを示している。
図6は、本開示による、ストレージネットワークにおけるデータ移行のために構成された例示的コンピューティングデバイス600を示すブロック図である。コンピューティングデバイス600は、クラウドコンピューティングサービスにアクセスするためのエンドユーザにおけるコンピューティングデバイス、クラウドプロバイダたとえば図1に示したクラウドプロバイダ155または157におけるコンピューティングデバイス、あるいは少なくとも1つまたは複数の要素のうちの少なくとも1つを表すことができ、たとえば、コンピューティングデバイス600のプロセッサは、データストレージノードたとえば図3に示したクラスタ120のデータストレージノード122内で利用することができる。非常に基本的な構成602では、コンピューティングデバイス600は通常、1つまたは複数のプロセッサ604およびシステムメモリ606を含む。メモリバス608は、プロセッサ604とシステムメモリ606との間の通信のために使用することができる。
所望の構成に応じて、プロセッサ604は、任意のタイプとしてよく、任意のタイプには、マイクロプロセッサ(μP)、マイクロコンピュータ(μC)、デジタル信号プロセッサ(DSP)またはこれらの任意の組み合わせが含まれるがそれらに限定されない。プロセッサ604は、レベル1キャッシュ610やレベル2キャッシュ612など1つまたは複数のレベルのキャッシング、プロセッサコア614、およびレジスタ616を含むことができる。例示的プロセッサコア614は、演算論理ユニット(ALU)、浮動小数点ユニット(FPU)、デジタル信号処理コア(DSPコア)、またはこれらの任意の組み合わせを含むことができる。例示的メモリコントローラ618がプロセッサ604とともに使用されてもよく、またはいくつかの実装形態では、メモリコントローラ618がプロセッサ604の内部部品であってもよい。プロセッサ604は、各データストレージノードのプロセッサ、たとえば、図3に示したようなデータストレージノード122のプロセッサ123を表すことができる。
所望の構成に応じて、システムメモリ606は、任意のタイプとしてよく、任意のタイプには、揮発性メモリ(RAMなど)、不揮発性メモリ(ROM、フラッシュメモリなど)またはこれらの任意の組み合わせが含まれるがそれらに限定されない。システムメモリ606は、オペレーティングシステム620、1つまたは複数のアプリケーション622、およびプログラムデータ624を含むことができる。アプリケーション622は、データストレージノードの間、たとえば、図3に示したようなストレージネットワーク100内のデータストレージノード122および172の間のデータ移行を行うように構成されたデータ経路ルーティングアルゴリズム626を含むことができる。プログラムデータ624は、本明細書に説明されるように、データ経路ルーティングアルゴリズム626を構成するために有用となり得る経路ルーティング構成情報628を含むことができる。いくつかの実施形態では、データストレージノード間、たとえば、データストレージノード122および172間のロバストなマルチパスデータルーティングの実装が本明細書に説明されるように提供され得るように、アプリケーション622は、オペレーティングシステム620上のプログラムデータ624と共に動作するように構成され得る。この説明した基本構成602は、図6において内側の破線内のそれらのコンポーネントによって示される。
コンピューティングデバイス600は、基本構成602と、任意の必要とされるデバイスおよびインターフェースとの間の通信を容易にするための追加の特徴または機能および追加のインターフェースを有することができる。たとえば、ストレージインターフェースバス634を介する、基本構成602と1つまたは複数のデータ記憶装置632との間の通信を容易にするために、バス/インターフェースコントローラ630を使用することができる。データ記憶装置632は、取外し式ストレージデバイス636、非取外し式ストレージデバイス638、またはこれらの組み合わせとすることができる。取外し式ストレージおよび非取外し式ストレージデバイスの例としては、いくつか挙げると、フレキシブルディスクドライブおよびハードディスクドライブ(HDD)などの磁気ディスクデバイス、コンパクトディスク(CD)ドライブまたはデジタル多用途ディスク(DVD)ドライブなどの光学ディスクドライブ、ソリッドステートドライブ(SSD)、ならびにテープドライブが含まれる。例示的コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報の記憶のための任意の方法または技術で実装される揮発性および不揮発性の取外し式および非取外し式媒体を含むことができる。
システムメモリ606、取外し式ストレージデバイス636、および非取外し式ストレージデバイス638は、コンピュータ記憶媒体の例である。コンピュータ記憶媒体には、RAM、ROM、EEPROM、フラッシュメモリ、もしくは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)、もしくは他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、もしくは他の磁気記憶装置、または、所望の情報を格納するために使用でき、コンピューティングデバイス600によってアクセスできる他の任意の媒体が含まれるが、これらに限定されない。そのようなコンピュータ記憶媒体は、コンピューティングデバイス600の一部であってもよい。
コンピューティングデバイス600はまた、さまざまなインターフェースデバイス(たとえば、出力装置642、周辺インターフェース644、および通信装置646)からバス/インターフェースコントローラ630を介する基本構成602への通信を容易にするためのインターフェースバス640を含むこともできる。例示的出力装置642は、1つまたは複数のA/Vポート652を介して、ディスプレイまたはスピーカーなどのさまざまな外部デバイスに通信するように構成され得る、グラフィック処理ユニット648およびオーディオ処理ユニット650を含むことができる。例示的周辺インターフェース644は、1つまたは複数のI/Oポート658を介して、入力装置、たとえば、キーボード、マウス、ペン、音声入力装置、タッチ入力装置など、または他の周辺装置、たとえば、プリンタ、スキャナなどのような外部デバイスと通信するように構成され得る、シリアルインターフェースコントローラ654またはパラレルインターフェースコントローラ656を含む。例示的通信装置646は、1つまたは複数の通信ポート664を経由するネットワーク通信リンクを介して1つまたは複数の他のコンピューティングデバイス662と通信するのを容易にするように構成され得る、ネットワークコントローラ660を含む。
ネットワーク通信リンクは、通信媒体の一例であり得る。通信媒体は、一般に、搬送波もしくは他の移送メカニズムなどの変調データ信号におけるコンピュータ可読命令、データ構造、プログラムモジュール、または他のデータによって具現化することができ、任意の情報送達媒体を含むことができる。「変調データ信号」は、信号内で情報を符号化するような様式でその特性の1つまたは複数が設定または変更された信号であり得る。限定ではなく例として、通信媒体には、有線ネットワークまたは直接有線接続などの有線媒体、ならびに、音響、無線周波数(RF)、マイクロ波、赤外線(IR)、および他のワイヤレス媒体などのワイヤレス媒体を含むことができる。本明細書で使用されるコンピュータ可読媒体という用語は、記憶媒体と通信媒体の両方を含むことができる。
コンピューティングデバイス600は、携帯電話、携帯情報端末(PDA)、パーソナルメディアプレーヤデバイス、ワイヤレスウェブ閲覧デバイス、パーソナルヘッドセットデバイス、アプリケーション固有デバイス、または任意の上記の機能を含むハイブリッドデバイスのような、スモールフォームファクタのポータブル(またはモバイル)電子デバイスの一部分として実装されてもよい。コンピューティングデバイス600は、ラップトップコンピュータ構成とラップトップコンピュータ以外の構成との両方を含めてパーソナルコンピュータとして実装されてもよい。
例示の実施形態では、本明細書に説明される動作およびプロセスなどのいずれも、コンピュータ可読媒体に記憶されるコンピュータ可読命令として実装することができる。コンピュータ可読命令は、モバイルユニットのプロセッサ、ネットワーク要素、および/または他のコンピューティングデバイスによって実行することができる。
システムの側面でのハードウェアの実装形態とソフトウェアの実装形態との間には、ほとんど相違が残されていない。ハードウェアまたはソフトウェアの使用は、一般に(いつもそうではないが、ある状況ではハードウェアとソフトウェアの間の選択が重要になり得るという点で)コスト対効果のトレードオフを表す設計上の選択である。本明細書に記載された、プロセスおよび/またはシステムおよび/または他の技術を実装することができるさまざまな達成手段、たとえば、ハードウェア、ソフトウェア、および/またはファームウェアがあり、好ましい達成手段は、プロセスおよび/またはシステムおよび/または他の技術が導入される状況によって異なり得る。たとえば、実装者が速度と正確性が最も重要であると決定すると、実装者は主にハードウェアおよび/またはファームウェアの達成手段を選択することができる。フレキシビリティが最も重要なら、実装者は主にソフトウェアの実装形態を選択することができる。または、さらに別の代替案として、実装者は、ハードウェア、ソフトウェア、および/またはファームウェアの何らかの組み合わせを選択することができる。
前述の詳細な説明では、ブロック図、フローチャート、および/または例の使用によって、システム構成100の装置および/またはプロセスのさまざまな実施形態を説明してきた。そのようなブロック図、フローチャート、および/または例が1つまたは複数の機能および/または動作を含む限りにおいて、そのようなブロック図、フローチャート、または例の中のそれぞれの機能および/または動作は、広範囲のハードウェア、ソフトウェア、ファームウェア、または実質上それらのすべての組み合わせにより、個別におよび/または集合的に実装可能であることが、当業者には理解されるであろう。ある実施形態では、本明細書に記載された主題のいくつかの部分は、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタルシグナルプロセッサ(DSP)、または他の集積化方式によって実装することができる。しかし、本明細書で開示された実施形態のいくつかの態様が、全体においてまたは一部において、1つまたは複数のコンピュータ上で動作する1つまたは複数のコンピュータプログラムとして、たとえば、1つまたは複数のコンピュータシステム上で動作する1つまたは複数のプログラムとして、1つまたは複数のプロセッサ上で動作する1つまたは複数のプログラムとして、たとえば、1つまたは複数のマイクロプロセッサ上で動作する1つまたは複数のプログラムとして、ファームウェアとして、あるいは実質上それらの任意の組み合わせとして、等価に集積回路に実装することができることを、当業者は認識するであろうし、電気回路の設計ならびに/またはソフトウェアおよび/もしくはファームウェアのコーディングが、本開示に照らして十分当業者の技能の範囲内であることを、当業者は認識するであろう。さらに、本明細書に記載された主題のメカニズムをさまざまな形式のプログラム製品として配布することができることを、当業者は理解するであろうし、本明細書に記載された主題の例示的な実施形態が、実際に配布を実行するために使用される信号伝達媒体の特定のタイプにかかわらず適用されることを、当業者は理解するであろう。信号伝達媒体の例には、フロッピー(登録商標)ディスク、ハードディスクドライブ、CD、DVD、デジタルテープ、コンピュータメモリ、などの記録可能なタイプの媒体、ならびに、デジタル通信媒体および/またはアナログ通信媒体(たとえば、光ファイバケーブル、導波管、有線通信リンク、無線通信リンクなど)の通信タイプの媒体が含まれるが、それらには限定されない。
本明細書で説明したやり方で装置および/またはプロセスを記載し、その後そのように記載された装置および/またはプロセスを、データ処理システムに統合するためにエンジニアリング方式を使用することは、当技術分野で一般的であることを当業者は認識するであろう。すなわち、本明細書に記載された装置および/またはプロセスの少なくとも一部を、妥当な数の実験によってデータ処理システムに統合することができる。通常のデータ処理システムは、一般に、システムユニットハウジング、ビデオディスプレイ装置、揮発性メモリおよび不揮発性メモリなどのメモリ、マイクロプロセッサおよびデジタル信号プロセッサなどのプロセッサ、オペレーティングシステムなどの計算実体、ドライバ、グラフィカルユーザインターフェース、およびアプリケーションプログラムのうちの1つもしくは複数、タッチパッドもしくはスクリーンなどの1つもしくは複数の相互作用装置、ならびに/またはフィードバックループおよびコントロールモータを含むコントロールシステム、たとえば、位置検知用および/もしくは速度検知用フィードバック、コンポーネントの移動用および/もしくは数量の調整用コントロールモータを含むことを、当業者は理解するであろう。通常のデータ処理システムは、データコンピューティング/通信システムおよび/またはネットワークコンピューティング/通信システムの中に通常見られるコンポーネントなどの、市販の適切なコンポーネントを利用して実装することができる。
本明細書に記載された主題は、さまざまなコンポーネントをしばしば例示しており、これらのコンポーネントは、他のさまざまなコンポーネントに包含されるか、または他のさまざまなコンポーネントに接続される。そのように図示されたアーキテクチャは、単に例にすぎず、実際には、同じ機能を実現する多くの他のアーキテクチャが実装可能であることが理解されよう。概念的な意味で、同じ機能を実現するコンポーネントの任意の構成は、所望の機能が実現されるように効果的に「関連付け」される。したがって、特定の機能を実現するために組み合わされた、本明細書における任意の2つのコンポーネントは、アーキテクチャまたは中間のコンポーネントにかかわらず、所望の機能が実現されるように、お互いに「関連付け」されていると見ることができる。同様に、そのように関連付けされた任意の2つのコンポーネントは、所望の機能を実現するために、互いに「動作可能に接続」または「動作可能に結合」されていると見なすこともでき、そのように関連付け可能な任意の2つのコンポーネントは、所望の機能を実現するために、互いに「動作可能に結合できる」と見なすこともできる。動作可能に結合できる場合の具体例には、物理的にかみ合わせ可能な、および/もしくは物理的に相互作用するコンポーネント、ならびに/またはワイヤレスに相互作用可能な、および/もしくはワイヤレスに相互作用するコンポーネント、ならびに/または論理的に相互作用する、および/もしくは論理的に相互作用可能なコンポーネントが含まれるが、それらに限定されない。
最後に、本明細書における実質的にすべての複数形および/または単数形の用語の使用に対して、当業者は、状況および/または用途に適切なように、複数形から単数形に、および/または単数形から複数形に変換することができる。さまざまな単数形/複数形の置き換えは、理解しやすいように、本明細書で明確に説明することができる。
通常、本明細書において、特に添付の特許請求の範囲、たとえば、添付の特許請求の範囲の本体部において使用される用語は、全体を通じて「オープンな(open)」用語として意図されていること、たとえば、用語「含む(including)」は、「含むがそれに限定されない(including but not limited to)」と解釈されるべきであり、用語「有する(having)」は、「少なくとも有する(having at least)」と解釈されるべきであり、用語「含む(includes)」は、「含むがそれに限定されない(includes but is not limited to)」と解釈されるべきである、などが当業者には理解されよう。導入される請求項で具体的な数の記載が意図される場合、そのような意図は、当該請求項において明示的に記載されることになり、そのような記載がない場合、そのような意図は存在しないことが、当業者にはさらに理解されよう。たとえば、理解の一助として、添付の特許請求の範囲は、導入句「少なくとも1つの(at least one)」および「1つまたは複数の(one or more)」を使用して請求項の記載を導くことを含む場合がある。しかし、そのような句の使用は、同一の請求項が、導入句「1つまたは複数の」または「少なくとも1つの」および「a」または「an」などの不定冠詞を含む場合であっても、不定冠詞「a」または「an」による請求項の記載の導入が、そのように導入される請求項の記載を含む任意の特定の請求項を、単に1つのそのような記載を含む実施形態に限定する、たとえば、「a」および/または「an」は、「少なくとも1つの」または「1つまたは複数の」を意味すると解釈されるべきである、ということを示唆していると解釈されるべきではない。同じことが、請求項の記載を導入するのに使用される定冠詞の使用にも当てはまる。また、導入される請求項の記載で具体的な数が明示的に記載されている場合でも、そのような記載は、少なくとも記載された数を意味すると解釈されるべきであること、たとえば、他の修飾語なしでの「2つの記載(two recitations)」の単なる記載は、少なくとも2つの記載、または2つ以上の記載を意味することが当業者には理解されよう。さらに、「A、BおよびC、などの少なくとも1つ」に類似の慣例表現が使用されている事例では、通常、そのような構文は、当業者がその慣例表現を理解するであろう意味、たとえば、「A、B、およびCの少なくとも1つを有するシステム」は、Aのみ、Bのみ、Cのみ、AおよびBを共に、AおよびCを共に、BおよびCを共に、ならびに/またはA、B、およびCを共に、などを有するシステムを含むが、それに限定されない意味で意図されている。「A、B、またはC、などの少なくとも1つ」に類似の慣例表現が使用されている事例では、通常、そのような構文は、当業者がその慣例表現を理解するであろう意味、たとえば、「A、B、またはCの少なくとも1つを有するシステム」は、Aのみ、Bのみ、Cのみ、AおよびBを共に、AおよびCを共に、BおよびCを共に、ならびに/またはA、B、およびCを共に、などを有するシステムを含むが、それに限定されない意味で意図されている。2つ以上の代替用語を提示する事実上いかなる離接する語および/または句も、明細書、特許請求の範囲、または図面のどこにあっても、当該用語の一方(one of the terms)、当該用語のいずれか(either of the terms)、または両方の用語(both terms)を含む可能性を企図すると理解されるべきであることが、当業者にはさらに理解されよう。たとえば、句「AまたはB」は、「A」または「B」あるいは「AおよびB」の可能性を含むことが理解されよう。
上記から、本開示のさまざまな実施形態は例示のために本明細書に説明されていること、ならびに本開示の範囲および趣旨から逸脱することなくさまざまな修正が行われ得ることは理解されよう。したがって、本明細書で開示されたさまざまな実施形態は限定することを意図するものではなく、真の範囲および趣旨は添付の特許請求の範囲によって示される。

Claims (22)

  1. コンピューティングデバイスが、第1のデータストレージノードから第2のデータストレージノードへのデータの送信に対して時間要件を割り当てること、
    コンピューティングデバイスが、伝送チャネルの物理的特性、長さ、またはタイプを含む所定のパラメータに基づいて、最大数の利用可能な伝送チャネルの各々に対して最大チャネル伝送速度を割り当てること、ならびに
    コンピューティングデバイスが、前記時間要件および前記最大数の利用可能な伝送チャネルに従って、前記データを送信すること
    を含み、
    前記送信することは、
    前記利用可能な伝送チャネルのうちのいくつかの個数の固定伝送チャネルを算出すること、
    前記固定伝送チャネルを介する前記第1のデータストレージノードから前記第2のデータストレージノードへのデータの前記送信を開始すること、
    前記第2のデータストレージノードに送信されるべき前記第1のデータストレージノード内の残りのデータの存在を検出すること、
    前記残りのデータを送信するために前記利用可能な伝送チャネルのうちのいくつかの個数のランダム伝送チャネルをランダムに選択すること、および
    前記ランダム伝送チャネルのうちの1つまたは複数を介して、前記残りのデータを前記第2のデータストレージノードに送信すること
    を含む、
    方法。
  2. 前記第1のデータストレージノードおよび前記第2のデータストレージノードは、同じストレージプロバイダによって管理される、請求項1に記載の方法。
  3. 前記第1のデータストレージノードおよび前記第2のデータストレージノードは、異なるストレージプロバイダによって管理される、請求項1に記載の方法。
  4. 前記送信することは、クラウドストレージ環境内で実行される、請求項1に記載の方法。
  5. 前記固定伝送チャネルの前記個数は、データのサイズおよび前記最大チャネル伝送速度に基づいて決定される、請求項1に記載の方法。
  6. 前記固定伝送チャネルの前記個数は、前記データが前記第1のデータストレージノードから前記第2のデータストレージノードに送信され得る伝送チャネルの最小数を示す、請求項5に記載の方法。
  7. 前記ランダム伝送チャネルの前記個数は、伝送チャネルの前記最大数から固定伝送チャネルの前記個数を引いた数よりも小さい数である、請求項1に記載の方法。
  8. 前記ランダムに選択することは、
    前記ランダム伝送チャネルのうちの前記1つまたは複数の各々に時間間隔を割り当てることを含む、請求項1に記載の方法。
  9. 各ランダム伝送チャネルの前記時間間隔は、伝送チャネルの所定の最大時間間隔以下であるように決定される、請求項8に記載の方法。
  10. 各ランダム伝送チャネルの前記時間間隔は、各ランダム伝送チャネルの対応するチャネル容量の20%から80%の間の範囲である、請求項8に記載の方法。
  11. 前記ランダム伝送チャネルの少なくとも1つのランダム伝送チャネルを、その前記時間間隔の満了後、または前記残りのデータの送信の完了後に解放することをさらに含む、請求項8に記載の方法。
  12. 転送されるべき残りのデータがある場合、前記少なくとも1つのランダム伝送チャネルの前記時間間隔の満了後に前記データ送信を完了するための別のランダム伝送チャネルを選択することをさらに含む、請求項11に記載の方法。
  13. 実行されたときに1つまたは複数のプロセッサに動作を行わせる命令を記憶するコンピュータ可読媒体であって、前記動作は、
    第1のデータストレージノードから第2のデータストレージノードへのデータの送信に対して時間要件を割り当てること、
    伝送チャネルの物理的特性、長さ、またはタイプを含む所定のパラメータに基づいて、最大数の利用可能な伝送チャネルの各々に対して最大チャネル伝送速度を割り当てること、ならびに
    前記時間要件および前記最大数の利用可能な伝送チャネルに従って、前記データを送信すること
    を含み、
    前記データを送信することが、
    前記利用可能な伝送チャネルのうちのいくつかの個数の固定伝送チャネルを算出すること、
    前記固定伝送チャネルを介する前記第1のデータストレージノードから前記第2のデータストレージノードへのデータの前記送信を開始すること、
    前記第2のデータストレージノードに送信されるべき前記第1のデータストレージノード内の残りのデータの存在を検出すること、
    前記残りのデータを送信するために前記利用可能な伝送チャネルのうちのいくつかの個数のランダム伝送チャネルをランダムに選択すること、および
    前記ランダムに選択されたランダム伝送チャネルのうちの1つまたは複数を介して、前記残りのデータを前記第2のデータストレージノードに送信すること
    を含む、コンピュータ可読媒体。
  14. 前記ランダムに選択することは、
    前記ランダム伝送チャネルのうちの前記1つまたは複数の各々に時間間隔を割り当てることを含む、請求項13に記載のコンピュータ可読媒体。
  15. 各ランダム伝送チャネルの前記時間間隔は、伝送チャネルの所定の最大時間間隔以下であるように決定される、請求項14に記載のコンピュータ可読媒体。
  16. 前記命令は、実行されたときに、
    前記ランダム伝送チャネルの少なくとも1つのランダム伝送チャネルを、その前記時間間隔の満了後、または前記残りのデータの送信の完了後に解放することをさらに含む動作を前記1つまたは複数のプロセッサに行わせる、請求項14に記載のコンピュータ可読媒体。
  17. 前記命令は、実行されたときに、
    転送されるべき残りのデータがある場合、前記少なくとも1つのランダム伝送チャネルの前記時間間隔の満了後に前記残りのデータの前記送信を完了するための別のランダム伝送チャネルを選択することをさらに含む動作を前記1つまたは複数のプロセッサに行わせる、請求項16に記載のコンピュータ可読媒体。
  18. データストレージシステムであって、
    データをそれぞれ記憶するように構成された第1のデータストレージノードおよび第2のデータストレージノードを含む複数のデータストレージノードと、
    プロセッサと
    を備え、前記プロセッサは、
    前記第1のデータストレージノードから前記第2のデータストレージノードへのデータの送信に対して時間要件を割り当て、
    伝送チャネルの物理的特性、長さ、またはタイプを含む所定のパラメータに基づいて、最大数の利用可能な伝送チャネルの各々に対して最大チャネル伝送速度を割り当て、
    前記時間要件および前記最大数の利用可能な伝送チャネルに従って、前記データを送信する
    ように構成され
    前記プロセッサは、
    前記利用可能な伝送チャネルのうちのいくつかの個数の固定伝送チャネルを算出し、
    前記固定伝送チャネルを介する前記第1のデータストレージノードから前記第2のデータストレージノードへのデータの前記送信を開始し、
    前記第2のデータストレージノードに送信されるべき前記第1のデータストレージノード内の残りのデータの存在を検出し、
    前記残りのデータを送信するために前記利用可能な伝送チャネルのうちのいくつかの個数のランダム伝送チャネルをランダムに選択し、
    前記ランダム伝送チャネルのうちの1つまたは複数を介して、前記残りのデータを前記第2のデータストレージノードに送信する
    ようにさらに構成される、データストレージシステム。
  19. ランダム伝送チャネルの前記個数をランダムに選択するように構成された乱数発生器をさらに備え、前記プロセッサは、少なくとも1つのランダム伝送チャネルを使用して前記残りのデータを送信するようにさらに構成される、請求項18に記載のデータストレージシステム。
  20. 前記プロセッサは、
    前記ランダム伝送チャネルのうちの前記1つまたは複数の各々に時間間隔を割り当てるようにさらに構成される、請求項18に記載のデータストレージシステム。
  21. 前記第1のデータストレージノードまたは前記第2のデータストレージノードは、
    前記ランダム伝送チャネルの少なくとも1つのランダム伝送チャネルを、その前記時間間隔の満了後、または前記残りのデータの送信の完了後に解放するようにさらに構成される、請求項20に記載のデータストレージシステム。
  22. 前記第1のデータストレージノードまたは前記第2のデータストレージノードは、
    転送されるべき残りのデータがある場合、前記少なくとも1つのランダム伝送チャネルの前記時間間隔の満了後に前記残りのデータの前記送信を完了するための別のランダム伝送チャネルを選択するようにさらに構成される、請求項21に記載のデータストレージシステム。
JP2016522173A 2013-07-01 2013-07-01 ストレージネットワークにおけるデータ移行 Expired - Fee Related JP6216048B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2013/078576 WO2015000105A1 (en) 2013-07-01 2013-07-01 Data migration in a storage network

Publications (2)

Publication Number Publication Date
JP2016528598A JP2016528598A (ja) 2016-09-15
JP6216048B2 true JP6216048B2 (ja) 2017-10-18

Family

ID=52142980

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016522173A Expired - Fee Related JP6216048B2 (ja) 2013-07-01 2013-07-01 ストレージネットワークにおけるデータ移行

Country Status (4)

Country Link
US (1) US9444891B2 (ja)
JP (1) JP6216048B2 (ja)
CN (1) CN105359481B (ja)
WO (1) WO2015000105A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109688627B (zh) 2018-03-29 2022-05-10 新华三技术有限公司 一种无线资源调度方法、网络侧设备及用户设备
CN111596899A (zh) * 2020-05-12 2020-08-28 重庆锐云科技有限公司 一种基于Java开发的数据库迁移方法、系统、设备及存储介质

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4939723A (en) * 1989-06-07 1990-07-03 Ford Aerospace Corporation Bit-channel multiplexer/demultiplexer
WO1994029986A1 (en) 1993-06-07 1994-12-22 Tangible Domain, Inc. Network link controller
EP1038220A2 (en) * 1997-11-17 2000-09-27 MCMZ Technology Innovations LLc A high performance interoperable network communications architecture (inca)
US6222832B1 (en) * 1998-06-01 2001-04-24 Tantivy Communications, Inc. Fast Acquisition of traffic channels for a highly variable data rate reverse link of a CDMA wireless communication system
JP2002064506A (ja) * 2000-08-17 2002-02-28 Ricoh Co Ltd データ転送方式
US8670390B2 (en) * 2000-11-22 2014-03-11 Genghiscomm Holdings, LLC Cooperative beam-forming in wireless networks
US20030069981A1 (en) 2001-10-09 2003-04-10 Koninklijke Philips Electronics N.V. IP hopping for secure data transfer
JP3855822B2 (ja) * 2002-03-29 2006-12-13 Kddi株式会社 Ip/wdm網におけるノード装置を有するシステム
US20030210711A1 (en) * 2002-05-08 2003-11-13 Faust Albert William Data transfer method and apparatus
US9136931B2 (en) * 2002-05-14 2015-09-15 Genghiscomm Holdings, LLC Cooperative wireless networks
US7526549B2 (en) * 2003-07-24 2009-04-28 International Business Machines Corporation Cluster data port services for clustered computer system
US7941404B2 (en) * 2006-03-08 2011-05-10 International Business Machines Corporation Coordinated federated backup of a distributed application environment
US7970903B2 (en) 2007-08-20 2011-06-28 Hitachi, Ltd. Storage and server provisioning for virtualized and geographically dispersed data centers
JP4445535B2 (ja) * 2007-09-19 2010-04-07 富士通株式会社 データ転送装置,情報処理システム,データ転送プログラム及び同プログラムを記録したコンピュータ読取可能な記録媒体
RU2476026C2 (ru) * 2008-02-01 2013-02-20 Интердиджитал Пэйтент Холдингз, Инк. Способ и устройство для назначения приоритетов логическим каналам
US9014369B2 (en) * 2010-02-11 2015-04-21 International Business Machines Corporation Voice-over internet protocol (VoIP) scrambling mechanism
US10417200B2 (en) * 2010-07-30 2019-09-17 Microsoft Technology Licensing, Llc Data migration for service upgrades
CN102170440B (zh) * 2011-03-24 2013-12-04 北京大学 适用于存储云间数据安全迁移的方法
CN202663444U (zh) 2012-06-29 2013-01-09 上海海事大学 一种云安全数据迁移模型
CN102857338A (zh) * 2012-08-31 2013-01-02 浪潮电子信息产业股份有限公司 一种云存储系统中数据安全传输的方法

Also Published As

Publication number Publication date
US9444891B2 (en) 2016-09-13
CN105359481B (zh) 2018-09-25
JP2016528598A (ja) 2016-09-15
US20160182632A1 (en) 2016-06-23
WO2015000105A1 (en) 2015-01-08
CN105359481A (zh) 2016-02-24

Similar Documents

Publication Publication Date Title
JP6670274B2 (ja) 分散計算システムにおける計算クラスタのスケーリング
US10728103B2 (en) Edge device resourcing using recursive ledger chaining
US10778765B2 (en) Bid/ask protocol in scale-out NVMe storage
EP2901308B1 (en) Load distribution in data networks
US9531813B2 (en) Sandboxed application data redirection to datacenters
US9405589B2 (en) System and method of optimization of in-memory data grid placement
US10057187B1 (en) Dynamic resource creation to connect client resources in a distributed system
KR101589801B1 (ko) 피어 투 피어 데이터 마이그레이션
KR101731934B1 (ko) 소프트웨어 애플리케이션을 위한 안전장치 라이센싱
US9191330B2 (en) Path selection for network service requests
US9560127B2 (en) Systems, methods and algorithms for logical movement of data objects
JP6160236B2 (ja) 情報処理装置、情報処理システム、情報処理装置の制御方法及び情報処理装置の制御プログラム
WO2017035495A1 (en) Determining data locality in a distributed system using aggregation of locality summaries
US20170315673A1 (en) Input control assignment
JP6216048B2 (ja) ストレージネットワークにおけるデータ移行
TWI599199B (zh) 避免伺服器系統中的廣播流量的傳輸死鎖的電腦可讀媒體、系統及方法
US10075836B2 (en) Group management of devices methods, apparatuses and systems
US11422842B2 (en) Virtual machine operation management in computing devices
Femminella et al. Genome centric networking: A network function virtualization solution for genomic applications
JP5995427B2 (ja) ストレージ・アプライアンス・システム、そのための方法、コンピュータ・プログラムおよびアプリケーション・サーバ
US10007612B2 (en) Systems and methods for pre-population of graphics image cache in virtual desktop environment
JP2009059298A (ja) 資源量変動監視方法、資源量変動監視プログラム、資源量変動監視システム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170113

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170410

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170828

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170921

R150 Certificate of patent or registration of utility model

Ref document number: 6216048

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees