[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP6724252B2 - データ処理方法、記憶システムおよび切り換え装置 - Google Patents

データ処理方法、記憶システムおよび切り換え装置 Download PDF

Info

Publication number
JP6724252B2
JP6724252B2 JP2019526353A JP2019526353A JP6724252B2 JP 6724252 B2 JP6724252 B2 JP 6724252B2 JP 2019526353 A JP2019526353 A JP 2019526353A JP 2019526353 A JP2019526353 A JP 2019526353A JP 6724252 B2 JP6724252 B2 JP 6724252B2
Authority
JP
Japan
Prior art keywords
osd
packet
identifier
network
offset
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.)
Active
Application number
JP2019526353A
Other languages
English (en)
Other versions
JP2019531563A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of JP2019531563A publication Critical patent/JP2019531563A/ja
Application granted granted Critical
Publication of JP6724252B2 publication Critical patent/JP6724252B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/356Switches specially adapted for specific applications for storage area networks
    • 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/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Description

本願は情報技術の分野に、詳細にはデータ処理方法、記憶システムおよび切り換え装置に関する。
分散式記憶の高まる人気とともに、さまざまな新たな記憶態様がストレージ市場に現われており、オブジェクト記憶技術は新たな人気のあるトピックとなっている。
オブジェクト記憶システムでは、コンピューティング・ノードが仮想ディスクについてのI/O(Input/output、入出力)動作を実行するたびに、コンピューティング・ノードは該I/O動作に対応するOSD(Object-base Storage Device、オブジェクト・ベース記憶装置)の位置を計算を通じて取得し、次いで対応するOSD上で該I/O動作を開始する必要がある。
コンピューティング・ノードはさらにパケットを受け取って送り、該パケットをカプセル化およびパースする必要があるため、I/O動作に対応するOSDを計算するプロセスはコンピューティング・ノードの計算資源を消費し、比較的大きなI/Oトラフィックのあるシナリオでは特に、コンピューティング・ノードの稼働効率が低下する。
本願は、コンピューティング・ノードの計算量を減らし、コンピューティング・ノードの稼働効率を改善するためのデータ処理方法、記憶システムおよび切り換え装置を開示する。
第一の側面によれば、本願は記憶システムを提供する。本記憶システムは、互いに接続されているコンピューティング・ノードおよび切り換え装置を含む。コンピューティング・ノードは第一のネットワーク・パケットを切り換え装置に送り、第一のネットワーク・パケットは資源識別子、第一のオフセットおよび入出力I/Oコマンドを担持する。コンピューティング・ノードによって送られた第一のネットワーク・パケットを受領後、切り換え装置はI/O動作に対応するOSDを決定する。具体的には、切り換え装置は、前記第一のオフセットおよび前記オブジェクト記憶装置OSDのサイズに従って第二のオフセットを生成し、前記資源識別子および前記第一のオフセットに従って、I/O動作が実行されるべき第一のOSDを収容する第一の記憶ノードの第一のネットワーク・アドレスと、前記第一のOSDの識別子とを取得し、第二のネットワーク・パケットを生成し、前記第二のネットワーク・パケットを前記第一の記憶ノードに送る。第二のネットワーク・パケットは前記第二のオフセット、前記I/Oコマンドおよび前記第一のOSDの識別子を担持し、前記第二のネットワーク・パケットの宛先アドレスは前記第一のネットワーク・アドレスである。前記第二のオフセットは、前記I/O動作が実行されるべき前記第一のOSDのアドレス・オフセットである。
上記のシステムでは、コンピューティング・ノードは前記I/O動作に対応するOSDを計算する必要がなく、切り換え装置が、コンピューティング・ノードからの第一のネットワーク・パケットにおいて担持されている情報に従って、前記OSDを探す。よって、コンピューティング・ノードの計算量が減らされる。
本願のある実装では、本記憶システムはさらに複数の記憶ノードを含む。前記複数の記憶ノードにおける前記第一の記憶ノードは:切り換え装置によって送られた前記第二のネットワーク・パケットを受領し、前記第一のOSDの識別子に従って前記第一のOSDを選択し、前記第二のネットワーク・パケットに担持されているI/Oコマンドに従って、前記第二のオフセットによって示される、前記第一のOSD内の記憶アドレスに対して前記I/O動作を実行するよう構成される。
前記第一の記憶ノードは、切り換え装置から前記第二のネットワーク・パケットを受領する。前記第二のネットワーク・パケットは、前記I/Oが実行されるべき前記第一のOSDの識別子と前記第二のオフセットとを担持しているので、前記第一の記憶ノードは前記第二のネットワーク・パケットにおいて担持される情報に従って前記I/O動作を実行できる。よって、本願では、切り換え装置はローカルにOSDを探し、前記第一の記憶ノードによって実行される前記I/O動作は影響されない。従来技術と比べて、本願の切り換え装置は記憶ノードへの修正を必要とせず、さまざまな記憶ノードに適用されることができる。
I/O動作は書き込み動作または読み出し動作でありうる。I/O動作が書き込み動作であるとき、I/Oコマンドは書き込みI/Oコマンドおよび書き込まれるべきデータを含む。I/O動作が読み出し動作であるとき、I/Oコマンドは読み出しI/Oコマンドおよび読み出し長さを含む。
本願のもう一つの実装では、前記第一の記憶ノードは具体的には、前記書き込みI/Oコマンドに従って、書き込まれるべきデータを、前記第二のオフセットによって示される、前記第一のOSD内の記憶アドレスに書き込むよう構成される。
切り換え装置がI/O動作に対応するOSDをローカルに探すので、コンピューティング・ノードは書き込みI/Oコマンドおよび書き込まれるべきデータを前記第一のネットワーク・パケット内に入れて、前記第一のネットワーク・パケットを切り換え装置に送る必要があるだけである。第一のネットワーク・パケットに従って前記OSDを見出した後、切り換え装置は前記OSDの識別子、前記書き込みI/Oコマンドおよび前記書き込まれるべきデータを、該OSDを収容している前記第一の記憶ノードに直接、送る。したがって、前記第一の記憶ノードは、いかなる修正もなしに上記の情報に従って書き込み動作を実行でき、よって、本願の切り換え装置は記憶ノードへの修正を必要とせず、さまざまな記憶ノードに適用されることができる。
本願のもう一つの実装では、コンピューティング・ノードからの書き込まれるべきデータは、複数のコピーで記憶される必要がある。つまり、データ・セキュリティーを高めるために、書き込まれるべきデータは少なくとも二つの記憶ノードに記憶される必要がある。この場合、前記第一のネットワーク・パケットはさらに、マルチコピー動作コードを担持する。切り換え装置は具体的には、前記第一のネットワーク・アドレスと、前記第一のOSDの前記識別子と、書き込み動作が実行されるべき第二のOSDを収容している第二の記憶ノードの第二のネットワーク・アドレスと、前記第二のOSDの識別子とを、前記資源識別子および前記第一のオフセットに従って取得する。前記第二のネットワーク・パケットを生成して前記第二のネットワーク・パケットを前記第一の記憶ノードに送ることに加えて、切り換え装置はさらに、前記マルチコピー動作コードに従って第三のネットワーク・パケットを生成して、該第三のネットワーク・パケットを前記第二の記憶ノードに送る。前記第三のネットワーク・パケットは前記第二のオフセットと、前記書き込みI/Oコマンドと、前記書き込まれるべきデータと、前記第二のOSDの前記識別子とを担持し、前記第三のネットワーク・パケットの宛先アドレスは前記第二のネットワーク・アドレスである。前記第二の記憶ノードは前記第三のネットワーク・パケットを受領し、前記書き込みI/Oコマンドに従って、前記書き込まれるべきデータを、前記第二のオフセットによって示される、前記第二のOSD内の記憶アドレスに書き込む。
マルチコピー・バックアップが設定されている仮想ディスクに対して書き込み動作を実行するとき、コンピューティング・ノードは、前記マルチコピー動作コードを使って、切り換え装置に、書き込み動作が、前記仮想ディスクにマッピングされている主要OSDおよび副次OSDの両方に対して実行される必要があることを通知してもよい。この場合、切り換え装置は複数のネットワーク・パケットを生成し、前記複数のネットワーク・パケットを主要OSDを収容している記憶ノードと、副次OSDを収容している記憶ノードに送り、それにより、前記書き込まれるべきデータは、主要OSDおよび副次OSDの両方に書き込まれることができ、データ一貫性が保証される。よって、本願では、切り換え装置の機能がさらに拡張され、切り換え装置は、前記マルチコピー動作コードに従って、コンピューティング・ノードからの書き込みコマンドを、複数の記憶ノードのための書き込みコマンドに変換しうる。
本願のもう一つの実装では、第一の記憶ノードはさらに、第一の応答パケットを切り換え装置に送るよう構成され、第二の記憶ノードはさらに、第二の応答パケットを切り換え装置に送るよう構成される。第一の応答パケットは第一の書き込み結果およびパケット型識別子を担持し、第一の応答パケットの宛先アドレスは前記コンピューティング・ノードのネットワーク・アドレスである。第二の応答パケットは第二の書き込み結果およびパケット型識別子を担持し、第二の応答パケットの宛先アドレスは前記コンピューティング・ノードのネットワーク・アドレスである。切り換え装置はさらに:第一の応答パケットおよび第二の応答パケットを受領し、前記パケット型識別子に従って第一の応答パケットおよび第二の応答パケットがキー値KVパケットであることを判別し、第三の応答パケットを生成し、該第三の応答パケットを前記コンピューティング・ノードに送る。第三の応答パケットは、第一の書き込み結果および第二の書き込み結果を担持しており、第三の応答パケットの宛先アドレスは前記コンピューティング・ノードのネットワーク・アドレスである。前記コンピューティング・ノードはさらに:第三の応答パケットを受領し、第三の応答パケットにおいて担持されている第一の書き込み結果および第二の書き込み結果を取得する。
前記少なくとも二つの記憶ノードによって返された応答パケットを受領した後、切り換え装置は、それらの応答パケットの型を判別し、前記少なくとも二つの記憶ノードによって返された複数の応答パケットに対して組み合わされたカプセル化を実行して、前記コンピューティング・ノードに返される一つの応答パケットを生成する。よって、複数の記憶ノードからの応答が単一の応答にまとめられ、該単一の応答が前記コンピューティング・ノードに返される。よって、コンピューティング・ノードの負担が著しく軽減され、比較的大きなI/Oトラフィックのあるシナリオでは特に、本発明の実施形態は、より明らかな利点をもつ。
受領されたパケットがパケット型識別子を担持しているとき、切り換え装置は該パケットがKVパケットであることを判別し、該パケットをパースし、パースによって得られた情報に従ってOSDを探す。あるいは、該パケットがパケット型識別子を担持していないときは、切り換え装置は該パケットが非KVパケットであることを判別し、該パケットを該パケットの宛先アドレスに従って直接転送する。よって、本願の切り換え装置はさらに、非KVパケットを転送する機能をもち、さまざまなネットワーク・システムと互換であることができる。
本願のもう一つの実装では、第一の記憶ノードは具体的には、読み出しI/Oコマンドに従って、前記第二のオフセットによって示される、前記第一のOSD内の記憶アドレスから、前記読み出し長さのデータを読み出すよう構成される。前記第一のネットワーク・パケットおよび前記第二のネットワーク・パケットにおいて担持される前記I/Oコマンドは、具体的には、前記読み出しI/Oコマンドおよび前記読み出し長さを含む。
切り換え装置がI/O動作に対応するOSDをローカルに探すので、コンピューティング・ノードは読み出しI/Oコマンドおよび読み出し長さを前記第一のネットワーク・パケット内に入れて、前記第一のネットワーク・パケットを切り換え装置に送る必要があるだけである。第一のネットワーク・パケットに従って前記OSDを見出した後、切り換え装置は前記OSDの識別子、前記読み出しI/Oコマンドおよび前記読み出し長を、該OSDを収容している前記第一の記憶ノードに直接、送る。したがって、前記第一の記憶ノードは、いかなる修正もなしに上記のデータに従って読み出し動作を実行でき、よって、本願の切り換え装置はさまざまな記憶ノードに適用されることができる。
本願のもう一つの実装では、切り換え装置は、具体的には:前記OSDのサイズを除数として使って、前記第一のオフセットに対してモジュロ演算を実行し、得られた結果を前記第二のオフセットとして使うよう構成される。
前記資源識別子が具体的に前記コンピューティング・ノード上の仮想ディスク内の仮想ボリュームのボリューム番号であるときは、本願は、仮想ディスクがブロック記憶システムであるときに適用可能である。前記資源識別子が具体的に前記コンピューティング・ノード上の仮想ディスク内の仮想ファイルのファイル・システム識別子およびファイル識別子であるときは、本願は、仮想ディスクがファイル記憶システムであるときに適用可能である。
前記第一のオフセットは、前記仮想ボリュームまたは前記仮想ファイルにおけるオフセットである。前記仮想ボリュームまたは前記仮想ファイルは実際には、それぞれの前記OSDのサイズをもつ複数の仮想スペースを含み、各仮想スペースはあるOSDとマッピング関係をもつ。第一のオフセットは、前記OSDより大きくてもよい。よって、第一のオフセットは前記OSDには適用可能ではない。前記OSDのサイズを除数として使って第一のオフセットに対してモジュロ演算が実行される必要がある。得られる第二のオフセットのサイズは前記OSDのサイズ以下になる。
本願のもう一つの実装では、切り換え装置は具体的には、前記コンピューティング・ノード上の仮想ディスクのボリューム番号と前記第一のオフセットとに従って、I/O動作が実行されるべき前記第一のOSDを収容している前記第一の記憶ノードの第一のネットワーク・アドレスと、前記第一のOSDの識別子とを取得するよう構成される。ここで、資源識別子は具体的には、前記コンピューティング・ノード上の仮想ディスクのボリューム番号である。
本願のもう一つの実装では、資源識別子はファイル・システム識別子およびファイル識別子であり、切り換え装置は具体的には、I/O動作が実行されるべき第一のOSDを収容している第一の記憶ノードの第一のネットワーク・アドレスと、前記第一のOSDの識別子とを、前記ファイル・システム識別子、前記ファイル識別子および前記第一のオフセットに従って取得する。
本願のもう一つの実装では、前記第一のネットワーク・パケットはさらにパケット型識別子を担持し、切り換え装置はさらに、該パケット型識別子に従って、前記第一のネットワーク・パケットがキー値KVパケットであることを判別するよう構成される。
切り換え装置がパケットを受領し、該パケットがパケット型識別子を担持しているとき、切り換え装置は、該パケットがKVパケットであることを判別し、該パケットをパースし、パースによって得られた情報に従ってOSDを探す。あるいは、該パケットがパケット型識別子を担持していないときは、切り換え装置は該パケットが非KVパケットであることを判別し、該パケットを該パケットの宛先アドレスに従って直接転送する。よって、本願の切り換え装置はさらに、非KVパケットを転送する機能をもち、さまざまなネットワーク・システムと互換であることができる。
本願のもう一つの実装では、前記第一のネットワーク・パケットはTCPパケットであり、前記パケット型識別子は、該TCPパケットのIPヘッダ内にあるオプション(options)フィールドおよびパディング(padding)フィールドにおいて設定される。
オプション(options)フィールドおよびパディング(padding)フィールドは通例アイドルなので、IPヘッダのこれらのフィールドはパケット型識別子を担持するために使われる。パケットの型を判別するとき、切り換え装置はIPヘッダを解析する必要があるだけであり、IPデータ・フィールドを分解する必要はない。よって、パケットの処理が加速されることができる。
より具体的には、本願は、切り換え装置がI/O動作に対応するOSDを得る具体的な実装を提供する。
本願のもう一つの実装では、切り換え装置は具体的には:前記OSDのサイズに基づいて前記第一のオフセットに対して丸め演算を実行して丸め結果を得て、前記資源識別子および前記丸め結果に対応するキーを取得し、比較テーブルを検索して、前記キーに対応する、前記第一の記憶ノードの前記第一のネットワーク・アドレスおよび前記第一のOSDの識別子を決定するよう構成される。比較テーブルは、キーと、記憶ノードのネットワーク・アドレスと、OSDの識別子との間の対応を含む。
前記第一のオフセットは、仮想ボリュームまたは仮想ファイル内のオフセットである。仮想ボリュームまたは仮想ファイルは実際には、それぞれの前記OSDのサイズをもつ複数の仮想スペースを含み、各仮想スペースはあるOSDとマッピング関係をもつ。よって、該複数の仮想スペースは特定の量のOSDに対応する。一つの仮想スペースが一つのキーに対応することを保証する必要があるだけであり、一つの仮想スペースが一つのキーに対応することは、前記丸め演算を使って実現できる。
本願のもう一つの実装では、切り換え装置は具体的には:前記OSDのサイズに基づいて前記第一のオフセットに対して丸め演算を実行して丸め結果を得て、前記資源識別子および前記丸め結果を一貫するハッシュ・アルゴリズムの入力パラメータとして使って該一貫するハッシュ・アルゴリズムを実行して、対応するキーを得る。
よって、本願では、キーは、資源識別子および丸め結果から、テーブルを検索することによって、あるいはハッシュ演算を使うことによって、得られてもよい。
本願のもう一つの実装では、比較テーブルは、グローバル・ビュー・テーブルおよび分割マップ・テーブルを含む。グローバル・ビュー・テーブルは、キーとOSD番号との間の対応を含み、該OSD番号が、記憶システムにおける一意的なOSDを特定するために使われる。分割マップ・テーブルは、OSD番号と、記憶ノードのネットワーク・アドレスと、OSDの識別子との間の対応を含む。切り換え装置は具体的には、グローバル・ビュー・テーブルを検索して、前記の得られたキーに対応するOSD番号を決定し、分割マップ・テーブルを検索して、前記OSD番号に対応する、前記第一のOSDを収容している前記第一の記憶ノードの前記第一のネットワーク・アドレスと、前記第一のOSDの識別子とを決定するよう構成される。
本願のもう一つの実装では、記憶システムはさらに、切り換え装置に接続されたメタデータ制御ノードを含む。メタデータ制御ノードは、記憶システムのメタデータを記録する。メタデータは、前記グローバル・ビュー・テーブルおよび前記分割マップ・テーブルを含む。切り換え装置はさらに、メタデータ制御ノードによって送られた、前記グローバル・ビュー・テーブルおよび前記分割マップ・テーブルを受領するよう構成される。
切り換え装置はメタデータ制御ノードによって送られるグローバル・ビュー・テーブルおよび分割マップ・テーブルを受領し、グローバル・ビュー・テーブルおよび分割マップ・テーブルを再生成する必要がないので、システム互換性が改善される。
第二の側面によれば、本願はデータ処理方法を提供する。本方法は:
コンピューティング・ノードによって、第一のネットワーク・パケットを切り換え装置に送る段階であって、第一のネットワーク・パケットは資源識別子、第一のオフセット、入出力I/Oコマンドを担持する、段階と;切り換え装置によって、前記第一のオフセットおよびオブジェクト記憶装置OSDのサイズに従って第二のオフセットを生成し、前記資源識別子および前記第一のオフセットに従って、I/O動作が実行されるべき第一のOSDを収容する第一の記憶ノードの第一のネットワーク・アドレスと、前記第一のOSDの識別子とを取得する段階と;切り換え装置によって、第二のネットワーク・パケットを生成し、前記第二のネットワーク・パケットを前記第一の記憶ノードに送る段階であって、前記第二のネットワーク・パケットは前記第二のオフセット、前記I/Oコマンドおよび前記第一のOSDの識別子を担持し、前記第二のネットワーク・パケットの宛先アドレスは前記第一のネットワーク・アドレスである、段階とを含む。
第二の側面または第二の側面の実装の任意のものは、前記第一の側面または第一の側面の実装の任意のいずれかに対応する方法実装である。前記第一の側面または第一の側面の実装のいずれかにおける記載は第二の側面または第二の側面の実装のいずれかに適用可能であり、ここで詳細を述べることはしない。
第三の側面によれば、本願はデータ処理方法を提供する。本方法は:切り換え装置によって、コンピューティング・ノードによって送られた第一のネットワーク・パケットを受領する段階であって、第一のネットワーク・パケットは資源識別子、第一のオフセットおよび入出力I/Oコマンドを担持する、段階と;切り換え装置によって、前記第一のオフセットおよびオブジェクト記憶装置OSDのサイズに従って第二のオフセットを生成し、前記資源識別子および前記第一のオフセットに従って、I/O動作が実行されるべき第一のOSDを収容する第一の記憶ノードの第一のネットワーク・アドレスと、前記第一のOSDの識別子とを取得する段階と;切り換え装置によって、第二のネットワーク・パケットを生成し、前記第二のネットワーク・パケットを前記第一の記憶ノードに送る段階であって、前記第二のネットワーク・パケットは前記第二のオフセット、前記I/Oコマンドおよび前記第一のOSDの識別子を担持し、前記第二のネットワーク・パケットの宛先アドレスは前記第一のネットワーク・アドレスである、段階とを含む。
上記のデータ処理方法では、コンピューティング・ノードは前記I/O動作に対応するOSDを計算する必要がなく、切り換え装置が、コンピューティング・ノードからの第一のネットワーク・パケットにおいて担持されている情報に従って、前記OSDを探す。よって、コンピューティング・ノードの計算量が減らされる。
第四の側面によれば、本願は切り換え装置を提供する。切り換え装置は:コンピューティング・ノードによって送られた第一のネットワーク・パケットを受領するよう構成された受信モジュールであって、第一のネットワーク・パケットは資源識別子、第一のオフセットおよび入出力I/Oコマンドを担持する、受信モジュールと;前記第一のオフセットおよびオブジェクト記憶装置OSDのサイズに従って第二のオフセットを生成し、前記資源識別子および前記第一のオフセットに従って、I/O動作が実行されるべき第一のOSDを収容する第一の記憶ノードの第一のネットワーク・アドレスと、前記第一のOSDの識別子とを取得する段階と;第二のネットワーク・パケットを生成する段階であって、前記第二のネットワーク・パケットは前記第二のオフセット、前記I/Oコマンドおよび前記第一のOSDの識別子を担持し、前記第二のネットワーク・パケットの宛先アドレスは前記第一のネットワーク・アドレスである、段階とを実行するよう構成された処理モジュールと;前記第二のネットワーク・パケットを前記第一の記憶ノードに送るよう構成された送信モジュールとを含む。
第四の側面または第四の側面の実装の任意のものは、前記第三の側面または第三の側面の実装の任意のいずれかに対応する方法実装である。前記第三の側面または第三の側面の実装のいずれかにおける記載は第四の側面または第四の側面の実装のいずれかに適用可能であり、ここで詳細を述べることはしない。
本願のある実装では、前記I/Oコマンドは書き込みI/Oコマンドおよび書き込まれるべきデータを含み、前記第一のネットワーク・パケットはさらにマルチコピー動作コードを含む。前記処理モジュールは具体的には、前記第一のネットワーク・アドレスと、前記第一のOSDの前記識別子と、書き込み動作が実行されるべき第二のOSDを収容している第二の記憶ノードの第二のネットワーク・アドレスと、前記第二のOSDの識別子とを、前記資源識別子および前記第一のオフセットに従って取得するよう構成される。前記処理モジュールはさらに、前記マルチコピー動作コードに従って第三のネットワーク・パケットを生成するよう構成される。前記第三のネットワーク・パケットは前記第二のオフセットと、前記書き込みI/Oコマンドと、前記書き込まれるべきデータと、前記第二のOSDの前記識別子とを担持し、前記第三のネットワーク・パケットの宛先アドレスは前記第二のネットワーク・アドレスである。前記送信モジュールはさらに、前記第三のネットワーク・パケットを前記第二の記憶ノードに送るよう構成される。
本願のもう一つの実装では、前記受信モジュールはさらに、前記第一の記憶ノードによって送られた第一の応答パケットおよび前記第二の記憶ノードによって送られた第二の応答パケットを受領するよう構成される。第一の応答パケットは第一の書き込み結果およびパケット型識別子を担持し、第一の応答パケットの宛先アドレスは前記コンピューティング・ノードのネットワーク・アドレスである。第二の応答パケットは第二の書き込み結果およびパケット型識別子を担持し、第二の応答パケットの宛先アドレスは前記コンピューティング・ノードのネットワーク・アドレスである。処理モジュールはさらに:前記パケット型識別子に従って第一の応答パケットおよび第二の応答パケットがキー値KVパケットであることを判別し、第三の応答パケットを生成し、該第三の応答パケットを前記コンピューティング・ノードに送るよう構成される。第三の応答パケットは、第一の書き込み結果および第二の書き込み結果を担持し、第三の応答パケットの宛先アドレスは前記コンピューティング・ノードのネットワーク・アドレスである。
本願のもう一つの実装では、前記処理モジュールは、具体的には:前記OSDのサイズを除数として使って、前記第一のオフセットに対してモジュロ演算を実行し、得られた結果を前記第二のオフセットとして使うよう構成される。
本願のもう一つの実装では、前記資源識別子は前記コンピューティング・ノード上の仮想ディスクの仮想ボリュームのボリューム番号であり、前記処理モジュールは具体的には、前記ボリューム番号および前記第一のオフセットに従って、I/O動作が実行されるべき前記第一のOSDを収容している前記第一の記憶ノードの第一のネットワーク・アドレスと、前記第一のOSDの識別子とを取得するよう構成される。
本願のもう一つの実装では、前記資源識別子はファイル・システム識別子およびファイル識別子であり、前記処理モジュールは具体的には、I/O動作が実行されるべき第一のOSDを収容している第一の記憶ノードの第一のネットワーク・アドレスと、前記第一のOSDの識別子とを、前記ファイル・システム識別子、前記ファイル識別子および前記第一のオフセットに従って取得するよう構成される。
本願のもう一つの実装では、前記第一のネットワーク・パケットはさらにパケット型識別子を担持し、前記処理モジュールはさらに、該パケット型識別子に従って、前記第一のネットワーク・パケットがキー値KVパケットであることを判別するよう構成される。
本願のもう一つの実装では、前記処理モジュールはさらに:前記OSDのサイズに基づいて前記第一のオフセットに対して丸め演算を実行して丸め結果を得て、前記資源識別子および前記丸め結果に対応するキーを取得し、比較テーブルを検索して、前記キーに対応する、前記第一の記憶ノードの前記第一のネットワーク・アドレスおよび前記第一のOSDの識別子を決定するよう構成される。比較テーブルは、キーと、記憶ノードのネットワーク・アドレスと、OSDの識別子との間の対応を含む。
本願のもう一つの実装では、比較テーブルは、グローバル・ビュー・テーブルおよび分割マップ・テーブルを含む。グローバル・ビュー・テーブルは、キーとOSD番号との間の対応を含み、該OSD番号が、記憶システムにおいてOSDを特定するために使われる。分割マップ・テーブルは、OSD番号と、記憶ノードのネットワーク・アドレスと、OSDの識別子との間の対応を含む。前記処理モジュールは具体的には、グローバル・ビュー・テーブルを検索して、前記の得られたキーに対応するOSD番号を決定し、分割マップ・テーブルを検索して、前記OSD番号に対応する、前記第一のOSDを収容している前記第一の記憶ノードの前記第一のネットワーク・アドレスと、前記第一のOSDの識別子とを決定するよう構成される。
本願のもう一つの実装では、前記受信モジュールはさらに、メタデータ制御ノードによって送られるグローバル・ビュー・テーブルおよび分割マップ・テーブルを受領するよう構成される。
第五の側面によれば、本願は切り換え装置を提供する。本切り換え装置は、上記の方法実施における切り換え装置を実現する機能をもつ。該機能はハードウェアを使って実装されてもよく、あるいは対応するソフトウェアを実行するハードウェアによって実装されてもよい。ハードウェアまたはソフトウェアは、上記の機能に対応する一つまたは複数のモジュールを含む。任意的に、本切り換え装置は、スイッチまたは切り換え機能を実装する物理的なサーバーのような、ネットワーク側装置であってもよい。
第六の側面によれば、本願はスイッチを提供する。スイッチは、プロセッサと、メモリと、複数の物理ポートを含む。スイッチは、上記の諸側面に基づく切り換え装置の機能を実行する。プロセッサは、上記の方法における対応する機能を実行すること、たとえば上記の方法に関係するデータおよび/または情報を生成または処理することにおいて、該スイッチング装置をサポートするよう構成される。
第七の側面によれば、本願は、上記の切り換え装置によって使われるコンピュータ・ソフトウェア命令を記憶するよう構成されたコンピュータ記憶媒体を提供する。コンピュータ・ソフトウェア媒体は、上記の諸側面のさまざまな実装を実行するために設計されたプログラムを含む。
本発明のある実施形態に基づく記憶システムのシステム構造の概略図である。
本発明のある実施形態に基づくコンピューティング・ノードの装置構造の概略図である。
本発明のある実施形態に基づくコンピューティング・ノードの装置構造の概略図である。
本発明のある実施形態に基づく記憶ノードの装置構造の概略図である。
本発明のある実施形態に基づくもう一つの記憶ノードの装置構造の概略図である。
本発明のある実施形態に基づくメタデータ制御ノードの装置構造の概略図である。
本発明のある実施形態に基づく切り換え装置の装置構造の概略図である。
本発明に基づく情報処理方法の第一の実施形態のフローチャートである。
本発明のある実施形態に基づく、仮想ディスクのボリュームとOSDとの間のマッピング関係の図である。
AおよびBは、本発明に基づく情報処理方法の第二の実施形態のフローチャートである。
本発明に基づく情報処理方法の第三の実施形態のフローチャートである。
本発明に基づくTCPパケットのフォーマットの概略図である。
本発明に基づく切り換え装置のもう一つの装置構造の概略図である。
本発明の諸実施形態に基づく技術的解決策は、付属の図面を参照して下記において明瞭かつ完全に記述される。明らかに、記述される実施形態は本発明の実施形態の全部ではなく、単に一部である。
まず図1を参照するに、図1は、本発明のある実施形態に基づく記憶システムのシステム構造の概略図である。図1に示されるように、本発明のこの実施形態に基づく記憶システムは、切り換え装置300、コンピューティング・ノード・クラスター、記憶ノード・クラスターおよびメタデータ制御ノード400を含む。コンピューティング・ノード・クラスターは、コンピューティング・ノード100およびコンピューティング・ノード100’のような複数のコンピューティング・ノードを含む。記憶ノード・クラスターは第一の記憶ノード200および第二の記憶ノード200’のような複数の記憶ノードを含む。本発明のこの実施形態における記憶システムでは、任意のコンピューティング・ノードが、切り換え装置300を使うことによって、メタデータ制御ノード400および任意の記憶ノードへのポイントツーポイント接続を確立することができる。
コンピューティング・ノード、記憶ノードおよびメタデータ制御ノードの具体的な数は実際の要件に応じて設定されうることを注しておく価値がある。一般に、本発明の実施形態は分散式記憶技術に関係するので、以下の実施形態では記述のために二つの記憶ノードが例として使われる。具体的な製品実装では、切り換え装置300は少なくとも一つのスイッチまたはルーターでありうる。
本発明のこの実施形態では、コンピューティング・ノードによって送られたネットワーク・パケットを受領後、切り換え装置300は書き込み/読み出し動作が実行されるべきOSDを収容している記憶ノードのネットワーク・アドレスと、その記憶ノード上でのそのOSDのOSD識別子とを、前記ネットワーク・パケットにおいて担持されている資源識別子およびオフセットに従って取得し、I/Oコマンドを担持するネットワーク・パケットを生成し、該ネットワーク・パケットを前記記憶ノードに送り、それにより該記憶ノードは前記I/Oコマンドに従って前記記憶ノードの前記OSDに対して読み出し/書き込み動作を実行しうる。
本発明のこの実施形態では、切り換え装置300は、記憶ノードのネットワーク・アドレスおよびOSDを検索するために、キー値演算機能を実行する。コンピューティング・ノードは、各I/O動作の間に、メタデータ制御ノード上のネットワーク・アドレスおよびOSDを検索するためにメタデータ制御ノードへの接続を確立する必要はない。よって、コンピューティング・ノードの計算量が減らされることができ、ネットワーク負荷が軽減されることができる。
明確な記述のため、図2ないし図5を参照するに、コンピューティング・ノード100、第一の記憶ノード200、第二の記憶ノード200’、メタデータ制御ノード400および切り換え装置300の具体的な構造が図2ないし図5において別個に記述される。
まず図2を参照するに、図2は、本発明のある実施形態に基づくコンピューティング・ノードの装置構造の概略図である。図2に示されるように、コンピューティング・ノード100は、ハードウェア101、オペレーティング・システム102、VBS(Virtual Block System、仮想ブロック・システム)コンポーネント104および仮想マシン105を含む。
ハードウェア101は、物理ネットワーク・アダプター1011を含む。オペレーティング・システム102は、仮想マシン・モニター1022および物理ネットワーク・アダプター・ドライバー1021を含む。仮想マシン105は、アプリケーション・プログラム1051および仮想マシン・オペレーティング・システム1052を含み、仮想ディスク10521は仮想マシン・オペレーティング・システム1052内に配置されている。
物理ネットワーク・アダプター1011は、ネットワーク・リンク層で動作するネットワーク・コンポーネントであり、ネットワークにおいてコンピューティング・ノードと伝送媒体を接続するインターフェースである。物理ネットワーク・アダプター1011は、コンピューティング・ノード100についてのネットワーク・アドレスを設定する。ネットワーク・アドレスはMACアドレスまたはIPアドレスであってもよい。物理ネットワーク・アダプター1011は、一つまたは複数のネットワーク・アドレスを設定しうる。この実施形態では、物理ネットワーク・アダプター1011は一つのネットワーク・アドレスを設定する必要があるだけである。しかしながら、相対的に複雑なネットワーク環境においては複数のネットワーク・アドレスが設定されてもよいことは注意しておく価値がある。
たとえば、物理ネットワーク・アダプター1011はコンピューティング・ノード100のIPアドレスを192.168.1.11に設定してもよい。
物理ネットワーク・アダプター・ドライバー1021は、オペレーティング・システム102に配置されており、物理ネットワーク・アダプター1011のためのインターフェースを提供する。VBSコンポーネント104は、物理ネットワーク・アダプター・ドライバー1021によって提供されるインターフェースを使うことによって、ネットワーク・パケットを受信または送信するよう、物理ネットワーク・アダプター1011を制御しうる。
VBSコンポーネント104は、オペレーティング・システム102上でインストールされて、走る。VBSコンポーネント104は、コンピューティング・ノード100のための分散式の記憶アクセス・サービスを提供する。
VBSコンポーネント104は、オペレーティング・システム102上でネットワーク・ポートを提供される。VBSコンポーネント104は、VBSコンポーネント104の該ネットワーク・ポートを使うことによって、外部ネットワークと通信する。VBSコンポーネント104のネットワーク・ポートはたとえば10001であり、各コンピューティング・ノードの諸VBSコンポーネントの諸ネットワーク・ポートは同じである。
仮想マシン・モニター1022はオペレーティング・システム102上に配置され、仮想マシン・モニター1022は、仮想マシン・オペレーティング・システム1052のために、実際のハードウェア101とは独立な仮想ハードウェアを生成する。
アプリケーション・プログラム1051は仮想マシン・オペレーティング・システム1052上で走り、仮想ディスク10521は仮想マシン・オペレーティング・システム1052に配置され、アプリケーション・プログラム1051は仮想ディスク10521に対する読み出し/書き込み動作を実行しうる。
いくつかの例では、仮想ディスク10521は複数の仮想ボリュームを提供され、各仮想ボリュームにボリューム番号が割り当てられる。仮想ボリュームに対して読み出し/書き込み動作を実行するとき、アプリケーション・プログラム1051は、ボリューム番号および第一のオフセットを含む読み出し/書き込み命令を生成する。第一のオフセットは、ボリューム番号に対応する仮想ボリュームの読み出し/書き込み位置を示す。仮想マシン・オペレーティング・システム1052は該読み出し/書き込み命令を仮想マシン・モニター1022に送る。VBSコンポーネント104は該読み出し/書き込み命令を仮想マシン・モニター1022から得る。
他の例では、仮想ディスク10521は複数の仮想ファイルを提供される。各仮想ファイルはファイル・システム識別子およびファイル識別子を与えられる。ファイル・システム識別子は、ファイルを収容するファイル・システムの識別子であり、FAT(File Allocation Table、ファイル・アロケーション・テーブル)またはNTFS(New Technology File System、ニュー・テクノロジー・ファイル・システム)のようなファイル・フォーマットを特定するために使われる。仮想ファイルに対して読み出し/書き込み動作を実行するとき、アプリケーション・プログラム1051は、ファイル・システム識別子、ファイル識別子および第一のオフセットを含む読み出し/書き込み命令を生成する。第一のオフセットは、ファイル・システム識別子およびファイル識別子に対応する仮想ファイルの読み出し/書き込み位置を示す。仮想マシン・オペレーティング・システム1052は該読み出し/書き込み命令を仮想マシン・モニター1022に送る。VBSコンポーネント104は該読み出し/書き込み命令を仮想マシン・モニター1022から得る。
図1に示されるコンピューティング・ノード100’の構造がコンピューティング・ノード100の構造と同じであることを注意しておく価値がある。詳細はここでは述べない。
任意的に、さらに、図3を参照するに、図3は、本発明のある実施形態に基づくコンピューティング・ノードのもう一つの装置構造の概略図である。図3に示されるように、他の例では、コンピューティング・ノード100は仮想構造を使わなくてもよい。アプリケーション・プログラム1051はオペレーティング・システム102上で直接実行される。VBSコンポーネント104が、該VBSコンポーネント104を収容するノードのための分散式記憶アクセス・サービスを提供する。たとえば、オペレーティング・システム102は、VBSコンポーネント104によって提供される分散式の記憶スペースを、仮想ディスク10521にマッピングしてもよい。仮想ディスク10521にアクセスするとき、アプリケーション・プログラム1051は、VBSコンポーネント104を使うことによって、実際には該分散式の記憶スペースにアクセスする。
図3に示した構造では、仮想ディスク10521は複数の仮想ボリュームを設けられていてもよく、各仮想マシン・ボリュームにボリューム番号が割り当てられる。仮想ボリュームに対して読み出し/書き込み動作を実行するとき、アプリケーション・プログラム1051は、ボリューム番号および第一のオフセットを含む読み出し/書き込み命令を生成する。第一のオフセットは、ボリューム番号に対応する、その仮想ボリュームの読み出し/書き込み位置を示す。オペレーティング・システム102は読み出し/書き込み命令をVBSコンポーネント104に送る。
他の例では、仮想ディスク10521は複数の仮想ファイルを設けられる。各仮想ファイルはファイル・システム識別子およびファイル識別子を与えられる。ファイル・システム識別子は、ファイルを収容するファイル・システムの識別子である。ファイル・システムはたとえば、FAT(File Allocation Table、ファイル・アロケーション・テーブル)またはNTFS(New Technology File System、ニュー・テクノロジー・ファイル・システム)であってもよい。仮想ファイルに対して読み出し/書き込み動作を実行するとき、アプリケーション・プログラム1051は、ファイル・システム識別子、ファイル識別子および第一のオフセットを含む読み出し/書き込み命令を生成する。第一のオフセットは、ファイル・システム識別子およびファイル識別子に対応する仮想ファイルの読み出し/書き込み位置を示す。オペレーティング・システムは該読み出し/書き込み命令をVBSコンポーネント104に送る。
図4を参照するに、図4は、本発明のある実施形態に基づく記憶ノードの装置構造の概略図である。図4に示されるように、第一の記憶ノード200はハードウェア201、オペレーティング・システム202およびOSDコンポーネント203を含む。
ハードウェア201は、物理ネットワーク・アダプター2011、ディスク・コントローラ2012、OSD1、OSD2、OSD3およびOSD4を含む。オペレーティング・システム202はディスク・ドライブ2021および物理ネットワーク・アダプター・ドライバー2022を含む。
OSDコンポーネント203は、オペレーティング・システム202上でインストールされ、走る。この実施形態では、各OSDは識別子を与えられ、OSDコンポーネント203は、OSDの識別子を使うことによって異なるOSDを管理する。
OSDが具体的には物理的なディスク上に配置されていることは注意しておく価値がある。いくつかの例では、一つのOSDが一つの物理的なディスクに配置される。他の例では、複数のOSDが一つの物理的なディスクに配置され、それらのOSDのサイズは同じで、たとえばサイズは10MB(MByte、メガバイト)であってもよい。
この実施形態では、各記憶ノードにおいて、各OSDにOSD識別子が割り当てられ、OSD識別子はその記憶ノードにおけるOSDを特定するために使用されうる。たとえば、OSD1の識別子は0000であり、OSD2の識別子は0001であり、OSD3の識別子は0002であり、OSD4の識別子は0003である。第一の記憶ノード200におけるOSDの識別子は、OSDコンポーネント203によって記録される。
さらに、本発明のこの実施形態における記憶システムでは、各OSDにさらにOSD番号が割り当てられる。OSD番号は、記憶システムにおいてOSDを特定するために使われてもよく、OSD番号はメタデータ制御ノード400において記録される。
たとえば、第一の記憶ノード200におけるOSD1のOSD番号は0x00000000である。
物理ネットワーク・アダプター2011は、第一の記憶ノード200のためのネットワーク・アドレスを設定する。OSDコンポーネント203は、物理ネットワーク・アダプター・ドライバー2022によって提供されるインターフェースを使うことによって、ネットワーク・パケットを送信または受信するよう物理ネットワーク・アダプター2011を制御してもよい。
たとえば、物理ネットワーク・アダプター2011は第一の記憶ノード200のIPアドレスを192.168.1.12に設定する。
ディスク・ドライブ2021はオペレーティング・システム202上に配置され、オペレーティング・システム202上でインターフェースを提供する。OSDコンポーネント203は該インターフェースを使うことによってディスク・コントローラ2012を制御する。
ディスク・コントローラ2012はたとえば、ディスク・ドライブ・アダプターであってもよく、OSDコンポーネント203によって送られたSCSI(Small Computer System Interface、小型コンピュータ・システム・インターフェース)命令を、オペレーティング・システム202上でディスク・ドライブ2021によって提供されるインターフェースを使うことによって、受け取り、パースし、そのOSDを収容している物理的なディスクに対して読み出し/書き込み動作を実行する。
OSDコンポーネント203は、オペレーティング・システム202上でネットワーク・ポートを提供される。VBSコンポーネント104は、VBSコンポーネント104の該ネットワーク・ポートを使うことによって、外部ネットワークと通信する。たとえば、OSDコンポーネント203のネットワーク・ポートは10002である。
図5を参照するに、図5は、本発明のある実施形態に基づくもう一つの記憶ノードの装置構造の概略図である。第二の記憶ノード200’の構造が第一の記憶ノード200の構造とほぼ同じであることを注意しておく価値がある。違いは、第二の記憶ノード200’の物理ネットワーク・アダプターは第二の記憶ノード200’のために、第一の記憶ノード200について与えられたネットワーク・アドレスとは異なるネットワーク・アドレスを提供するということにある。たとえば、第二の記憶ノード200’のIPアドレスは192.168.1.13である。さらに、第一の記憶ノード200と同様に、OSDコンポーネント203’はさらに第二の記憶ノード200’上のOSDの識別子を記録する。この実施形態では、OSD1’のOSD識別子は0000であってもよく、OSD2’のOSD識別子は0001であってもよく、OSD3’のOSD識別子は0002であってもよく、OSD4’のOSD識別子は0003であってもよい。さらに、第二の記憶ノード200’のオペレーティング・システム202’上のOSDコンポーネント203’のネットワーク・ポートはたとえば10002であってもよい。
図6を参照するに、図6は、本発明のある実施形態に基づくメタデータ制御ノードの装置構造の概略図である。メタデータ制御ノード400は、ハードウェア401、オペレーティング・システム402およびMDC(Metadata Controller、メタデータ・コントローラ)コンポーネント403を含む。ハードウェア401はメモリ4011および物理ネットワーク・アダプター4012を含む。オペレーティング・システム402はメモリ・ドライブ4021および物理ネットワーク・アダプター・ドライバー4022を含む。
同様に、物理ネットワーク・アダプター・ドライバー4022はオペレーティング・システム402上でインターフェースを提供する。オペレーティング・システム402上で走るMDCコンポーネント403は、該インターフェースを使うことによって、ネットワーク・パケットを受信または送信するよう物理ネットワーク・アダプター4012を制御する。
たとえば、物理ネットワーク・アダプター4012は、メタデータ制御ノード400のIPアドレスを192.168.1.14に設定する。
さらに、メモリ・ドライバー4021は、オペレーティング・システム402上でインターフェースを提供する。MDCコンポーネント403は、該インターフェースを使うことによって、メモリ4011にデータを書き込むあるいはメモリ4011からデータを読み出す。
本発明のこの実施形態において、MDCコンポーネント403は、キー(key)とOSDとの間の対応を記録してもよい。具体的には、MDCコンポーネント403は、記憶システム内の各記憶ノードによって報告される状態情報を受領し、該状態情報およびMDCコンポーネント403によって記録されたキー(key)をソートして比較テーブルに入れ、該比較テーブルをメモリ4011に記憶する。状態情報は、記憶ノード内のOSDコンポーネントによって記録されたOSDの識別子と、該OSDを受け容れる記憶ノードのIPアドレスとを含む。たとえば、比較テーブルは次のようなものである。
Figure 0006724252
比較テーブルにおいて、副次OSDは主要OSDのバックアップである。いくつかのシナリオでは、主要OSDにデータが書き込まれるとき、そのデータは、データ一貫性要求を保証するために、副次OSDにも書き込まれる必要がある。上記の表が、一つのキーが一つの主要OSDおよび一つの副次OSDに対応するシナリオを示すだけであることは注意しておく価値がある。しかしながら、他の例では、一つのキーは一つの主要OSDのみに対応する、あるいは一つのキーは一つの主要OSDおよび三つ以上の副次OSDに対応する。
任意的に、比較テーブルは、グローバル・ビュー・テーブルおよび分割マップ・テーブルを含む。グローバル・ビュー・テーブルは、各キーと、記憶システムにおける対応するOSD番号との間の対応を含む。OSD番号は、記憶システムにおけるOSDを同定するために使われる。分割マップ・テーブルは、各OSD番号、対応する記憶ノードのネットワーク・アドレスおよび対応するOSDの識別子の間のマッピング関係を含む。
たとえば、グローバル・ビュー・テーブルは次のようなものである。
Figure 0006724252
たとえば、グローバル・ビュー・テーブルにおいて、キーとOSD番号の両方は十六進で表わされる。キーのデータ読み出し長は8バイトであり、OSD番号のデータ読み出し長は4バイトである。
いくつかの例では、コンピューティング・ノードのオペレーティング・システムが仮想ボリュームをロードするとき、VBSコンポーネントが、仮想ボリュームのボリューム番号および仮想ボリューム内の各オフセットに基づいてハッシュ演算を実行してキーを得る。仮想ボリュームのボリューム番号および仮想ボリューム内のオフセットはキーと一対一対応にある。さらに、VBSコンポーネントはまず仮想ボリューム内のオフセットに対して、OSDのサイズに基づいて丸め演算を実行し、丸め結果および仮想ボリュームのボリューム番号に対してハッシュ演算を実行して、キーを得てもよい。
他の例では、コンピューティング・ノードのオペレーティング・システムが仮想ファイルをロードするとき、VBSコンポーネントが、仮想ファイルのファイル・システム識別子およびファイル識別子ならびに仮想ファイル内の各オフセットに基づいてハッシュ演算を実行してキーを得る。ファイル・システム識別子、ファイル識別子および仮想ファイル内のオフセットはキーと一対一対応にある。さらに、VBSコンポーネントはまず仮想ファイル内のオフセットに対して、OSDのサイズに基づいて丸め演算を実行し、仮想ファイルのファイル・システム識別子およびファイル識別子ならびに丸め結果に対してハッシュ演算を実行して、キーを得てもよい。
OSDのサイズに基づいてオフセットに対して丸め演算を実行することによって、仮想ボリュームまたは仮想ファイルがOSDのサイズの単位で分割されることに注意しておく価値がある。仮想ボリュームまたは仮想ファイルにおいて、OSDのサイズに対応するスペースは同じOSDに対応する。
さらに、グローバル・ビュー・テーブルにおけるOSD番号は記憶システムにおけるすべてのOSDの番号であり、コンピューティング・ノードによって生成されてもよい。たとえば、計算を通じて第一のキーを得るとき、コンピューティング・ノードは、対応して、そのキーに、OSD番号、たとえば0を割り当ててもよい;計算を通じて第二のキーを得るとき、コンピューティング・ノードは、対応して、そのキーに、別のOSD番号、たとえば1を割り当ててもよい;などとなる。キーはOSD番号と一対一対応にある。
さらに、割り当てられたOSD番号はコンピューティング・ノード間で同期されてもよい。よって、記憶システムにおいて反復されるOSD番号はない。
たとえば、分割マップ・テーブルは次のようなものである。
Figure 0006724252
記述の簡単のため、この実施形態では、一つのグループの副次OSDしか示されていない。いくつかの例では、副次OSDの二つ以上の識別子があってもよい。すなわち、記憶システムにおいて、主要OSDに対応する二つ以上のバックアップがあってもよい。
同様に、MDCコンポーネント403は、オペレーティング・システム402上でネットワーク・ポートを提供される。MDCコンポーネント403は、MDCコンポーネント403のネットワーク・ポートを使うことによって外部ネットワークと通信する。たとえばMDCコンポーネント403のポートは10003である。
記憶システムにおいて、各OSDコンポーネントが統一されたネットワーク・ポートをもち、各VBSコンポーネントが統一されたネットワーク・ポートをもち、OSDコンポーネントのネットワーク・ポートはVBSコンポーネントのネットワーク・ポートとは異なることを注意しておく価値がある。各OSDコンポーネントはVBSコンポーネントのネットワーク・ポートを記録する。
図7を参照するに、図7は、本発明のある実施形態に基づく切り換え装置の装置構造の概略図である。図7に示されるように、切り換え装置300はプロセッサ301、メモリ302、バス303および物理ポート1ないし4を含む。
プロセッサ301、メモリ302および物理ポート1ないし4はバス303に別個に接続されている。物理ポート1ないし4は、ケーブルを使ってコンピューティング・ノードまたは記憶ノードに接続されて、コンピューティング・ノードまたは記憶ノードからネットワーク・パケットを受領してもよい。ネットワーク・パケットはトランシーバーおよび前記バスを通過し、前記プロセッサによってパースされ、処理される。
たとえば、ケーブルは、撚り対線、ファイバーなどを含むがそれに限られない。
さらに、プロセッサ301は、ネットワーク・パケットの宛先アドレスに従って物理ポートを選択し、該ネットワーク・パケットを選択された物理ポートから、該物理ポートに接続されているコンピューティング・ノードまたは記憶ノードに送ってもよい。
図7に示したポートの数は単に例であることを注意しておく価値がある。本発明のこの実施形態では、物理ポートの数は限定されない。他の例では、物理ポートの数は8、16、32、64または他の数でもよく、個別的な要件に応じて設定されうる。
さらに、代替的に、複数の切り換え装置がカスケードを通じて接続されて、ポート拡張を実装してもよい。
記述の簡単のため、本発明のこの実施形態では、図7に示される物理ポート1は、ケーブルを使って、図1に示されるコンピューティング・ノード100に接続され、物理ポート2は、ケーブルを使って、図1に示される第一の記憶ノード200に接続され、物理ポート3は、ケーブルを使って、図1に示される第二の記憶ノード200’に接続され、物理ポート4は、ケーブルを使って、図1に示されるメタデータ制御ノード400に接続されていると想定される。
具体的には、切り換え装置のポートは、異なるケーブルを使って、各ノードの物理ネットワーク・アダプターに接続される。
さらに、ポート転送規則テーブルが切り換え装置300のメモリ302に事前記録されており、具体的には次のように示される。
Figure 0006724252
192.168.1.11はコンピューティング・ノード100のIPアドレスであり、192.168.1.12は第一の記憶ノード200のIPアドレスであり、192.168.1.13は第二の記憶ノード200’のIPアドレスであり、192.168.1.14はメタデータ制御ノードのIPアドレスである。
切り換え装置300の物理ポート1、物理ポート2、物理ポート3または物理ポート4がネットワーク・パケットを受領した後、プロセッサ301は受領されたネットワーク・パケットの宛先ネットワーク・アドレスを解析し、宛先アドレスに対応する物理ポートをポート転送規則テーブルに問い合わせ、その物理ポートを選択して、その物理ポートに接続されているコンピューティング・ノードまたは記憶ノードにネットワーク・パケットを転送する。
この実施形態において、IPアドレスであるネットワーク・アドレスは記述のための例として使われていることを注意しておく価値がある。ある代替的な実施形態では、ネットワーク・アドレスはMAC(Media Access Control、媒体アクセス制御)アドレスであってもよく、ポート転送規則テーブルは物理ポートとMACアドレスとの間の対応を記録してもよい。
加えて、ある任意的な実施形態では、スイッチまたはルーターが、物理ポートと記憶ノード、コンピューティング・ノードまたはメタデータ制御ノードとの間に配置されていることがある。切り換え装置300は、受領されたネットワーク・パケットの宛先アドレスに基づいて物理ポートを選択し、そのネットワーク・パケットをスイッチまたはルーターに送ってもよく、そのネットワーク・パケットは該スイッチまたはルーターを使って、宛先アドレスに対応する記憶ノード、コンピューティング・ノードまたはメタデータ制御ノードに転送される。
いくつかの実施形態では、切り換え装置300は、物理ポート3を使うことによって、メタデータ制御ノード400から送られるグローバル・ビュー・テーブルおよび分割マップ・テーブルを受領して、該グローバル・ビュー・テーブルおよび分割マップ・テーブルをメモリ302に記憶してもよい。
他の実施形態では、グローバル・ビュー・テーブルおよび分割マップ・テーブルは、切り換え装置302が生産されるときにメモリ302に書き込まれ、グローバル・ビュー・テーブルおよび分割マップ・テーブルはメモリ302に組み込まれる。
他の実施形態では、メタデータ制御ノード400の機能が切り換え装置300によって実装されてもよいことは注意しておく価値がある。
図8を参照するに、図8は、本発明に基づく情報処理方法の第一の実施形態のフローチャートである。図8は、記憶システムにおける一つのI/O動作を実行するプロセスを示している。図8に示されるように、本発明のこの実施形態における情報処理方法は以下の段階を含む。
段階501:コンピューティング・ノード100が第一のネットワーク・パケットを生成し、該第一のネットワーク・パケットを切り換え装置300に送る。第一のネットワーク・パケットは資源識別子、第一のオフセットおよび入出力I/Oコマンドを担持する。第一のネットワーク・アドレスの宛先アドレスはヌルであってもよく、送信元アドレスはコンピューティング・ノードのネットワーク・アドレスである。
いくつかの例では、資源識別子はコンピューティング・ノード上の仮想ディスクのボリューム番号である。他の例では、資源識別子はファイル・システム識別子およびファイル識別子である。
いくつかの例では、第一のネットワーク・パケットはさらにパケット型識別子を担持し、該パケット型識別子は第一のネットワーク・パケットを処理するよう切り換え装置300に通知するために使われる。
たとえば、資源識別子はコンピューティング・ノード上の仮想ディスクにおけるファイル識別子およびファイル・システム識別子であり、コンピューティング・ノード100は図2に示される構造をもつ。アプリケーション・プログラム1051は「カレント・ディレクトリにおけるファイルreadme.txtにおける第256KBスペースから始まる書き込まれるべきデータを書き込む」というコマンドを送る。仮想マシン・オペレーティング・システム1052のファイル・システムは上記のコマンドに従って書き込みI/Oコマンドを生成し、書き込まれるべきデータを取得し、ファイル・システムのファイル・アロケーション・テーブルに問い合わせてファイルreadme.txtのファイル識別子およびファイルreadme.txtを収容しているファイル・システム(たとえばFAT32)のファイル・システム識別子を知る。第一のオフセットは、ファイルreadme.txtにおける第256KBから始まるスペースである。仮想マシン・オペレーティング・システム1052は、ファイル識別子、ファイル・システム識別子、第一のオフセットおよびI/Oコマンドを仮想マシン・モニター1022に送る。I/Oコマンドは、書き込みI/Oコマンドおよび書き込まれるべきデータを含む。
さらに、仮想マシン・モニター1022はファイル識別子、ファイル・システム識別子、第一のオフセットおよびI/OコマンドをVBSコンポーネント104に送る。VBSコンポーネント104は、ファイル識別子、ファイル・システム識別子、第一のオフセットおよびI/Oコマンドを含む第一のネットワーク・パケットを生成する。VBSコンポーネント104は、物理ネットワーク・アダプター・ドライバー1021によって与えられるインターフェースを使って、第一のネットワーク・パケットを切り換え装置300の物理ポート1に送るよう物理ネットワーク・アダプター1011を制御する。
段階502:切り換え装置300は、第一のネットワーク・パケットを受領し、前記第一のオフセットおよびオブジェクト記憶装置OSDのサイズに従って第二のオフセットを生成し、前記資源識別子および前記第一のオフセットに従って、I/O動作が実行されるべき第一のOSDを収容する第一の記憶ノード200の第一のネットワーク・アドレスと、前記第一のOSDの識別子(OSD1)とを取得する。
いくつかの例では、切り換え装置300は、OSDのサイズを除数として使うことによって、第一のオフセットに対してモジュロ演算を実行し、得られた結果を、前記第二のオフセットとして使う。記述の簡単のため、図9を参照するに、図9は、本発明のある実施形態に基づく、仮想ディスクのボリュームとOSDとの間のマッピング関係の図である。図9では、ボリューム1はOSD1、OSD5、OSD7、OSD4に対応し、ボリューム2はOSD2、OSD6、OSD3、OSD8に対応する。コンピューティング・ノード100のアプリケーション・プログラム1051が仮想ディスク10521の仮想ボリューム1内の第一のオフセットAに対してI/O動作を実行する必要があるとき、アプリケーション・プログラム1051は実際には、OSD1の第二のオフセットBに対してI/O動作を実行する。ボリューム1のサイズが4Mであり、Aが3.5Mであり、各OSDのサイズが1Mであれば、仮想ボリューム1内の3.5Mから始まるデータに対してI/O動作が実行される必要があるとき、モジュロ演算は、1Mを除数として使うことによって3.5Mに対して実行される必要があるだけであり、得られた結果はB=0.5Mである。つまり、I/O動作はOSD1における0.5Mから始まるデータに対して実行される。
いくつかの例では、切り換え装置300は、OSDのサイズに従って第一のオフセットに対して丸め演算を実行して丸め結果を得て、資源識別子および丸め結果に対応するキーを得て、比較テーブルを検索して、キーに対応する、第一の記憶ノードの第一のネットワーク・アドレスおよび第一のOSDの識別子を決定する。比較テーブルは、キーと、記憶ノードのネットワーク・アドレスと、OSDの識別子との間の対応を含む。図9に示されるように、第一のオフセットA(3.5M)および第三のオフセットC(3.9M)に対応する両方のOSDはOSD1である。Aが直接、仮想ボリューム1のボリューム番号でハッシュ演算を実行するための入力パラメータとして使われ、Cが、ボリューム1の前記ボリューム番号でハッシュ演算を実行するための入力パラメータとして使われる場合、二つの異なる結果が得られる。つまり、AおよびCは二つのOSDに対応する。よって、本発明のこの実施形態では、OSDのサイズに従ってAに対して丸め演算が実行され、丸め結果3.5/1=3が得られる。OSDのサイズに従ってCに対して丸め演算が実行され、丸め結果3.9/1=3が得られる。二つの丸め結果3に基づいて別個にボリューム1のボリューム番号に対してハッシュ演算を実行することによって得られた結果は、一致し、AおよびC両方はOSD1に対応することを保証する。丸め処理が仮想ボリューム1におけるオフセットに対して実行された後、仮想ボリューム1内のスペースd内にある、OSD1に対応するすべてのオフセットは丸められ、次いで、すべてのオフセットを使うことによって仮想ボリューム1のボリューム番号に対してハッシュ演算が実行され、得られた結果はみな同じである。すなわち、すべてのオフセットは同じOSD1に対応する。仮想ボリュームとOSDとの間のマッピング関係が確立されることができる。
もう一つの例では、第一のオフセットはブロック番号であってもよい。たとえば、前記仮想ボリュームは同じデータ長をもつ複数のブロックを含み、それらのブロックは連続する番号をもち、各ブロックは同じデータ長を与えられ、前記仮想ボリューム内の特定のブロックはブロック番号(第一のオフセット)を使うことによって位置特定されうる。対応して、OSDは同じデータ長の諸ブロックに分割されてもよく、OSD内の特定のブロックはブロック番号(第二のオフセット)を使うことによって位置特定されうる。
いくつかの例では、切り換え装置300が第一のネットワーク・パケットがキー値KVパケットであることをパケット型識別子に従って判別するときにのみ、切り換え装置300は第一のオフセットおよびオブジェクト記憶装置OSDのサイズに従って第二のオフセットを生成し、前記資源識別子および前記第一のオフセットに従って、I/O動作が実行されるべき第一のOSDを収容する第一の記憶ノードの第一のネットワーク・アドレスと、前記第一のOSDの識別子とを取得する段階を実行することができる。第一のネットワーク・パケットがパケット型識別子を担持していないことを判別し、第一のネットワーク・パケットが非KVパケットであることを判別するときには、切り換え装置300は、第一のネットワーク・パケットの宛先アドレスに従って物理ポートを直接選択し、第一のネットワーク・パケットを送る。よって、第一のネットワーク・パケットがキー値KVパケットであるかどうかはパケット型識別子によって判定され、よって切り換え装置300はキー値KVパケットおよび非KVパケットの両方を処理することができ、システム互換性が改善される。
さらに、比較テーブルはグローバル・ビュー・テーブルおよび分割マップ・テーブルを含む。グローバル・ビュー・テーブルは、キーとOSD番号との間の対応を含み、OSD番号は記憶システムにおけるOSDを特定するために使われる。分割マップ・テーブルは、OSD番号と、記憶ノードのネットワーク・アドレスと、OSDの識別子との間の対応を含む。
たとえば、切り換え装置300は、グローバル・ビュー・テーブルを検索して、前記の得られたキーに対応するOSD番号を決定し、分割マップ・テーブルを検索して、前記OSD番号に対応する、前記第一のOSDを収容している前記第一の記憶ノードの前記第一のネットワーク・アドレスと、前記第一のOSDの識別子とを決定してもよい。
さらに、切り換え装置はさらに、メタデータ制御ノード400によって送られた、前記グローバル・ビュー・テーブルおよび前記分割マップ・テーブルを受領するよう構成される。
段階503:切り換え装置300は、第二のネットワーク・パケットを生成し、前記第二のネットワーク・パケットを前記第一の記憶ノード200に送る。前記第二のネットワーク・パケットは前記第二のオフセット、前記I/Oコマンドおよび前記第一のOSDの識別子を担持し、前記第二のネットワーク・パケットの宛先アドレスは前記第一のネットワーク・アドレスであり、送信元アドレスはコンピューティング・ノード100のネットワーク・アドレスであってもよい。
たとえば、切り換え装置300は、第一のネットワーク・アドレスに従ってポート2を選択し、ポート2を使って第二のネットワーク・パケットを送る。
段階504:第一の記憶ノード200は、切り換え装置300によって送られた第二のネットワーク・パケットを受領し、前記I/Oコマンドに従って、前記第二のオフセットによって示される、前記第一のOSD内にある記憶アドレスに対して前記I/O動作を実行する。
いくつかの例では、I/Oコマンドが書き込みI/Oコマンドおよび書き込まれるべきデータを含むとき、第一の記憶ノード200は具体的には、書き込みI/Oコマンドに従って、書き込まれるべきデータを、前記第二のオフセットによって示され、前記第一のOSD内にある記憶アドレスに書き込むよう構成される。
他の例では、I/Oコマンドが読み出しI/Oコマンドおよび読み出し長を含むとき、第一の記憶ノード200は具体的には、読み出しI/Oコマンドに従って、前記第二のオフセットによって示され、前記第一のOSD内にある記憶アドレスから前記データ長ぶんのデータを読むよう構成される。
たとえば、第一の記憶ノード200の物理ネットワーク・アダプター2011は、物理ポート2から第二のネットワーク・パケットを受領し、OSDコンポーネント203は第二のネットワーク・パケットを物理ネットワーク・アダプター2011から、物理ネットワーク・アダプター・ドライバー1021によって提供されるインターフェースを使って取得する。
段階505:第一の記憶ノード200は、第一の応答パケットを切り換え装置300に送る。第一の応答パケットはI/O動作結果およびパケット型識別子を担持し、第一の応答パケットの宛先アドレスは前記コンピューティング・ノードのネットワーク・アドレスである。
たとえば、OSDコンポーネント203はI/O動作結果およびパケット型識別子を担持する第一の応答パケットを生成し、物理ネットワーク・アダプター・ドライバー1021によって提供されるインターフェースを使うことによって、物理ネットワーク・アダプター2011を制御して第一の応答パケットを物理ポート2に送らせる。
段階506:切り換え装置300は、パケット型識別子に従って、第一の応答パケットがキー値KVパケットであることを判別し、第二の応答パケットを生成し、該第二の応答パケットをコンピューティング・ノード100に送る。第二の応答パケットは、前記I/O動作結果を担持しており、第二の応答パケットの宛先アドレスはコンピューティング・ノード100のネットワーク・アドレスであり、送信元アドレスは第一の記憶ノード200のネットワーク・アドレスである。
たとえば、切り換え装置300はコンピューティング・ノード100のネットワーク・アドレス192.168.1.11に従って物理ポート1を選択し、第二の応答パケットを物理ポート1を使うことによってコンピューティング・ノード100に送る。
段階507:コンピューティング・ノード100が第二の応答パケットを受領し、該第二の応答パケットにおいて担持されているI/O動作結果を取得する。
たとえば、コンピューティング・ノード100の物理ネットワーク・アダプター1011は物理ポート1から第二の応答パケットを受領し、VBSコンポーネント104は、物理ネットワーク・アダプター・ドライバー1021によって提供されるインターフェースを使うことによって物理ネットワーク・アダプター1011から第二の応答パケットを受領し、第二の応答パケットをパースして前記I/O動作結果を取得し、I/O動作結果をアプリケーション・プログラム1051に送る。
本発明のこの実施形態では、切り換え装置がOSDをローカルに探すので、コンピューティング・ノードはキーを計算する必要がなく、各I/O動作の間にメタデータ制御ノードへのネットワーク接続を確立する必要がない。よって、コンピューティング・ノードの計算量が削減でき、ネットワーク負荷が軽減される。
ある具体的な実装シナリオでは、データ記憶のセキュリティーを改善するために、コンピューティング・ノードは、データをマルチコピー形式で複数のノードに書き込んでもよい。たとえば、本発明の実施形態において、コンピューティング・ノードがデータを二コピー形式で二つの記憶ノードに書き込むことが、記述のための例として使われる。図10Aおよび図10Bを参照するに、図10Aおよび図10Bは、本発明の情報処理方法の第二の実施形態を示している。情報処理方法は、以下の段階を含む。
段階601:コンピューティング・ノード100が第一のネットワーク・パケットを生成する。第一のネットワーク・パケットは資源識別子、第一のオフセット、書き込みI/Oコマンド、書き込まれるべきデータおよびマルチコピー動作コードを担持する。コンピューティング・ノード100は第一のネットワーク・パケットを切り換え装置300に送る。
コンピューティング・ノード100が第一のネットワーク・パケットを生成して送る具体的な実装は段階501のものと同様であり、詳細は本発明のこの実施形態では記載されない。
段階602:切り換え装置が、第一のネットワーク・パケットを受領し、前記第一のオフセットおよびオブジェクト記憶装置OSDのサイズに従って第二のオフセットを生成し、前記資源識別子および前記第一のオフセットに従って、I/O動作が実行されるべき第一のOSDを収容している第一の記憶ノードの第一のネットワーク・アドレスと、前記第一のOSDの識別子と、書き込み動作が実行されるべき第二のOSDを収容している第二の記憶ノードの第二のネットワーク・アドレスと、前記第二のOSDの識別子とを取得する。
段階502と同様に、切り換え装置300は、比較テーブルを検索し、前記マルチコピー動作コードに従って、書き込まれるべきデータが書き込まれる必要のある二つの記憶ノードと、該各記憶ノード上で該データが書き込まれるべきOSDの識別子とを決定する。
段階603:切り換え装置300は、第二のネットワーク・パケットおよび第三のネットワーク・パケットを生成して送る。
具体的には、切り換え装置300は、各ネットワーク・ノードについて対応するネットワーク・パケットを生成する。第二のネットワーク・パケットは第二のオフセット、書き込みI/Oコマンド、書き込まれるべきデータおよび第一のOSDの識別子を担持し、第二のネットワーク・パケットの宛先アドレスは前記第一のネットワーク・アドレスである。第一のOSDは、第一の記憶ノード200において前記データが書き込まれるべきOSDである。
第三のネットワーク・パケットは第二のオフセット、書き込みI/Oコマンド、書き込まれるべきデータおよび第二のOSDの識別子を担持し、第三のネットワーク・パケットの宛先アドレスは前記第二のネットワーク・アドレスである。第二のOSDは、第二の記憶ノード200’において前記データが書き込まれるべきOSDである。
この段階において、切り換え装置300は、第二のネットワーク・パケットがパケット識別子1をもつことを設定し、第三のネットワーク・パケットがパケット識別子2をもつことを設定してもよい。その後受領されるKVパケットがパケット識別子を担持しているときは、切り換え装置は該KVパケットが前記第二のネットワーク・パケットまたは前記第三のネットワーク・パケットについての応答パケットであることを判別する。
段階604:第一の記憶ノード200が第二のネットワーク・パケットを受領し、前記書き込みI/Oコマンドに従って、書き込まれるべきデータを、前記第二のオフセットによって示される、前記第一のOSD内の記憶アドレスに書き込み、第一の応答パケットを生成する。第一の応答パケットは、第一の書き込み結果およびパケット型識別子を担持し、第一の応答パケットの宛先アドレスは前記コンピューティング・ノードのネットワーク・アドレスである。
この段階において、第一の記憶ノード200は、第一の応答パケットがパケット識別子1を担持することを設定する。
段階605:第二の記憶ノード200’が第三のネットワーク・パケットを受領し、前記書き込みI/Oコマンドに従って、書き込まれるべきデータを、前記第二のオフセットによって示される、前記第二のOSD内の記憶アドレスに書き込み、第二の応答パケットを生成する。第二の応答パケットは、第二の書き込み結果およびパケット型識別子を担持し、第二の応答パケットの宛先アドレスは前記コンピューティング・ノードの前記ネットワーク・アドレスである。
この段階において、第二の記憶ノード200’は、第二の応答パケットがパケット識別子2を担持することを設定する。
段階606:切り換え装置300は、第一の応答パケットおよび第二の応答パケットを受領し、前記パケット型識別子に従って第一の応答パケットおよび第二の応答パケットがキー値KVパケットであることを判別し、第三の応答パケットを生成し、第三の応答パケットを送る。第三の応答パケットは、第一の書き込み結果および第二の書き込み結果を担持し、第三の応答パケットの宛先アドレスは前記コンピューティング・ノードの前記ネットワーク・アドレスである。
この段階では、第一のパケットがKVパケットであることを判別した後、第一の応答パケットがパケット識別子1を担持しているときは、切り換え装置300は第一の応答パケットが第一のネットワーク・パケットについての応答パケットであることを判別する。第二のパケットがKVパケットであることを判別した後、第二の応答パケットがパケット識別子2を担持しているときは、切り換え装置300は第二の応答パケットが第二のネットワーク・パケットについての応答パケットであることを判別する。この場合、切り換え装置300は、第一のネットワーク・パケットおよび第二のネットワーク・パケットにそれぞれ担持されていた書き込み結果を第三の応答パケットに組み合わせて、第三の応答パケットを前記コンピューティング・ノードに送る。
ネットワーク・パケットと応答パケットの間の対応は、パケット識別子を使って判別されてもよい。切り換え装置300が異なるコンピューティング・ノードによって送られたKVパケットを同時に処理する必要があるとき、書き込み結果が同じコンピューティング・ノードに対応することを保証するために前記パケット識別子が使用されうる。
段階607:コンピューティング・ノード100は第三の応答パケットを受領し、第三の応答パケットにおいて担持されている第一の書き込み結果および第二の書き込み結果を取得する。
本発明のこの実施形態は、マルチコピー書き込み手順である。切り換え装置300は、第一のネットワーク・パケットがマルチコピー動作コードを担持していることを判別するとき、書き込まれるべきデータを少なくとも二つの記憶ノードに記憶のために送る。前記少なくとも二つの記憶ノードによって返される応答パケットを受信後、切り換え装置300は応答パケットの型を判別し、前記少なくとも二つのノードによって返された複数の応答パケットに対して、組み合わされたカプセル化を実行して、コンピューティング・ノード100に返されるべき一つの応答パケットを生成する。本発明のこの実施形態は切り換え装置300の機能をさらに拡張し、切り換え装置300はマルチコピー動作コードに従って、コンピューティング・ノードからの書き込みコマンドを、複数の記憶ノードのための書き込みコマンドに変換し、複数の記憶ノードからの応答を単一の応答にまとめ、該単一の応答をコンピューティング・ノードに返す。よって、コンピューティング・ノードの負担が著しく軽減され、比較的大きなIOトラフィックのあるシナリオでは特に、本発明のこの実施形態は、より明確な利点をもつ。
図11を参照するに、図11は、本発明に基づく情報処理方法の第三の実施形態のフローチャートである。図11に示される情報処理方法における段階701ないし段階703は図10Aおよび図10Bにおける段階601ないし段階603と全く同じであり、違いは段階704ないし段階709である。よって、段階701ないし段階703の記述はここでは割愛される。
段階704:第一の記憶ノード200が第二のネットワーク・パケットを受領し、前記書き込みI/Oコマンドに従って、前記第二のオフセットによって示される、前記第一のOSD内の記憶アドレスに前記書き込まれるべきデータを書き込み、第四の応答パケットを生成し、該第四の応答パケットを切り換え装置300に送る。第四の応答パケットは第一の書き込み結果を担持し、第四の応答パケットの宛先アドレスはコンピューティング・ノード100のネットワーク・アドレスである。
たとえば、第一の記憶ノード200は第四の応答パケットを切り換え装置300の物理ポート2に送る。
段階705:切り換え装置300は第四の応答パケットをコンピューティング・ノード100に転送する。
たとえば、切り換え装置300が第四の応答パケットがパケット型識別子を担持していないことを判別し、第四の応答パケットが非KVパケットであることを判別するとき、切り換え装置300は、第四の応答パケットの宛先アドレスに従って物理ポート1を選択し、物理ポート1を使うことによって第四の応答パケットをコンピューティング・ノード100に転送してもよい。
段階706:コンピューティング・ノード100は第四の応答パケットを受領し、第四の応答パケットに担持されている第一の書き込み結果を取得する。
段階707:第二の記憶ノード200’は第三のネットワーク・パケットを受領し、前記書き込みI/Oコマンドに従って、前記第二のオフセットによって示される、前記第二のOSD内の記憶アドレスに前記書き込まれるべきデータを書き込み、第五の応答パケットを生成し、該第五の応答パケットを切り換え装置300に送る。第五の応答パケットは第二の書き込み結果を担持し、第五の応答パケットの宛先アドレスはコンピューティング・ノード100のネットワーク・アドレスである。
たとえば、第二の記憶ノード200’は第五の応答パケットを切り換え装置300の物理ポート3に送る。
段階708:切り換え装置300は第五の応答パケットをコンピューティング・ノード100に転送する。
たとえば、切り換え装置300が第五の応答パケットがパケット型識別子を担持していないことを判別し、第五の応答パケットが非KVパケットであることを判別するとき、切り換え装置300は、第五の応答パケットの宛先アドレスに従って物理ポート1を選択し、物理ポート1を使うことによって第五の応答パケットをコンピューティング・ノード100に転送してもよい。
段階709:コンピューティング・ノード100は第五の応答パケットを受領し、第五の応答パケットに担持されている第二の書き込み結果を取得する。
本発明のこの実施形態は、もう一つのマルチコピー書き込み手順である。第一のネットワーク・パケットがマルチコピー動作コードを担持していることを判別するとき、切り換え装置300は、書き込まれるべきデータを少なくとも二つの記憶ノードに記憶のために送り、前記少なくとも二つの記憶ノードによって返される応答パケットを受信後、応答パケットの型を判別し、それらの応答パケットを別個にコンピューティング・ノード100に転送する。本発明のこの実施形態では、記憶ノードは応答パケットにパケット型識別子を設定する必要がなく記憶ノードは修正される必要がない。よって、システム互換性に寄与し、本発明のこの実施形態は、比較的小さなIOトラフィックのあるシナリオについて特に好適である。
本発明のこの実施形態において、関係するパケットは具体的にはTCPパケットおよびUDPパケットを含みうる。前記パケット型識別子は、該TCPパケットまたはUDPパケットのIPパケット・ヘッダ内にあるオプション(options)フィールドおよびパディング(padding)フィールドにおいて設定されてもよい。TCPパケットまたはUDPパケット内で、オプション(options)フィールドおよびパディング(padding)フィールドは通例アイドルなので、IPヘッダにおけるこれらのフィールドはパケット型識別子を担持するために使われる。パケットの型を判別するとき、切り換え装置はIPヘッダを解析する必要があるだけであり、IPデータ・フィールドを分解する必要はない。よって、パケットの処理が加速されることができる。
本発明のこの実施形態におけるネットワーク・アドレスはMACアドレスまたはIPアドレスであってもよい。たとえば、図13を参照するに、図13は、本発明のある実施形態に基づくTCPパケットのフォーマットの概略図である。図13に示されるように、IPパケット・ヘッダはオプション・フィールドおよびパディング・フィールドを設けられている。具体的には、オプション・フィールドおよびパディング・フィールドは、パケット型識別子を担持するために使われてもよい。
本発明のこの実施形態において、切り換え装置によって送られる第二のネットワーク・パケットの宛先アドレスは、第一の記憶ノードであり、よって、第二のネットワーク・パケットの宛先ポートは、第一の記憶ノードのOSDコンポーネントのネットワーク・ポート、たとえば10002であってもよい。OSDコンポーネントは、第二のネットワーク・パケットの宛先ポートを使うことによって、第二のネットワーク・パケットがそのOSDコンポーネントのためのものであることを知りうる。よって、OSDコンポーネントは第二のネットワーク・パケットをパースしてもよい。第三のネットワーク・パケットの処理は同様であり、ここで詳細を述べることはしない。
さらに、記憶ノードまたはスイッチによって送られる応答パケットの宛先アドレスは、コンピューティング・ノードであり、よって、応答パケットの宛先ポートは、該コンピューティング・ノードのVBSコンポーネントのネットワーク・ポート、たとえば10001であってもよい。VBSコンポーネントは、応答パケットの宛先ポートを使うことによって、応答パケットがそのVBSコンポーネントのためのものであることを知りうる。よって、VBSコンポーネントは応答パケットをパースしてもよい。
図12を参照するに、図12は、本発明に基づく切り換え装置のもう一つの装置構造の概略図である。切り換え装置は:コンピューティング・ノードによって送られた第一のネットワーク・パケットを受領するよう構成された受信モジュール801であって、第一のネットワーク・パケットは資源識別子、第一のオフセットおよび入出力I/Oコマンドを担持する、受信モジュールと;前記第一のオフセットおよびオブジェクト記憶装置OSDのサイズに従って第二のオフセットを生成し、前記資源識別子および前記第一のオフセットに従って、I/O動作が実行されるべき第一のOSDを収容する第一の記憶ノードの第一のネットワーク・アドレスと、前記第一のOSDの識別子とを取得する段階と;第二のネットワーク・パケットを生成する段階であって、前記第二のネットワーク・パケットは前記第二のオフセット、前記I/Oコマンドおよび前記第一のOSDの識別子を担持し、前記第二のネットワーク・パケットの宛先アドレスは前記第一のネットワーク・アドレスである、段階とを実行するよう構成された処理モジュール802と;前記第二のネットワーク・パケットを前記第一の記憶ノードに送るよう構成された送信モジュール803とを含む。
任意的に、前記I/Oコマンドは書き込みI/Oコマンドおよび書き込まれるべきデータを含む。前記第一のネットワーク・パケットはさらにマルチコピー動作コードを含む。前記処理モジュール802は具体的には、前記第一のネットワーク・アドレスと、前記第一のOSDの前記識別子と、書き込み動作が実行されるべき第二のOSDを収容している第二の記憶ノードの第二のネットワーク・アドレスと、前記第二のOSDの識別子とを、前記資源識別子および前記第一のオフセットに従って取得するよう構成される。
前記処理モジュール802はさらに、前記マルチコピー動作コードに従って第三のネットワーク・パケットを生成するよう構成される。前記第三のネットワーク・パケットは前記第二のオフセットと、前記書き込みI/Oコマンドと、前記書き込まれるべきデータと、前記第二のOSDの前記識別子とを担持し、前記第三のネットワーク・パケットの宛先アドレスは前記第二のネットワーク・アドレスである。
前記送信モジュール803はさらに、前記第三のネットワーク・パケットを前記第二の記憶ノードに送るよう構成される。
任意的に、前記受信モジュール801はさらに、前記第一の記憶ノードによって送られた第一の応答パケットおよび前記第二の記憶ノードによって送られた第二の応答パケットを受領するよう構成される。第一の応答パケットは第一の書き込み結果およびパケット型識別子を担持し、第一の応答パケットの宛先アドレスは前記コンピューティング・ノードのネットワーク・アドレスである。第二の応答パケットは第二の書き込み結果およびパケット型識別子を担持し、第二の応答パケットの宛先アドレスは前記コンピューティング・ノードのネットワーク・アドレスである。処理モジュール802はさらに:前記パケット型識別子に従って第一の応答パケットおよび第二の応答パケットがキー値KVパケットであることを判別し、第三の応答パケットを生成し、該第三の応答パケットを前記コンピューティング・ノードに送るよう構成される。第三の応答パケットは、第一の書き込み結果および第二の書き込み結果を担持し、第三の応答パケットの宛先アドレスは前記コンピューティング・ノードのネットワーク・アドレスである。
任意的に、処理モジュール802は、具体的には:前記OSDのサイズを除数として使って、前記第一のオフセットに対してモジュロ演算を実行し、得られた結果を前記第二のオフセットとして使うよう構成される。
任意的に、前記資源識別子は前記コンピューティング・ノード上の仮想ディスクのボリューム番号であり、前記処理モジュール802は具体的には、前記ボリューム番号および前記第一のオフセットに従って、I/O動作が実行されるべき前記第一のOSDを収容している前記第一の記憶ノードの第一のネットワーク・アドレスと、前記第一のOSDの識別子とを取得するよう構成される。
任意的に、前記資源識別子はファイル・システム識別子およびファイル識別子であり、前記処理モジュール802は具体的には、I/O動作が実行されるべき第一のOSDを収容している第一の記憶ノードの第一のネットワーク・アドレスと、前記第一のOSDの識別子とを、前記ファイル・システム識別子、前記ファイル識別子および前記第一のオフセットに従って取得するよう構成される。
任意的に、前記第一のネットワーク・パケットはさらにパケット型識別子を担持し、前記処理モジュール802はさらに、該パケット型識別子に従って、前記第一のネットワーク・パケットがキー値KVパケットであることを判別するよう構成される。
任意的に、前記処理モジュール802はさらに:前記OSDのサイズに基づいて前記第一のオフセットに対して丸め演算を実行して丸め結果を得て、前記資源識別子および前記丸め結果に対応するキーを取得し、比較テーブルを検索して、前記キーに対応する、前記第一の記憶ノードの前記第一のネットワーク・アドレスおよび前記第一のOSDの識別子を決定するよう構成される。比較テーブルは、キーと、記憶ノードのネットワーク・アドレスと、OSDの識別子との間の対応を含む。
任意的に、比較テーブルは、グローバル・ビュー・テーブルおよび分割マップ・テーブルを含む。グローバル・ビュー・テーブルは、キーとOSD番号との間の対応を含み、該OSD番号が、記憶システムにおいてOSDを特定するために使われる。分割マップ・テーブルは、OSD番号と、記憶ノードのネットワーク・アドレスと、OSDの識別子との間の対応を含む。前記処理モジュール802は具体的には:グローバル・ビュー・テーブルを検索して、前記の得られたキーに対応するOSD番号を決定し、分割マップ・テーブルを検索して、前記OSD番号に対応する、前記第一のOSDを収容している前記第一の記憶ノードの前記第一のネットワーク・アドレスと、前記第一のOSDの識別子とを決定するよう構成される。
任意的に、前記受信モジュール801はさらに、メタデータ制御ノードによって送られるグローバル・ビュー・テーブルおよび分割マップ・テーブルを受領するよう構成される。
本願はスイッチを提供する。スイッチは、プロセッサ301と、メモリ302と、複数の物理ポート1ないし4とを含む。スイッチは、上記の諸側面において記載された切り換え装置300の機能を実行する。
プロセッサ301、メモリ302および物理ポート1ないし4は別個にバス303に接続される。物理ポート1ないし4は、ケーブルを使ってコンピューティング・ノードまたは記憶ノードに接続されてもよく、コンピューティング・ノードまたは記憶ノードからネットワーク・パケットを受領してもよい。ネットワーク・パケットはトランシーバーおよび前記バスを通過し、該プロセッサによってパースされ、処理される。
第一の物理ポート1は、コンピューティング・ノードによって送られた第一のネットワーク・パケットを受領するよう構成される。第一のネットワーク・パケットは資源識別子、第一のオフセットおよび入出力I/Oコマンドを担持する。プロセッサ301は次の段階を実行するためのプログラム命令を実行する:前記第一のオフセットおよびオブジェクト記憶装置OSDのサイズに従って第二のオフセットを生成する段階と;前記資源識別子および前記第一のオフセットに従って、I/O動作が実行されるべき第一のOSDを収容する第一の記憶ノードの第一のネットワーク・アドレスと、前記第一のOSDの識別子とを取得する段階と;第二のネットワーク・パケットを生成する段階。第二のネットワーク・パケットは前記第二のオフセット、前記I/Oコマンドおよび前記第一のOSDの識別子を担持し、前記第二のネットワーク・パケットの宛先アドレスは前記第一のネットワーク・アドレスである。第二の物理ポート2は前記第二のネットワーク・パケットを前記第一の記憶ノードに送るよう構成される。
プロセッサ301はさらに、上記の方法における対応する機能を実行すること、たとえば上記の方法に関係するデータおよび/または情報を生成または処理することにおいて前記切り換え装置をサポートするよう構成される。
本発明のこの実施形態において、キーに基づく宛先アドレスの検索または計算およびネットワークIOの最終的なカプセル化は、コンピューティング・ノードによって完了されず、前記スイッチによって完了される。よって、コンピューティング・ノードの負荷が軽減される。固定フォーマットのデータをもつパケットを処理するためにFPGA(Field-Programmable Gate Array、フィールドプログラマブルゲートアレイ)、専用CPU、ASIC(Application Specific Integrated Circuit、特定用途向け集積回路)およびNP(Network Processor,ネットワーク・プロセッサ)のような種々の処理エンジンを前記スイッチに加えることによって、前記スイッチの効率およびパフォーマンスは、一般的なプロセッサよりもずっとよくなる。
上記で記述したいずれの装置実施形態も単に例であることを注意しておくべきである。別個の部分として記載されているユニットは物理的に別個であってもなくてもよく、ユニットとして表示されている部分は物理的な単位であってもなくてもよく、一つの位置に位置していてもよいし、あるいは複数のネットワーク・ユニットに分散されていてもよい。モジュールの一部または全部は、実施形態の解決策の目的を達成するための実際の要件に従って選択されうる。さらに、本発明で与えられる装置実施形態の付属の図面において、モジュール間の接続関係は、それらのモジュールが互いと通信接続をもつことを示し、かかる接続は具体的には一つまたは複数の通信バスまたは信号ケーブルによって実装されうる。当業者は、創造的な努力なしに本発明の実施形態を理解し、実装しうる。
上記の実装の記述に基づき、当業者は本発明が、必要な普遍的なハードウェアに加えたソフトウェアによって、あるいは専用のハードウェアによって実装されうることをはっきりと理解しうる。専用のハードウェアは、特定用途向け集積回路、専用CPU、専用メモリ、専用コンポーネントなどを含む。一般に、コンピュータ・プログラムによって実行されることのできるいかなる機能も、対応するハードウェアを使うことによって容易に実装できる。さらに、同じ機能を達成するために使われる具体的なハードウェア構造は、さまざまな形でありうる。たとえば、アナログ回路、デジタル回路、専用回路などの形である。しかしながら、本発明では、ソフトウェア・プログラム実装がたいていの場合、よりよい実装である。そのような理解に基づき、本発明の技術的解決策は本質的には、あるいは従来技術に寄与する部分は、ソフトウェア・プロダクトの形で実装されうる。ソフトウェア・プロダクトは、フロッピーディスク、USBフラッシュドライブ、リムーバブルハードドライブ、読み出し専用メモリ(ROM: Read-Only Memory)、ランダムアクセスメモリ(RAM: Random Access Memory)、コンピュータの磁気ディスクまたは光ディスクのよう可読記憶媒体に記憶され、コンピュータ装置(これはパーソナル・コンピュータ、サーバー、ネットワーク装置などであってもよい)に本発明の実施形態において記述された方法を実行するよう命令するためのいくつかの命令を含む。
当業者によって、上記のシステム、装置およびユニットの詳細な作動プロセスについては、上記の方法実施形態における対応するプロセスが参照されてもよいことが明瞭に理解されうる。ここで再び詳細を述べることはしない。
上記の記述は単に本発明の具体的な実装であり、本発明の保護範囲を限定することは意図されていない。本発明において開示される技術的範囲内の当業者によって容易に割り出されるいかなる変形または置換も、本発明の保護範囲にはいる。よって、本発明の保護範囲は請求項の保護範囲に従う。

