JP2023167703A - 計算機システム、及び記憶領域割当制御方法 - Google Patents

計算機システム、及び記憶領域割当制御方法 Download PDF

Info

Publication number
JP2023167703A
JP2023167703A JP2022079076A JP2022079076A JP2023167703A JP 2023167703 A JP2023167703 A JP 2023167703A JP 2022079076 A JP2022079076 A JP 2022079076A JP 2022079076 A JP2022079076 A JP 2022079076A JP 2023167703 A JP2023167703 A JP 2023167703A
Authority
JP
Japan
Prior art keywords
distributed
server
servers
processing
data
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
Application number
JP2022079076A
Other languages
English (en)
Inventor
崇元 深谷
Takamoto Fukaya
光雄 早坂
Mitsuo Hayasaka
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2022079076A priority Critical patent/JP2023167703A/ja
Priority to US17/901,009 priority patent/US20230367503A1/en
Publication of JP2023167703A publication Critical patent/JP2023167703A/ja
Pending legal-status Critical Current

Links

Classifications

    • 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
    • G06F16/1827Management specifically adapted to NAS
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • 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
    • 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/0608Saving storage space on storage systems
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)

Abstract

【課題】計算機システムにおける記憶装置の記憶領域の利用効率を適切に向上できるようにする。【解決手段】複数の分散FSサーバ20を有し、ファイルを分散して管理する分散FS200と、分散FS200から提供されるPV201を用いて所定の処理を実行する処理機能を有する複数のコンピュートサーバ10と、コンピュートサーバ10へのPV201の割り当てを管理する管理サーバ30とを有する計算機システム1において、管理サーバ30のプロセッサを、複数のコンピュートサーバ10によってPV201のデータが冗長化によるデータ保護されるか否かを判定し、PV201のデータがデータ保護されると判定した場合に、複数のコンピュートサーバ10のPV201として、分散FS200から分散FS200によってデータの冗長化によるデータ保護が実行されないPV201を割り当てるように構成させる。【選択図】図1

Description

