JP2023532947A - データ転送方法、プロキシサーバ、記憶媒体及び電子デバイス - Google Patents
データ転送方法、プロキシサーバ、記憶媒体及び電子デバイス Download PDFInfo
- Publication number
- JP2023532947A JP2023532947A JP2023500001A JP2023500001A JP2023532947A JP 2023532947 A JP2023532947 A JP 2023532947A JP 2023500001 A JP2023500001 A JP 2023500001A JP 2023500001 A JP2023500001 A JP 2023500001A JP 2023532947 A JP2023532947 A JP 2023532947A
- Authority
- JP
- Japan
- Prior art keywords
- target
- server
- request
- file
- attribute information
- 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.)
- Pending
Links
- 238000012546 transfer Methods 0.000 title claims abstract description 97
- 238000000034 method Methods 0.000 title claims abstract description 63
- 238000012545 processing Methods 0.000 claims abstract description 12
- 230000015654 memory Effects 0.000 claims description 28
- 238000004590 computer program Methods 0.000 claims description 14
- 230000005540 biological transmission Effects 0.000 claims description 7
- 230000008569 process Effects 0.000 description 10
- 238000002372 labelling Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 102100036402 DAP3-binding cell death enhancer 1 Human genes 0.000 description 1
- 101000929221 Homo sapiens DAP3-binding cell death enhancer 1 Proteins 0.000 description 1
- WGZDBVOTUVNQFP-UHFFFAOYSA-N N-(1-phthalazinylamino)carbamic acid ethyl ester Chemical compound C1=CC=C2C(NNC(=O)OCC)=NN=CC2=C1 WGZDBVOTUVNQFP-UHFFFAOYSA-N 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0281—Proxies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols 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]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/289—Intermediate processing functionally located close to the data consumer application, e.g. in same machine, in same home or in same sub-network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/564—Enhancement of application control based on intercepted application data
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本開示の実施例は、データ転送方法、プロキシサーバ、記憶媒体及び電子デバイスを提供する。上記方法は、プロキシサーバがクライアントから送信された目標要求を受信するステップと、目標要求が閲覧要求の場合、プロキシサーバが目標ファイルの目標属性情報を保存された属性情報副本から取得し、クライアントに返信するステップと、目標要求が転送要求の場合、プロキシサーバが目標要求をデータサーバ内の目標サーバに送信するステップであって、データサーバは、2層スタック型のFTPServerマルチインスタンス分散型クラスタサーバであり、複数の第1サーバを含み、プロキシサーバには各第1サーバから報告されたFTPユーザ処理範囲が記録されているステップと、を含む。
Description
(関連出願の相互参照)
本開示は、2020年7月1日に提出された、発明の名称が「データ転送方法、プロキシサーバ、記憶媒体及び電子デバイス」の中国特許出願CN202010621938.0に基づき、この特許出願についての優先権を主張し、参照によりその開示された内容を全て本開示に組み込む。
本開示は、2020年7月1日に提出された、発明の名称が「データ転送方法、プロキシサーバ、記憶媒体及び電子デバイス」の中国特許出願CN202010621938.0に基づき、この特許出願についての優先権を主張し、参照によりその開示された内容を全て本開示に組み込む。
本開示の実施例は、5Gインテリジェントネットワークでのファイル転送技術分野に関し、具体的には、データ転送方法、プロキシサーバ、記憶媒体及び電子デバイスに関する。
FTPファイル転送をサポートする既存方法には、主に次の種類がある。
高効率シングルインスタンスFTPサーバ、シングルFTPサーバは、ローカルファイルシステム、NIOなどの方式により、FTPファイル転送を効率的にサポートする。
FTP分散型サーバは、規模に応じて複数のFTPサーバインスタンスをスケーリングし、より大きな規模をサポートすることができる。マルチFTPサーバインスタンス間でのファイル共有方法には、主に以下の3種類がある。
(1)ファイル共有をしない
(2)ファイルコピーによるファイル共有
(3)NFS、CEPHなどの分散型ファイルシステムによるファイル共有
(2)ファイルコピーによるファイル共有
(3)NFS、CEPHなどの分散型ファイルシステムによるファイル共有
通常、FTPリバースプロキシによってネットワーク接続性の問題を解決し、FTPクライアントと直接接続しないFTPサーバとの間のファイル転送を確保する。
しかし、上記方法において、シングルインスタンスFTPサービスは、1つのFTPサーバインスタンスのみがあるため、サポート能力の上限がシングルインスタンスの処理能力に制限され、大規模な複数接続シナリオを満たすことができず、マルチインスタンスFTPサーバの既存の実装では高い同時接続シナリオにおける効率の問題をうまく解決することができない。
つまり、従来技術におけるデータ転送過程において、ファイル転送効率が低いという問題が存在する。
本開示の実施例は、関連技術においてファイル転送効率が低いという問題を少なくとも解決するデータ転送方法及びプロキシサーバ、記憶媒体並びに電子デバイスを提供する。
本開示の一実施例によれば、プロキシサーバがクライアントから送信された目標要求を受信するステップであって、前記目標要求は、データサーバ内の目標ファイルの目標属性情報の閲覧を要求するために用いられる閲覧要求、又は、目標ファイルを前記データサーバに転送すること又は前記データサーバから取得することを要求するために用いられる転送要求であるステップと、前記目標要求が閲覧要求の場合、前記プロキシサーバが前記目標ファイルの前記目標属性情報を保存された属性情報副本から取得し、前記クライアントに返信するステップであって、前記属性情報副本には、前記目標ファイルの目標ファイル識別子と前記目標属性情報との対応関係が記録されているステップと、前記目標要求が転送要求の場合、前記プロキシサーバが前記目標要求を前記データサーバ内の目標サーバに送信するステップであって、前記データサーバは、2層スタック型のFTPServerマルチインスタンス分散型クラスタサーバであり、複数の第1サーバを含み、前記プロキシサーバには各前記第1サーバから報告されたFTPユーザ処理範囲が記録されているステップと、を含むデータ転送方法を提供する。
本開示の他の実施例によれば、クライアントから送信された目標要求を受信するように構成される受信ユニットであって、前記目標要求は、データサーバ内の目標ファイルの目標属性情報の閲覧を要求するために用いられる閲覧要求、又は、目標ファイルを前記データサーバに転送すること又は前記データサーバから取得することを要求するために用いられる転送要求である受信ユニットと、前記目標要求が閲覧要求の場合、前記目標ファイルの前記目標属性情報を保存された属性情報副本から取得し、前記クライアントに返信するように構成される第1取得ユニットであって、前記属性情報副本には、前記目標ファイルの目標ファイル識別子と前記目標属性情報との対応関係が記録されている第1取得ユニットと、前記目標要求が転送要求の場合、前記目標要求を前記データサーバ内の目標サーバに送信するように構成される第1送信ユニットであって、前記データサーバは、2層スタック型のFTPServerマルチインスタンス分散型クラスタサーバであり、複数の第1サーバを含み、前記プロキシサーバには各前記第1サーバから報告されたFTPユーザ処理範囲が記録されている第1送信ユニットと、を含むプロキシサーバを提供する。
本開示の別の実施例によれば、コンピュータプログラムが記憶されているコンピュータ読み取り可能な記憶媒体であって、前記コンピュータプログラムは実行される時に上記いずれか1項の方法の実施例におけるステップを実現するように構成されるコンピュータ読み取り可能な記憶媒体をさらに提供する。
本開示の別の実施例によれば、コンピュータプログラムが記憶されているメモリと、前記コンピュータプログラムを実行して上記いずれか1項の方法の実施例におけるステップを実現するように構成されるプロセッサとを含む電子デバイスをさらに提供する。
以下、図面を参照しながら、実施例を踏まえて本開示の実施例を詳しく説明する。
なお、本開示の明細書、特許請求の範囲及び上記図面における用語「第1」、「第2」などは、類似の対象を区別するためのものであり、必ずしも特定の順序又は前後順序を説明するために使用されることはない。
ファイル転送
ファイル転送は汎用技術であり、5Gインテリジェントネットワークのシナリオでは、ファイル転送はユビキタスである。例えば、サウスバウンドの帯域外ネットワーク要素では、5Gの多数のアクセス特性により、アクセスネットワーク要素の数が大幅に増加し、また、ファイル転送はネットワーク要素の性能管理、バージョン管理における一般的な技術であり、アクセスネットワーク要素の物理ネットワークからセキュリティを保障できるため、簡単で効率的なファイル転送プロトコルFTPサーバがファイル転送の適切な選択となり、多数にアクセスされたネットワーク要素により、大量のFTP同時接続要求が発生する。そして、5Gの低遅延インテリジェントネットワークでは、FTPが多数の接続をサポートしながら、ファイル転送の高効率化を実現することがさらに求められる。
ファイル転送は汎用技術であり、5Gインテリジェントネットワークのシナリオでは、ファイル転送はユビキタスである。例えば、サウスバウンドの帯域外ネットワーク要素では、5Gの多数のアクセス特性により、アクセスネットワーク要素の数が大幅に増加し、また、ファイル転送はネットワーク要素の性能管理、バージョン管理における一般的な技術であり、アクセスネットワーク要素の物理ネットワークからセキュリティを保障できるため、簡単で効率的なファイル転送プロトコルFTPサーバがファイル転送の適切な選択となり、多数にアクセスされたネットワーク要素により、大量のFTP同時接続要求が発生する。そして、5Gの低遅延インテリジェントネットワークでは、FTPが多数の接続をサポートしながら、ファイル転送の高効率化を実現することがさらに求められる。
分散型クラスタ
分散型とは、複数のシステムが協力して1つの特定のタスクを完了することを指す。分散型は、集中管理の問題を解決するためのものとして、全てのタスクを1つのノードに重ねて処理するには遅すぎるため、1つの大きな問題を複数の小さな問題に分割し、個別に解決し、最終的に互いに協力する。分散型の主な作業は、タスクの分解と機能の分割である。クラスタの主な適用シナリオは、要求の負荷を分散するためであり、いくつかのサーバに同じアプリケーションを配置することで、クライアント要求を分散することである。
分散型とは、複数のシステムが協力して1つの特定のタスクを完了することを指す。分散型は、集中管理の問題を解決するためのものとして、全てのタスクを1つのノードに重ねて処理するには遅すぎるため、1つの大きな問題を複数の小さな問題に分割し、個別に解決し、最終的に互いに協力する。分散型の主な作業は、タスクの分解と機能の分割である。クラスタの主な適用シナリオは、要求の負荷を分散するためであり、いくつかのサーバに同じアプリケーションを配置することで、クライアント要求を分散することである。
FTPリバースプロキシ
ネットワーク環境の制約から、イントラネット(エクストラネットに直接接続されない)から外部のFTPにファイルをアップロード、ダウンロードする必要があり、ゲートウェイサーバにFTPリバースプロキシを設置するしかなく、これにより、ゲートウェイサーバは同時にエクストラネットとイントラネットに接続でき、イントラネットのFTPユーザはFTPプロキシに接続し、それにより外部のリアルFTPサーバにアクセスする。
ネットワーク環境の制約から、イントラネット(エクストラネットに直接接続されない)から外部のFTPにファイルをアップロード、ダウンロードする必要があり、ゲートウェイサーバにFTPリバースプロキシを設置するしかなく、これにより、ゲートウェイサーバは同時にエクストラネットとイントラネットに接続でき、イントラネットのFTPユーザはFTPプロキシに接続し、それにより外部のリアルFTPサーバにアクセスする。
本開示の実施例で提供される方法の実施例は、モバイル端末、コンピュータ端末、又は同様のコンピューティングデバイスで実行され得る。モバイル端末での実行を例とし、図1は本開示の実施例に係るデータ転送方法のモバイル端末のハードウェア構成を示すブロック図である。図1に示すように、モバイル端末は1つ又は複数(図1では1つのみが示されている)のプロセッサ102(プロセッサ102はマイクロプロセッサMCU又はプログラマブルロジックデバイスFPGAなどの処理装置を含み得るがこれらに限定されない)と、データを記憶するように構成されるメモリ104とを含んでもよい。
ここで、上記モバイル端末は、通信機能として設定される伝送装置106及び入出力装置108をさらに含んでもよい。当業者であれば、図1に示す構造は例示的なものに過ぎず、上記モバイル端末の構造を限定するものではないことを理解できる。例えば、モバイル端末は、図1に示されたものより多い又は少ない構成要素をさらに含んでもよく、又は図1に示されたものと異なる構成を有してもよい。
メモリ104は、コンピュータプログラム、例えば、本開示の実施例に係るデータ転送方法に対応するコンピュータプログラムといったアプリケーションソフトウェアのソフトウェアプログラム及びモジュールを記憶するように構成されてもよく、プロセッサ102は、メモリ104内に記憶されたコンピュータプログラムを実行することで、様々な機能活用及びデータ処理を実行し、即ち、上記のデータ転送方法を実現する。メモリ104は高速ランダムメモリを含んでもよく、さらに1つ又は複数の磁気記憶装置、フラッシュメモリ、又は他の不揮発性ソリッドステートメモリなどの不揮発性メモリを含んでもよい。
いくつかの実例では、メモリ104はさらにプロセッサ102に対して遠隔設定されるメモリを含んでもよく、これらの遠隔メモリはネットワークを介してモバイル端末に接続することができる。上記ネットワークの実例としては、インターネット、イントラネット、ローカルエリアネットワーク、移動体通信ネットワーク及びそれらの組み合わせを含むが、これらに限定されない。
伝送装置106はネットワークを介してデータを受送信するように構成される。上記ネットワークの具体的な実例としては、モバイル端末の通信事業者から提供される無線ネットワークを含んでもよい。一実例では、伝送装置106は、ネットワークインターフェースコントローラ(Network Interface Controller、NICと略称する)を含み、インターネットと通信できるように、基地局を介して他のネットワークデバイスに接続することができる。一実例では、伝送装置106は、無線周波数(Radio Frequency、RFと略称する)モジュールであってもよく、無線方式によってインターネットと通信するように構成される。
本実施例ではデータ転送方法を提供し、図2は本開示の実施例に係るデータ転送方法のフローチャートである、図2に示すように、このフローは以下のステップS202、S204、S206を含む。
ステップS202では、プロキシサーバがクライアントから送信された目標要求を受信する。ここで、前記目標要求は、データサーバ内の目標ファイルの目標属性情報の閲覧を要求するために用いられる閲覧要求、又は、目標ファイルを前記データサーバに転送すること又は前記データサーバから取得することを要求するために用いられる転送要求である。
ステップS204では、前記目標要求が閲覧要求の場合、前記プロキシサーバが保存された属性情報副本から前記目標ファイルの前記目標属性情報を取得し、前記クライアントに返信する。ここで、前記属性情報副本には、前記目標ファイルの目標ファイル識別子と前記目標属性情報との対応関係が記憶されている。
ステップS206では、前記目標要求が転送要求の場合、前記プロキシサーバが前記目標要求を前記データサーバ内の目標サーバに送信する。前記データサーバは、2層スタック型のFTPServerマルチインスタンス分散型クラスタサーバであり、複数の第1サーバを含み、前記プロキシサーバには各前記第1サーバから報告されたFTPユーザ処理範囲が記録されている。
ここで、前記方法は、前記プロキシサーバが前記クライアントから送信された前記目標要求を受信するステップの前に、前記データサーバ内の全てのファイルのファイル識別子と全てのファイルの属性情報を取得するステップと、前記データサーバ内の全てのファイルのファイル識別子と全てのファイルの属性情報を前記属性情報副本に保存するステップと、をさらに含む。
ここで、前記方法は、前記プロキシサーバが前記クライアントから送信された前記目標要求を受信するステップの前に、ユーザ識別子と前記第1サーバとの対応関係を取得するステップであって、異なる前記ユーザ識別子は異なる前記第1サーバに対応付けられるステップと、前記対応関係を内部メモリに保存するステップと、をさらに含む。
ここで、前記目標要求が閲覧要求の場合、前記目標ファイルの前記目標属性情報を前記プロキシサーバに保存された属性情報副本から取得し、前記クライアントに返信する前記ステップは、前記目標要求内の前記目標ファイルの前記目標ファイル識別子を取得するステップと、前記目標ファイル識別子に対応する前記目標属性情報を前記属性情報副本から取得するステップと、前記目標属性情報を前記クライアントに返信するステップと、を含む。
ここで、前記方法は、前記目標要求が転送要求の場合、前記目標要求を前記データサーバ内の前記目標サーバに送信するステップの前に、前記クライアントの目標ユーザ識別子を取得するステップと、内部メモリ内の、前記目標ユーザ識別子に対応する前記目標サーバを検索するステップと、をさらに含む。
ここで、内部メモリ内の、前記目標ユーザ識別子に対応する前記目標サーバを検索する前記ステップは、前記目標ユーザ識別子に対応する複数のサーバを検索した場合、前記複数のサーバから負荷バランスの最も低いサーバを前記目標サーバとして選択するか、又はポーリングアルゴリズムを利用して前記複数のサーバから前記目標サーバを決定するステップと、を含む。
ここで、前記方法は、前記目標要求が転送要求の場合、前記目標要求を前記データサーバ内の前記目標サーバに送信するステップの後に、前記クライアントと前記目標サーバとの間にデータ転送チャネルを確立するステップと、前記データ転送チャネルを介して、前記クライアントと前記目標サーバとの間で前記目標ファイルを転送するステップと、をさらに含む。
ここで、前記方法は、前記プロキシサーバがクライアントから送信された目標要求を受信するステップの前に、前記属性情報副本のファイルサイズが所定閾値未満である場合、前記属性情報副本を内部メモリに保存するステップと、前記属性情報副本のファイルサイズが所定閾値以上である場合、前記属性情報副本をメモリに保存するステップと、をさらに含む。
ここで、前記方法は、前記目標要求が転送要求の場合、前記プロキシサーバが前記目標要求を前記データサーバ内の前記目標サーバに送信するステップの前に、同一の前記第1サーバに位置する複数のFTPServerインスタンスを利用して1層スタック構造を形成するステップと、複数の前記第1サーバを利用して2層スタック構造を形成し、前記データサーバを得るステップと、をさらに含む。
ここで、前記方法は、複数の前記第1サーバを利用して2層スタック構造を形成し、前記データサーバを得るステップの後に、同一の前記第1サーバにおける複数の前記FTPServerインスタンスを同じディスクアレイLUN高速ストレージにマウントするステップをさらに含む。
本開示の実施例によれば、ファイル転送過程において、プロキシサーバを介してファイルのスケジューリングを行うことができ、閲覧要求はプロキシサーバを介して目標属性情報を直接返信することができ、転送要求は異なる目標サーバに送信して処理することができるため、ファイル転送効率が低いという問題を解決し、ファイル転送効率の向上効果を達成することができる。
以下、具体的な例示と組み合わせて本開示を説明する。
本開示の実施例におけるプロキシサーバはftpリバースプロキシサーバであってもよい。第1サーバはサーバノードであってもよく、サーバノードでFTPSERVERインスタンス(FTPServerマイクロサービス)が実行される。複数の第1サーバで2層スタック構造を形成し、データサーバを構成する。
FTPリバースプロキシFTPProxyオフローディング・アドレッシング
FTPProxyリバースプロキシは、FTPプロトコルのメタ言語レイヤーを実現するものとして、クライアントにとって標準のFTPサーバであるが、多くの実際のファイル操作要求はそれによってバックエンドFTPServerマイクロサービスクラスタに伝達されて処理される。本開示の実施例におけるFTPProxyリバースプロキシは、ローカルオフローディングとFTPServer2層スタックのアドレッシングと連動した設計に重点を置く。
FTPProxyリバースプロキシは、FTPプロトコルのメタ言語レイヤーを実現するものとして、クライアントにとって標準のFTPサーバであるが、多くの実際のファイル操作要求はそれによってバックエンドFTPServerマイクロサービスクラスタに伝達されて処理される。本開示の実施例におけるFTPProxyリバースプロキシは、ローカルオフローディングとFTPServer2層スタックのアドレッシングと連動した設計に重点を置く。
まず、リバースプロキシについて説明する。リバースプロキシは、バックエンドの複数のFTPServer分散型インスタンスによる差異からクライアントを保護し、かつオフローディング・アドレッシングと連動するためのものとして、FTPクライアントはFTPServerインスタンスがいくつあるか、それぞれどのサーバノードで実行されるか、それぞれのインスタンスのアドレスが何か、あるインスタンスが停止しているかといった細かいことに注意を払う必要がない。
FTPクライアントは、FTPServerマイクロサービスを直接要求するのではなく、FTPProxyに接続し、それがFTPServerのプロキシとしてFTPプロトコル機能を提供する。FTPProxyは、監視コンソールを提供し、FTPProxy自体のステータス、現在の全てのFTP接続情報、バックエンドの全てのServerNode及びFTPServerインスタンスの情報及びステータスを閲覧することができる。
ftpリバースプロキシはFTP要求を分析することで、FTP要求を2種類に分けることができる。
閲覧要求:LIST、NLST、PWD、STATなどのファイル閲覧類要求である。この種類の要求は、主にファイルシステムレベルでのファイル情報を閲覧することである。
転送要求:RETR、STOR、DELE、CWD、RNTOなどのファイル操作及びファイル転送類要求のような、閲覧類要求以外のその他の要求である。ファイル転送類要求と総称する。
FTPServerの負荷を軽減し、ファイル閲覧類要求の応答効率を向上させるために、リバースプロキシサーバFTPProxyでオフローディング能力を提供することができる。
FTPProxyは、クライアントの要求を受信した後に、要求タイプを判断し、ファイル閲覧類要求の場合、バックエンドのFTPServerに伝達することなく、ローカルで直接処理する。ファイル閲覧類要求のFTPProxyでの処理をサポートするためには、FTPProxyでバックエンドのFTPServerファイルディレクトリツリーと属性情報副本を保持する必要がある。バックエンドの各FTPServerの位置するシングルサーバノードは、ローカルファイルシステムを共有するため、同一のサーバノードにとって、このファイルツリー情報をFTPProxyでマージする必要がない。
各サーバノードのローカルファイルシステムは共有されず、各自独立しているため、FTPProxyは全てのFTPServerの位置するサーバノードに対してサーバノード単位でディレクトリツリーを保持しなければならない。後続のFTPの動作に伴い、FTPServerのファイルシステムの内容が変化し、FTPProxyのローカルキャッシュを同期更新する必要があり、全てのFTP要求はFTPProxyリバースプロキシを通して行われるため、これらの変化はFTPProxyによって保持されるディレクトリツリーで同時に行い、バックエンドのFTPServerファイルシステムの内容との一貫性を保つことができる。
効率を向上させるために、FTPProxyで保持されるディレクトリツリー情報は内部メモリに保存されてもよく、バックエンドのFTPServerで保有されるファイルが多すぎる場合、この部分の情報をストレージに永続化し、内部メモリの負荷を軽減することができる。
ファイル転送類要求について、プロキシに到達すると、後続はクライアントとFTPServerインスタンスが直接ファイル転送チャネルを確立し、プロキシによるファイル転送をせず、直接接続して直接転送し、FTPProxyによる一回の転送を減らし、FTPProxyがボトルネックになることを防止し、効率をさらに向上させる。
FTPProxyは、FTP要求をバックエンドの複数のFTPServerマイクロサービスインスタンスに配信する。FTPServer2層スタックに応じて設計され、各FTPServerインスタンスでサポート可能なFTPユーザは一定の範囲のものであるため、FTPProxyは、現在接続してログインしたFTPユーザに応じてバックエンドのどのFTPServerインスタンスにアドレッシングするかを決定し、勿論、このようなインスタンスは複数存在する可能性があり、この場合、さらにFTPServerの負荷状況に応じて要求をバランス良く割り当て、効率の最大化を達成してもよく、Round-Robinポーリングアルゴリズムを用いてもよく、簡単かつ効率的である。
5Gインテリジェントネットワークとクラウドネットワークが融合していく潮流の中で、運用保守管理、ネットワーク管理などのほとんどはマイクロサービスアーキテクチャを用いており、マルチインスタンススケーリングは、分散型、高い同時実行性・大規模、及びデュアルクラスタシステムHAをより良くサポートするために、クラウドネイティブの各サービスコンポーネントに対する基本要件になっている。従って、本方案のFTPServerはファイル転送サービスコンポーネントとして、マイクロサービスコンテナの方式を用いて実現し、マルチインスタンスの実行をサポートする。
また、ファイル転送効率を向上させるために、同じサーバノードFTPServerインスタンスは、ローカルの高速ストレージ論理ユニット番号(LUN)を共有し、マルチサーバノードをスタックしてFTP分散型クラスタシステムの全体を形成し、高い同時実行性で効率的なファイル転送要求を達成する。
シングルインスタンスFTPServerがサポート可能なFTP同時接続数は限られており、その容量はリソースの垂直スケーリングに伴って上限なしに上がることができず、シングルインスタンス内部のスレッドスケジューリング、ロック待ちなどにより処理能力に上限があり、一般的には同時接続数が1000程度で上限に達し、スケーリングリソースをそれ以上割り当てても改善することができない。従って、より多くの同時接続をサポートするためには、FTPサーバクラスタを実現しなければならない。
本開示の実施例は、FTPServerがコンテナの方式で実行し、クラウドネイティブの要件を満たし、マルチインスタンススケーリングをサポートし、弾性スケーリングをサポートするように設計され、接続数、接続アクティビティ、CPUや内部メモリの使用状況などの構成、負荷に基づいて複数のインスタンスをポップアップ表示して実行することができる。1つのサーバノードで複数のFTPServerインスタンスを実行することができ、複数のサーバノードを配置することができる。このように複数のFTPServerインスタンスで1つのFTP分散型クラスタを構成し、K8sといったコンテナ管理システムでそのライフサイクルを管理し、弾性スケーリング的なスケジューリングやHAを実現する。
ここで、同じサーバノードFTPServerインスタンスは、ローカルストレージにマウントされたディスクアレイLUNを共有する。
FTPサーバクラスタにおいて解決すべき最大の問題は、ファイルシステムの一貫性である。ファイルアップロード・ダウンロード、ファイル操作業務の正しさを確保できるように、複数のFTPServerインスタンスに完全に一貫したファイルビューを見せる必要がある。この一貫性を保証するために、ファイルコピー方式でも分散型ファイルシステム方式でも、効率問題は最も際立った問題であり、クラスタ内部で増加したIOや競合により、ファイル転送効率を大きく低下させる。本開示の実施例は、この問題を解決する。
ファイルシステムの一貫性を解決するために、同じサーバのFTPServerインスタンスがローカルストレージにマウントされたディスクアレイLUNを共有し、分散協調メカニズムでファイルアクセス競合を解決するように設計され、このようにすると、同じサーバのFTPServerインスタンスから見えるのは統一したファイルシステムビューである。
この方法は、ディスクアレイLUNの効率的なIOを利用して効率的なファイル転送をサポートする。勿論、これは対応するFTPServerインスタンスが同じサーバノードで実行し、サーバノードのリソースの高構成でFTPServerマルチインスタンスをサポートする必要がある。例えば、シングルFTPServerインスタンスの容量上限時のリソース要件は1C2G(1コアCPU、2G内部メモリ)で、現在の高構成サーバは基本的に100C300G構成に達することができ、つまり、同じサーバノードは100のFTPServerインスタンスの水平スケーリングをサポートし、10万FTPの同時接続をサポートする容量に達することができる。
シングルサーバノードで実行されるFTPServerマルチインスタンスは1つのFTPサーバクラスタを構成するが、サーバノードの構成によって制限され、このクラスタの処理能力にも上限があり、分散型FTPサーバクラスタのサポート規模をある程度制限する。従って、シングルサーバノードの制限を破り、複数のサーバノードを利用する必要がある。しかし、ローカルストレージのディスクアレイLUNは複数のサーバノードに跨って効率的にアクセスすることができず、そうでないと、NFSのような分散型ファイルシステムを構築しなければならず、効率問題が出てしまう。
FTPの業務特徴を踏まえて、ある具体的なFTPユーザのホームワーキングディレクトリは決定されており、異なるホームワーキングディレクトリでのファイルはクロスオーバーせず、つまり、ファイルに対するFTPの操作は常にこのユーザのホームワーキングディレクトリに制限されるため、あるFTPユーザのホームワーキングディレクトリをある固定したサーバノードにバインドし、別のFTPユーザの異なるホームワーキングディレクトリをその他のサーバノードにバインドすることができる。
このように、異なるサーバノードは異なるホームワーキングディレクトリを処理し、これにより複数のサーバノード間でファイル共有ビューを必要としない。異なるFTPユーザは同じワーキングディレクトリを指すことができるため、ここでの分割根拠はFTPユーザではなく、FTPユーザのホームワーキングディレクトリである。最終的な効果としては、ある具体的なワーキングディレクトリが特定のサーバノードにのみ存在する。
あるサーバノードにどのワーキングディレクトリが含まれるかという各FTPユーザのホームワーキングディレクトリとサーバノードとの対応関係を事前に分割することで、対応するFTPユーザのファイル転送要求を処理し、最終的にサーバノードとFTPユーザとの関係を形成することができる。あるFTPユーザの全ての要求は1つの固定したサーバノード(のマルチFTPServerインスタンス)で処理されるため、ローカルストレージにマウントされたディスクアレイLUNを引き続き利用することができ、また、このサーバノードで実行される複数のFTPServerインスタンスを利用してこのユーザのためにクラスタリング機能をサポートすることができる。
このように、FTPServerは複数のタイプに分けられ、あるタイプのFTPServer(複数のインスタンス)で処理されるFTPユーザディレクトリは決定され、かつその他のタイプのFTPServerとクロスオーバーせず、固定したサーバノードで実行される。
これまでのリソース推定によると、シングルサーバノードで実行されるシングルユーザは10万の同時接続という桁数の容量に達することができ、また、異なる業務では通常、異なるFTPユーザを使用するため、本方案におけるマルチサーバノードスケーリングと組み合わせて、システム全体でより高い桁の同時サポート能力を提供することができる。
本開示の実施例において、異なるサーバノードのFTPServerによって処理可能なFTPユーザ範囲は異なり、ある具体的なFTPServerインスタンスは特定のサーバノードでのみ実行し、かつそのノードで弾性スケーリングすることができる。そのためには、コンテナ管理システムK8sのラベル付けメカニズムを利用する必要があり、それはラベル付けによってFTPServerインスタンスが実行されるサーバノードをスケジューリングすることができる。
各サーバノードにラベルを付けるとともに、あるタイプのFTPServerのラベルを構成することにより、そのインスタンスが対応するラベルのサーバノードで実行されるように制御する。異なるワーキングディレクトリ範囲のその他のタイプのFTPServerにその他のラベルを構成し、そのインスタンスが対応するラベルのその他のサーバノードで実行されるように制御する。
本開示の実施例で言及される方案によれば、ローカルストレージのディスクアレイLUNを利用するために、あるタイプのFTPServerインスタンスを実行可能なラベルに対応するサーバノードは1つのみでなければならない。しかし、そのサーバノードが失効すると、HAが保証できなくなるため、あるラベルに対応するサーバノード数は1より大きいものでなければならない。
しかし、同じタイプのFTPServerインスタンスは全て同じサーバノードのみにスケジューリングすることを確保するためには、コンテナ管理システムK8sのアフィニティポリシーを利用する必要があり、アフィニティとは、あるタイプのFTPServerの1番目のインスタンスがラベル付けルールに従ってあるサーバノードにスケジューリングされた場合、同じラベルの複数のサーバノードが存在しても、後続のそのタイプのFTPServerのその他のインスタンスも同じサーバノードにスケジューリングされる。
このようにすると、同じタイプのFTPServerインスタンスが全て同一のサーバノードで実行されることを確保し、ローカルストレージのディスクアレイLUNを共有するとともに、HAを保証することができ、あるサーバノードがオフラインした場合、このサーバノードの全てのFTPServerインスタンスは全体的にラベル付けルールに合致するその他のあるサーバノードに切り替えられ、ディスクアレイLUNも新しいサーバノードにマウントされる。
同一のサーバノード上のFTPServerインスタンスは全て同一のディスクアレイLUNを読み書くため、これらのFTPServerインスタンスのIO操作が互いに競合しないように協調する分散協調メカニズムが必要となる。主に同一のファイルに対する読み書きが競合せず、それとともに、同一のファイルに対して書き込み操作を行うFTPServerインスタンスは1つのみでなければならず、書き込む際に読み込むことができず、他の制限がない。同一のFTPServerインスタンス内部のマルチスレッドは、分散協調することなく、内部メモリロックで制御される。
コンテナ間の分散ロックによって、ファイルを書き込む時に、ファイル名に基づいて対応するロックを生成し、書き込んだ後に解放し、その他の読み書き動作の際にもこのロックが存在するか否かを確認し、存在する場合、このファイルに対する他の読み書き動作は許可されないような分散協調メカニズムを実現する。
本分散協調は、一時ファイル及びファイルソートに基づいて実現される分散ロックであり、このロックは再進入不可能である。ロックの申請時に、ロックごとに1つの一時ディレクトリを生成し、読み書きを協調すべき具体的なファイルに対応付け、ロックを申請すべき各FTPServerインスタンスはこのディレクトリ下で自身のコンテナIDに基づいて一時ファイルを生成してロックし、ロック前後にも判定を行い、複数のコンテナが同時に申請する状況がある(つまり、複数の一時ファイルがある)場合、ファイル名ソートの固定アルゴリズムに基づいてロックに成功したコンテナを選択する。最終的に1つのコンテナのみがこのロックを取得するという目的を達成し、分散協調を実現する。
本開示の実施例に係る方法を用いると、従来技術に比べ、ファイル閲覧類の操作に対する応答がより速く、多数のFTP同時接続をサポートすることができ、また、多数のFTP接続の場合、ファイルコピー又はネットワークファイルシステムがないため、FTPサーバクラスタ内部のIOを効果的に低下させ、ファイル転送効率を向上させる。
FTPProxyリバースプロキシを介してバックエンドのマルチFTPServerインスタンスをオフローディング・アドレッシングし、ファイル転送類要求はプロキシをスキップして直接接続して直接転送し、ファイル転送効率を向上させる。FTP業務特徴を踏まえて、2層スタック型のFTPServerマルチインスタンス分散型クラスタ(データサーバ)を設計し、アフィニティポリシー及び分散協調を利用して同じタイプのFTPServerインスタンスがローカルのディスクアレイLUN高速ストレージを共有可能にし、さらにファイルアップロード・ダウンロード効率を向上させる。
図3に示すように、図3は本開示の方法のアーキテクチャ及びフローを示す図である。FTPProxyはゲートウェイに配置され、リバースプロキシとして、バックエンドのFTPServerインスタンスのアドレッシングと連動することができる。各ServerNodeで最初に生成されたFTPServerインスタンスは、起動時にローカルLUN内のワーキングディレクトリツリー情報をFTPProxyに伝達してキャッシュし、ファイル閲覧類要求に素早く応答できる。
FTPProxyに全てのLUNのワーキングディレクトリツリーが保持され、後続のFTP操作によって動的に更新される。また、FTPProxyは監視コンソールを提供し、FTP分散型クラスタシステムの様々な情報及びステータスを収集する。それはFTPProxy自体のステータス、現在の全てのFTP接続情報、バックエンドの全てのServerNode及びFTPServerインスタンスの情報及びステータスを閲覧することができる。
クライアントFTPClientは、まずFTPProxyに接続してFTPユーザ認証を行い、FTPProxyは各FTP接続に対応するFTPユーザ情報を記録する。後続のファイル転送類要求が開始されると、このユーザに対応するFTPServerインスタンスにアドレッシングし、FTPClientとFTPServerがファイル転送チャネルを直接確立し、後続のファイル転送を行う。
FTPServer分散型クラスタを構成する各インスタンスはラベル付けルールに従って対応するServerNode(サーバノード)で実行し、このサーバノードには対応するディスクアレイLUNをマウントし、そのワーキングディレクトリ範囲はサービス可能なFTPユーザ範囲を決定する。同一のServerNode上のFTPServerインスタンスは1層スタックを形成し、複数のServerNodeは2層スタックを形成することにより、全体のFTPServer分散型クラスタを構成する。複数のFTPユーザの高い同時接続にサービスを提供することができる。
FTPServerインスタンスは、コンテナ形態のマイクロサービスで、ServerNode上で実行し、同一のServerNode上の全てのFTPServerコンテナには同じディスクアレイLUN高速ストレージをマウントし、分散協調によりアクセスを共有し、効率的なIOを利用してファイル転送効率を向上させる。これにより、本開示の高い同時実行性・高効率の設計目的を達成する。
図4に示すように、図4はFTPProxyのオフローディング及びアドレッシングのフローチャートである。
S401では、FTP要求がFTPProxyに到達する。
S402では、FTPProxyがFTPRFCプロトコル規格に従って要求を解析する。
S403では、ファイル転送類要求であるかを判断し、そうであれば、ステップS405に進み、そうでなければS404に進み、ローカルキャッシュ情報によって直接応答する。
S405では、現在のFTPユーザ情報に基づいて対応するFTPServerインスタンスを検索し、FTPServerインスタンスが複数存在する場合には、負荷分散アルゴリズム又はRound-Robinポーリングアルゴリズムに基づいて適切なFTPServerインスタンスにアドレッシングすることができる。
S406では、FTPClientとFTPServerインスタンスの間で直接ファイル転送チャネルを確立する。
S407では、ファイル転送(アップロード又はダウンロード)を行う。
図5に示すように、図5は分散協調アルゴリズムのフローチャートである。
同じサーバノード上のマルチFTPServerコンテナインスタンスは、同一のファイルに対する読み書きが競合しないことを実現し、それとともに、同一のファイルに対して書き込み操作を行うFTPServerインスタンスは1つのみでなければならず、書き込む際に同時に読み込むことができず、これはコンテナ間の分散ロックによって実現され、具体的な分散ロックアルゴリズムは以下の通りである。
前置条件:
同じサーバノードのFTPServerコンテナは同一のディレクトリclusterlocksを分散ロックの一時ディレクトリとして用いる。
同じサーバノードのFTPServerコンテナは同一のディレクトリclusterlocksを分散ロックの一時ディレクトリとして用いる。
全ての分散ロックは1つのキーワード(又はファイルパス)を提供し、キーワードを16進コードで表示し、各ロックはclusterlocks下でこのキーワードを利用して一意のディレクトリを作成し、ディレクトリ下でロックを申請するコンテナIDに基づいて1つのファイルを作成し、このようにすると、コンテナごとにロックを申請する時に一意の一時ファイルclusterlocks/<ロックキーワード>/<コンテナID>が生成される。
ロックの申請ができたコンテナが異常終了するのを防止するために、各ロックに60秒の有効期限が設定される(ファイルの最終修正時刻に基づいて有効期限が切れているか否かを確認する)。
分散ロックの申請プロセスは以下の通りである。
1、ファイルロックに対応するディレクトリを取得する。
2、ロックディレクトリ(clusterlocks/<ロックキーワード>)にlockedで始まるファイルが存在するか否かを検査し、存在しない場合にはステップ4に進む。存在しかつlockedファイルの有効期限が切れていない場合には、ロックが既に取得されたことを示し、ロック取得に失敗する。
3、lockedファイルの有効期限が切れている場合には、lockedファイルを削除する。
4、ディレクトリにファイルが1つのみか否かを判断し、そうであればステップ5に進む。そうでなければ、複数のファイルをソートし、1番目のファイル名が本コンテナIDであるか否かを判断し、そうでなければロック取得に失敗し、そうであればステップ6に進む。
5、このファイルのファイル名が本コンテナIDであるか否かを判断し、そうでなければロック取得に失敗し、そうであれば続ける。
6、ファイル名にlockedのプレフィクスを付ける。
7、10msだけスリープし、一意のlockedファイルであるか否かを再確認し、そうでなければステップ8に進み、そうであれば、ロックファイル名がlocked+本コンテナID名であるか否かを再確認し、そうであればロック取得に成功し、そうでなければロック取得に失敗する。
8、複数のlockedファイルが存在する場合には、再ソートし、1番目のファイル名に対応するコンテナがロックを取得し、残りのコンテナはロック取得に失敗し、自分で生成されたファイルをクリーンアップする。
9、プロセスが終了する。
上記過程において、プログラムが分散ロックを取得した後、使用時間が長すぎて60秒を超える場合には、使用過程においてロックファイルの最終変更時刻を更新する必要がある。
以下の表1に示すように、1つの分散型FTPServerクラスタをインスタンス化する。
システムに、ServerNode-A、ServerNode-B、ServerNode-Cの3つのサーバノードが存在する。
ここで、ServerNode-Aにラベル「FTP-A」、「FTP-C」を付け、それが「FTP-A」、「FTP-C」の2つのタイプのFTPServerインスタンスを実行できることを示し、ServerNode-Bに「FTP-A」、「FTP-B」を付け、ServerNode-Cに「FTP-B」、「FTP-C」を付ける。
FTPServerインスタンスには、FTP-A、FTP-B、FTP-Cの3つのタイプがある。ここで、FTP-AはFTPユーザuser-Al、user-A2、user-A3にサービスを提供することができ、その対応するワーキングディレクトリの位置するディスクアレイLUNはLUN-Aである。
FTP-AにFTPServer-A-1、FTPServer-A-2、FTPServer-A-3の3つの実行インスタンスが配置される。FTP-Aは「FTP-A」ラベルが付けられたサーバノード、即ちServerNode-A又はServerNode-Bでのみ実行することができる。
図6は、好ましい分散型FTPクラスタアフィニティ及びHAを示す図である。
アフィニティの原則により、次のようになる。
FTPServer-A-1、FTPServer-A-2、FTPServer-A-3などのFTP-AタイプのFTPServerインスタンスは全て「FTP-A」ラベルが付けられたServerNode-Aで実行され、また、対応するディスクアレイLUN-AもServerNode-Aにマウントされる。
FTPServer-B-1、FTPServer-B-2などのFTP-BタイプのFTPServerインスタンスは全て「FTP-B」ラベルが付けられたServerNode-Bで実行され、また、対応するディスクアレイLUN-BもServerNode-Bにマウントされる。
FTPServer-C-1、FTPServer-C-2、FTPServer-C-3などのFTP-CタイプのFTPServerインスタンスは全て「FTP-C」ラベルが付けられたServerNode-Cで実行され、また、対応するディスクアレイLUN-CもServerNode-Cにマウントされる。
この時、システムに異常が発生し、ServerNode-Aが停止したと仮定すると、クラスタ管理システムは、ServerNode-AでFTPServer-A-1、FTPServer-A-2、FTPServer-A-3というFTP-AタイプのFTPServerインスタンスの全てが実行されていることを確認できる。
ラベル付けルールに従い、FTP-Aタイプのインスタンスを実行できるサーバノードServerNode-B(ラベル「FTP-B」が付けられたため)を検索し、続いて、まず対応するディスクアレイLUN-AをServerNode-Bにマウントしてから、全体的にFTPServer-A-1、FTPServer-A-2、FTPServer-A-3というFTP-Aタイプのインスタンスの全てをServerNode-Bに切り替えて実行する。この場合、ServerNode-BはFTP-BとFTP-Aの2つのタイプのFTPServerインスタンスを同時に実行し、LUN-B、LUN-Aを同時にマウントする。
このように、切り替えられた実行形態は、ラベル付けとアフィニティポリシーを満たし、対応するローカルディスクアレイLUNを使用でき、また、異常発生時のHAを実現することができる。
図6に示すように、ServerNode-Aノードがオフラインした後、FTPServer-A-1、FTPServer-A-2、FTPServer-A-3インスタンスは全体的にServerNode-Bノードに移行して実行し、クラスタ移行時にLun-AをServerNode-Bノードにマウントする。
ここで、File Transfer Protocol(FTP)はネットワーク上でファイル転送を行うための標準プロトコルであり、論理ユニット番号(Logical Unit Number、LUN)はサーバに直接認識され得る独立したストレージユニットである。
以上の実施形態の説明から、当業者であれば、上記実施例の方法に従ってソフトウェアと必要な汎用ハードウェアプラットフォームの方式によって実現することができ、勿論、ハードウェアを介して実現できるが、多くの場合、前者がより好ましい実施形態であることを明白に理解できる。
このような理解に基づいて、本開示の技術方案の本質又は従来技術に寄与する部分は、ソフトウェア製品の形で具現化することができ、このコンピュータソフトウェア製品は記憶媒体(例えば、ROM/RAM、磁気ディスク、光ディスク)に記憶され、1台の端末デバイス(携帯電話、サーバ又はネットワークデバイスなどであってもよい)に本開示の各実施例に記載の方法を実行させるための複数の命令を含む。
本実施例ではデータ転送装置をさらに提供し、この装置は上記実施例及び好ましい実施形態を実現するために使用され、既に説明した内容は説明を省略する。以下で使用されるように、用語「モジュール」は所定機能のソフトウェア及び/又はハードウェアの組み合わせを実現することができる。以下の実施例で説明される装置は、好ましくはソフトウェアで実現されるが、ハードウェア、又はソフトウェアとハードウェアの組み合わせの実現も可能であり、想定される。
図7は本開示の実施例に係るプロキシサーバの構成を示すブロック図であり、図7に示すように、このプロキシサーバは、
クライアントから送信された目標要求を受信するように構成されるユニットであって、前記目標要求は、データサーバ内の目標ファイルの目標属性情報の閲覧を要求するために用いられる閲覧要求、又は、目標ファイルを前記データサーバに転送すること又は前記データサーバから取得することを要求するために用いられる転送要求である受信ユニット702と、
前記目標要求が閲覧要求の場合、前記目標ファイルの前記目標属性情報を保存された属性情報副本から取得し、前記クライアントに返信するように構成されるユニットであって、前記属性情報副本には、前記目標ファイルの目標ファイル識別子と前記目標属性情報との対応関係が記録されている第1取得ユニット704と、
前記目標要求が転送要求の場合、前記目標要求を前記データサーバ内の目標サーバに送信するユニットであって、前記データサーバは、2層スタック型のFTPServerマルチインスタンス分散型クラスタサーバであり、複数の第1サーバを含み、前記プロキシサーバには各前記第1サーバから報告されたFTPユーザ処理範囲が記録されている第1送信ユニット706と、を含む。
クライアントから送信された目標要求を受信するように構成されるユニットであって、前記目標要求は、データサーバ内の目標ファイルの目標属性情報の閲覧を要求するために用いられる閲覧要求、又は、目標ファイルを前記データサーバに転送すること又は前記データサーバから取得することを要求するために用いられる転送要求である受信ユニット702と、
前記目標要求が閲覧要求の場合、前記目標ファイルの前記目標属性情報を保存された属性情報副本から取得し、前記クライアントに返信するように構成されるユニットであって、前記属性情報副本には、前記目標ファイルの目標ファイル識別子と前記目標属性情報との対応関係が記録されている第1取得ユニット704と、
前記目標要求が転送要求の場合、前記目標要求を前記データサーバ内の目標サーバに送信するユニットであって、前記データサーバは、2層スタック型のFTPServerマルチインスタンス分散型クラスタサーバであり、複数の第1サーバを含み、前記プロキシサーバには各前記第1サーバから報告されたFTPユーザ処理範囲が記録されている第1送信ユニット706と、を含む。
上記プロキシサーバにより、ファイル転送過程において、プロキシサーバを介してファイルのスケジューリングを行うことができ、閲覧要求はプロキシサーバを介して目標属性情報を直接返信することができ、転送要求は異なる目標サーバに送信して処理することができるため、ファイル転送効率が低いという問題を解決し、ファイル転送効率の向上効果を達成することができる。
本開示の実施例はコンピュータ読み取り可能な記憶媒体をさらに提供する。このコンピュータ読み取り可能な記憶媒体には、実行されると上記いずれか1項の方法の実施例におけるステップを実現するように構成されるコンピュータプログラムが記憶されている。
一例示的な実施例では、上記コンピュータ読み取り可能な記憶媒体は、Uディスク、読み取り専用メモリ(Read-Only Memory、ROMと略称する)、ランダムアクセスメモリ(Random Access Memory、RAMと略称する)、リムーバブルハードディスク、磁気ディスク又は光学ディスクなどコンピュータプログラムを記憶できる様々な媒体を含み得るが、これらに限定されない。
本開示の実施例は、コンピュータプログラムが記憶されているメモリと、コンピュータプログラムを実行して上記いずれか1項の方法の実施例におけるステップを実現するように構成されるプロセッサとを含む電子デバイスをさらに提供する。
一例示的な実施例では、上記電子デバイスは、上記プロセッサに接続される伝送装置及び上記プロセッサに接続される入出力装置をさらに含んでもよい。
本実施例の具体的な例は上記実施例及び代替的な実施形態で説明される例示を参照することができるが、本実施例では説明を省略する。
明らかに、当業者であれば、上記の本開示の各モジュール又は各ステップは汎用のコンピューティングデバイスで実現することができ、それらは個別のコンピューティングデバイスに集中し、又は複数のコンピューティングデバイスからなるネットワークに分散することができ、それらはコンピューティングデバイスの実行可能なプログラムコードで実現することができ、従って、それらを記憶装置に記憶してコンピューティングデバイスで実行することができ、かつ場合によっては、ここの順序と異なるもので図示又は記載されたステップを実行し、又はそれらを各集積回路モジュールとしてそれぞれ作製し、それらの複数のモジュール又はステップを個別の集積回路モジュールとして作製することで実現することができることが分かるであろう。このように、本開示はいかなる特定のハードウェアとソフトウェアの特定の組み合わせに限定されない。
以上の記載は本開示の好ましい実施例に過ぎず、本開示を限定するものではなく、当業者であれば、本開示に様々な修正及び変更を行うことができる。本開示の原則内で行われる任意の修正、均等な置換、改良等は、いずれも本開示の保護範囲内に含まれるべきである。
Claims (13)
- プロキシサーバがクライアントから送信された目標要求を受信するステップであって、前記目標要求は、データサーバ内の目標ファイルの目標属性情報の閲覧を要求するために用いられる閲覧要求、又は、目標ファイルを前記データサーバに転送すること又は前記データサーバから取得することを要求するために用いられる転送要求であるステップと、
前記目標要求が閲覧要求の場合、前記プロキシサーバが前記目標ファイルの前記目標属性情報を保存された属性情報副本から取得し、前記クライアントに返信するステップであって、前記属性情報副本には、前記目標ファイルの目標ファイル識別子と前記目標属性情報との対応関係が記録されているステップと、
前記目標要求が転送要求の場合、前記プロキシサーバが前記目標要求を前記データサーバ内の目標サーバに送信するステップであって、前記データサーバは、2層スタック型のFTPServerマルチインスタンス分散型クラスタサーバであり、複数の第1サーバを含み、前記プロキシサーバには各前記第1サーバから報告されたFTPユーザ処理範囲が記録されているステップと、を含む、
データ転送方法。 - 前記プロキシサーバが前記クライアントから送信された前記目標要求を受信する前記ステップの前に、
前記データサーバ内の全てのファイルのファイル識別子と全てのファイルの属性情報を取得するステップと、
前記データサーバ内の全てのファイルのファイル識別子と全てのファイルの属性情報を前記属性情報副本に保存するステップと、をさらに含む、
請求項1に記載のデータ転送方法。 - 前記プロキシサーバが前記クライアントから送信された前記目標要求を受信する前記ステップの前に、
ユーザ識別子と前記第1サーバとの対応関係を取得するステップであって、異なる前記ユーザ識別子は異なる前記第1サーバに対応付けられるステップと、
前記対応関係を内部メモリに保存するステップと、をさらに含む、
請求項1に記載のデータ転送方法。 - 前記目標要求が閲覧要求の場合、前記目標ファイルの前記目標属性情報を前記プロキシサーバに保存された属性情報副本から取得し、前記クライアントに返信する前記ステップは、
前記目標要求内の前記目標ファイルの前記目標ファイル識別子を取得するステップと、
前記目標ファイル識別子に対応する前記目標属性情報を前記属性情報副本から取得するステップと、
前記目標属性情報を前記クライアントに返信するステップと、を含む、
請求項1に記載のデータ転送方法。 - 前記目標要求が転送要求の場合、前記目標要求を前記データサーバ内の前記目標サーバに送信する前記ステップの前に、
前記クライアントの目標ユーザ識別子を取得するステップと、
内部メモリのうち、前記目標ユーザ識別子に対応する前記目標サーバを検索するステップと、
前記転送要求を前記目標サーバに送信するステップと、をさらに含む、
請求項1に記載のデータ転送方法。 - 内部メモリのうち、前記目標ユーザ識別子に対応する前記目標サーバを検索する前記ステップは、
前記目標ユーザ識別子に対応する複数のサーバを検索した場合、前記複数のサーバから負荷バランスの最も低いサーバを前記目標サーバとして選択するか、又は、ポーリングアルゴリズムを利用して前記複数のサーバから前記目標サーバを決定するステップを含む、
請求項5に記載のデータ転送方法。 - 前記目標要求が転送要求の場合、前記目標要求を前記データサーバ内の前記目標サーバに送信する前記ステップの後に、
前記クライアントと前記目標サーバとの間にデータ転送チャネルを確立するステップと、
前記データ転送チャネルを介して、前記クライアントと前記目標サーバとの間で前記目標ファイルを転送するステップと、をさらに含む、
請求項5に記載のデータ転送方法。 - 前記プロキシサーバがクライアントから送信された目標要求を受信する前記ステップの前に、
前記属性情報副本のファイルサイズが所定閾値未満である場合、前記属性情報副本を内部メモリに保存するステップと、
前記属性情報副本のファイルサイズが所定閾値以上である場合、前記属性情報副本をメモリに保存するステップと、をさらに含む、
請求項1に記載のデータ転送方法。 - 前記目標要求が転送要求の場合、前記プロキシサーバが前記目標要求を前記データサーバ内の前記目標サーバに送信する前記ステップの前に、
同一の前記第1サーバに位置する複数のFTPServerインスタンスを利用して1層スタック構造を形成するステップと、
複数の前記第1サーバを利用して2層スタック構造を形成し、前記データサーバを得るステップと、をさらに含む、
請求項1に記載のデータ転送方法。 - 複数の前記第1サーバを利用して2層スタック構造を形成し、前記データサーバを得る前記ステップの後に、
同一の前記第1サーバにおける複数の前記FTPServerインスタンスを同じディスクアレイLUN高速ストレージにマウントするステップをさらに含む、
請求項9に記載のデータ転送方法。 - クライアントから送信された目標要求を受信するように構成される受信ユニットであって、前記目標要求は、データサーバ内の目標ファイルの目標属性情報の閲覧を要求するために用いられる閲覧要求、又は、目標ファイルを前記データサーバに転送すること又は前記データサーバから取得することを要求するために用いられる転送要求である受信ユニットと、
前記目標要求が閲覧要求の場合、前記目標ファイルの前記目標属性情報を保存された属性情報副本から取得し、前記クライアントに返信するように構成される第1取得ユニットであって、前記属性情報副本には、前記目標ファイルの目標ファイル識別子と前記目標属性情報との対応関係が記録されている第1取得ユニットと、
前記目標要求が転送要求の場合、前記目標要求を前記データサーバ内の目標サーバに送信するように構成される第1送信ユニットであって、前記データサーバは、2層スタック型のFTPServerマルチインスタンス分散型クラスタサーバであり、複数の第1サーバを含み、前記プロキシサーバには各前記第1サーバから報告されたFTPユーザ処理範囲が記録されている第1送信ユニットと、を含む、
プロキシサーバ。 - コンピュータプログラムが記憶されているコンピュータ読み取り可能な記憶媒体であって、
前記コンピュータプログラムは実行される時に請求項1~10のいずれか1項に記載のデータ転送方法を実現するように構成される、
コンピュータ読み取り可能な記憶媒体。 - コンピュータプログラムが記憶されているメモリと、前記コンピュータプログラムを実行して請求項1~10のいずれか1項に記載のデータ転送方法を実現するように構成されるプロセッサと、を含む、
電子デバイス。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010621938.0 | 2020-07-01 | ||
CN202010621938.0A CN113965560A (zh) | 2020-07-01 | 2020-07-01 | 数据传输方法和代理服务器、存储介质及电子装置 |
PCT/CN2021/104060 WO2022002209A1 (zh) | 2020-07-01 | 2021-07-01 | 数据传输方法和代理服务器、存储介质及电子装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023532947A true JP2023532947A (ja) | 2023-08-01 |
Family
ID=79315114
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023500001A Pending JP2023532947A (ja) | 2020-07-01 | 2021-07-01 | データ転送方法、プロキシサーバ、記憶媒体及び電子デバイス |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP4178134A4 (ja) |
JP (1) | JP2023532947A (ja) |
CN (1) | CN113965560A (ja) |
WO (1) | WO2022002209A1 (ja) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114584545A (zh) * | 2022-03-03 | 2022-06-03 | 京东科技信息技术有限公司 | 数据管理方法、装置、系统、存储介质及电子设备 |
CN114615315A (zh) * | 2022-03-22 | 2022-06-10 | 深圳壹账通创配科技有限公司 | 线上会话的通讯方法、装置、设备及存储介质 |
CN114598716A (zh) * | 2022-04-02 | 2022-06-07 | 西湖大学 | 一种分布式文件存储系统、方法及电子设备 |
CN115002514B (zh) * | 2022-05-27 | 2023-07-21 | 浙江大学 | 基于云原生控制器的spark视频转码系统及视频转码方法 |
CN115118712A (zh) * | 2022-06-06 | 2022-09-27 | 蚂蚁区块链科技(上海)有限公司 | 一种文件传输的方法及装置 |
CN115051982B (zh) * | 2022-06-14 | 2023-12-01 | 北京天融信网络安全技术有限公司 | 基于ftp协议的信息处理方法、系统及存储介质 |
CN115174691B (zh) * | 2022-06-22 | 2023-09-05 | 山西数字政府建设运营有限公司 | 基于页面请求的大数据加载方法、装置、设备及介质 |
CN115250269B (zh) * | 2022-07-26 | 2024-02-02 | 中银金融科技有限公司 | 一种文件分配方法及装置、存储介质及电子设备 |
CN115348258A (zh) * | 2022-08-17 | 2022-11-15 | 中国建设银行股份有限公司贵州省分行 | 一种文件传输方法、装置、系统及电子设备 |
CN115348310B (zh) * | 2022-08-17 | 2024-06-07 | 中国电信股份有限公司 | 反向代理方法、装置、系统、电子设备及存储介质 |
CN115242882B (zh) * | 2022-09-20 | 2023-01-10 | 之江实验室 | 一种基于传输层路由访问k8s容器环境的方法及装置 |
CN117009310B (zh) * | 2023-09-27 | 2024-01-23 | 苏州元脑智能科技有限公司 | 文件同步方法、装置、分布式全局内容库系统及电子设备 |
CN117896380B (zh) * | 2024-03-14 | 2024-05-31 | 广州云积软件技术有限公司 | 用于云考试的高并发信息处理方法、系统和装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2010250118A1 (en) * | 2009-05-20 | 2011-12-15 | Creative Ad Technology Proprietary Limited | Methods and systems for delivering media to client device |
CN101977236B (zh) * | 2010-11-05 | 2015-05-20 | 北京世纪互联宽带数据中心有限公司 | 大文件多点分发系统 |
CN104065731B (zh) * | 2014-06-30 | 2018-04-13 | 北京华电天益信息科技有限公司 | 一种ftp文件传输系统及传输方法 |
CN105100263A (zh) * | 2015-08-20 | 2015-11-25 | 百度在线网络技术(北京)有限公司 | 一种反向代理方法及装置 |
CN105868333A (zh) * | 2016-03-28 | 2016-08-17 | 金蝶软件(中国)有限公司 | 文件处理方法及装置 |
CN110120917B (zh) * | 2019-06-28 | 2024-02-02 | 北京瑛菲网络科技有限公司 | 基于内容的路由方法及装置 |
-
2020
- 2020-07-01 CN CN202010621938.0A patent/CN113965560A/zh active Pending
-
2021
- 2021-07-01 JP JP2023500001A patent/JP2023532947A/ja active Pending
- 2021-07-01 EP EP21834267.3A patent/EP4178134A4/en active Pending
- 2021-07-01 WO PCT/CN2021/104060 patent/WO2022002209A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
EP4178134A1 (en) | 2023-05-10 |
CN113965560A (zh) | 2022-01-21 |
WO2022002209A1 (zh) | 2022-01-06 |
EP4178134A4 (en) | 2024-02-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2023532947A (ja) | データ転送方法、プロキシサーバ、記憶媒体及び電子デバイス | |
US11775569B2 (en) | Object-backed block-based distributed storage | |
US10545914B2 (en) | Distributed object storage | |
CN110213352B (zh) | 名字空间统一的分散自治存储资源聚合方法 | |
US9460185B2 (en) | Storage device selection for database partition replicas | |
CN103237046B (zh) | 支持混合云存储应用的分布式文件系统及实现方法 | |
CN107547661B (zh) | 一种容器负载均衡实现方法 | |
CA2512312C (en) | Metadata based file switch and switched file system | |
EP2923272B1 (en) | Distributed caching cluster management | |
US20150215405A1 (en) | Methods of managing and storing distributed files based on information-centric network | |
CN101631143B (zh) | 负载均衡环境中多服务器系统及其文件传输方法 | |
US9037618B2 (en) | Distributed, unified file system operations | |
CN103905537A (zh) | 分布式环境下管理工业实时数据存储的系统 | |
CN102571959A (zh) | 一种数据下载系统及方法 | |
CN109213571B (zh) | 一种内存共享方法、容器管理平台及计算机可读存储介质 | |
US10848545B2 (en) | Managing cloud storage of block-based and file-based data | |
CN111966482B (zh) | 边缘计算系统 | |
US10545667B1 (en) | Dynamic data partitioning for stateless request routing | |
CN106686117B (zh) | 一种分布式计算集群的数据存储处理系统及方法 | |
CN111225003B (zh) | 一种nfs节点配置方法和装置 | |
CN111382132A (zh) | 医学影像数据云存储系统 | |
US10148503B1 (en) | Mechanism for dynamic delivery of network configuration states to protocol heads | |
US10887429B1 (en) | Processing multi-protocol redirection links | |
US9548940B2 (en) | Master election among resource managers | |
CN117075823B (zh) | 对象查找方法、系统、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240422 |