Claims (17)

  1. コンピューティング・ノードおよび切り換え装置を有する記憶システムであって、
    前記コンピューティング・ノードは第一のネットワーク・パケットを前記切り換え装置に送るよう構成されており、前記第一のネットワーク・パケットは資源識別子、第一のオフセットおよび入出力I/Oコマンドを担持し、前記第一のネットワーク・パケットにおいて宛先アドレスはヌルであり、送信元アドレスは前記コンピューティング・ノードのネットワーク・アドレスであり
    前記切り換え装置は:前記第一のオフセットおよびオブジェクト記憶装置OSDのサイズに従って第二のオフセットを生成し、前記資源識別子および前記第一のオフセットに従って、I/O動作が実行されるべき第一のOSDを収容している第一の記憶ノードの第一のネットワーク・アドレスと、前記第一のOSDの識別子とを取得するよう構成されており;
    前記切り換え装置はさらに:第二のネットワーク・パケットを生成し、前記第二のネットワーク・パケットを前記第一の記憶ノードに送るよう構成されており、前記第二のネットワーク・パケットは前記第二のオフセット、前記I/Oコマンドおよび前記第一のOSDの識別子を担持し、前記第二のネットワーク・パケットの宛先アドレスは前記第一のネットワーク・アドレスである、
    記憶システム。
  2. 当該記憶システムはさらに複数の記憶ノードを含み、
    前記複数の記憶ノードにおける前記第一の記憶ノードは:前記切り換え装置によって送られた前記第二のネットワーク・パケットを受領し、前記I/Oコマンドに従って、前記第二のオフセットによって示される、前記第一のOSD内の記憶アドレスに対して前記I/O動作を実行するよう構成されている、
    請求項1記載の記憶システム。
  3. データ処理方法であって:
    切り換え装置によって、コンピューティング・ノードによって送られた第一のネットワーク・パケットを受領する段階であって、前記第一のネットワーク・パケットは資源識別子、第一のオフセットおよび入出力I/Oコマンドを担持し、前記第一のネットワーク・パケットにおいて宛先アドレスはヌルであり、送信元アドレスは前記コンピューティング・ノードのネットワーク・アドレスである、段階と;
    前記切り換え装置によって、前記第一のオフセットおよびオブジェクト記憶装置OSDのサイズに従って第二のオフセットを生成し、前記資源識別子および前記第一のオフセットに従って、I/O動作が実行されるべき第一のOSDを収容している第一の記憶ノードの第一のネットワーク・アドレスと、前記第一のOSDの識別子とを取得する段階と;
    前記切り換え装置によって、第二のネットワーク・パケットを生成し、前記第二のネットワーク・パケットを前記第一の記憶ノードに送る段階であって、前記第二のネットワーク・パケットは前記第二のオフセット、前記I/Oコマンドおよび前記第一のOSDの前記識別子を担持し、前記第二のネットワーク・パケットの宛先アドレスは前記第一のネットワーク・アドレスである、段階とを含む、
    方法。
  4. 前記I/Oコマンドは書き込みI/Oコマンドおよび書き込まれるべきデータを含み、前記第一のネットワーク・パケットはさらに、マルチコピー動作コードを担持し、前記資源識別子および前記第一のオフセットに従って、I/O動作が実行されるべき第一のOSDを収容している第一の記憶ノードの第一のネットワーク・アドレスと、前記第一のOSDの識別子とを取得することが具体的には:
    前記切り換え装置によって、前記第一のネットワーク・アドレスと、前記第一のOSDの前記識別子と、書き込み動作が実行されるべき第二のOSDを収容している第二の記憶ノードの第二のネットワーク・アドレスと、前記第二のOSDの識別子とを、前記資源識別子および前記第一のオフセットに従って取得することを含み、当該方法がさらに:
    前記切り換え装置によって、前記マルチコピー動作コードに従って第三のネットワーク・パケットを生成して、該第三のネットワーク・パケットを前記第二の記憶ノードに送る段階であって、前記第三のネットワーク・パケットは前記第二のオフセットと、前記書き込みI/Oコマンドと、前記書き込まれるべきデータと、前記第二のOSDの前記識別子とを担持し、前記第三のネットワーク・パケットの宛先アドレスは前記第二のネットワーク・アドレスである、段階を含む、
    請求項3記載の方法。
  5. 前記切り換え装置によって、前記第一の記憶ノードによって送られた第一の応答パケットおよび前記第二の記憶ノードによって送られた第二の応答パケットを受領する段階であって、前記第一の応答パケットは第一の書き込み結果およびパケット型識別子を担持し、前記第一の応答パケットの宛先アドレスは前記コンピューティング・ノードのネットワーク・アドレスであり、前記第二の応答パケットは第二の書き込み結果およびパケット型識別子を担持し、前記第二の応答パケットの宛先アドレスは前記コンピューティング・ノードの前記ネットワーク・アドレスである、段階と;
    前記切り換え装置によって、第三の応答パケットを生成し、該第三の応答パケットを前記コンピューティング・ノードに送る段階であって、前記第三の応答パケットは、前記第一の書き込み結果および前記第二の書き込み結果を担持しており、前記第三の応答パケットの宛先アドレスは前記コンピューティング・ノードの前記ネットワーク・アドレスである、段階とを含む、
    請求項4記載の方法。
  6. 前記切り換え装置によって、前記第一のオフセットおよびオブジェクト記憶装置OSDのサイズに従って第二のオフセットを生成することが具体的には:
    前記切り換え装置によって、前記OSDのサイズを除数として使って、前記第一のオフセットに対してモジュロ演算を実行し、得られた結果を前記第二のオフセットとして使うことを含む、
    請求項3ないし5のうちいずれか一項記載の方法。
  7. 前記資源識別子が前記コンピューティング・ノード上の仮想ディスクのボリューム番号であり、前記資源識別子および前記第一のオフセットに従って、I/O動作が実行されるべき第一のOSDを収容している第一の記憶ノードの第一のネットワーク・アドレスと、前記第一のOSDの識別子とを取得することが具体的には:
    前記切り換え装置によって、前記ボリューム番号および前記第一のオフセットに従って、前記I/O動作が実行されるべき前記第一のOSDを収容している前記第一の記憶ノードの前記第一のネットワーク・アドレスと、前記第一のOSDの前記識別子とを取得することを含む、
    請求項3ないし6のうちいずれか一項記載の方法。
  8. 前記資源識別子がファイル・システム識別子およびファイル識別子であり、前記資源識別子および前記第一のオフセットに従って、I/O動作が実行されるべき第一のOSDを収容している第一の記憶ノードの第一のネットワーク・アドレスと、前記第一のOSDの識別子とを取得することが具体的には:
    前記切り換え装置によって、前記ファイル・システム識別子、前記ファイル識別子および前記第一のオフセットに従って、前記I/O動作が実行されるべき前記第一のOSDを収容している前記第一の記憶ノードの前記第一のネットワーク・アドレスと、前記第一のOSDの前記識別子とを取得することを含む、
    請求項3ないし6のうちいずれか一項記載の方法。
  9. 前記第一のネットワーク・パケットはさらにパケット型識別子を担持しており、前記切り換え装置によって、前記第一のオフセットおよびオブジェクト記憶装置OSDのサイズに従って第二のオフセットを生成し、前記資源識別子および前記第一のオフセットに従って、I/O動作が実行されるべき第一のOSDを収容している第一の記憶ノードの第一のネットワーク・アドレスと、前記第一のOSDの識別子とを取得する前に、当該方法はさらに:
    前記切り換え装置によって、前記パケット型識別子に従って、前記第一のネットワーク・パケットがキー値(KVパケットであることを判別する段階であって、前記第一のネットワーク・パケットがキー値(KV)パケットであることは、前記第一のネットワーク・パケットの宛先アドレスに従って物理ポートを直接選択するのではなく、前記第一のオフセットおよびオブジェクト記憶装置OSDのサイズに従って第二のオフセットを生成し、前記資源識別子および前記第一のオフセットに従って、I/O動作が実行されるべき第一のOSDを収容している第一の記憶ノードの第一のネットワーク・アドレスと、前記第一のOSDの識別子とを取得する前記段階を実行すべきであることを示す、段階を含む、
    請求項3ないし8のうちいずれか一項記載の方法。
  10. コンピューティング・ノードによって送られた第一のネットワーク・パケットを受領するよう構成された受信モジュールであって、前記第一のネットワーク・パケットは資源識別子、第一のオフセットおよび入出力I/Oコマンドを担持し、前記第一のネットワーク・パケットにおいて宛先アドレスはヌルであり、送信元アドレスは前記コンピューティング・ノードのネットワーク・アドレスである、受信モジュールと;
    前記第一のオフセットおよびオブジェクト記憶装置OSDのサイズに従って第二のオフセットを生成し、前記資源識別子および前記第一のオフセットに従って、I/O動作が実行されるべき第一のOSDを収容している第一の記憶ノードの第一のネットワーク・アドレスと、前記第一のOSDの識別子とを取得する段階と;第二のネットワーク・パケットを生成する段階であって、前記第二のネットワーク・パケットは前記第二のオフセット、前記I/Oコマンドおよび前記第一のOSDの前記識別子を担持し、前記第二のネットワーク・パケットの宛先アドレスは前記第一のネットワーク・アドレスである、段階とを実行するよう構成された処理モジュールと;
    前記第二のネットワーク・パケットを前記第一の記憶ノードに送るよう構成された送信モジュールとを有する、
    切り換え装置。
  11. 前記I/Oコマンドは書き込みI/Oコマンドおよび書き込まれるべきデータを含み、前記第一のネットワーク・パケットはさらに、マルチコピー動作コードを担持し、
    前記処理モジュールは具体的には、前記第一のネットワーク・アドレスと、前記第一のOSDの前記識別子と、書き込み動作が実行されるべき第二のOSDを収容している第二の記憶ノードの第二のネットワーク・アドレスと、前記第二のOSDの識別子とを、前記資源識別子および前記第一のオフセットに従って取得するよう構成されており;
    前記処理モジュールはさらに、前記マルチコピー動作コードに従って第三のネットワーク・パケットを生成するよう構成されており、前記第三のネットワーク・パケットは前記第二のオフセットと、前記書き込みI/Oコマンドと、前記書き込まれるべきデータと、前記第二のOSDの前記識別子とを担持し、前記第三のネットワーク・パケットの宛先アドレスは前記第二のネットワーク・アドレスであり;
    前記送信モジュール(803)はさらに、前記第三のネットワーク・パケットを前記第二の記憶ノードに送るよう構成されている、
    請求項10記載の切り換え装置。
  12. 前記受信モジュールがさらに、前記第一の記憶ノードによって送られた第一の応答パケットおよび前記第二の記憶ノードによって送られた第二の応答パケットを受領するよう構成されており、前記第一の応答パケットは第一の書き込み結果およびパケット型識別子を担持し、前記第一の応答パケットの宛先アドレスは前記コンピューティング・ノードのネットワーク・アドレスであり、前記第二の応答パケットは第二の書き込み結果およびパケット型識別子を担持し、前記第二の応答パケットの宛先アドレスは前記コンピューティング・ノードの前記ネットワーク・アドレスであり;
    前記処理モジュールがさらに:第三の応答パケットを生成し、該第三の応答パケットを前記コンピューティング・ノードに送るよう構成されており、前記第三の応答パケットは、前記第一の書き込み結果および前記第二の書き込み結果を担持しており、前記第三の応答パケットの宛先アドレスは前記コンピューティング・ノードの前記ネットワーク・アドレスである、
    請求項11記載の切り換え装置。
  13. 前記処理モジュールが具体的には:前記OSDのサイズを除数として使って、前記第一のオフセットに対してモジュロ演算を実行し、得られた結果を前記第二のオフセットとして使うよう構成されている、
    請求項10ないし12のうちいずれか一項記載の切り換え装置。
  14. 前記資源識別子が前記コンピューティング・ノード上の仮想ディスクのボリューム番号であり、
    前記処理モジュールが具体的には、前記ボリューム番号および前記第一のオフセットに従って、前記I/O動作が実行されるべき前記第一のOSDを収容している前記第一の記憶ノードの前記第一のネットワーク・アドレスと、前記第一のOSDの前記識別子とを取得するよう構成されている、
    請求項10ないし13のうちいずれか一項記載の切り換え装置。
  15. 前記資源識別子がファイル・システム識別子およびファイル識別子であり;
    前記処理モジュールが具体的には、前記ファイル・システム識別子、前記ファイル識別子および前記第一のオフセットに従って、前記I/O動作が実行されるべき前記第一のOSDを収容している前記第一の記憶ノードの前記第一のネットワーク・アドレスと、前記第一のOSDの前記識別子とを取得するよう構成されている、
    請求項10ないし13のうちいずれか一項記載の切り換え装置。
  16. コンピュータに請求項3ないし9のうちいずれか一項記載のデータ処理方法を実行させるよう構成されたコンピュータ・プログラム。
  17. 請求項16記載のコンピュータ・プログラムを記憶しているコンピュータ可読記憶媒体。
JP2019526353A 2017-04-14 2017-04-14 データ処理方法、記憶システムおよび切り換え装置 Active JP6724252B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2017/080655 WO2018188089A1 (zh) 2017-04-14 2017-04-14 数据处理方法、存储系统和交换设备

Publications (2)

Publication Number Publication Date
JP2019531563A JP2019531563A (ja) 2019-10-31
JP6724252B2 true JP6724252B2 (ja) 2020-07-15

Family

ID=63793026

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019526353A Active JP6724252B2 (ja) 2017-04-14 2017-04-14 データ処理方法、記憶システムおよび切り換え装置

Country Status (5)

Country Link
US (1) US10728335B2 (ja)
EP (1) EP3474146B1 (ja)
JP (1) JP6724252B2 (ja)
CN (2) CN114880256A (ja)
WO (1) WO2018188089A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111276110B (zh) * 2018-12-04 2021-10-19 杭州海康威视数字技术股份有限公司 一种字符显示方法、装置及电子设备
US11057318B1 (en) * 2019-08-27 2021-07-06 Innovium, Inc. Distributed artificial intelligence extension modules for network switches
US11798118B2 (en) 2019-12-20 2023-10-24 Intel Corporation Asset caching in cloud rendering computing architectures
CN111142801B (zh) * 2019-12-26 2021-05-04 星辰天合(北京)数据科技有限公司 分布式存储系统网络亚健康检测方法及装置
CN113472688B (zh) * 2020-03-30 2023-10-20 瑞昱半导体股份有限公司 应用在网络装置中的电路及网络装置的操作方法
CN111857577B (zh) * 2020-06-29 2022-04-26 烽火通信科技股份有限公司 一种分布式存储系统下物理硬盘的管理方法与装置
CN114356232B (zh) * 2021-12-30 2024-04-09 西北工业大学 数据读写方法和装置
CN115426322B (zh) * 2022-08-23 2023-09-19 绿盟科技集团股份有限公司 一种虚拟存储的方法及装置

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8558795B2 (en) * 2004-03-12 2013-10-15 Riip, Inc. Switchless KVM network with wireless technology
US7382776B1 (en) * 2003-04-15 2008-06-03 Brocade Communication Systems, Inc. Performing block storage virtualization at a switch
JP2004334481A (ja) 2003-05-07 2004-11-25 Fujitsu Ltd 仮想化情報管理装置
US7228320B2 (en) * 2004-11-17 2007-06-05 Hitachi, Ltd. System and method for creating an object-level snapshot in a storage system
US7747836B2 (en) * 2005-03-08 2010-06-29 Netapp, Inc. Integrated storage virtualization and switch system
US7609649B1 (en) * 2005-04-26 2009-10-27 Cisco Technology, Inc. Methods and apparatus for improving network based virtualization performance
US7366808B2 (en) * 2005-11-23 2008-04-29 Hitachi, Ltd. System, method and apparatus for multiple-protocol-accessible OSD storage subsystem
TWI307026B (en) 2005-12-30 2009-03-01 Ind Tech Res Inst System and method for storage management
US7979652B1 (en) * 2007-12-20 2011-07-12 Amazon Technologies, Inc. System and method for M-synchronous replication
US8578126B1 (en) * 2009-10-29 2013-11-05 Netapp, Inc. Mapping of logical start addresses to physical start addresses in a system having misalignment between logical and physical data blocks
JP5537732B2 (ja) 2010-08-11 2014-07-02 株式会社日立製作所 ストレージシステム
US8473643B2 (en) * 2011-05-05 2013-06-25 Hitachi, Ltd. Method and apparatus of tier storage management awareness networking
US8650359B2 (en) * 2011-08-26 2014-02-11 Vmware, Inc. Computer system accessing object storage system
CN105786414A (zh) * 2016-03-24 2016-07-20 天津书生云科技有限公司 存储系统、存储系统的访问方法和存储系统的访问装置
KR20140038799A (ko) * 2012-09-21 2014-03-31 엘지전자 주식회사 영상표시장치, 서버 및 그 동작방법
US9756128B2 (en) * 2013-04-17 2017-09-05 Apeiron Data Systems Switched direct attached shared storage architecture
EP3028528A4 (en) * 2013-08-27 2017-05-03 Huawei Technologies Co., Ltd. System and method for mobile network function virtualization
CN103986602B (zh) * 2014-05-16 2017-12-12 华为技术有限公司 一种启动操作系统的方法、相关设备和系统
BR112016003843B1 (pt) * 2014-09-15 2019-04-24 Huawei Technologies Co., Ltd. Método de processamento de solicitação de gravar dados e arranjo de armazenamento
CN106164898B (zh) * 2014-10-11 2018-06-26 华为技术有限公司 数据处理方法和装置
CN106062717B (zh) * 2014-11-06 2019-05-03 华为技术有限公司 一种分布式存储复制系统和方法
US9836229B2 (en) * 2014-11-18 2017-12-05 Netapp, Inc. N-way merge technique for updating volume metadata in a storage I/O stack
CN105704098B (zh) * 2014-11-26 2019-03-01 杭州华为数字技术有限公司 一种虚拟化网络的数据传输方法,节点控制器及系统
KR101944876B1 (ko) * 2014-11-28 2019-02-01 후아웨이 테크놀러지 컴퍼니 리미티드 파일 액세스 방법 및 장치 및 스토리지 디바이스
CN108733761B (zh) * 2014-12-27 2021-12-03 华为技术有限公司 一种数据处理方法装置及系统
CN107844270A (zh) * 2014-12-31 2018-03-27 华为技术有限公司 一种存储阵列系统及数据写请求处理方法
CN105138281B (zh) * 2015-08-05 2018-12-07 华为技术有限公司 一种物理磁盘的共享方法及装置
WO2017046864A1 (ja) 2015-09-15 2017-03-23 株式会社日立製作所 ストレージシステム、計算機システム、およびストレージシステムの制御方法
CN105391771B (zh) * 2015-10-16 2018-11-02 北京云启志新科技股份有限公司 一种面向多租户的云网络系统
CN105516263B (zh) * 2015-11-28 2019-02-01 华为技术有限公司 存储系统中数据分发方法、装置、计算节点及存储系统
CN105657081B (zh) * 2016-04-07 2019-01-18 华为技术有限公司 提供dhcp服务的方法、装置及系统
CN106406758B (zh) * 2016-09-05 2019-06-18 华为技术有限公司 一种基于分布式存储系统的数据处理方法及存储设备

Also Published As

Publication number Publication date
US20190222648A1 (en) 2019-07-18
CN114880256A (zh) 2022-08-09
EP3474146A1 (en) 2019-04-24
JP2019531563A (ja) 2019-10-31
CN110546620B (zh) 2022-05-17
EP3474146B1 (en) 2022-02-23
WO2018188089A1 (zh) 2018-10-18
US10728335B2 (en) 2020-07-28
EP3474146A4 (en) 2019-07-24
CN110546620A (zh) 2019-12-06

Similar Documents

Publication Publication Date Title
JP6724252B2 (ja) データ処理方法、記憶システムおよび切り換え装置
CN107508795B (zh) 跨容器集群的访问处理装置及方法
US20180239726A1 (en) Data transmission method, device, and system
US8938604B2 (en) Data backup using distributed hash tables
US9892129B2 (en) Distributed file system and operating method of the same
EP3739440A1 (en) Distributed storage system, data processing method and storage node
US20240039995A1 (en) Data access system and method, device, and network adapter
CN113326101B (zh) 基于远程直接数据存储的热迁移方法、装置及设备
US9952778B2 (en) Data processing method and apparatus
CN112202853B (zh) 数据同步方法、系统、计算机设备和存储介质
CN115270033A (zh) 一种数据访问系统、方法、设备以及网卡
WO2015006970A1 (zh) 交换设备、控制器、交换设备配置、报文处理方法及系统
CN114172853A (zh) 流量转发及裸机服务器的配置方法、装置
CN117176796A (zh) 消息推送方法、装置、计算机设备和存储介质
US20240205292A1 (en) Data processing method and apparatus, computer device, and computer-readable storage medium
WO2024103690A1 (zh) 一种数据请求方法、装置、设备及非易失性可读存储介质
US20200081869A1 (en) File storage method and storage apparatus
CN115129779A (zh) 数据库的同步方法、装置及可读介质
US20230004304A1 (en) Storage System, Request Processing Method, and Switch
KR20200051196A (ko) 추가의 네트워크 주소 변환 테이블을 참조하여 빠른 패킷 포워딩을 제공하는 전자 장치
CN108989398B (zh) 一种虚拟共享存储单元以及基于云存储的集群存储系统
EP4057585A1 (en) Edge system and method for processing data operation request
CN113746802A (zh) 网络功能虚拟化中的方法以及本地状态和远程状态全存储的vnf装置
CN117130727A (zh) 虚拟机的磁盘类型切换方法、装置和计算机设备
JP2017510863A (ja) サービス処理方法、関連するデバイス、及びシステム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190130

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190130

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200109

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200128

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200311

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: 20200526

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200624

R150 Certificate of patent or registration of utility model

Ref document number: 6724252

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250