本発明は、所定の処理を実行する処理サーバの処理機能に対してデータを格納する記憶領域を割り当てる技術に関する。
AI(Artificial Intelligence)/ビッグデータ分析のための大容量データの格納するためのデータレイクが普及している。
データレイクでは、ファイルストレージ、オブジェクトストレージ、NoSQL/SQLデータベースシステム等が使用されており、これらをコンテナ化することにより運用の容易化が図られている。ここでいうコンテナとは、アプリケーションの動作環境を仮想的に構築する技術の1つである。コンテナ環境では、1つのOS(Operating System)上に仮想化した実行環境を複数配置することで、CPU(Central Processing Unit)やメモリなどの使用リソースを削減する。
データレイクにおいては、NoSQL/SQLデータベースシステムは、ファイルデータを管理し、そのファイルデータの格納先として、容量・性能のスケールアウトが可能な分散ファイルシステム(分散FS)が広く使用されている。
NoSQL/SQLデータベースシステムや、分散FSは、それぞれの層において、可用性を実現するためにデータ保護(データの冗長化)が行われている。
例えば、コンテナにボリュームを割り当てる技術として、特許文献1には、ユーザが作成したコンテナ構成定義に基づいて、構成管理モジュールがアプリコンテナに外部接続ストレージを使用した永続化ボリューム(PV)を自動作成し、割り当てる技術が開示されている。
米国特許第9678683号明細書
例えば、NoSQL/SQLデータベースシステムをコンテナ(DBコンテナという)として構成する場合においては、負荷分散や高可用性のために、複数のサーバ間で、DBコンテナと、DBコンテナで使用するデータとを冗長化することが行われている。また、分散FSにおいては、高可用性のため、分散FSを構成する複数の分散FSサーバにおいてデータを冗長化するデータ保護が行われている。
例えば、DBコンテナのファイルのデータが保護されるとともに、DBコンテナのファイルのデータが分散FSで保護されてしまうと、同一のデータが必要以上に記憶領域に格納されてしまい、記憶装置の記憶領域の利用効率(容量効率)が低下してしまう問題がある。
本発明は、上記事情に鑑みなされたものであり、その目的は、計算機システムにおける記憶装置の記憶領域の利用効率を適切に向上することのできる技術を提供することにある。
上記目的を達成するため、一観点に係る計算機システムは、複数のファイルサーバを有し、ファイルを分散して管理する分散ファイルシステムと、前記分散ファイルシステムから提供される記憶領域を用いて所定の処理を実行する処理機能を有する複数の処理サーバと、前記処理サーバへの記憶領域の割り当てを管理する管理装置とを有する計算機システムであって、前記管理装置のプロセッサは、前記複数の処理サーバによって前記記憶領域のデータが冗長化によるデータ保護されるか否かを判定し、前記記憶領域のデータがデータ保護されると判定した場合に、前記複数の処理サーバの前記記憶領域として、前記分散ファイルシステムから前記分散ファイルシステムによってデータの冗長化によるデータ保護が実行されない記憶領域を割り当てる。
本発明によれば、計算機システムにおける記憶装置の記憶領域の利用効率を適切に向上することができる。
図1は、第1実施形態に係る計算機システムにおけるDBコンテナへの永続化ボリューム割当処理の概要を説明する図である。 図2は、第1実施形態に係る計算機システムの全体構成図である。 図3は、第1実施形態に係る分散FSサーバの構成図である。 図4は、第1実施形態に係るコンピュートサーバの構成図である。 図5は、第1実施形態に係る管理サーバの構成図である。 図6は、第1実施形態に係るサーバ管理テーブルの構成図である。 図7は、第1実施形態に係るコンテナ管理テーブルの構成図である。 図8は、第1実施形態に係るPV管理テーブルの構成図である。 図9は、第1実施形態に係るデータ保護可否テーブルの構成図である。 図10は、第1実施形態に係る分散FS制御テーブルの構成図である。 図11は、第1実施形態に係るコンテナ作成処理のシーケンス図である。 図12は、第1実施形態に係るデータ保護有無判定処理のフローチャートである。 図13は、第1実施形態に係るPV作成・割当処理のフローチャートである。 図14は、第1実施形態に係る分散FS作成処理のフローチャートである。 図15は、第2実施形態に係る計算機システムにおけるDBコンテナへの永続化ボリューム割当処理の概要を説明する図である。 図16は、第2実施形態に係る計算機システムの全体構成図である。 図17は、第2実施形態に係る分散FSサーバの構成図である。 図18は、第2実施形態に係るブロックSDSサーバの構成図である。 図19は、第2実施形態に係る外部接続LU管理テーブルの構成図である。 図20は、第2実施形態に係るLU管理テーブルの構成図である。 図21は、第2実施形態に係るPV作成・割当処理のフローチャートである。 図22は、第2実施形態に係るLU・分散FS作成処理のフローチャートである。 図23は、第2実施形態に係るフェイルオーバ処理のシーケンス図である。
いくつかの実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
以下の説明では、「AAAテーブル」の表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「AAAテーブル」を「AAA情報」と呼ぶことができる。
また、以下の説明では、「プログラム」を動作の主体として処理を説明する場合があるが、プログラムは、プロセッサ(例えば、CPU)によって実行されることで、定められた処理を、適宜に記憶部(例えばメモリ)及び/又はインターフェース(例えばポート)を用いながら行うため、処理の動作の主体がプログラムとされてもよい。プログラムを動作の主体として説明された処理は、プロセッサ或いはそのプロセッサを有する計算機(例えば、サーバ)が行う処理としてもよい。また、プロセッサが行う処理の一部又は全部を行うハードウェア回路を含んでもよい。また、プログラムは、プログラムソースからインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバ又はコンピュータ読取可能な(例えば非一時的な)記録メディアであってもよい。また、以下の説明において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。
<第1実施形態>
まず、第1実施形態に係る計算機システム1の概要について説明する。
図1は、第1実施形態に係る計算機システムにおけるDBコンテナへの永続化ボリューム割当処理の概要を説明する図である。
計算機システム1は、複数の分散FS(ファイルシステム)サーバ20と、複数のコンピュートサーバ10と、管理サーバ30と、を備える。
計算機システム1において、コンテナオーケストレータプログラム321により、複数のコンピュートサーバ10上でDBコンテナプログラム123が起動されてDBコンテナが作成され、DBコンテナが冗長化されている。したがって、DBコンテナで管理するDBデータ131は、複数のコンピュートサーバ10で冗長化して管理されることとなる。管理サーバ30の分散FSボリューム管理プログラム323は、DBコンテナプログラム123が使用するDBデータ131を格納する永続化ボリューム(PV(Persistent Volime))201を割り当てる処理を行う。
分散FSボリューム管理プログラム323は、コンテナオーケストレータプログラム321からコンテナ管理テーブル325(図7参照)を取得し、DBコンテナプログラム123が冗長化されてDBデータ131がデータ保護されるか否かを判定する(図1(1))。
分散FSボリューム管理プログラム323は、DBコンテナプログラム123のDBデータがデータ保護される場合には、データ保護なしのPVを作成して(図1(2))、DBコンテナプログラム123により構成されるDBコンテナに割り当てる。
更に、PV201が複数の分散FSサーバ20により構成されている分散FS200から作成される場合においては、分散FSサーバ20の単一障害によって、冗長化されている各DBコンテナに割り当てられるPV201の利用ができなくなることを避けるために、本実施形態では、各DBコンテナに割り当てられるPV201を、異なった分散FSサーバ20で構成された異なる分散FS200から作成されるようにしている。なお、このような分散FS200が存在しない場合には、新たに分散FS200を作成して、その分散ンFS200からPVを作成して割り当てるようにしている。
図2は、第1実施形態に係る計算機システムの全体構成図である。
計算機システム1は、複数の処理サーバの一例としてのコンピュートサーバ10と、複数のファイルサーバの一例としての分散FSサーバ20と、管理装置の一例としての管理サーバ30と、フロントエンド(FE)ネットワーク2と、バックエンド(BE)ネットワーク3と、を備える。
管理サーバ30と、コンピュートサーバ10と、分散FSサーバ20とは、FEネットワーク2を介して接続されている。また、複数の分散FSサーバ20は、BEネットワーク3を介して接続されている。
コンピュートサーバ10は、FEネットワークI/F14(図2では、FE I/Fと省略記載)を介してFEネットワーク2に接続され、NoSQL/SQLデータベースシステム(DBシステム)を管理する処理を実行し、分散FSサーバ20に対してDBシステムで管理するデータ(DBデータ)が含まれるファイルに対するI/O(ファイルI/O)を発行する。コンピュートサーバ10は、NFS(Network File System)、SMB(Server Message Block)、AFP(Apple Filing Protocol)などのプロトコルに従って、ファイルI/Oを行う。また、コンピュートサーバ10は、様々な目的のために他の装置と通信することができる。
管理サーバ30は、計算機システム1の管理者が、コンピュートサーバ10及び分散FSサーバ20を管理するためのサーバである。管理サーバ30は、FEネットワークI/F34を介してFEネットワーク2に接続され、コンピュートサーバ10と分散FSサーバ20とに対して管理要求を発行する。管理サーバ30は、管理要求の通信形態として、SSH(Secure Shell)を介したコマンド実行や、REST API(Representational State Transfer Application Program Interface)などを使用する。管理サーバ30は、管理者に対し、CLI(Command Line Interface)、GUI(Graphical User Interface)、REST APIなどの管理インターフェースを提供する。
分散FSサーバ20は、コンピュートサーバ10に対して論理的な記憶領域であるボリューム(例えば、永続化ボリューム(PV))を提供する分散FSを構成する。分散FSサーバ20は、FEネットワークI/F24を介してFEネットワーク2に接続され、コンピュートサーバ10からのファイルI/Oと、管理サーバ30からの管理要求を受信し、処理する。分散FSサーバ20は、BEネットワークI/F(図2では、BE I/Fと省略記載)25を介してBEネットワーク3に接続され、他の分散FSサーバ20との間で通信する。分散FSサーバ20は、BEネットワーク3を介して、他の分散FSサーバ20とメタデータを交換したり、他の情報を交換したりする。分散FSサーバ20は、BMC(Baseboard Management Controller)26を有し、常時(障害発生時も含む)、外部(例えば、管理サーバ30、分散FSサーバ20)からの電源操作を受け付け、受け付けた電源操作を処理する。BMC26は、通信プロトコルとしてIPMI(Intelligent Platform Management Interface)を使用できる。
図2に示す計算機システム1においては、FEネットワーク2及びBEネットワーク3を分離したネットワークとしているが、この構成に限られず、FEネットワーク2及びBEネットワーク3を同一のネットワークとして構成してもよい。
また、図2に示す計算機システム1においては、コンピュートサーバ10と、管理サーバ30と、分散FSサーバ20とを物理的に別のサーバとした例を示しているが、この構成に限られず、例えば、コンピュートサーバ10と分散FSサーバ20とを同じサーバで構成してもよく、管理サーバ30と分散FSサーバ20とを同じサーバで構成してもよく、管理サーバ30とコンピュートサーバ10とを同じサーバで構成してもよい。
次に、分散FSサーバ20の構成について説明する。
図3は、第1実施形態に係る分散FSサーバの構成図である。
分散FSサーバ20は、例えば、ベアメタルサーバで構成され、プロセッサの一例としてのCPU21、メモリ22、記憶装置23、FEネットワークI/F24、BEネットワークI/F25、及びBMC26を有する。
CPU21は、メモリ22上のプログラムに従って処理することによって、所定の機能を提供する。
メモリ22は、例えば、RAM(RANDOM ACCESS MEMORY)であり、CPU21で実行されるプログラムや、必要な情報を記憶する。メモリ22は、分散FS制御プログラム221、内部デバイス接続プログラム222、及び分散FS制御テーブル223を記憶する。
分散FS制御プログラム221は、CPU21に実行されることにより、他の分散FSサーバ20の分散FS制御プログラム221と協調し、分散FSを構成する。また、分散FS制御プログラム221は、CPU21に実行されることにより、コンピュートサーバ10に対して永続化ボリュームを提供する。
内部デバイス接続プログラム222は、CPU21に実行されることにより、内部デバイス(記憶装置23)に対してデータの読み書きを行う。
分散FS制御テーブル223は、分散FSを制御するための情報を管理するテーブルである。分散FS制御テーブル223は、クラスタを構成する全ての分散FSサーバ20において同一内容となるように同期されている。分散FS制御テーブル223の詳細については、図10を用いて後述する。
FEネットワークI/F24は、FEネットワーク2に接続するための通信インターフェースデバイスである。BEネットワークI/F25は、BEネットワーク3に接続するための通信インターフェースデバイスである。FEネットワークI/F24と、BEネットワークI/F25とは、例えば、イーサネット(登録商標)のNIC(Network Interface Card)であってもよく、InfiniBandのHCA(Host Channel Adapter)であってもよい。
BMC26は、分散FSサーバ20の電源制御インターフェースを提供するデバイスである。BMC26は、CPU21及びメモリ22と独立して動作し、CPU21又はメモリ22に障害が発生した場合でも、外部からの電源制御要求を受け付けて電源制御を処理することができる。
記憶装置23は、分散FSサーバ20で使用するOSや各種プログラム、分散FSで管理するファイルのデータを格納する不揮発性記憶媒体である。記憶装置23は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、NVMeSSD(Non-Volatile Memory Express SSD)であってもよい。
次に、コンピュートサーバ10の構成について説明する。
図4は、第1実施形態に係るコンピュートサーバの構成図である。
コンピュートサーバ10は、プロセッサの一例としてのCPU11、メモリ12、記憶装置13、FEネットワークI/F14、BEネットワークI/F15、及びBMC16を有する。
CPU11は、メモリ12上のプログラムに従って処理することによって、所定の機能を提供する。
メモリ12は、例えば、RAMであり、CPU11で実行されるプログラムや、必要な情報を記憶する。メモリ12は、サーバ内コンテナ制御プログラム121、分散FSクライアントプログラム122、及びDBコンテナプログラム123を記憶する。
サーバ内コンテナ制御プログラム121は、CPU11に実行されることにより、管理サーバ30の後述するコンテナオーケストレータプログラム321の指示に従って、コンピュートサーバ内のコンテナプログラムのデプロイや監視を行う。本実施形態では、複数のコンピュートサーバ10のサーバ内コンテナ制御プログラム121とコンテナオーケストレータプログラム321とが協調することにより、コンテナの実行基盤であるクラスタを構成する。
分散FSクライアントプログラム122は、CPU11に実行されることにより、分散FSサーバ20に接続し、コンピュートサーバ10のコンテナから分散FSのファイルに対してデータの読み書きを行う。
DBコンテナプログラム123は、CPU11に実行されることにより、コンピュートサーバ10のコンテナをDBコンテナとして構成し、DBを管理する処理を動作する。ここで、DBコンテナにより実現される機能が処理機能の一例である。
FEネットワークI/F14は、FEネットワーク2に接続するための通信インターフェースデバイスである。BEネットワークI/F15は、BEネットワーク3に接続するための通信インターフェースデバイスである。FEネットワークI/F14と、BEネットワークI/F15は、例えば、イーサネット(登録商標)のNICであってもよく、InfiniBandのHCAであってもよい。
BMC16は、コンピュートサーバ10の電源制御インターフェースを提供するデバイスである。BMC16は、CPU11及びメモリ12と独立して動作し、CPU11又はメモリ12に障害が発生した場合でも、外部からの電源制御要求を受け付けて電源制御を処理することができる。
記憶装置13は、コンピュートサーバ10で使用するOSや各種プログラムやデータを格納する不揮発性記憶媒体である。記憶装置13は、HDD、SSD、NVMeSSDであってもよい。
次に、管理サーバ30の構成について説明する。
図5は、第1実施形態に係る管理サーバの構成図である。
管理サーバ30は、プロセッサの一例としてのCPU31、メモリ32、記憶装置33、及びFEネットワークI/F34を有する。管理サーバ30には、ディスプレイ35や、マウスやキーボード等の入力装置36が接続される。
CPU31は、メモリ32上のプログラムに従って処理することによって、所定の機能を提供する。
メモリ32は、例えば、RAMであり、CPU31で実行されるプログラムや、必要な情報を記憶する。メモリ32は、コンテナオーケストレータプログラム321と、DBコンテナ管理プログラム322と、分散FSボリューム管理プログラム323、サーバ管理テーブル324、コンテナ管理テーブル325、PV管理テーブル326、及びデータ保護可否テーブル327を記憶する。
コンテナオーケストレータプログラム321は、CPU31に実行されることにより、複数のコンピュートサーバ10におけるコンテナを統合管理する。コンテナオーケストレータプログラム321は、例えば、管理者の指示に従って、コンテナのデプロイ・アンデプロイ、監視の制御を行う。コンテナオーケストレータプログラム321は、各コンピュートサーバ10に対する制御を、サーバ内コンテナ制御プログラム121、DBコンテナ管理プログラム322、及び分散FSボリューム管理プログラム323に指示することにより行う。
DBコンテナ管理プログラム322は、コンテナオーケストレータプログラム321からの指示に基づいて、DBコンテナのデプロイ・アンデプロイを行う。分散FSボリューム管理プログラム323は、コンテナオーケストレータプログラム321からの指示に基づいて、コンテナへのPVの割り当てを行う。ここで、PVの割り当てを行うプログラムを総称して、ストレージデーモンと呼ぶ。
サーバ管理テーブル324は、コンテナオーケストレータプログラム321が計算機システム1のサーバを管理するための情報を格納するテーブルである。サーバ管理テーブル324の詳細については、図6を用いて後述する。
コンテナ管理テーブル325は、コンテナオーケストレータプログラム321がコンピュートサーバ10に構成するコンテナを管理するための情報を格納するテーブルである。コンテナ管理テーブル325の詳細については、図7を用いて後述する。
PV管理テーブル326は、分散FSボリューム管理プログラム323がPVを管理するための情報を格納するテーブルである。PV管理テーブル326の詳細については、図8を用いて後述する。
データ保護可否テーブル327は、分散FSボリューム管理プログラム323がコンテナのデータ保護可否を管理するための情報を格納するテーブルである。データ保護可否テーブル327の詳細については、図9を用いて後述する。
FEネットワークI/F34は、FEネットワーク2に接続するための通信インターフェースデバイスである。FEネットワークI/F34は、例えば、イーサネット(登録商標)のNICであってもよく、InfiniBandのHCAであってもよい。
記憶装置33は、管理サーバ30で使用するOSや各種プログラムやデータを格納する不揮発性記憶媒体である。記憶装置33は、HDD、SSD、NVMeSSDであってもよい。
次に、サーバ管理テーブル324の構成について説明する。
図6は、第1実施形態に係るサーバ管理テーブルの構成図である。
サーバ管理テーブル324は、計算機システム1における各サーバ(コンピュートサーバ10、分散FSサーバ20)の情報を管理するための管理情報を格納する。サーバ管理テーブル324は、サーバ毎のエントリを格納する。サーバ管理テーブル324のエントリは、サーバ名324aと、IPアドレス324bと、サーバ種別324cとのフィールドを含む。
サーバ名324aには、エントリに対応するサーバを識別する情報(例えば、サーバ名)を格納する。ここで、サーバ名は、例えば、FEネットワーク2においてエントリに対応するサーバを識別するネットワーク識別子(例えば、ホスト名)である。IPアドレス324bには、エントリに対応するサーバのIPアドレスが格納される。サーバ種別324cには、エントリに対応するサーバの種別(サーバ種別)が格納される。本実施形態では、サーバ種別としては、コンピュートサーバ、分散FSサーバとがある。
次に、コンテナ管理テーブル325の構成について説明する。
図7は、第1実施形態に係るコンテナ管理テーブルの構成図である。
コンテナ管理テーブル325は、コンピュートサーバ10にデプロイされたコンテナを管理するためのテーブルである。コンテナ管理テーブル325は、コンテナ毎のエントリを格納する。コンテナ管理テーブル325のエントリは、コンテナID325aと、アプリケーション325bと、コンテナイメージ325cと、稼働サーバ325dと、ストレージデーモン325eと、PV ID325fと、デプロイ種別325gと、デプロイ制御ID325hと、のフィールドを含む。
コンテナID325aには、エントリに対応するコンテナの識別子(コンテナID)が格納される。アプリケーション325bには、エントリに対応するコンテナを構成するアプリケーションの種別が格納される。アプリケーションの種別としては、NoSQLのDBコンテナを構成するアプリケーションであるNoSQL、SQLのDBコンテナを構成するアプリケーションであるSQL等がある。コンテナイメージ325cには、エントリに対応するコンテナの実行イメージの識別子が格納される。稼働サーバ325dには、エントリに対応するコンテナが稼働するコンピュートサーバ10のサーバ名が格納される。なお、稼働サーバ325dには、サーバ名に代えてコンピュートサーバ10のIPアドレスが格納されていてもよい。
ストレージデーモン325eには、エントリに対応するコンテナにPVを割り当てる制御プログラム(ストレージデーモン)の名前が格納される。PV ID325fには、エントリに対応するコンテナに割り当てられたPVの識別子(PV ID)が格納される。デプロイ種別325gには、エントリに対応するコンテナのデプロイの種別(デプロイ種別)が格納される。デプロイ種別としては、単一のコンピュートサーバ10でコンテナを操作させるNoneと、複数のサーバの組(レプリカセット:ReplicaSet)でコンテナを冗長化して動作させるReplicaSetとがある。デプロイ制御ID325hには、エントリに対応するコンテナに対する制御に関する識別子(デプロイ制御ID)が格納される。ここで、同一のReplicaSetとしてデプロイされたコンテナには、同一のデプロイ制御IDが対応付けられる。
次に、PV管理テーブル326の構成について説明する。
図8は、第1実施形態に係るPV管理テーブルの構成図である。
PV管理テーブル326は、PVを管理するためのテーブルである。PV管理テーブル326は、PV毎のエントリを格納する。PV管理テーブル326のエントリは、PV ID326aと、格納ストレージ326bと、FS ID326cと、のフィールドを含む。
PV ID326aには、エントリに対応するPVの識別子(PV ID)が格納される。格納ストレージ326bには、エントリに対応するPVを格納する分散FSサーバ20のサーバ名が格納される。なお、格納ストレージ326bには、サーバ名に代えて分散FSサーバ20のIPアドレスが格納されてもよい。FS ID326cには、エントリに対応するPVを格納する分散FSの識別子(FS ID)が格納される。
次に、データ保護可否テーブル327の構成について説明する。
図9は、第1実施形態に係るデータ保護可否テーブルの構成図である。
データ保護可否テーブル327は、アプリケーション毎のデータ保護(データ冗長化)の可否に関する情報(特徴情報)を管理するテーブルである。なお、データ保護可否テーブル327の設定値は、管理者により事前に登録されていてもよい。データ保護可否テーブル327は、アプリケーション毎のエントリを格納する。データ保護可否テーブル327のエントリは、アプリケーション327aと、コンテナイメージ327bと、データ保護可否327cと、のフィールドを含む。
アプリケーション327aには、エントリに対応するアプリケーションの種別が格納される。コンテナイメージ327bには、エントリに対応するアプリケーションで構成されるコンテナの実行イメージの識別子が格納される。データ保護可否327cには、エントリに対応するアプリケーションにより構成されるコンテナにおいて、データ保護が可能であるかを示すデータ保護可否(可能、不可能)の情報が格納される。データ保護可否327cにおいてデータ保護が可能である場合において、このアプリケーションにより構成されるコンテナについてReplicaSetが構成されていれば、実際にデータ保護が行われる。
次に、分散FS制御テーブル223の構成について説明する。
図10は、第1実施形態に係る分散FS制御テーブルの構成図である。
分散FS制御テーブル223は、分散FSを管理し、制御するための情報を格納するテーブルである、分散FS制御テーブル223は、分散FSに含まれる分散FSサーバのデバイス(記憶装置)毎のエントリを含む。分散FS制御テーブル223のエントリは、FS ID223aと、データ保護方式223bと、分散FSサーバ223cと、デバイスファイル223dとのフィールドを含む。
FS ID223aには、エントリに対応するデバイスで構成されている分散FSの識別子(FS ID)が格納される。なお、エントリに対応するデバイスが分散FSを構成していない場合には、FS ID223aには、未使用と設定される。データ保護方式223bには、エントリに対応するデバイスにより構成されるFSにおけるデータ保護方式が格納される。データ保護方式としては、複製によってデータを保護するReplicationと、複数の分散FSサーバでデータを符号化し保護するErasure Codingと、データ保護方式を採用していないNoneとがある。分散FSサーバ223cには、エントリに対応するデバイスが含まれる分散FSサーバ20のサーバ名が格納される。なお、分散FSサーバ223cには、サーバ名に代えて分散FSサーバ20のIPアドレスが格納されていてもよい。デバイスファイル223dには、エントリに対応するデバイスにアクセスするための制御情報であるデバイスファイルのパスが格納される。
次に、第1実施形態に係る計算機システム1の処理動作について説明する。
図11は、第1実施形態に係るコンテナ作成処理のシーケンス図である。
管理サーバ30のコンテナオーケストレータプログラム321(厳密には、コンテナオーケストレータプログラム321を実行するCPU31)は、管理者からのDBコンテナ作成要求を受け取ると(S101)、DBコンテナ作成を開始する(S102)。ここで、DBコンテナ作成要求は、例えば、管理サーバ30の入力装置を介して管理者から受け取ってもよいし、図示しない管理者の端末から受信するようにしてもよい。また、DBコンテナ作成要求には、作成対象のDBコンテナ(対象コンテナ)の情報として、コンテナ管理テーブル325のエントリに登録する一部の情報(例えば、アプリケーション、コンテナイメージ、ストレージデーモン、デプロイ種別)とDBコンテナに割り当てるPVのサイズとが含まれる。
コンテナオーケストレータプログラム321は、DBコンテナ作成を開始すると、DBコンテナ管理プログラム322にDBコンテナ作成要求を渡すことによりDBコンテナの作成を指示する(S103)。
DBコンテナの作成の指示を受け取ると、DBコンテナ管理プログラム322は、コンピュートサーバ10のサーバ内コンテナ制御プログラム121に指示してDBコンテナを作成し(S104)、DBコンテナを作成した応答をコンテナオーケストレータプログラム321に返す(S105)。なお、DBコンテナ作成要求に、ReplicaSetの指定が含まれている場合には、コンテナオーケストレータプログラム321は、同一のReplicaSetに含まれるDBコンテナの数分のコンピュートサーバ10に対してDBコンテナを作成する。
次いで、コンテナオーケストレータプログラム321は、DBコンテナ作成要求に含まれるストレージデーモン(分散FSボリューム管理プログラム)を参照し、分散FSボリューム管理プログラム323に対してPV作成・割当要求を送信する(S106)。ここで、PV作成・割当要求には、PVの割当先のコンテナID、PVの容量等が含まれる。なお、DBコンテナ作成要求に、ReplicaSetの指定が含まれている場合には、コンテナオーケストレータプログラム321は、同一のReplicaSetに含まれるDBコンテナの数分のPVについてのPV作成・割当要求を送信する。
分散FSボリューム管理プログラム323は、PV作成・割当要求を受け取ると、PVの割当先のDBコンテナのデータ保護(冗長化)有無を判定するデータ保護有無判定処理(図12参照)を行う(S107)。
次いで、分散FSボリューム管理プログラム323は、PVの割当先のDBコンテナでデータ保護がある場合には、データ保護があるDBコンテナに対してPVを作成して割り当てるPV作成・割当処理(図13参照)を行い(S108)、PVの割り当てを行ったとの応答をコンテナオーケストレータプログラム321に返す(S109)。なお、PVの割当先のDBコンテナでデータ保護がない場合には、分散FSボリューム管理プログラム323は、DBコンテナに対して分散FSによるデータ保護のあるPVを作成して割り当てる。
コンテナオーケストレータプログラム321は、PVの割り当てを行ったとの応答を受け取ると、作成したDBコンテナを起動し(S110)、DBコンテナを起動したとの応答をDBコンテナ作成要求元に返す(S111)。
次に、ステップS107のデータ保護有無判定処理について説明する。
図12は、第1実施形態に係るデータ保護有無判定処理のフローチャートである。
まず、分散FSボリューム管理プログラム323は、コンテナオーケストレータプログラム321に問合わせて、コンテナ管理テーブル325からPVの割当先のコンテナ(対象コンテナ)の情報(アプリケーション種別、コンテナイメージの識別子、デプロイ種別等)を取得する(S201)。
次いで、分散FSボリューム管理プログラム323は、ステップS201で取得した対象コンテナのアプリケーション種別及びコンテナイメージを用いて、データ保護可否テーブル327を参照し、対象コンテナのデータ保護可否の情報を取得する(S202)。
次いで、分散FSボリューム管理プログラム323は、ステップS202で取得したデータ保護可否の情報に基づいて、対象コンテナがデータ保護可能であるか否かを判定し(S203)、対象コンテナがデータ保護可能であると判定した場合(S203:Yes)には、処理をステップS204に進める。
ステップS204では、分散FSボリューム管理プログラム323は、対象コンテナが冗長化されているか否か、すなわち、デプロイ種別がReplicaSetであるか否かを判定する。
この結果、分散FSボリューム管理プログラム323は、対象コンテナが冗長化されていると判定した場合(S204:Yes)には、対象コンテナをデータ保護ありと判定し(S205)、処理を終了する。
一方、ステップS203で対象コンテナがデータ保護可能でないと判定した場合(S203:No)、又は、対象コンテナが冗長化されていないと判定した場合(S204:No)には、分散FSボリューム管理プログラム323は、対象コンテナをデータ保護なしと判定し、処理を終了する。
次に、ステップS108のPV作成・割当処理について説明する。
図13は、第1実施形態に係るPV作成・割当処理のフローチャートである。PV作成・割当処理は、データ保護有無判定処理において、データ保護ありと判定された場合に実行される。
分散FSボリューム管理プログラム323は、分散FSサーバ20から分散FSを構成する分散FSサーバ20の情報(例えば、分散FS制御テーブル223)を取得する(S301)。
次いで、分散FSボリューム管理プログラム323は、分散FS制御テーブル223を参照し、冗長化されたコンテナ(同一のデプロイ制御IDが振られているコンテナ)の数(冗長数)分のデータ保護なし(データ保護方式がNone)の分散FSを選択する(S302)。具体的には、分散FSボリューム管理プログラム323は、分散FSを構成する分散FSサーバ20を調べて、分散FSを構成する分散FSサーバ20が重複しないように冗長数分の分散FSを選択する。
次いで、分散FSボリューム管理プログラム323は、ステップS302で冗長数分の分散FSの選択が成功したか否かを判定する(S303)。
この結果、冗長数分の分散FSの選択が成功したと判定した場合(S303:Yes)には、分散FSボリューム管理プログラム323は、コンテナオーケストレータプログラム321に問合わせて、コンテナ管理テーブル325とPV管理テーブル326とを取得し、これらテーブルを参照して、割当対象のコンテナが構成するReplicaSetを構成するコンテナに対して重複しないように分散FSを選択し(S304)、選択した分散FSにおいて、データ保護なしのPVを作成し、PV管理テーブル326に作成したPVのエントリを登録し(S305)、処理をステップS309に進める。
一方、冗長数分の分散FSの選択が成功していないと判定した場合(S303:No)には、分散FSボリューム管理プログラム323は、冗長数分の新たな分散FSを作成する分散FS作成処理(図14参照)を実行する(S306)。
次いで、分散FSボリューム管理プログラム323は、冗長数分の分散FSの作成に成功したか否かを判定する(S307)。
この結果、冗長数分の分散FSの作成に成功したと判定した場合(S307:Yes)には、分散FSボリューム管理プログラム323は、処理をステップS304に進める。
一方、冗長数分の分散FSの作成に成功していないと判定した場合(S307:No)には、分散FSボリューム管理プログラム323は、各DBコンテナに割り当てるためのデータ保護ありのPV(データ保護方式がNone以外)を作成し、PV管理テーブル326に作成したPVのエントリを登録し(S308)、処理をステップS309に進める。
ステップS309では、分散FSボリューム管理プログラム323は、DBコンテナを作成した各コンピュートサーバ10のサーバ内コンテナ制御プログラム121に対して、作成したPVの情報(PV ID,接続情報等)を通知し、作成したPVを各コンテナに割り当てさせ、コンテナ管理テーブル325の各コンテナのレコードに割り当てたPVのPV IDを登録し、その後、処理を終了する。
次に、ステップS306の分散FS作成処理について説明する。
図14は、第1実施形態に係る分散FS作成処理のフローチャートである。
分散FSボリューム管理プログラム323は、分散FSサーバ20から分散FS制御テーブル223を取得し、分散FS制御テーブル223を参照し、未使用のデバイスを有する分散FSサーバ20を使用可能な分散FSサーバ20と特定する(S401)。
次いで、分散FSボリューム管理プログラム323は、使用可能な分散FSサーバ20の数を、対象コンテナと同一のReplicaSetを構成するコンテナ数で除算することにより、分散FSあたりの分散FSサーバ数を算出する(S402)。
次いで、分散FSボリューム管理プログラム323は、分散FSサーバ20に指示して、ステップS402で算出した分散FSサーバ数の分散FSサーバ20から構成される分散FSを、ReplicaSetの構成数分作成する(S403)。なお、分散FSボリューム管理プログラム323は、各分散FSを構成する分散FSサーバ20が重複しないようにして、分散FSを作成する。
以上説明したように、本実施形態においては、データを冗長化して保護するDBコンテナに対しては、データ保護なしのPVを割り当てるようにしている。これにより、DBコンテナにおいてデータ保護されているデータが、分散FSにおいても重複してデータ保護されることを適切に防止することができ、記憶装置の記憶領域の利用効率を向上することができる。
<第2実施形態>
次に、第2実施形態に係る計算機システム1Aの概要について説明する。なお、第2実施形態の説明において、第1実施形態に係る計算機システム1と同様な構成については同一の符号を付すこととする。
図15は、第2実施形態に係る計算機システムにおけるDBコンテナへの永続化ボリューム割当処理の概要を説明する図である。
第2実施形態に係る計算機システム1Aでは、分散FSサーバの分散FSのデータを、複数のブロックSDS(Software Defined Storage)サーバ40により構成されるブロックSDSクラスタが提供する容量プール400に基づく論理ユニット(LU)に格納するようにしている。このようなシステムでは、DBコンテナ、分散FS、ブロックSDSの3つの層でデータ冗長化が行われうる。その場合、第1実施形態に比べ、さらに容量効率が悪くなる。
本実施形態の分散FS200は、例えば、複数の分散FSサーバ20Aによって高可用制御が行われる高可用構成とされている。ここで、高可用制御とは、1の分散FSサーバ20Aが障害となった場合に、他の分散FSサーバ20Aがサービスを継続するように制御することをいう。
本実施形態においては、分散FSボリューム管理プログラム323は、コンテナオーケストレータプログラム321からコンテナ管理テーブル325(図7参照)を取得し、DBコンテナプログラム123が冗長化されてDBデータ131がデータ保護されるか否かを判定する(図15(1))。
分散FSボリューム管理プログラム323は、DBコンテナプログラム123のDBデータがデータ保護される場合には、分散FSでデータ保護なしかつブロックSDSでもデータ保護しないPVを作成して(図15(2))、DBコンテナプログラム123により構成されるDBコンテナに割り当てる。
本実施形態では、分散FSボリューム管理プログラム323は、各DBコンテナに割り当てられるPV間で、記憶領域を提供するブロックSDSサーバ40が重複しないように、分散FS200を選択する。なお、このような分散FS200が存在しない場合には、新たに分散FS200を作成するようにしている。
図16は、第2実施形態に係る計算機システムの全体構成図である。なお、第2実施形態においては、第1実施形態に係る計算機システム1と同様な構成については同一符号を付すこととする。
計算機システム1Aは、複数のコンピュートサーバ10と、複数の分散FSサーバ20Aと、複数のブロックSDSサーバ40と、管理サーバ30と、FEネットワーク2と、BEネットワーク3と、を備える。
管理サーバ30と、コンピュートサーバ10と、分散FSサーバ20Aと、ブロックSDSサーバ40とは、FEネットワーク2を介して接続されている。また、複数の分散FSサーバ20Aと、複数のブロックSDSサーバ40とは、BEネットワーク3を介して接続されている。
ブロックSDSサーバ40は、ブロックストレージの一例であり、分散FSサーバ20Aに対して論理的な記憶領域である論理ユニット(LU)を提供する。ブロックSDSサーバ40は、FEネットワークI/F44を介してFEネットワーク2に接続され、管理サーバ30からの管理要求を受信し、処理する。ブロックSDSサーバ40は、BEネットワークI/F45を介してBEネットワーク3に接続され、分散FSサーバ20Aや、他のブロックSDS40との間で通信する。ブロックSDSサーバ40は、BEネットワーク3を介して、分散FSサーバ20Aからのデータの読み書きを実行する。
なお、図16に示す計算機システム1Aにおいては、コンピュートサーバ10と、管理サーバ30と、分散FSサーバ20Aと、ブロックSDSサーバ40とを物理的に別のサーバとした例を示しているが、この構成に限られず、例えば、分散FSサーバ20AとブロックSDSサーバ40とを同じサーバで構成してもよい。
次に、分散FSサーバ20Aの構成について説明する。
図17は、第2実施形態に係る分散FSサーバの構成図である。
分散FSサーバ20Aは、第1実施形態に係る分散FSサーバ20において、メモリ22に、外部ストレージ接続プログラム224と、高可用制御プログラム225と、外部接続LU管理テーブル226とをさらに格納する。
外部ストレージ接続プログラム224は、CPU21に実行されることにより、ブロックSDSサーバ40が提供するLUにアクセスする処理を行う。高可用制御プログラム225は、CPU21に実行されることにより、高可用構成となっている複数の分散FSサーバ20A間で生死監視を行い、1つの分散FSサーバ20Aの障害時に他の分散FSサーバ20Aに処理を引き継ぐ。
外部接続LU管理テーブル226は、分散FSサーバ20Aが接続したブロックSDSサーバ40が提供するLUを管理するテーブルである。外部接続LU管理テーブル226の詳細については、図19を用いて後述する。
なお、BEネットワークI/F25は、例えば、iSCSI、FC(Fibre channel)、NVMe-oF(NVMe over Fablic)でブロックSDSサーバ40に接続してもよい。
次に、ブロックSDSサーバ40の構成について説明する。
図18は、第2実施形態に係るブロックSDSサーバの構成図である。
ブロックSDSサーバ40は、プロセッサの一例としてのCPU41、メモリ42、記憶装置43、FEネットワークI/F44、BEネットワークI/F45、及びBMC46を有する。
CPU41は、メモリ42上のプログラムに従って処理することによって、所定の機能を提供する。
メモリ42は、例えば、RAMであり、CPU41で実行されるプログラムや、必要な情報を記憶する。メモリ42は、ブロックSDS制御プログラム421及びLU管理テーブル422を記憶する。
ブロックSDS制御プログラム421は、CPU41に実行されることにより、上位のクライアント(本実施形態では、分散FSサーバ20A)に対してブロックレベルでの読み書きが可能なLUを提供する。
LU管理テーブル422は、LUを管理するテーブルである。LU管理テーブル422の詳細については、図20を用いて後述する。
FEネットワークI/F44は、FEネットワーク2に接続するための通信インターフェースデバイスである。BEネットワークI/F45は、BEネットワーク3に接続するための通信インターフェースデバイスである。FEネットワークI/F44と、BEネットワークI/F45は、例えば、イーサネット(登録商標)のNICであってもよく、InfiniBandのHCAであってもよく、iSCSI、FC、NVMe-oFに対応していてもよい。
BMC46は、ブロックSDSサーバ40の電源制御インターフェースを提供するデバイスである。BMC46は、CPU41及びメモリ42と独立して動作し、CPU41又はメモリ42に障害が発生した場合でも、外部からの電源制御要求を受け付けて電源制御を処理することができる。
記憶装置43は、ブロックSDSサーバ40で使用するOSや各種プログラムを記憶するとともに、分散FSに対して提供するLUのデータを格納する不揮発性記憶媒体である。記憶装置43は、HDD、SSD、NVMeSSDであってもよい。
次に、外部接続LU管理テーブル226の構成について説明する。
図19は、第2実施形態に係る外部接続LU管理テーブルの構成図である。
外部接続LU管理テーブル226は、分散FSサーバ20Aに接続されたブロックSDSサーバ40により提供されるLUを管理するための情報を格納する。外部接続LU管理テーブル226は、LU毎のエントリを格納する。外部接続LU管理テーブル226のエントリは、ブロックSDSサーバ226aと、ターゲット識別子226bと、LUN226cと、デバイスファイル226dと、フェイルオーバ先分散FSサーバ226eとのフィールドを含む。
ブロックSDSサーバ226aには、エントリに対応するLUを格納するブロックSDSサーバ40のサーバ名が格納される。ブロックSDSサーバ226aには、サーバ名に代えてブロックSDSサーバ40のIPアドレスが格納されていてもよい。ターゲット識別子226bには、エントリに対応するLUを格納するブロックSDSサーバ40のポートの識別情報(ターゲット識別子)が格納される。ターゲット識別子は、分散FSサーバ20AがブロックSDSサーバ40とのセッションの確立時に使用される。LUN226cには、エントリに対応するLUのブロックSDSクラスタ内での識別子(LUN(Logical Unit Number))が格納される。デバイスファイル226dには、エントリに対応するLUについてのデバイスファイルのパスが格納される。フェイルオーバ先分散FSサーバ226eには、エントリに対応するLUについてのフェイルオーバ先の分散FSサーバ20Aのサーバ名が格納される。
次に、LU管理テーブル422の構成について説明する。
図20は、第2実施形態に係るLU管理テーブルの構成図である。
LU管理テーブル422は、LUを管理する管理情報を格納する。LU管理テーブル422は、LU毎のエントリを格納する。LU管理テーブル422のエントリは、LUN422aと、データ保護レベル422bと、容量422cと、使用ブロックSDSサーバ422dとのフィールドを含む。
LUN422aには、エントリに対応するLUのLUNが格納される。データ保護レベル422bには、エントリに対応するLUのデータ保護レベルが格納される。データ保護レベルとしては、データ保護をしていないことを示すNoneと、データを複製してデータ保護をしていることを示すReplicationと、EC(Erasure Coding)によりデータ保護をしていることをしめすErasure Codeとがある。容量422cには、エントリに対応するLUの容量が格納される。使用ブロックSDSサーバ422dには、エントリに対応するLUの記憶領域に使用されているブロックSDSサーバ40のサーバ名が格納されている。
次に、第2実施形態に係るPV作成・割当処理について説明する。
図21は、第2実施形態に係るPV作成・割当処理のフローチャートである。
第2実施形態に係るPV作成・割当処理は、図13に示すPV作成・割当処理に代えて実行される処理である。
分散FSボリューム管理プログラム323は、分散FSサーバ20から分散FS制御テーブル223と外部接続LU管理テーブル226とを取得し、ブロックSDSサーバ40からLU管理テーブル422を取得する(S501)。
次いで、分散FSボリューム管理プログラム323は、分散FSによる冗長化がされておらず、使用するLUがデータ保護されていない分散FSであって、使用するブロックSDSサーバ40が重複しない分散FSを、冗長数分だけ選択する(S502)。具体的には、分散FSによる冗長化されていない分散FSであることは、分散FS制御テーブル223を参照し、データ保護方式がNoneであることにより特定できる。また、特定した分散FSで使用するLUがデータ保護されていないことは、分散FS制御テーブル223を参照して分散FSのデバイスファイルを特定し、外部接続LU管理テーブル226を参照し、特定したデバイスファイルに対応するブロックSDSサーバ及びLUNを特定し、特定したブロックSDSサーバのLU管理テーブル422を参照して、特定したLUNのLUのデータ保護レベルがNoneであることにより特定される。また、分散FSで使用するブロックSDSサーバ40が重複しているか否かについては、LU管理テーブル422の各分散FSに対応するLUの使用ブロックSDSサーバを参照することにより特定できる。
次いで、分散FSボリューム管理プログラム323は、ステップS302で冗長数分の分散FSが存在するか否かを判定する(S503)。
この結果、冗長数分の分散FSが存在すると判定した場合(S503:Yes)には、分散FSボリューム管理プログラム323は、コンテナオーケストレータプログラム321に問合わせて、コンテナ管理テーブル325とPV管理テーブル326を取得し、これらテーブルを参照して、割当対象のコンテナを含むReplicaSetを構成するコンテナに対して重複しないように分散FSを選択し(S504)、選択した分散FSにおいて、データ保護なしのPVを作成し、PV管理テーブル326に作成したPVのエントリを登録し(S505)、処理をステップS509に進める。
一方、冗長数分の分散FSが存在していないと判定した場合(S503:No)には、分散FSボリューム管理プログラム323は、冗長数分の新たなLU及び分散FSを作成するLU・分散FS作成処理(図22参照)を実行する(S506)。
次いで、分散FSボリューム管理プログラム323は、冗長数分の分散FSの作成に成功したか否かを判定する(S507)。
この結果、冗長数分の分散FSの作成に成功したと判定した場合(S507:Yes)には、分散FSボリューム管理プログラム323は、処理をステップS504に進める。
一方、冗長数分の分散FSの作成に成功していないと判定した場合(S507:No)には、分散FSボリューム管理プログラム323は、任意の分散FSに、各DBコンテナに割り当てるためのデータ保護ありのPV(データ保護方式がNone以外)を作成し、PV管理テーブル326に作成したPVのエントリを登録し(S508)、処理をステップS509に進める。
ステップS509では、分散FSボリューム管理プログラム323は、DBコンテナを作成した各コンピュートサーバ10のサーバ内コンテナ制御プログラム121に対して、作成したPVの情報(PV ID,接続情報等)を通知し、作成したPVを各コンテナに割り当てさせ、コンテナ管理テーブル325の各コンテナのレコードに割り当てたPVのPV IDを登録し、その後、処理を終了する。
この処理によると、データを冗長化して保護するDBコンテナに対しては、データ保護なしの分散FSにおける、データ保護のないLUにより構成されたPVを割り当てるようにしている。これにより、DBコンテナにおいてデータ保護されているデータが、分散FSやブロックSDSサーバにおいても重複してデータ保護されることを適切に防止することができ、記憶装置の記憶領域の利用効率を適切に向上することができる。
次に、第2実施形態に係るLU・分散FS作成処理について説明する。
図22は、第2実施形態に係るLU・分散FS作成処理のフローチャートである。
LU・分散FS作成処理においては、分散FSボリューム管理プログラム323は、対象ブロックを含むReplicaSetに含まれるコンテナ数分の分散FSを作成する。ここで、作成する分散FSは、データ保護なしであり、且つデータ保護なしのLUを用いて構成される。
まず、分散FSボリューム管理プログラム323は、コンテナオーケストレータプログラム321に問合わせてサーバ管理テーブル324を取得し、サーバ管理テーブル324を参照して、サーバ管理テーブル324に登録されている全ての分散FSサーバを使用可能な分散FSサーバとして特定する(S601)。
次いで、分散FSボリューム管理プログラム323は、使用可能な分散FSサーバ20の数を、対象コンテナのReplicaSetを構成するコンテナ数で除算することにより、分散FSあたりの分散FSサーバ数を算出する(S602)。
次いで、分散FSボリューム管理プログラム323は、ステップS601で取得したサーバ管理テーブル324を参照し、使用可能なブロックSDSサーバ40を特定する(S603)。
次いで、分散FSボリューム管理プログラム323は、作成する分散FSごとに使用するブロックSDSサーバ40を決定する(S604)。
次いで、分散FSボリューム管理プログラム323は、ブロックSDSサーバ40に指示して、ステップS604で決定したブロックSDSサーバ40を使用し、分散FSごとに、ステップS602で決定した分散FSあたりのサーバ数分のLUを作成する(S605)。
次いで、分散FSボリューム管理プログラム323は、作成したLUを分散FSサーバ20Aに接続し、必要な数の分散FSを作成する(S606)。この際、分散FSボリューム管理プログラム323は、それぞれの分散FSにおける、分散FSを構成する分散FSサーバ及びブロックSDSサーバが重複しないようにする。
次いで、分散FSボリューム管理プログラム323は、作成した各LUのフェイルオーバ先の分散FSサーバ20Aを選択し、LUを接続した分散FSサーバ20Aと選択した分散FSサーバ20Aとを高可用制御を行う高可用設定とし(S607)、処理を終了する。
次に、第2実施形態に係るフェイルオーバ処理について説明する。
図23は、第2実施形態に係るフェイルオーバ処理のシーケンス図である。
計算機システム1Aの複数の分散FSサーバ20Aの高可用制御プログラム225は、他の分散FSサーバ40の高可用制御プログラム225との間で、生死確認を行うためのハートビートを送受信する(S701)。
ここで、分散FSサーバ20A(図23では、分散FSサーバA)において、何らかの障害が発生した場合(S702)には、他の分散FSサーバ20A(図23では、分散FSサーバB)の高可用制御プログラム225は、分散FSサーバAからのハートビートを受信できないことから障害が発生したことを検知する(S703)。
分散FSサーバBの高可用制御プログラム225は、障害の発生した分散FSサーバAのBMC26に電源を遮断する指示を行い、分散FSサーバAの電源を遮断させる(S704)。
次いで、分散FSサーバBの高可用制御プログラム225は、分散FSサーバAのフェイルオーバ(F.O)先の分散FSサーバCに対して、フェイルオーバ指示を送信する(S705)。
フェイルオーバ指示を受けた分散FSサーバCの高可用制御プログラム225は、分散FSサーバAに使用されていたLUを接続し(S706)、フェイルオーバを実行するために、分散FS制御プログラム221を起動し(S707)、分散FS制御プログラム221により分散FSサーバAで実行される処理と同じ処理を開始し(S708)、処理を終了する。
なお、本発明は、上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で、適宜変形して実施することが可能である。
例えば、上記実施形態における分散FS作成処理(図14)及びLU・分散FS作成処理(図22)では、冗長数分の分散FSを作成するようにしていたが、本発明はこれに限られず、冗長数分に足りない数分(不足分)の分散FSを作成するようにしてもよい。
また、上記実施形態では、DBを管理するDBコンテナに対してPVを割り当てる例を示していたが、本発明はこれに限られず、例えば、DBを管理するVMや、ベアメタルサーバで実行されるDBを管理するプロセスに対してボリュームを割り当てる際にも適用することができる。
また、上記実施形態では、分散FSサーバ20をベアメタルサーバで構成した例を示していたが、分散FSサーバ20を、コンテナや、VM(仮想マシン)で構成してもよい。
また、上記実施形態において、CPUが行っていた処理の一部又は全部を、ハードウェア回路で行うようにしてもよい。また、上記実施形態におけるプログラムは、プログラムソースからインストールされてよい。プログラムソースは、プログラム配布サーバ又は記録メディア(例えば可搬型の記録メディア)であってもよい。
1,1A…計算機システム、10…コンピュートサーバ、20,20A…分散FSサーバ、30…管理サーバ、31…CPU、40…ブロックSDSサーバ、200…分散FS



