ストレージシステム及び通信制御方法
【課題】同一プロトコルを用いた異なるファイルアクセスのそれぞれに対する返信パケットのQoSを独立に制御する。
【解決手段】ストレージシステム10は、NASクライアント80からのファイルアクセス要求を処理するプロトコル制御部27と、NASクライアント80からのファイルアクセス要求に対する応答としてNASクライアント80に返信される返信パケットに設定される優先度を、NASクライアント80がアクセスしたアクセス領域に予め設定されている優先度に基づいて計算する優先度計算部23を備える。
【解決手段】ストレージシステム10は、NASクライアント80からのファイルアクセス要求を処理するプロトコル制御部27と、NASクライアント80からのファイルアクセス要求に対する応答としてNASクライアント80に返信される返信パケットに設定される優先度を、NASクライアント80がアクセスしたアクセス領域に予め設定されている優先度に基づいて計算する優先度計算部23を備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はストレージシステム及び通信制御方法に関し、特に、ストレージシステムからクライアントに送信されるパケットの送信優先制御に関する。
【背景技術】
【0002】
大量のデータを管理するためのストレージシステムとして、ディスアレイシステムが用いられている。ディスクアレイシステムは、複数のディスクドライブをアレイ状に配設して構成されるもので、RAID(Redundant Arrays of Independent Inexpensive Disks)構成された記憶資源をホスト計算機に提供する。ホスト計算機とディスクアレイシステムとの間のインタフェースとして、FC(Fibre Channel)プロトコル、SCSI(Small Computer System Interface)プロトコル、iSCSI(internet SCSI)プロトコル、ESCON(Enterprise System Connection:登録商標)などのブロック単位でI/Oリクエストを処理するブロックI/Oインタフェースの他、NFS(Network File System)プロトコル、CIFS(Common Interface File System)プロトコルなどのファイル単位でI/Oリクエストを処理するファイルI/Oインタフェースが用いられている。
【0003】
近年、企業で取り扱うデータ容量の増加に伴い、ストレージシステムの利用形態も多様化しつつある。例えば、IPネットワーク経由でNASクライアントからのファイルアクセスを受信し、NASクライアントにファイルサービスを提供するNAS機能を搭載したストレージシステムが開発されている。ファイルサービス向上の観点から、IPネットワークを流れるIPパケットの通信品質の向上が検討されている。例えば、特開2002−244899号公報、及び特開2005−323245号公報には、QoS(Quality of Service)制御について言及されている。
【特許文献1】特開2002−244899号公報
【特許文献2】特開2005−323245号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
ところで、従来では、プロトコル単位でのQoS制御が中心であった。例えば、NFSプロトコル、CIFSプロトコル、NFSプロトコルのそれぞれに予め優先準位を設定しておいて、QoS制御をしていた。このようなQoS制御では、例えば、NFSプロトコルに基づくファイルアクセスに対する返信パケットの優先度は、CIFSプロトコルに基づくファイルアクセスに対する返信パケットの優先度よりも高く設定するということが可能である。
【0005】
しかし、NASサーバを用いたファイルサービスが提供されるようになると、同一プロトコルを用いた異なるファイルアクセスのそれぞれに対する返信パケットのQoSを独立に制御する必要性が生じてきた。例えば、あるNASクライアントから重要度の高いフォルダへのアクセス要求に対する返信パケットに設定される優先度は、他のNASクライアントから重要度の低いフォルダへのアクセス要求に対する返信パケットに設定される優先度よりも高い方が望ましい。
【0006】
そこで、本発明は同一プロトコルを用いた異なるアクセスのそれぞれに対する返信パケットのQoSを独立に制御するストレージシステム及び通信制御方法を提案することを課題とする。
【課題を解決するための手段】
【0007】
上記の課題を解決するため、本発明のストレージシステムは、クライアントからのアクセス要求を処理するストレージシステムであって、クライアントからのアクセス要求に対する応答としてクライアントに返信される返信パケットに設定される優先度を、クライアントがアクセスしたアクセス領域に予め設定されている優先度に基づいて計算する優先度計算部を備える。
【0008】
本発明の他の観点によるストレージシステムは、クライアントからのアクセス要求を処理するストレージシステムであって、クライアントからのアクセス要求に対する応答としてクライアントに返信される返信パケットに設定される優先度を、ストレージシステムの状態情報に基づいて計算する優先度計算部を備える。
【0009】
ここで、状態情報は、アクセス領域を提供するストレージデバイスの構成情報、ストレージシステムの負荷情報、ストレージシステムの障害情報のうち何れかの情報を含む。
【0010】
優先度計算部は、ストレージシステムに障害が生じているときには、ストレージシステムに障害が生じてないときよりも、返信パケットの優先度を低く設定してもよい。この計算方法は、ストレージシステムに障害が生じているときには、アクセスが遅延することを想定し、返信パケットの優先度を高くしても、その遅延分を補うことができないという運用方法に好適である。
【0011】
優先度計算部は、ストレージシステムに障害が生じているときには、ストレージシステムに障害が生じてないときよりも、返信パケットの優先度を高く設定してもよい。この計算方法は、ストレージシステムに障害が生じているときには、返信パケットの優先度を高くしてアクセスの遅延を補うという運用方法に好適である。
【0012】
本発明の通信制御方法は、クライアントからのアクセス要求を受信するステップと、クライアントからのアクセス要求に対する応答としてクライアントに返信される返信パケットに設定される優先度を、クライアントがアクセスしたアクセス領域に予め設定されている優先度に基づいて計算するステップと、返信パケットをクライアントに返信するステップと、を備える。
【発明の効果】
【0013】
本発明によれば、同一プロトコルを用いた異なるアクセスのそれぞれに対する返信パケットのQoSを独立に制御することができる。
【発明を実施するための最良の形態】
【0014】
以下、各図を参照しながら本発明の実施形態について説明する。
図1は本実施形態に係るストレージシステム10の機能ブロックを示す。ストレージシステム10は、主に、NASサーバ20、及び記憶装置40を備える。NASサーバ20は、TCP/IP(Transmission Control Protocol/Internet Protocol)に基づいてデータ通信を行うLAN(Local Area Network)又はその他のIP(Internet Protocol)ネットワーク上に配置されたLANスイッチ70を介して一つ以上のNASクライアント80に接続している。LANスイッチ70は、NASクライアント80とNASサーバ20との間で送受信されるIPパケットをレイヤ3レベルでルーティング制御するL3スイッチである。L3スイッチに替えてL2スイッチを配置してもよい。
【0015】
NASクライアント80は、NFS、CIFS、FTP等のファイル転送プロトコルに基づいて、ストレージシステム10にファイルアクセス要求を行う。NASクライアント80は、パーソナルコンピュータ、ワークステーション、メインフレームコンピュータ等である。
【0016】
NASサーバ20は、NASクライアント80と記憶装置40との間のデータ入出力を制御するアダプタとして機能する。NASサーバ20は、NASクライアント80から送信されるファイルアクセス要求を受信し、このファイルアクセス要求に応じたI/O要求を記憶装置40に送信する。I/O要求には、ライトアクセス又はリードアクセス等を区別するアクセス種別が含まれる。例えば、NASクライアント80からライトアクセスが送信されると、NASサーバ20は、NASクライアント80から送信されたライトデータと、ライトアクセス種別とを含むI/O要求を記憶装置40に送信する。また、NASクライアント80からリードアクセスが送信されると、NASサーバ20は、リードアクセス種別を含むI/O要求を記憶装置40に送信し、記憶装置40から取得したリードデータをファイル単位でNASクライアント80に送信する。
【0017】
NASサーバ20は、LANポート21、パケット処理部22、優先度計算部23、テーブル作成部24、クライアント管理部25、記憶装置管理部26、プロトコル制御部27、ファイルシステム制御部28、インタフェース部29、管理テーブル30、及び優先度計算テーブル31を備える。
【0018】
LANポート21は、NASクライアント80とNASサーバ20とを接続するための通信インタフェースとして機能する。
【0019】
パケット処理部22は、NASクライアント80からNASサーバ20へ送信されるIPパケットを受信する処理と、NASサーバ20からNASクライアント80へIPパケットを送信する処理とを実行する。
【0020】
優先度計算部23は、NASサーバ20からNASクライアント80へ送信されるIPパケットの優先度を計算する。優先度計算処理(図16参照)の詳細については、後述する。
【0021】
テーブル作成部24は、優先度計算テーブル31を作成する。優先度計算テーブル31(図9参照)及びその作成処理(図10乃至図15参照)の詳細については後述する。
【0022】
クライアント管理部25は、どのNASクライアント80からファイルアクセスの要求を受けたかを管理する。
【0023】
記憶装置管理部26は、記憶装置40の負荷情報及び障害情報等の情報を管理する。
【0024】
プロトコル管理部27は、NFS、CIFS、FTP等のファイル転送プロトコルの処理を行う。
【0025】
ファイルシステム制御部28は、フォルダと論理ユニットとの対応付けを管理する。
【0026】
インタフェース部29は、NASサーバ20と記憶装置40との間のデータ通信を制御する。
【0027】
管理テーブル30(図8参照)の詳細については、後述する。
【0028】
記憶装置40は、主に、記憶制御装置50、及び複数のストレージデバイス60を備える。記憶制御装置50は、ストレージデバイス60をいわゆるRAID方式に規定されるRAIDレベル(例えば、0,1,4,5)で制御することができる。
【0029】
記憶制御装置50は、インタフェース部51、状態監視部52、リード/ライト処理部53、ディスクキャッシュ54、及びボリューム複製制御部55を備える。
【0030】
インタフェース部51は、記憶装置40とNASサーバ20とを接続するための通信インタフェースとして機能する。
【0031】
状態監視部52は、記憶装置40の障害情報及び負荷情報を管理する。障害情報として、ストレージデバイス60の障害の有無、記憶制御装置50の障害の有無、ディスクキャッシュ54の障害の有無、クラスタフェールオーバの有無がある。負荷情報として、I/O処理に要するレスポンスタイム、コピー処理実行の有無、バックアップ処理実行の有無、CPU使用率などがある。
【0032】
リード/ライト処理部53は、ストレージデバイス60へのリード/ライト処理を制御する。
【0033】
ディスクキャッシュ54は、ストレージデバイス60に読み書きされるデータを一時的に格納するためのキャッシュメモリである。
【0034】
ボリューム複製制御部55は、ボリュームの複製処理、及びバックアップ処理を制御する。
【0035】
ストレージデバイス60は、例えば、ハードディスクドライブ、フレキシブルディスクドライブ、磁気テープドライブ、半導体メモリドライブ、フラッシュメモリ、光ディスクドライブ等の物理デバイスである。ハードディスクドライブとして、FC(Fibre Channel)ディスクドライブ、SATA(Serial Advanced Technology Attachment)ディスクドライブ、PATA(Parallel Advanced Technology Attachment)ディスクドライブ、FATA(Fibre Attached Technology Adapted)ディスクドライブ、SCSI(Small Computer System Interface)ディスクドライブなどを用いることができる。
【0036】
尚、ストレージシステム10がiSCSIサーバを備えている場合には、NASクライアント80に替えて、ストレージシステム10は、iSCSIクライアントからのブロックアクセス要求を受け付けることも可能である。
【0037】
図2はストレージシステム10の記憶階層を示している。図1に示した符号と同一符号のデバイス等は同一のデバイス等を示すものとして、その詳細な説明を省略する。
【0038】
RAIDグループ61は、例えば、4つのストレージデバイス60を一組としてグループ化することにより(3D+1P)、或いは8つのストレージデバイス60を一組としてグループ化することにより(7D+1P)、構成される。即ち、複数のストレージデバイス60のそれぞれが提供する記憶領域が集合して一つのRAIDグループ61が構成される。RAIDグループ61は、パリティグループ或いはECCグループと別称することもできる。
【0039】
一つのRAIDグループ61を複数に分割することにより、複数の論理デバイス62を形成することもできるし、或いは複数のRAIDグループ61を集めて一つの論理デバイス62を形成することもできる。
【0040】
各々のLANポート21には、一つ以上の論理ユニット63がアサインされる。論理ユニット63は、NASクライアント80が認識する論理的な記憶単位である。例えば、NASクライアント80がUNIX(登録商標)系のシステムである場合には、論理ユニット63は、デバイスファイル(Device File)に対応付けられる。NASクライアント80がWindows(登録商標)系のシステムである場合には、論理ユニット63は、ドライブレター(ドライブ名)に対応付けられる。各々の論理ユニット63には、LUN(Logical Unit Number)がアサインされる。
【0041】
各々の論理ユニット63には、単一又は複数の論理デバイス62がマッピングされる。NASクライアント80がオープン系システムの場合、NASクライアント80は、論理デバイス62を一つの物理的なデバイスとして認識し、LUNや論理ブロックアドレスを指定することにより、所望の論理デバイス62にアクセスする。NASクライアント80がメインフレーム系システムの場合、NASクライアント80は、論理デバイス62を直接認識する。
【0042】
図3はNASクライアント80とNASサーバ20との間で送受信されるIPv4パケットフォーマットを示す。IPv4パケットは、バージョン番号フィールド(4ビット)、ヘッダ長フィールド(4ビット)、ToS(Time of Service)フィールド(8ビット)、パケット長フィールド(16ビット)、識別子フィールド(16ビット)、フラグフィールド(3ビット)、フラグメントオフセットフィールド(13ビット)、TTL(Time to live)フィールド(8ビット)、プロトコル番号フィールド(8ビット)、ヘッダチェックサムフィールド(16ビット)、送信元IPアドレス(32ビット)、宛先IPアドレス(32ビット)、オプションフィールド(32×nビット)、パディング(可変長ビット)、及びデータ本体を含む。
【0043】
IPv4パケット内のデータ本体には、アクセス領域を特定する情報及びアクセスコマンド(リードコマンド又はライトコマンド)が格納されている。ToSフィールドには、IPパケットをレイヤ3レベルで優先制御するために用いられるToS値として、例えば、図4に示すような3ビットの値を有するPrecedence値、又は図5に示すような6ビットの値を有するDSCP(Differentiated Services Codepoint)値が格納されている。
【0044】
尚、NASクライアント80とNASサーバ20との間で送受信されるIPパケットのプロトコルバージョンは、バージョン4に限られるものではなく、IPパケットをQoS制御できるものであればよい。例えば、バージョン6であってもよい。
【0045】
図6はNASクライアント80とNASサーバ20との間で送受信されるMAC(Media Access Control)フレームフォーマットを示す。MACフレームは、宛先MACアドレス(6バイト)、送信元MACアドレス(6バイト)、VLAN(Virtual Local Area Network)タグフィールド(4バイト)、タイプ/長さフィールド(2バイト)、データ(46〜1500バイト)、FCS(Frame Check Sequence)フィールド(4バイト)を含む。
【0046】
データフィールドには、上述したIPv4パケットが含まれる。VLANタグフィールドは、NASクライアント80とNASサーバ20とを接続するIPネットワークにVLANが適用される場合に、MACフレームに付加されるオプションフィールドである。VLANとは、一つのスイッチングハブの各ポート(又はMACアドレス)をグループ分けし、それぞれのグループを独立したLAN(ブロードキャスト・ドメイン)として機能させるネットワークである。
【0047】
VLANタグフィールドには、TPID(Tag Protocol Identifier)フィールド、及びタグ制御情報フィールドが格納される。タグ制御情報フィールドには、CoS(Class of Service)値、CFI(Canonical Format Indicator)、VLAN IDが格納される。CoS値は、MACフレームをレイヤ2レベルで優先制御するために用いられる情報であり、図7に示すような3ビットの値を有する。
【0048】
図8は管理テーブル30のテーブル構造を示す。管理テーブル30は、NASクライアント80からアクセスされるそれぞれの記憶領域(以下、アクセス領域と称する。)に対応付けられる一つ以上のエントリを保持する。アクセス領域は、NASクライアント80が認識する論理的な記憶領域の単位であり、例えば、フォルダ又は論理ボリュームである。各エントリは、“#”、“アクセス領域”、“LU”、“RAIDグループ”、“優先度”、“プロトコル”、“QoS制御”、“構成情報”、“監視パラメータ”、“障害情報”、及び“負荷情報”を対応付けている。
【0049】
“#”の欄には、各エントリを識別する番号が格納される。“アクセス領域”の欄には、アクセス領域に対応するフォルダ名又はボリューム名が格納される。“LU”の欄には、アクセス領域を提供する論理ユニットの番号(LUN)が格納される。“RAIDグループ”の欄には、アクセス領域が属するRAIDグループの番号が格納される。“優先度”の欄には、アクセス領域に設定されている優先度が格納される。アクセス領域に優先度が設定されていない場合には、“無し”のステータスが格納される。“プロトコル”の欄には、QoS制御を実行する通信プロトコルの名称が格納されている。同図に示す例では、NASクライアント80がNFS又はCIFSのプロトコルでフォルダ1にアクセスするときにQoS制御を実行することを示す。
【0050】
“QoS制御”の欄には、ToS値(Precedence値又はDSCP値)又はCoS値のうち何れの情報を用いてQoS制御をするかを示す情報が格納される。同図に示す例では、NASクライアント80がボリューム2にアクセスするときには、Precedence値を用いてQoS制御を実行することを示す。“構成情報”の欄には、“RAIDレベル”、“デバイスタイプ”が格納される。“RAIDレベル”の欄には、アクセス領域が属するRAIDグループのRAIDレベルが格納される。“デバイスタイプ”の欄には、ストレージデバイス60の種別が格納される。例えば、ストレージデバイス60がハードディスクである場合、“デバイスタイプ”の欄には、ストレージデバイス60がFCディスクであるのか又はSATAディスクであるのかを示す情報が格納される。
【0051】
“監視パラメータ”の欄には、後述する負荷情報(レスポンスタイム、レプリケーション実行の有無、CPU使用率、バックアップ実行の有無)のうちどの情報を用いてQoS制御を実行するのかを示す情報が格納される。同図に示す例では、NASクライアント80がボリューム3にアクセスするときには、レプリケーションの実行の有無を負荷情報としてQoS制御を実行することを示す。
【0052】
“障害情報”の欄には、“デバイス障害”、“コントローラ障害”、“キャッシュ障害”、“クラスタフェールオーバ”が格納される。“デバイス障害”の欄には、ストレージデバイス60に障害が生じているか否かを示す情報が格納される。“コントローラ障害”の欄には、記憶制御装置50に障害が生じているか否かを示す情報が格納される。“キャッシュ障害”の欄には、ディスクキャッシュ54に障害が生じているか否かを示す情報が格納される。“クラスタフェールオーバ”の欄には、クラスタフェールオーバが生じているか否かを示す情報が格納される。
【0053】
“負荷情報”の欄には、“レスポンス”、“レプリケーション実行”、“CPU使用率”、“バックアップ実行”が格納される。“レスポンス”の欄には、NASクライアント80からのファイルアクセス要求に対するストレージシステム10のレスポンスタイムが格納される。“レプリケーション実行”の欄には、記憶装置40がボリュームのレプリケーション処理を実行しているか否かを示す情報が格納される。“CPU使用率”には、記憶制御装置50のCPU使用率が格納される。“バックアップ実行”の欄には、記憶装置40がボリュームのバックアップ処理を実行しているか否かを示す情報が格納される。
【0054】
図9は優先度計算テーブル31のテーブル構造を示す。優先度計算テーブル31は、NASクライアント80からのファイルアクセス要求に対してNASサーバ20がNASクライアント80に返信するIPパケットに設定される優先度を計算するための情報を格納する。優先度計算テーブル31は、NASクライアント80からアクセスされるそれぞれのアクセス領域に対応付けられる一つ以上のエントリを保持する。各エントリは、“送信元アドレス”、“ToS値/CoS値”、“優先度”、“構成情報”、“障害情報”、“負荷情報”を対応付ける。
【0055】
“送信元アドレス”の欄には、NASクライアント80からのファイルアクセス要求に対する応答として、IPパケットを返送する宛先(要求元のNASクライアント80のIPアドレス又はMACアドレス)が格納される。
【0056】
NASサーバ20からNASクライアント80に送信されるIPパケットに設定される優先度を、ToS値を用いて計算する場合には、“ToS値/CoS値”の欄には、NASクライアント80からNASサーバ20にファイルアクセス要求として送信されるIPパケットに設定されているToS値が格納される。一方、NASサーバ20からNASクライアント80に送信されるMACフレームに設定される優先度を、CoS値を用いて計算する場合には、“ToS値/CoS値”の欄には、NASクライアント80からNASサーバ20にファイルアクセス要求として送信されるMACフレームに設定されているCoS値が格納される。
【0057】
“優先度”の欄には、NASクライアント80からファイルアクセス要求されるアクセス領域に設定されている優先度が格納される。“構成情報”の欄、“障害情報”の欄、“負荷情報”の欄にそれぞれ格納される情報は、上述した構成情報、障害情報、負荷情報と同じなので、詳細な説明は省略する。
【0058】
次に、図10乃至図15を参照しながら優先度計算テーブル31の作成処理について説明する。
【0059】
図10はToS値記録処理ルーチンを示す。テーブル作成部24は、NASクライアント80からIPパケットを受信すると(ステップ1001)、パケットヘッダを解析し(ステップ1002)、パケットヘッダにToS値が設定されているか否かを判定する(ステップ1003)。
【0060】
パケットヘッダにToS値が設定されているならば(ステップ1003;YES)、テーブル作成部24は、ToS値と送信元アドレス(NASクライアント80のネットワークアドレス)とを優先度計算テーブル31に記録する(ステップ1004)。
【0061】
一方、パケットヘッダにToS値が設定されてないならば(ステップ1003;NO)、テーブル作成部24は、ToS値が設定されていないことを示すステータスを優先度計算テーブル31に記録する(ステップ1005)。
【0062】
図11はCoS値記録処理ルーチンを示す。テーブル作成部24は、NASクライアント80からMACフレームを受信すると(ステップ1101)、フレームヘッダを解析し(ステップ1102)、フレームヘッダにCoS値が設定されているか否かを判定する(ステップ1103)。
【0063】
フレームヘッダにCoS値が設定されているならば(ステップ1103;YES)、テーブル作成部24は、CoS値と送信元アドレス(NASクライアント80のネットワークアドレス)とを優先度計算テーブル31に記録する(ステップ1104)。
【0064】
一方、フレームヘッダにCoS値が設定されてないならば(ステップ1103;NO)、テーブル作成部24は、CoS値が設定されていないことを示すステータスを優先度計算テーブル31に記録する(ステップ1105)
【0065】
図12は優先度記録処理ルーチンを示す。テーブル作成部24は、NASクライアント80からファイルアクセスが要求されているアクセス領域を特定し(ステップ1201)、管理テーブル30を参照して、そのアクセス領域に優先度が設定されているか否かを判定する(ステップ1202)。
【0066】
アクセス領域に優先度が設定されているならば(ステップ1202;YES)、テーブル作成部24は、アクセス領域に設定されている優先度を記録する(ステップ1203)。
【0067】
一方、アクセス領域に優先度が設定されてないならば(ステップ1202;NO)、テーブル作成部24は、アクセス領域に優先度が設定されてないことを示すステータスを優先度計算テーブル31に記録する(ステップ1204)。
【0068】
図13は構成情報記録処理ルーチンを示す。テーブル作成部24は、NASクライアント80からファイルアクセスが要求されているアクセス領域を特定し(ステップ1301)、管理テーブル30を参照して、そのアクセス領域が属するRAIDグループのRAIDレベルを優先度計算テーブル31に記録し(ステップ1302)、そのアクセス領域を提供するストレージデバイス60のデバイスタイプを優先度計算テーブル31に記録する(ステップ1303)。
【0069】
図14は障害情報記録処理ルーチンを示す。テーブル作成部24は、NASクライアント80からファイルアクセスが要求されているアクセス領域を特定し(ステップ1401)、管理テーブル30を参照して、そのアクセス領域に関する障害(デバイス障害、コントローラ障害、キャッシュ障害及びクラスタフェールオーバ)が生じているか否かを判定する(ステップ1402)。
【0070】
アクセス領域に関する障害が生じていれば(ステップ1402;YES)、テーブル作成部24は障害が生じていることを示すステータスを優先度計算テーブル31に記録する(ステップ1403)。
【0071】
一方、アクセス領域に関する障害が生じてないならば(ステップ1402;NO)、テーブル作成部24は、障害が生じてないことを示すステータスを優先度計算テーブル31に記録する(ステップ1404)。
【0072】
図15は負荷情報記録処理ルーチンを示す。テーブル作成部24は、NASクライアント80からファイルアクセスが要求されているアクセス領域を特定し(ステップ1501)、管理テーブル30を参照して、そのアクセス領域に関するレプリケーション実行の有無又はバックアップ実行の有無を優先度計算テーブル31に記録する(ステップ1502)。
【0073】
そして、テーブル作成部24は、アクセス領域に関するレスポンスタイムを優先度計算テーブル31に記録し(ステップ1503)、アクセス領域に関するCPU使用率を優先度計算テーブル31に記録する(ステップ1504)。
【0074】
次に、図16を参照しながら優先度計算処理について説明する。優先度計算部23は、NASクライアント80からのファイルアクセス要求に対する応答として、NASサーバ20からNASクライアント80に返送されるIPパケット(以下、返信パケットと称する。)に設定されるToS値(又はMACフレームに設定されるCoS値)を、優先度計算テーブル31に記録された情報を用いて計算する。
【0075】
優先度計算部23は、優先度計算テーブル31を参照し(ステップ1601)、アクセス領域に設定されている優先度、及び記憶装置40の状態情報の両方ともステータスなしが記録されているか否かを判定する(ステップ1602)。記憶装置40の状態情報は、構成情報(RAIDレベル、デバイスタイプ)、障害情報(デバイス障害、コントローラ障害、キャッシュ障害、クラスタフェールオーバ)、及び負荷情報(レスポンスタイム、レプリケーション実行、CPU使用率、バックアップ実行)を総称するものである。
【0076】
優先度及び状態情報のうち何れかにステータスありが記録されている場合には(ステップ1602;NO)、優先度計算部23は、NASクライアント80から受信したIPパケットに設定されているToS値(又はMACフレームに設定されているCoS値)と、アクセス領域に設定されている優先度と、記憶装置40の状態情報とを基に返信パケットに設定されるToS値(又はCoS値)を計算する(ステップ1603)。返信パケットに設定される優先度の計算方法については、後述する。
【0077】
一方、優先度及び状態情報の両方ともステータスなしが記録されている場合には(ステップ1602;YES)、優先度計算部23は、NASクライアント80から受信したIPパケットに設定されているToS値(又はMACフレームに設定されているCoS値)と同じ値を返信パケットの優先度として設定する(ステップ1604)。
【0078】
次に、返信パケットに設定される優先度の計算方法について説明する。
説明の便宜上、優先度を以下のように定義する。
(1)優先度は、その値が小さい程、優先度が高いものとする。
(2)優先度の値は、1以上の自然数とする。
上記の定義によれば、優先度「1」が最優先となる。但し、上記の定義は、あくまでも便宜上のものであって、本実施形態は上記の定義に限られるものではない。
【0079】
ここで、NASサーバ20からNASクライアント80に送信される返信パケットの優先度(ToS値又はCoS値)をP1、NASサーバ20がNASクライアント80から受信するIPパケットの優先度(優先度計算テーブル31に記録されているToS値又はCoS値)をP2、ファイルアクセスが要求されているアクセス領域に設定されている優先度(優先度計算テーブル31に記録されている優先度)をP3、記憶装置40の状態情報(優先度計算テーブル31に記録されている構成情報、障害情報、及び負荷情報)をP4とすると、P1は以下の計算式に基づいて計算される。
P1=K1×P2×L1×P3×M1×P4
ここで、K1,L1,M1は、重み係数であり、1以上の自然数の値をとる。例えば、P1を計算する上で、アクセス領域に設定されている優先度P3を重視する場合には、L1の値をK1,M1の値よりも大きく設定すればよい。また、P1の値として、ToS値とCoS値のうち何れの情報を採用するのかは、管理テーブル30の“QoS制御”の欄に格納されている情報に基づいて決定される。
【0080】
また、構成情報をP5、障害情報をP6、負荷情報をP7とすると、P4は以下の計算式に基づいて計算される。
P4=K2×P5×L2×P6×M2×P7
ここで、K2,L2,M2は、重み係数であり、1以上の自然数の値をとる。例えば、P4を計算する上で、障害情報P6を重視する場合には、L2の値をK2,M2の値よりも大きく設定すればよい。
【0081】
構成情報P5の値は、以下のようにして計算する。
P5=[RAIDレベル]×[デバイスタイプ]
[RAIDレベル]=1 :RAID0
[RAIDレベル]=2 :RAID0/1
[RAIDレベル]=3 :RAID1
[RAIDレベル]=4 :RAID5
[RAIDレベル]=5 :RAID6
[デバイスタイプ]=1 :FCディスク
[デバイスタイプ]=3 :SATAディスク
【0082】
障害情報P6の値は、以下のようにして計算する。
P6=[デバイス障害]×[コントローラ障害]×[キャッシュ障害]×[クラスタフェールオーバ]
[デバイス障害]=1 :デバイス障害無し
[デバイス障害]=5 :デバイス障害有り
[コントローラ障害]=1 :コントローラ障害無し
[コントローラ障害]=5 :コントローラ障害有り
[キャッシュ障害]=1 :キャッシュ障害無し
[キャッシュ障害]=5 :キャッシュ障害有り
[クラスタフェールオーバ]=1 :クラスタフェールオーバ無し
[クラスタフェールオーバ]=5 :クラスタフェールオーバ有り
【0083】
負荷情報P7の値は、管理テーブル30に格納されている監視パラメータで指定されているものを選択し、以下のようにして求める。
P7=1 :レプリケーション実行無し
P7=2 :レプリケーション実行有り
P7=1 :バックアップ実行無し
P7=2 :バックアップ実行有り
P7=1 :レスポンスタイム7mS以上
P7=2 :レスポンスタイム7mS未満
P7=1 :CPU使用率50%以上
P7=2 :CPU使用率50%未満
例えば、ボリューム2に設定されている監視パラメータは、レスポンスタイムなので、P7=1となる。
【0084】
尚、上記の計算方法は、記憶装置40に障害が生じているときには、ファイルアクセスが遅延することを想定し、返信パケットの優先度を高くしても、その遅延分を補うことができないことに着目して、返信パケットの優先度を低くするという運用方法に立脚している。但し、記憶装置40に障害が生じているときには、返信パケットの優先度を高くしてファイルアクセスの遅延を補うという運用方法も考えられる。かかる運用方法では、障害情報P6の値は、以下のようにして計算する。
P6=[デバイス障害]×[コントローラ障害]×[キャッシュ障害]×[クラスタフェールオーバ]
[デバイス障害]=5 :デバイス障害無し
[デバイス障害]=1 :デバイス障害有り
[コントローラ障害]=5 :コントローラ障害無し
[コントローラ障害]=1 :コントローラ障害有り
[キャッシュ障害]=5 :キャッシュ障害無し
[キャッシュ障害]=1 :キャッシュ障害有り
[クラスタフェールオーバ]=5 :クラスタフェールオーバ無し
[クラスタフェールオーバ]=1 :クラスタフェールオーバ有り
【0085】
尚、上記の計算式に基づいて、返信パケットの優先度の値を設定し直すタイミングとしては、1パケット単位であってもよく、或いは1ファイル単位(又は1セッション単位)であってもよい。1パケット単位でQoS制御すると、その時々の状況に応じた適切なQoS制御が可能になる。1ファイル単位でQoS制御すると、QoS制御が簡易になり、NASサーバ20の負荷を低減できる。
【図面の簡単な説明】
【0086】
【図1】本実施形態に係るストレージシステムの機能ブロック図である。
【図2】ストレージシステムの記憶階層の説明図である。
【図3】IPv4パケットフォーマットの説明図である。
【図4】Precedence値の説明図である。
【図5】DSCP値の説明図である。
【図6】MACフレームフォーマットの説明図である。
【図7】CoS値の説明図である。
【図8】管理テーブルの説明図である。
【図9】優先度計算テーブルの説明図である。
【図10】ToS値記録処理ルーチンを示すフローチャートである。
【図11】CoS値記録処理ルーチンを示すフローチャートである。
【図12】優先度記録処理ルーチンを示すフローチャートである。
【図13】構成情報記録処理ルーチンを示すフローチャートである。
【図14】障害情報記録処理ルーチンを示すフローチャートである。
【図15】負荷情報記録処理ルーチンを示すフローチャートである。
【図16】優先度計算処理ルーチンを示すフローチャートである。
【符号の説明】
【0087】
10…ストレージシステム 20…NASサーバ 23…優先度計算部 24…テーブル作成部 30…管理テーブル 31…優先度計算テーブル 40…記憶装置 50…記憶制御装置 60…ストレージデバイス 70…LANスイッチ 80…NASクライアント
【技術分野】
【0001】
本発明はストレージシステム及び通信制御方法に関し、特に、ストレージシステムからクライアントに送信されるパケットの送信優先制御に関する。
【背景技術】
【0002】
大量のデータを管理するためのストレージシステムとして、ディスアレイシステムが用いられている。ディスクアレイシステムは、複数のディスクドライブをアレイ状に配設して構成されるもので、RAID(Redundant Arrays of Independent Inexpensive Disks)構成された記憶資源をホスト計算機に提供する。ホスト計算機とディスクアレイシステムとの間のインタフェースとして、FC(Fibre Channel)プロトコル、SCSI(Small Computer System Interface)プロトコル、iSCSI(internet SCSI)プロトコル、ESCON(Enterprise System Connection:登録商標)などのブロック単位でI/Oリクエストを処理するブロックI/Oインタフェースの他、NFS(Network File System)プロトコル、CIFS(Common Interface File System)プロトコルなどのファイル単位でI/Oリクエストを処理するファイルI/Oインタフェースが用いられている。
【0003】
近年、企業で取り扱うデータ容量の増加に伴い、ストレージシステムの利用形態も多様化しつつある。例えば、IPネットワーク経由でNASクライアントからのファイルアクセスを受信し、NASクライアントにファイルサービスを提供するNAS機能を搭載したストレージシステムが開発されている。ファイルサービス向上の観点から、IPネットワークを流れるIPパケットの通信品質の向上が検討されている。例えば、特開2002−244899号公報、及び特開2005−323245号公報には、QoS(Quality of Service)制御について言及されている。
【特許文献1】特開2002−244899号公報
【特許文献2】特開2005−323245号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
ところで、従来では、プロトコル単位でのQoS制御が中心であった。例えば、NFSプロトコル、CIFSプロトコル、NFSプロトコルのそれぞれに予め優先準位を設定しておいて、QoS制御をしていた。このようなQoS制御では、例えば、NFSプロトコルに基づくファイルアクセスに対する返信パケットの優先度は、CIFSプロトコルに基づくファイルアクセスに対する返信パケットの優先度よりも高く設定するということが可能である。
【0005】
しかし、NASサーバを用いたファイルサービスが提供されるようになると、同一プロトコルを用いた異なるファイルアクセスのそれぞれに対する返信パケットのQoSを独立に制御する必要性が生じてきた。例えば、あるNASクライアントから重要度の高いフォルダへのアクセス要求に対する返信パケットに設定される優先度は、他のNASクライアントから重要度の低いフォルダへのアクセス要求に対する返信パケットに設定される優先度よりも高い方が望ましい。
【0006】
そこで、本発明は同一プロトコルを用いた異なるアクセスのそれぞれに対する返信パケットのQoSを独立に制御するストレージシステム及び通信制御方法を提案することを課題とする。
【課題を解決するための手段】
【0007】
上記の課題を解決するため、本発明のストレージシステムは、クライアントからのアクセス要求を処理するストレージシステムであって、クライアントからのアクセス要求に対する応答としてクライアントに返信される返信パケットに設定される優先度を、クライアントがアクセスしたアクセス領域に予め設定されている優先度に基づいて計算する優先度計算部を備える。
【0008】
本発明の他の観点によるストレージシステムは、クライアントからのアクセス要求を処理するストレージシステムであって、クライアントからのアクセス要求に対する応答としてクライアントに返信される返信パケットに設定される優先度を、ストレージシステムの状態情報に基づいて計算する優先度計算部を備える。
【0009】
ここで、状態情報は、アクセス領域を提供するストレージデバイスの構成情報、ストレージシステムの負荷情報、ストレージシステムの障害情報のうち何れかの情報を含む。
【0010】
優先度計算部は、ストレージシステムに障害が生じているときには、ストレージシステムに障害が生じてないときよりも、返信パケットの優先度を低く設定してもよい。この計算方法は、ストレージシステムに障害が生じているときには、アクセスが遅延することを想定し、返信パケットの優先度を高くしても、その遅延分を補うことができないという運用方法に好適である。
【0011】
優先度計算部は、ストレージシステムに障害が生じているときには、ストレージシステムに障害が生じてないときよりも、返信パケットの優先度を高く設定してもよい。この計算方法は、ストレージシステムに障害が生じているときには、返信パケットの優先度を高くしてアクセスの遅延を補うという運用方法に好適である。
【0012】
本発明の通信制御方法は、クライアントからのアクセス要求を受信するステップと、クライアントからのアクセス要求に対する応答としてクライアントに返信される返信パケットに設定される優先度を、クライアントがアクセスしたアクセス領域に予め設定されている優先度に基づいて計算するステップと、返信パケットをクライアントに返信するステップと、を備える。
【発明の効果】
【0013】
本発明によれば、同一プロトコルを用いた異なるアクセスのそれぞれに対する返信パケットのQoSを独立に制御することができる。
【発明を実施するための最良の形態】
【0014】
以下、各図を参照しながら本発明の実施形態について説明する。
図1は本実施形態に係るストレージシステム10の機能ブロックを示す。ストレージシステム10は、主に、NASサーバ20、及び記憶装置40を備える。NASサーバ20は、TCP/IP(Transmission Control Protocol/Internet Protocol)に基づいてデータ通信を行うLAN(Local Area Network)又はその他のIP(Internet Protocol)ネットワーク上に配置されたLANスイッチ70を介して一つ以上のNASクライアント80に接続している。LANスイッチ70は、NASクライアント80とNASサーバ20との間で送受信されるIPパケットをレイヤ3レベルでルーティング制御するL3スイッチである。L3スイッチに替えてL2スイッチを配置してもよい。
【0015】
NASクライアント80は、NFS、CIFS、FTP等のファイル転送プロトコルに基づいて、ストレージシステム10にファイルアクセス要求を行う。NASクライアント80は、パーソナルコンピュータ、ワークステーション、メインフレームコンピュータ等である。
【0016】
NASサーバ20は、NASクライアント80と記憶装置40との間のデータ入出力を制御するアダプタとして機能する。NASサーバ20は、NASクライアント80から送信されるファイルアクセス要求を受信し、このファイルアクセス要求に応じたI/O要求を記憶装置40に送信する。I/O要求には、ライトアクセス又はリードアクセス等を区別するアクセス種別が含まれる。例えば、NASクライアント80からライトアクセスが送信されると、NASサーバ20は、NASクライアント80から送信されたライトデータと、ライトアクセス種別とを含むI/O要求を記憶装置40に送信する。また、NASクライアント80からリードアクセスが送信されると、NASサーバ20は、リードアクセス種別を含むI/O要求を記憶装置40に送信し、記憶装置40から取得したリードデータをファイル単位でNASクライアント80に送信する。
【0017】
NASサーバ20は、LANポート21、パケット処理部22、優先度計算部23、テーブル作成部24、クライアント管理部25、記憶装置管理部26、プロトコル制御部27、ファイルシステム制御部28、インタフェース部29、管理テーブル30、及び優先度計算テーブル31を備える。
【0018】
LANポート21は、NASクライアント80とNASサーバ20とを接続するための通信インタフェースとして機能する。
【0019】
パケット処理部22は、NASクライアント80からNASサーバ20へ送信されるIPパケットを受信する処理と、NASサーバ20からNASクライアント80へIPパケットを送信する処理とを実行する。
【0020】
優先度計算部23は、NASサーバ20からNASクライアント80へ送信されるIPパケットの優先度を計算する。優先度計算処理(図16参照)の詳細については、後述する。
【0021】
テーブル作成部24は、優先度計算テーブル31を作成する。優先度計算テーブル31(図9参照)及びその作成処理(図10乃至図15参照)の詳細については後述する。
【0022】
クライアント管理部25は、どのNASクライアント80からファイルアクセスの要求を受けたかを管理する。
【0023】
記憶装置管理部26は、記憶装置40の負荷情報及び障害情報等の情報を管理する。
【0024】
プロトコル管理部27は、NFS、CIFS、FTP等のファイル転送プロトコルの処理を行う。
【0025】
ファイルシステム制御部28は、フォルダと論理ユニットとの対応付けを管理する。
【0026】
インタフェース部29は、NASサーバ20と記憶装置40との間のデータ通信を制御する。
【0027】
管理テーブル30(図8参照)の詳細については、後述する。
【0028】
記憶装置40は、主に、記憶制御装置50、及び複数のストレージデバイス60を備える。記憶制御装置50は、ストレージデバイス60をいわゆるRAID方式に規定されるRAIDレベル(例えば、0,1,4,5)で制御することができる。
【0029】
記憶制御装置50は、インタフェース部51、状態監視部52、リード/ライト処理部53、ディスクキャッシュ54、及びボリューム複製制御部55を備える。
【0030】
インタフェース部51は、記憶装置40とNASサーバ20とを接続するための通信インタフェースとして機能する。
【0031】
状態監視部52は、記憶装置40の障害情報及び負荷情報を管理する。障害情報として、ストレージデバイス60の障害の有無、記憶制御装置50の障害の有無、ディスクキャッシュ54の障害の有無、クラスタフェールオーバの有無がある。負荷情報として、I/O処理に要するレスポンスタイム、コピー処理実行の有無、バックアップ処理実行の有無、CPU使用率などがある。
【0032】
リード/ライト処理部53は、ストレージデバイス60へのリード/ライト処理を制御する。
【0033】
ディスクキャッシュ54は、ストレージデバイス60に読み書きされるデータを一時的に格納するためのキャッシュメモリである。
【0034】
ボリューム複製制御部55は、ボリュームの複製処理、及びバックアップ処理を制御する。
【0035】
ストレージデバイス60は、例えば、ハードディスクドライブ、フレキシブルディスクドライブ、磁気テープドライブ、半導体メモリドライブ、フラッシュメモリ、光ディスクドライブ等の物理デバイスである。ハードディスクドライブとして、FC(Fibre Channel)ディスクドライブ、SATA(Serial Advanced Technology Attachment)ディスクドライブ、PATA(Parallel Advanced Technology Attachment)ディスクドライブ、FATA(Fibre Attached Technology Adapted)ディスクドライブ、SCSI(Small Computer System Interface)ディスクドライブなどを用いることができる。
【0036】
尚、ストレージシステム10がiSCSIサーバを備えている場合には、NASクライアント80に替えて、ストレージシステム10は、iSCSIクライアントからのブロックアクセス要求を受け付けることも可能である。
【0037】
図2はストレージシステム10の記憶階層を示している。図1に示した符号と同一符号のデバイス等は同一のデバイス等を示すものとして、その詳細な説明を省略する。
【0038】
RAIDグループ61は、例えば、4つのストレージデバイス60を一組としてグループ化することにより(3D+1P)、或いは8つのストレージデバイス60を一組としてグループ化することにより(7D+1P)、構成される。即ち、複数のストレージデバイス60のそれぞれが提供する記憶領域が集合して一つのRAIDグループ61が構成される。RAIDグループ61は、パリティグループ或いはECCグループと別称することもできる。
【0039】
一つのRAIDグループ61を複数に分割することにより、複数の論理デバイス62を形成することもできるし、或いは複数のRAIDグループ61を集めて一つの論理デバイス62を形成することもできる。
【0040】
各々のLANポート21には、一つ以上の論理ユニット63がアサインされる。論理ユニット63は、NASクライアント80が認識する論理的な記憶単位である。例えば、NASクライアント80がUNIX(登録商標)系のシステムである場合には、論理ユニット63は、デバイスファイル(Device File)に対応付けられる。NASクライアント80がWindows(登録商標)系のシステムである場合には、論理ユニット63は、ドライブレター(ドライブ名)に対応付けられる。各々の論理ユニット63には、LUN(Logical Unit Number)がアサインされる。
【0041】
各々の論理ユニット63には、単一又は複数の論理デバイス62がマッピングされる。NASクライアント80がオープン系システムの場合、NASクライアント80は、論理デバイス62を一つの物理的なデバイスとして認識し、LUNや論理ブロックアドレスを指定することにより、所望の論理デバイス62にアクセスする。NASクライアント80がメインフレーム系システムの場合、NASクライアント80は、論理デバイス62を直接認識する。
【0042】
図3はNASクライアント80とNASサーバ20との間で送受信されるIPv4パケットフォーマットを示す。IPv4パケットは、バージョン番号フィールド(4ビット)、ヘッダ長フィールド(4ビット)、ToS(Time of Service)フィールド(8ビット)、パケット長フィールド(16ビット)、識別子フィールド(16ビット)、フラグフィールド(3ビット)、フラグメントオフセットフィールド(13ビット)、TTL(Time to live)フィールド(8ビット)、プロトコル番号フィールド(8ビット)、ヘッダチェックサムフィールド(16ビット)、送信元IPアドレス(32ビット)、宛先IPアドレス(32ビット)、オプションフィールド(32×nビット)、パディング(可変長ビット)、及びデータ本体を含む。
【0043】
IPv4パケット内のデータ本体には、アクセス領域を特定する情報及びアクセスコマンド(リードコマンド又はライトコマンド)が格納されている。ToSフィールドには、IPパケットをレイヤ3レベルで優先制御するために用いられるToS値として、例えば、図4に示すような3ビットの値を有するPrecedence値、又は図5に示すような6ビットの値を有するDSCP(Differentiated Services Codepoint)値が格納されている。
【0044】
尚、NASクライアント80とNASサーバ20との間で送受信されるIPパケットのプロトコルバージョンは、バージョン4に限られるものではなく、IPパケットをQoS制御できるものであればよい。例えば、バージョン6であってもよい。
【0045】
図6はNASクライアント80とNASサーバ20との間で送受信されるMAC(Media Access Control)フレームフォーマットを示す。MACフレームは、宛先MACアドレス(6バイト)、送信元MACアドレス(6バイト)、VLAN(Virtual Local Area Network)タグフィールド(4バイト)、タイプ/長さフィールド(2バイト)、データ(46〜1500バイト)、FCS(Frame Check Sequence)フィールド(4バイト)を含む。
【0046】
データフィールドには、上述したIPv4パケットが含まれる。VLANタグフィールドは、NASクライアント80とNASサーバ20とを接続するIPネットワークにVLANが適用される場合に、MACフレームに付加されるオプションフィールドである。VLANとは、一つのスイッチングハブの各ポート(又はMACアドレス)をグループ分けし、それぞれのグループを独立したLAN(ブロードキャスト・ドメイン)として機能させるネットワークである。
【0047】
VLANタグフィールドには、TPID(Tag Protocol Identifier)フィールド、及びタグ制御情報フィールドが格納される。タグ制御情報フィールドには、CoS(Class of Service)値、CFI(Canonical Format Indicator)、VLAN IDが格納される。CoS値は、MACフレームをレイヤ2レベルで優先制御するために用いられる情報であり、図7に示すような3ビットの値を有する。
【0048】
図8は管理テーブル30のテーブル構造を示す。管理テーブル30は、NASクライアント80からアクセスされるそれぞれの記憶領域(以下、アクセス領域と称する。)に対応付けられる一つ以上のエントリを保持する。アクセス領域は、NASクライアント80が認識する論理的な記憶領域の単位であり、例えば、フォルダ又は論理ボリュームである。各エントリは、“#”、“アクセス領域”、“LU”、“RAIDグループ”、“優先度”、“プロトコル”、“QoS制御”、“構成情報”、“監視パラメータ”、“障害情報”、及び“負荷情報”を対応付けている。
【0049】
“#”の欄には、各エントリを識別する番号が格納される。“アクセス領域”の欄には、アクセス領域に対応するフォルダ名又はボリューム名が格納される。“LU”の欄には、アクセス領域を提供する論理ユニットの番号(LUN)が格納される。“RAIDグループ”の欄には、アクセス領域が属するRAIDグループの番号が格納される。“優先度”の欄には、アクセス領域に設定されている優先度が格納される。アクセス領域に優先度が設定されていない場合には、“無し”のステータスが格納される。“プロトコル”の欄には、QoS制御を実行する通信プロトコルの名称が格納されている。同図に示す例では、NASクライアント80がNFS又はCIFSのプロトコルでフォルダ1にアクセスするときにQoS制御を実行することを示す。
【0050】
“QoS制御”の欄には、ToS値(Precedence値又はDSCP値)又はCoS値のうち何れの情報を用いてQoS制御をするかを示す情報が格納される。同図に示す例では、NASクライアント80がボリューム2にアクセスするときには、Precedence値を用いてQoS制御を実行することを示す。“構成情報”の欄には、“RAIDレベル”、“デバイスタイプ”が格納される。“RAIDレベル”の欄には、アクセス領域が属するRAIDグループのRAIDレベルが格納される。“デバイスタイプ”の欄には、ストレージデバイス60の種別が格納される。例えば、ストレージデバイス60がハードディスクである場合、“デバイスタイプ”の欄には、ストレージデバイス60がFCディスクであるのか又はSATAディスクであるのかを示す情報が格納される。
【0051】
“監視パラメータ”の欄には、後述する負荷情報(レスポンスタイム、レプリケーション実行の有無、CPU使用率、バックアップ実行の有無)のうちどの情報を用いてQoS制御を実行するのかを示す情報が格納される。同図に示す例では、NASクライアント80がボリューム3にアクセスするときには、レプリケーションの実行の有無を負荷情報としてQoS制御を実行することを示す。
【0052】
“障害情報”の欄には、“デバイス障害”、“コントローラ障害”、“キャッシュ障害”、“クラスタフェールオーバ”が格納される。“デバイス障害”の欄には、ストレージデバイス60に障害が生じているか否かを示す情報が格納される。“コントローラ障害”の欄には、記憶制御装置50に障害が生じているか否かを示す情報が格納される。“キャッシュ障害”の欄には、ディスクキャッシュ54に障害が生じているか否かを示す情報が格納される。“クラスタフェールオーバ”の欄には、クラスタフェールオーバが生じているか否かを示す情報が格納される。
【0053】
“負荷情報”の欄には、“レスポンス”、“レプリケーション実行”、“CPU使用率”、“バックアップ実行”が格納される。“レスポンス”の欄には、NASクライアント80からのファイルアクセス要求に対するストレージシステム10のレスポンスタイムが格納される。“レプリケーション実行”の欄には、記憶装置40がボリュームのレプリケーション処理を実行しているか否かを示す情報が格納される。“CPU使用率”には、記憶制御装置50のCPU使用率が格納される。“バックアップ実行”の欄には、記憶装置40がボリュームのバックアップ処理を実行しているか否かを示す情報が格納される。
【0054】
図9は優先度計算テーブル31のテーブル構造を示す。優先度計算テーブル31は、NASクライアント80からのファイルアクセス要求に対してNASサーバ20がNASクライアント80に返信するIPパケットに設定される優先度を計算するための情報を格納する。優先度計算テーブル31は、NASクライアント80からアクセスされるそれぞれのアクセス領域に対応付けられる一つ以上のエントリを保持する。各エントリは、“送信元アドレス”、“ToS値/CoS値”、“優先度”、“構成情報”、“障害情報”、“負荷情報”を対応付ける。
【0055】
“送信元アドレス”の欄には、NASクライアント80からのファイルアクセス要求に対する応答として、IPパケットを返送する宛先(要求元のNASクライアント80のIPアドレス又はMACアドレス)が格納される。
【0056】
NASサーバ20からNASクライアント80に送信されるIPパケットに設定される優先度を、ToS値を用いて計算する場合には、“ToS値/CoS値”の欄には、NASクライアント80からNASサーバ20にファイルアクセス要求として送信されるIPパケットに設定されているToS値が格納される。一方、NASサーバ20からNASクライアント80に送信されるMACフレームに設定される優先度を、CoS値を用いて計算する場合には、“ToS値/CoS値”の欄には、NASクライアント80からNASサーバ20にファイルアクセス要求として送信されるMACフレームに設定されているCoS値が格納される。
【0057】
“優先度”の欄には、NASクライアント80からファイルアクセス要求されるアクセス領域に設定されている優先度が格納される。“構成情報”の欄、“障害情報”の欄、“負荷情報”の欄にそれぞれ格納される情報は、上述した構成情報、障害情報、負荷情報と同じなので、詳細な説明は省略する。
【0058】
次に、図10乃至図15を参照しながら優先度計算テーブル31の作成処理について説明する。
【0059】
図10はToS値記録処理ルーチンを示す。テーブル作成部24は、NASクライアント80からIPパケットを受信すると(ステップ1001)、パケットヘッダを解析し(ステップ1002)、パケットヘッダにToS値が設定されているか否かを判定する(ステップ1003)。
【0060】
パケットヘッダにToS値が設定されているならば(ステップ1003;YES)、テーブル作成部24は、ToS値と送信元アドレス(NASクライアント80のネットワークアドレス)とを優先度計算テーブル31に記録する(ステップ1004)。
【0061】
一方、パケットヘッダにToS値が設定されてないならば(ステップ1003;NO)、テーブル作成部24は、ToS値が設定されていないことを示すステータスを優先度計算テーブル31に記録する(ステップ1005)。
【0062】
図11はCoS値記録処理ルーチンを示す。テーブル作成部24は、NASクライアント80からMACフレームを受信すると(ステップ1101)、フレームヘッダを解析し(ステップ1102)、フレームヘッダにCoS値が設定されているか否かを判定する(ステップ1103)。
【0063】
フレームヘッダにCoS値が設定されているならば(ステップ1103;YES)、テーブル作成部24は、CoS値と送信元アドレス(NASクライアント80のネットワークアドレス)とを優先度計算テーブル31に記録する(ステップ1104)。
【0064】
一方、フレームヘッダにCoS値が設定されてないならば(ステップ1103;NO)、テーブル作成部24は、CoS値が設定されていないことを示すステータスを優先度計算テーブル31に記録する(ステップ1105)
【0065】
図12は優先度記録処理ルーチンを示す。テーブル作成部24は、NASクライアント80からファイルアクセスが要求されているアクセス領域を特定し(ステップ1201)、管理テーブル30を参照して、そのアクセス領域に優先度が設定されているか否かを判定する(ステップ1202)。
【0066】
アクセス領域に優先度が設定されているならば(ステップ1202;YES)、テーブル作成部24は、アクセス領域に設定されている優先度を記録する(ステップ1203)。
【0067】
一方、アクセス領域に優先度が設定されてないならば(ステップ1202;NO)、テーブル作成部24は、アクセス領域に優先度が設定されてないことを示すステータスを優先度計算テーブル31に記録する(ステップ1204)。
【0068】
図13は構成情報記録処理ルーチンを示す。テーブル作成部24は、NASクライアント80からファイルアクセスが要求されているアクセス領域を特定し(ステップ1301)、管理テーブル30を参照して、そのアクセス領域が属するRAIDグループのRAIDレベルを優先度計算テーブル31に記録し(ステップ1302)、そのアクセス領域を提供するストレージデバイス60のデバイスタイプを優先度計算テーブル31に記録する(ステップ1303)。
【0069】
図14は障害情報記録処理ルーチンを示す。テーブル作成部24は、NASクライアント80からファイルアクセスが要求されているアクセス領域を特定し(ステップ1401)、管理テーブル30を参照して、そのアクセス領域に関する障害(デバイス障害、コントローラ障害、キャッシュ障害及びクラスタフェールオーバ)が生じているか否かを判定する(ステップ1402)。
【0070】
アクセス領域に関する障害が生じていれば(ステップ1402;YES)、テーブル作成部24は障害が生じていることを示すステータスを優先度計算テーブル31に記録する(ステップ1403)。
【0071】
一方、アクセス領域に関する障害が生じてないならば(ステップ1402;NO)、テーブル作成部24は、障害が生じてないことを示すステータスを優先度計算テーブル31に記録する(ステップ1404)。
【0072】
図15は負荷情報記録処理ルーチンを示す。テーブル作成部24は、NASクライアント80からファイルアクセスが要求されているアクセス領域を特定し(ステップ1501)、管理テーブル30を参照して、そのアクセス領域に関するレプリケーション実行の有無又はバックアップ実行の有無を優先度計算テーブル31に記録する(ステップ1502)。
【0073】
そして、テーブル作成部24は、アクセス領域に関するレスポンスタイムを優先度計算テーブル31に記録し(ステップ1503)、アクセス領域に関するCPU使用率を優先度計算テーブル31に記録する(ステップ1504)。
【0074】
次に、図16を参照しながら優先度計算処理について説明する。優先度計算部23は、NASクライアント80からのファイルアクセス要求に対する応答として、NASサーバ20からNASクライアント80に返送されるIPパケット(以下、返信パケットと称する。)に設定されるToS値(又はMACフレームに設定されるCoS値)を、優先度計算テーブル31に記録された情報を用いて計算する。
【0075】
優先度計算部23は、優先度計算テーブル31を参照し(ステップ1601)、アクセス領域に設定されている優先度、及び記憶装置40の状態情報の両方ともステータスなしが記録されているか否かを判定する(ステップ1602)。記憶装置40の状態情報は、構成情報(RAIDレベル、デバイスタイプ)、障害情報(デバイス障害、コントローラ障害、キャッシュ障害、クラスタフェールオーバ)、及び負荷情報(レスポンスタイム、レプリケーション実行、CPU使用率、バックアップ実行)を総称するものである。
【0076】
優先度及び状態情報のうち何れかにステータスありが記録されている場合には(ステップ1602;NO)、優先度計算部23は、NASクライアント80から受信したIPパケットに設定されているToS値(又はMACフレームに設定されているCoS値)と、アクセス領域に設定されている優先度と、記憶装置40の状態情報とを基に返信パケットに設定されるToS値(又はCoS値)を計算する(ステップ1603)。返信パケットに設定される優先度の計算方法については、後述する。
【0077】
一方、優先度及び状態情報の両方ともステータスなしが記録されている場合には(ステップ1602;YES)、優先度計算部23は、NASクライアント80から受信したIPパケットに設定されているToS値(又はMACフレームに設定されているCoS値)と同じ値を返信パケットの優先度として設定する(ステップ1604)。
【0078】
次に、返信パケットに設定される優先度の計算方法について説明する。
説明の便宜上、優先度を以下のように定義する。
(1)優先度は、その値が小さい程、優先度が高いものとする。
(2)優先度の値は、1以上の自然数とする。
上記の定義によれば、優先度「1」が最優先となる。但し、上記の定義は、あくまでも便宜上のものであって、本実施形態は上記の定義に限られるものではない。
【0079】
ここで、NASサーバ20からNASクライアント80に送信される返信パケットの優先度(ToS値又はCoS値)をP1、NASサーバ20がNASクライアント80から受信するIPパケットの優先度(優先度計算テーブル31に記録されているToS値又はCoS値)をP2、ファイルアクセスが要求されているアクセス領域に設定されている優先度(優先度計算テーブル31に記録されている優先度)をP3、記憶装置40の状態情報(優先度計算テーブル31に記録されている構成情報、障害情報、及び負荷情報)をP4とすると、P1は以下の計算式に基づいて計算される。
P1=K1×P2×L1×P3×M1×P4
ここで、K1,L1,M1は、重み係数であり、1以上の自然数の値をとる。例えば、P1を計算する上で、アクセス領域に設定されている優先度P3を重視する場合には、L1の値をK1,M1の値よりも大きく設定すればよい。また、P1の値として、ToS値とCoS値のうち何れの情報を採用するのかは、管理テーブル30の“QoS制御”の欄に格納されている情報に基づいて決定される。
【0080】
また、構成情報をP5、障害情報をP6、負荷情報をP7とすると、P4は以下の計算式に基づいて計算される。
P4=K2×P5×L2×P6×M2×P7
ここで、K2,L2,M2は、重み係数であり、1以上の自然数の値をとる。例えば、P4を計算する上で、障害情報P6を重視する場合には、L2の値をK2,M2の値よりも大きく設定すればよい。
【0081】
構成情報P5の値は、以下のようにして計算する。
P5=[RAIDレベル]×[デバイスタイプ]
[RAIDレベル]=1 :RAID0
[RAIDレベル]=2 :RAID0/1
[RAIDレベル]=3 :RAID1
[RAIDレベル]=4 :RAID5
[RAIDレベル]=5 :RAID6
[デバイスタイプ]=1 :FCディスク
[デバイスタイプ]=3 :SATAディスク
【0082】
障害情報P6の値は、以下のようにして計算する。
P6=[デバイス障害]×[コントローラ障害]×[キャッシュ障害]×[クラスタフェールオーバ]
[デバイス障害]=1 :デバイス障害無し
[デバイス障害]=5 :デバイス障害有り
[コントローラ障害]=1 :コントローラ障害無し
[コントローラ障害]=5 :コントローラ障害有り
[キャッシュ障害]=1 :キャッシュ障害無し
[キャッシュ障害]=5 :キャッシュ障害有り
[クラスタフェールオーバ]=1 :クラスタフェールオーバ無し
[クラスタフェールオーバ]=5 :クラスタフェールオーバ有り
【0083】
負荷情報P7の値は、管理テーブル30に格納されている監視パラメータで指定されているものを選択し、以下のようにして求める。
P7=1 :レプリケーション実行無し
P7=2 :レプリケーション実行有り
P7=1 :バックアップ実行無し
P7=2 :バックアップ実行有り
P7=1 :レスポンスタイム7mS以上
P7=2 :レスポンスタイム7mS未満
P7=1 :CPU使用率50%以上
P7=2 :CPU使用率50%未満
例えば、ボリューム2に設定されている監視パラメータは、レスポンスタイムなので、P7=1となる。
【0084】
尚、上記の計算方法は、記憶装置40に障害が生じているときには、ファイルアクセスが遅延することを想定し、返信パケットの優先度を高くしても、その遅延分を補うことができないことに着目して、返信パケットの優先度を低くするという運用方法に立脚している。但し、記憶装置40に障害が生じているときには、返信パケットの優先度を高くしてファイルアクセスの遅延を補うという運用方法も考えられる。かかる運用方法では、障害情報P6の値は、以下のようにして計算する。
P6=[デバイス障害]×[コントローラ障害]×[キャッシュ障害]×[クラスタフェールオーバ]
[デバイス障害]=5 :デバイス障害無し
[デバイス障害]=1 :デバイス障害有り
[コントローラ障害]=5 :コントローラ障害無し
[コントローラ障害]=1 :コントローラ障害有り
[キャッシュ障害]=5 :キャッシュ障害無し
[キャッシュ障害]=1 :キャッシュ障害有り
[クラスタフェールオーバ]=5 :クラスタフェールオーバ無し
[クラスタフェールオーバ]=1 :クラスタフェールオーバ有り
【0085】
尚、上記の計算式に基づいて、返信パケットの優先度の値を設定し直すタイミングとしては、1パケット単位であってもよく、或いは1ファイル単位(又は1セッション単位)であってもよい。1パケット単位でQoS制御すると、その時々の状況に応じた適切なQoS制御が可能になる。1ファイル単位でQoS制御すると、QoS制御が簡易になり、NASサーバ20の負荷を低減できる。
【図面の簡単な説明】
【0086】
【図1】本実施形態に係るストレージシステムの機能ブロック図である。
【図2】ストレージシステムの記憶階層の説明図である。
【図3】IPv4パケットフォーマットの説明図である。
【図4】Precedence値の説明図である。
【図5】DSCP値の説明図である。
【図6】MACフレームフォーマットの説明図である。
【図7】CoS値の説明図である。
【図8】管理テーブルの説明図である。
【図9】優先度計算テーブルの説明図である。
【図10】ToS値記録処理ルーチンを示すフローチャートである。
【図11】CoS値記録処理ルーチンを示すフローチャートである。
【図12】優先度記録処理ルーチンを示すフローチャートである。
【図13】構成情報記録処理ルーチンを示すフローチャートである。
【図14】障害情報記録処理ルーチンを示すフローチャートである。
【図15】負荷情報記録処理ルーチンを示すフローチャートである。
【図16】優先度計算処理ルーチンを示すフローチャートである。
【符号の説明】
【0087】
10…ストレージシステム 20…NASサーバ 23…優先度計算部 24…テーブル作成部 30…管理テーブル 31…優先度計算テーブル 40…記憶装置 50…記憶制御装置 60…ストレージデバイス 70…LANスイッチ 80…NASクライアント
【特許請求の範囲】
【請求項1】
クライアントからのアクセス要求を処理するストレージシステムであって、
前記クライアントからのアクセス要求に対する応答として前記クライアントに返信される返信パケットに設定される優先度を、前記クライアントがアクセスしたアクセス領域に予め設定されている優先度に基づいて計算する優先度計算部を備える、ストレージシステム。
【請求項2】
クライアントからのアクセス要求を処理するストレージシステムであって、
前記クライアントからのアクセス要求に対する応答として前記クライアントに返信される返信パケットに設定される優先度を、前記ストレージシステムの状態情報に基づいて計算する優先度計算部を備える、ストレージシステム。
【請求項3】
請求項2に記載のストレージシステムであって、
前記状態情報は、前記アクセス領域を提供するストレージデバイスの構成情報、前記ストレージシステムの負荷情報、前記ストレージシステムの障害情報のうち何れかの情報を含む、ストレージシステム。
【請求項4】
請求項3に記載のストレージシステムであって、
前記優先度計算部は、前記ストレージシステムに障害が生じているときには、前記ストレージシステムに障害が生じてないときよりも、前記返信パケットの優先度を高く設定する、ストレージシステム。
【請求項5】
請求項3に記載のストレージシステムであって、
前記優先度計算部は、前記ストレージシステムに障害が生じているときには、前記ストレージシステムに障害が生じてないときよりも、前記返信パケットの優先度を低く設定する、ストレージシステム。
【請求項6】
クライアントからのアクセス要求を受信するステップと、
前記クライアントからのアクセス要求に対する応答として前記クライアントに返信される返信パケットに設定される優先度を、前記クライアントがアクセスしたアクセス領域に予め設定されている優先度に基づいて計算するステップと、
前記返信パケットを前記クライアントに返信するステップと、
を備える通信制御方法。
【請求項7】
請求項6に記載の通信制御方法であって、
前記返信パケットに設定される優先度を、前記ストレージシステムの状態情報に基づいて計算するステップを更に備える、通信制御方法。
【請求項8】
請求項7に記載の通信制御方法であって、
前記状態情報は、前記アクセス領域を提供するストレージデバイスの構成情報、前記ストレージシステムの負荷情報、前記ストレージシステムの障害情報のうち何れかの情報を含む、通信制御方法。
【請求項9】
請求項8に記載の通信制御方法であって、
前記ストレージシステムに障害が生じているときには、前記ストレージシステムに障害が生じてないときよりも、前記返信パケットの優先度を高く設定するステップを更に備える、通信制御方法。
【請求項10】
請求項8に記載の通信制御方法であって、
前記ストレージシステムに障害が生じているときには、前記ストレージシステムに障害が生じてないときよりも、前記返信パケットの優先度を低く設定するステップを更に備える、通信制御方法。
【請求項1】
クライアントからのアクセス要求を処理するストレージシステムであって、
前記クライアントからのアクセス要求に対する応答として前記クライアントに返信される返信パケットに設定される優先度を、前記クライアントがアクセスしたアクセス領域に予め設定されている優先度に基づいて計算する優先度計算部を備える、ストレージシステム。
【請求項2】
クライアントからのアクセス要求を処理するストレージシステムであって、
前記クライアントからのアクセス要求に対する応答として前記クライアントに返信される返信パケットに設定される優先度を、前記ストレージシステムの状態情報に基づいて計算する優先度計算部を備える、ストレージシステム。
【請求項3】
請求項2に記載のストレージシステムであって、
前記状態情報は、前記アクセス領域を提供するストレージデバイスの構成情報、前記ストレージシステムの負荷情報、前記ストレージシステムの障害情報のうち何れかの情報を含む、ストレージシステム。
【請求項4】
請求項3に記載のストレージシステムであって、
前記優先度計算部は、前記ストレージシステムに障害が生じているときには、前記ストレージシステムに障害が生じてないときよりも、前記返信パケットの優先度を高く設定する、ストレージシステム。
【請求項5】
請求項3に記載のストレージシステムであって、
前記優先度計算部は、前記ストレージシステムに障害が生じているときには、前記ストレージシステムに障害が生じてないときよりも、前記返信パケットの優先度を低く設定する、ストレージシステム。
【請求項6】
クライアントからのアクセス要求を受信するステップと、
前記クライアントからのアクセス要求に対する応答として前記クライアントに返信される返信パケットに設定される優先度を、前記クライアントがアクセスしたアクセス領域に予め設定されている優先度に基づいて計算するステップと、
前記返信パケットを前記クライアントに返信するステップと、
を備える通信制御方法。
【請求項7】
請求項6に記載の通信制御方法であって、
前記返信パケットに設定される優先度を、前記ストレージシステムの状態情報に基づいて計算するステップを更に備える、通信制御方法。
【請求項8】
請求項7に記載の通信制御方法であって、
前記状態情報は、前記アクセス領域を提供するストレージデバイスの構成情報、前記ストレージシステムの負荷情報、前記ストレージシステムの障害情報のうち何れかの情報を含む、通信制御方法。
【請求項9】
請求項8に記載の通信制御方法であって、
前記ストレージシステムに障害が生じているときには、前記ストレージシステムに障害が生じてないときよりも、前記返信パケットの優先度を高く設定するステップを更に備える、通信制御方法。
【請求項10】
請求項8に記載の通信制御方法であって、
前記ストレージシステムに障害が生じているときには、前記ストレージシステムに障害が生じてないときよりも、前記返信パケットの優先度を低く設定するステップを更に備える、通信制御方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【公開番号】特開2007−310772(P2007−310772A)
【公開日】平成19年11月29日(2007.11.29)
【国際特許分類】
【出願番号】特願2006−141138(P2006−141138)
【出願日】平成18年5月22日(2006.5.22)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】
【公開日】平成19年11月29日(2007.11.29)
【国際特許分類】
【出願日】平成18年5月22日(2006.5.22)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】
[ Back to top ]