Claims (11)

  1. 複数のファイルサーバを有し、ファイルを分散して管理する分散ファイルシステムと、前記分散ファイルシステムから提供される記憶領域を用いて所定の処理を実行する処理機能を有する複数の処理サーバと、前記処理サーバへの記憶領域の割り当てを管理する管理装置とを有する計算機システムであって、
    前記管理装置のプロセッサは、
    前記複数の処理サーバによって前記記憶領域のデータが冗長化によるデータ保護されるか否かを判定し、
    前記記憶領域のデータがデータ保護されると判定した場合に、前記複数の処理サーバの前記記憶領域として、前記分散ファイルシステムから前記分散ファイルシステムによってデータの冗長化によるデータ保護が実行されない記憶領域を割り当てる
    計算機システム。
  2. 前記管理装置は、
    前記処理サーバの処理機能におけるデータ保護に関する特徴情報を記憶し、
    前記プロセッサは、
    前記特徴情報に基づいて、前記複数の処理サーバによって前記記憶領域のデータが冗長化によるデータ保護されるか否かを判定する
    請求項1に記載の計算機システム。
  3. 前記分散ファイルシステムを複数有し、複数の前記分散ファイルシステムは、重複しない前記ファイルサーバの組で構成され、
    前記処理サーバの処理機能を複数の前記処理サーバで冗長化することにより、データ保護を行い、
    前記プロセッサは、
    前記処理機能を冗長化した複数の前記処理サーバのそれぞれに対して、異なる前記分散ファイルシステムの記憶領域を割り当てる
    請求項1に記載の計算機システム。
  4. 前記プロセッサは、
    前記処理機能を冗長化した複数の前記処理サーバに対して、異なる分散ファイルシステムの記憶領域を割り当てることが可能でない場合に、重複しないファイルサーバの組で構成される新たな分散ファイルシステムを複数作成し、作成した分散ファイルシステムの記憶領域を用いて、前記処理機能を冗長化した複数の処理サーバに対して、異なる前記分散ファイルシステムの記憶領域を割り当てる
    請求項3に記載の計算機システム。
  5. 前記プロセッサは、
    使用可能なファイルサーバの数を、前記処理機能を冗長化した前記複数の処理サーバのサーバ数で除算することにより得られた数の前記ファイルサーバにより前記新たな分散ファイルシステムを作成する
    請求項4に記載の計算機システム。
  6. ブロックレベルでデータを格納する記憶領域を有する論理ユニットを前記分散ファイルシステムに提供するブロックストレージを複数有し、
    前記分散ファイルシステムは、前記記憶領域として、前記ブロックストレージから提供される論理ユニットの記憶領域を提供する
    請求項1に記載の計算機システム。
  7. 前記分散ファイルシステムを複数有し、
    前記処理サーバの処理機能を複数の処理サーバで冗長化することにより、データ保護を行い、
    前記プロセッサは、
    前記処理機能を冗長化した複数の処理サーバに対して、異なる前記ブロックストレージの記憶領域が提供される異なる分散ファイルシステムの記憶領域を割り当てる
    請求項6に記載の計算機システム。
  8. 前記プロセッサは、
    前記処理機能を冗長化した複数の処理サーバに対して、異なる前記ブロックストレージの記憶領域が提供される異なる分散ファイルシステムであって、それそれの分散ファイルシステムがファイルサーバのいずれかに障害が発生した場合に他のファイルシステムがフェイルオーバ可能に構成されている分散ファイルシステムの記憶領域を割り当てる
    請求項7に記載の計算機システム。
  9. 前記処理機能は、前記処理サーバに構築されたコンテナ、又は仮想マシンにより実現される
    請求項1に記載の計算機システム。
  10. 前記処理機能は、データをデータベースで管理する機能である
    請求項1に記載の計算機システム。
  11. 複数のファイルサーバを有し、ファイルを分散して管理する分散ファイルシステムと、前記分散ファイルシステムから提供される記憶領域を用いて所定の処理を実行する処理機能を有する複数の処理サーバと、前記処理サーバへの記憶領域の割り当てを管理する管理装置とを有する計算機システムによる記憶領域割当制御方法であって、
    前記管理装置は、
    前記複数の処理サーバによって前記記憶領域のデータが冗長化によるデータ保護されるか否かを判定し、
    前記記憶領域のデータがデータ保護されると判定した場合に、前記複数の処理サーバの前記記憶領域として、前記分散ファイルシステムから前記分散ファイルシステムによってデータの冗長化によるデータ保護が実行されない記憶領域を割り当てる
    記憶領域割当制御方法。

JP2022079076A 2022-05-12 2022-05-12 計算機システム、及び記憶領域割当制御方法 Pending JP2023167703A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2022079076A JP2023167703A (ja) 2022-05-12 2022-05-12 計算機システム、及び記憶領域割当制御方法
US17/901,009 US20230367503A1 (en) 2022-05-12 2022-09-01 Computer system and storage area allocation control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022079076A JP2023167703A (ja) 2022-05-12 2022-05-12 計算機システム、及び記憶領域割当制御方法

Publications (1)

Publication Number Publication Date
JP2023167703A true JP2023167703A (ja) 2023-11-24

Family

ID=88698883

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022079076A Pending JP2023167703A (ja) 2022-05-12 2022-05-12 計算機システム、及び記憶領域割当制御方法

Country Status (2)

Country Link
US (1) US20230367503A1 (ja)
JP (1) JP2023167703A (ja)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4719802B2 (ja) * 2009-03-09 2011-07-06 富士通株式会社 ストレージ管理装置、ストレージ管理方法およびストレージシステム
US9678683B1 (en) * 2016-11-01 2017-06-13 Red Hat, Inc. Lazy persistent storage volume provisioning
US20180181324A1 (en) * 2016-12-26 2018-06-28 EMC IP Holding Company LLC Data protection with erasure coding and xor
US11467775B2 (en) * 2019-10-15 2022-10-11 Hewlett Packard Enterprise Development Lp Virtual persistent volumes for containerized applications

Also Published As

Publication number Publication date
US20230367503A1 (en) 2023-11-16

Similar Documents

Publication Publication Date Title
US9639277B2 (en) Storage system with virtual volume having data arranged astride storage devices, and volume management method
US9262087B2 (en) Non-disruptive configuration of a virtualization controller in a data storage system
US9229645B2 (en) Storage management method and storage system in virtual volume having data arranged astride storage devices
US9098466B2 (en) Switching between mirrored volumes
US8069217B2 (en) System and method for providing access to a shared system image
US20220413976A1 (en) Method and System for Maintaining Storage Device Failure Tolerance in a Composable Infrastructure
CN110096220B (zh) 一种分布式存储系统、数据处理方法和存储节点
US9875059B2 (en) Storage system
US11899533B2 (en) Stripe reassembling method in storage system and stripe server
US8949562B2 (en) Storage system and method of controlling storage system
JP2008210031A (ja) ストレージシステムの記憶領域管理方法
JP5843888B2 (ja) 計算機システムの管理方法、計算機システム及び記憶媒体
US8677094B2 (en) Storage system, release method, and secondary storage apparatus
US9612769B1 (en) Method and apparatus for automated multi site protection and recovery for cloud storage
US11693577B2 (en) Storage operation processing during data migration using migrated indicator from source storage
JP2023167703A (ja) 計算機システム、及び記憶領域割当制御方法
JP2024504171A (ja) オペレーティングシステムベースのストレージ方法およびシステム
JP2017058736A (ja) ストレージシステム、ストレージ制御装置およびアクセス制御方法
US20190332293A1 (en) Methods for managing group objects with different service level objectives for an application and devices thereof
US9785520B2 (en) Computer system, storage apparatus and control method
US11797312B2 (en) Synchronization of multi-pathing settings across clustered nodes
US11829602B2 (en) Intelligent path selection in a distributed storage system
US11507321B1 (en) Managing queue limit overflow for data storage device arrays
US11609711B2 (en) Distributed control path