JP2014526749A - 部分的複製において、圧縮を用いるための方法及びシステム - Google Patents
部分的複製において、圧縮を用いるための方法及びシステム Download PDFInfo
- Publication number
- JP2014526749A JP2014526749A JP2014530823A JP2014530823A JP2014526749A JP 2014526749 A JP2014526749 A JP 2014526749A JP 2014530823 A JP2014530823 A JP 2014530823A JP 2014530823 A JP2014530823 A JP 2014530823A JP 2014526749 A JP2014526749 A JP 2014526749A
- Authority
- JP
- Japan
- Prior art keywords
- blocks
- compressed
- group size
- variable compression
- data container
- 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
- 230000006835 compression Effects 0.000 title claims abstract description 83
- 238000007906 compression Methods 0.000 title claims abstract description 83
- 238000000034 method Methods 0.000 title claims abstract description 38
- 230000010076 replication Effects 0.000 title description 13
- 230000003362 replicative effect Effects 0.000 claims abstract description 12
- 238000004590 computer program Methods 0.000 claims description 7
- 230000015654 memory Effects 0.000 description 19
- 238000012545 processing Methods 0.000 description 14
- 238000010367 cloning Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 239000000835 fiber Substances 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- 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/11—File system administration, e.g. details of archiving or snapshots
- G06F16/128—Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0617—Improving the reliability of storage systems in relation to availability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1453—Management of the data involved in backup or backup restore using de-duplication of the data
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
圧縮を用いて部分的にデータコンテナを複製するための方法及びシステムを提供する。ストレージ・オペレーティングシステムは、非可変圧縮グループサイズを用いて圧縮された複数の圧縮されたブロックを、複製すべき一部のソース・データコンテナが含むかどうかを判定する。前記オペレーティングシステムは、前記非可変圧縮グループサイズを用いて、前記複数の圧縮されたブロックを複製する。そして、前記非可変圧縮グループサイズ内ではない前記データコンテナの複数のブロックを解凍する。そして、前記複数の圧縮されたブロックと、前記非可変圧縮グループサイズ内ではない前記複数のブロックとが、前記ソース・データコンテナの部分的に複製されたコピーとして記憶される。
Description
本開示はストレージ・システムに関する。
通常、ストレージ・システムは、1以上のストレージ・デバイスを含む。ここで、望むままに、情報を入力することができ、そして、そこから情報を得ることができる。前記ストレージ・システムは、通常、ストレージ・オペレーティングシステムを含む。該オペレーティングシステムは前記ストレージシステムを機能的に組織し、とりわけ、前記システムが実施するストレージ・サービスのサポートにおけるストレージ操作を引き起こすことにより組織する。前記ストレージ・システムは、種々のストレージ・アーキテクチャに従い、実装することができる。該アーキテクチャとしては、以下のものが含まれるがこれらに限定されない:ネットワークに取り付けられたストレージ環境、ストレージ・エリア・ネットワーク、及びユーザー又はホスト・コンピュータに直接取り付けられたストレージ・デバイス。情報のストレージは、ストレージ・スペースの全体的な論理的配置を規定する物理的ディスクの1以上のストレージ「ボリューム」として実装されることが好ましい。
ストレージ・システムは、通常、ストレージ・アレイに情報を記憶する。そして、災害復旧又は他の理由から、レプリケーションし、アーカイブ化することができる。前記レプリケーション・プロセスは「バックアップ」操作とよく言われる。
ストレージ・デバイスに記憶された情報を圧縮するために、前記ストレージ・システムは、通常、非可変圧縮サイズを用いる。このアプローチは、データコンテナ全体を複製しようとするときには有効である。もしも、前記データコンテナが部分的に複製される場合、前記非可変圧縮グループサイズはさほど効果的ではない可能性がある。その理由としては、複製される前記データコンテナの一部内にあるすべてのデータブロックを解凍する必要があるからであり、前記データコンテナの前記一部を圧縮するために非可変圧縮グループサイズを用いるからである。圧縮を用いた部分的複製を改良するための努力は現在も続けられている。
概要
一実施形態において、圧縮を用いて部分的にデータコンテナを複製するための方法及びシステムを提供する。ストレージ・オペレーティングシステムは、非可変圧縮グループサイズを用いて圧縮された複数の圧縮されたブロックを、複製すべき一部のソース・データコンテナが含むかどうかを判定する。前記オペレーティングシステムは、前記非可変圧縮グループサイズを用いて、前記複数の圧縮されたブロックを複製する。また、前記非可変圧縮グループサイズ内ではない前記データコンテナの複数のブロックを解凍する。そして、前記複数の圧縮されたブロックと、前記非可変圧縮グループサイズ内ではない前記複数のブロックとが、前記ソース・データコンテナの部分的に複製されたコピーとして記憶される。
一実施形態において、圧縮を用いて部分的にデータコンテナを複製するための方法及びシステムを提供する。ストレージ・オペレーティングシステムは、非可変圧縮グループサイズを用いて圧縮された複数の圧縮されたブロックを、複製すべき一部のソース・データコンテナが含むかどうかを判定する。前記オペレーティングシステムは、前記非可変圧縮グループサイズを用いて、前記複数の圧縮されたブロックを複製する。また、前記非可変圧縮グループサイズ内ではない前記データコンテナの複数のブロックを解凍する。そして、前記複数の圧縮されたブロックと、前記非可変圧縮グループサイズ内ではない前記複数のブロックとが、前記ソース・データコンテナの部分的に複製されたコピーとして記憶される。
別の実施形態では、非可変圧縮グループサイズ内である複数のブロックと前記非可変圧縮グループサイズ内ではないブロックとを有するデータコンテナを複製するための、機械で実施される方法を提供する。
前記方法は、以下のステップを含む:
前記非可変圧縮グループサイズを用いて圧縮される複数の圧縮ブロックを決定するステップ;
前記非可変圧縮グループサイズを用いて前記複数の圧縮されたブロックを複製するステップ;
前記非可変圧縮グループサイズ内ではない前記データコンテナの複数のブロックを解凍するステップ;及び
前記複数の圧縮されたブロックと前記非可変圧縮グループサイズ内ではない前記複数のブロックとを、部分的に複製された一部の前記データコンテナとして記憶するステップ。
前記方法は、以下のステップを含む:
前記非可変圧縮グループサイズを用いて圧縮される複数の圧縮ブロックを決定するステップ;
前記非可変圧縮グループサイズを用いて前記複数の圧縮されたブロックを複製するステップ;
前記非可変圧縮グループサイズ内ではない前記データコンテナの複数のブロックを解凍するステップ;及び
前記複数の圧縮されたブロックと前記非可変圧縮グループサイズ内ではない前記複数のブロックとを、部分的に複製された一部の前記データコンテナとして記憶するステップ。
更に別の実施形態において、データコンテナを複製するための方法であって、機械で実施される方法を提供する。
前記方法は以下のステップを含む:
ソース・データコンテナの一部についての複製コピーを生成するために、前記ソース・データコンテナをスキャンするステップ。ここで、前記ソース・データコンテナの前記一部が、非可変圧縮グループサイズを用いて圧縮された複数のブロックと、前記非可変圧縮グループサイズ内ではない少なくとも1つのブロックとを含む。
前記方法は以下のステップを含む:
ソース・データコンテナの一部についての複製コピーを生成するために、前記ソース・データコンテナをスキャンするステップ。ここで、前記ソース・データコンテナの前記一部が、非可変圧縮グループサイズを用いて圧縮された複数のブロックと、前記非可変圧縮グループサイズ内ではない少なくとも1つのブロックとを含む。
前記方法は、更に以下のステップを含む:
前記ソース・データコンテナから前記少なくとも1つのブロックを読み出すステップ;及び
前記少なくとも1つのブロックと、前記非可変圧縮グループサイズを用いて圧縮された前記複数のブロックとを有する前記ソース・データコンテナの一部の前記複製コピーを生成するステップ。
前記ソース・データコンテナから前記少なくとも1つのブロックを読み出すステップ;及び
前記少なくとも1つのブロックと、前記非可変圧縮グループサイズを用いて圧縮された前記複数のブロックとを有する前記ソース・データコンテナの一部の前記複製コピーを生成するステップ。
別の実施形態では、あるシステムを提供する。前記システムは、第一のコンピューティング・システムを含み、
前記第一のコンピューティング・システムは、ストレージ・システムとのインターフェースとなり、
前記ストレージ・システムは、複数のデータコンテナをストレージ・デバイスで管理するための指示を実行するハードウェア・プロセッサを含む。
前記プロセッサは、ソース・データコンテナの一部の複製コピーを生成するために、前記ソース・データコンテナをスキャンし、
前記一部の前記ソース・データコンテナは、非可変圧縮グループサイズを用いて圧縮された複数のブロックと、少なくとも1つの前記非可変圧縮グループサイズ内ではないブロックとを含み、
前記プロセッサは、前記ソース・データコンテナから前記少なくとも1つのブロックを読み出し、及び、
前記プロセッサは、前記少なくとも1つのブロックと、前記非可変圧縮グループサイズを用いて圧縮された前記複数のブロックとを有する前記データコンテナの一部の前記複製コピーを生成する。
前記第一のコンピューティング・システムは、ストレージ・システムとのインターフェースとなり、
前記ストレージ・システムは、複数のデータコンテナをストレージ・デバイスで管理するための指示を実行するハードウェア・プロセッサを含む。
前記プロセッサは、ソース・データコンテナの一部の複製コピーを生成するために、前記ソース・データコンテナをスキャンし、
前記一部の前記ソース・データコンテナは、非可変圧縮グループサイズを用いて圧縮された複数のブロックと、少なくとも1つの前記非可変圧縮グループサイズ内ではないブロックとを含み、
前記プロセッサは、前記ソース・データコンテナから前記少なくとも1つのブロックを読み出し、及び、
前記プロセッサは、前記少なくとも1つのブロックと、前記非可変圧縮グループサイズを用いて圧縮された前記複数のブロックとを有する前記データコンテナの一部の前記複製コピーを生成する。
更に別の実施形態において、コンピュータ・プログラム製品を提供する。前記製品は、コンピュータが使用可能な記憶媒体を含み、
前記媒体は、該媒体上で具現化されるコンピュータが読み取り可能な指示を含み、
前記コンピュータが読み取り可能な指示は、非可変圧縮グループサイズ内である複数のブロックと前記非可変圧縮グループサイズ内ではないブロックとを有するデータコンテナを複製するために前記媒体中で実行される。
前記コンピュータが読み取り可能な指示は、以下を含む:
データコンテナの一部を複製するために前記非可変圧縮グループサイズを用いて圧縮された複数の圧縮ブロックを決定するための指示;
前記非可変圧縮グループサイズを用いて前記複数の圧縮されたブロックを複製するための指示;
前記非可変圧縮グループサイズ内ではない前記データコンテナの複数のブロックを解凍するための指示;及び
前記複数の圧縮されたブロックと前記非可変圧縮グループサイズ内ではない前記複数のブロックとを、部分的に複製された一部の前記データコンテナとして記憶するための指示。
前記媒体は、該媒体上で具現化されるコンピュータが読み取り可能な指示を含み、
前記コンピュータが読み取り可能な指示は、非可変圧縮グループサイズ内である複数のブロックと前記非可変圧縮グループサイズ内ではないブロックとを有するデータコンテナを複製するために前記媒体中で実行される。
前記コンピュータが読み取り可能な指示は、以下を含む:
データコンテナの一部を複製するために前記非可変圧縮グループサイズを用いて圧縮された複数の圧縮ブロックを決定するための指示;
前記非可変圧縮グループサイズを用いて前記複数の圧縮されたブロックを複製するための指示;
前記非可変圧縮グループサイズ内ではない前記データコンテナの複数のブロックを解凍するための指示;及び
前記複数の圧縮されたブロックと前記非可変圧縮グループサイズ内ではない前記複数のブロックとを、部分的に複製された一部の前記データコンテナとして記憶するための指示。
本明細書に記載の実施形態は、いくつかの利点を有する。なぜならば、ユーザーは部分的複製と圧縮の両方の利点を享受できるからである。
以上、本開示の性質を端的に理解できるように概要の説明を行った。本開示については、以下、添付した図面と関連して、本開示の様々な実施形態の詳細な説明を参照することにより、より完全に理解することができる。
上記特徴及び他の特徴について、以下説明を行う。該説明の際には、様々な実施形態の図面に言及しながら行う。図面においては、同一の構成要素についいては、同一の参照番号を有する。例示された実施形態は、あくまで例示することを意図しており、本開示内容を限定するものではない。図面は、以下の図を含む。
詳細な説明
事前の説明として、用語「構成要素」(コンポーネント)、「モジュール」、「システム」などの本開示で用いる用語は、コンピュータに関連するエントリについて言及することを意図したものであり、 プログラム制御可能な指示を実行する汎用目的プロセッサ、ハードウェア、ファームウェア及びこれらの組み合わせのいずれかをさす。例えば、コンポーネントは、プロセッサ上で実行されるプロセス、プロセッサ、オブジェクト、実行可能なもの、実行スレッド、プログラム及び/又はコンピュータであってもよいがこれらに限定されない。
事前の説明として、用語「構成要素」(コンポーネント)、「モジュール」、「システム」などの本開示で用いる用語は、コンピュータに関連するエントリについて言及することを意図したものであり、 プログラム制御可能な指示を実行する汎用目的プロセッサ、ハードウェア、ファームウェア及びこれらの組み合わせのいずれかをさす。例えば、コンポーネントは、プロセッサ上で実行されるプロセス、プロセッサ、オブジェクト、実行可能なもの、実行スレッド、プログラム及び/又はコンピュータであってもよいがこれらに限定されない。
例示的な意味合いで、サーバー上で実行される アプリケーション、及び該サーバーの両方もコンポーネントとなりうる。1以上のコンポーネントはプロセス及び/又は実行スレッド内に存在してもよい。また、コンポーネントは、1台のコンピュータ上に局所化してもよいし、及び/又は2以上のコンピュータ間に分散させてもよい。また、これらのコンポーネントは、様々なコンピュータ読取可能媒体から実行することができる。そして、該媒体上では様々なデータ構造が記憶されている。前記コンポーネントは、ローカル及び/又はリモート・プロセスを介して通信することができ、例えば、1以上のデータパケットを有する信号に従い通信することができる(例えば、ローカル・システムにおいて、分散システムにおいて、及び/又はネットワーク間において、別のコンポーネントと相互作用する1つのコンポーネントからのデータ(例えば、信号を介した他のシステムとのインターネット))。
特許請求の範囲に記載した主題に従い、コンピュータ実行可能なコンポーネントは、例えばコンピュータ読取可能媒体上に記憶することができ、以下の物が含まれるがこれらに限定されない:ASIC(特定用途向けIC)、CD(コンパクト・ディスク)、DVD(デジタル・ビデオ・ディスク)、ROM (リード・オンリ・メモリ)、フロッピー(登録商標)ディスク、ハードディスク、EEPROM(電気的に消去可能且つプログラム制御可能なリード・オンリ・メモリ)、メモリースティック、フラッシュ・メモリデバイス、又は他の任意の不揮発性のメモリデバイス、又は他の任意のストレージ・デバイス。
一実施形態において、圧縮を用いてデータコンテナを部分的に複製するための方法及びシステムを提供する。ストレージ・オペレーティングシステムは、複製されるべき一部のソース・データコンテナが非可変圧縮グループサイズを用いて圧縮された複数の圧縮されたブロックを含むかどうかを判定する。前記オペレーティングシステムは、前記非可変圧縮グループサイズを用いて、前記複数の圧縮されたブロックを複製する。そして、前記非可変圧縮グループサイズの範囲内ではないデータコンテナの複数のブロックを解凍する。その後、前記複数の圧縮されたブロックと前記非可変圧縮グループサイズ内ではない前記複数のブロックとが、前記ソース・データコンテナの部分的に複製されたコピーとして記憶される。
図1は、稼働環境(100)(システム(100)ともいう)の概念的ブロック図である。該環境では、有利には本開示とともに用いることができるストレージ・システム(108)を含む。システム(100)は1以上のデータコンテナ(例えば、ディレクトリ、ファイル、構造化及び非構造化データ)を記憶するために用いられる。そして、以下で詳述するが、可変及び非可変圧縮サイズを用いて、前記データコンテナは部分的に複製される。
前記ストレージ・システム(108)は、1以上の コンピューティング・システムであってよく、該システムは、ストレージ・サービスを設けてもよく、該サービスは、ストレージ・デバイス(例えば、ストレージ・サブシステム(132)のストレージ・デバイス(130))での情報の組織化に関するものであってもよい。ストレージ・デバイス(130)は、例えば、以下の物であってもよい:テープ・ドライブ、従来の磁気ディスク、光学ディスク(例えば、CD−ROM又はDVDベースのストレージ)、光磁気(MO)ストレージ、フラッシュ・メモリ・ストレージ・デバイス、又は、データを記憶するのに適した任意の他の種類のストレージ・デバイス。本明細書に記載の前記例示は、ストレージ・デバイスを「ディスク・ドライブ」を意味するものとして言及してもよいが、本明細書に記載の適応した実施形態は、任意の特定種類のストレージ媒体/デバイスに限定されない。
前記ストレージ・システム(108)は1以上の以下の物を備える:プロセッサ(112)(中央演算処理装置とも言う)、メモリ(114)、ネットワーク・アダプタ(126)、及びストレージ・アダプタ(128)。これらは、相互接続システム(又はバス・システム)(124)によって接続されてもよい。プロセッサ(112)は以下の1以上の物であってもよく、又は以下の1以上の物を含むことができる:プログラム制御可能な汎用目的又は特定目的のマイクロプロセッサ、デジタルシグナルプロセッサ(DSP)、プログラム制御可能なコントローラー、特定用途向けIC(ASIC)、プログラム制御可能な論理デバイス(PLD)等、又はこうしたデバイスの組み合わせ。前記バス・システム(124)は、例えば、以下の物を含むことができる:システム・バス、ペリフェラル・コンポーネント・インターコネクト(PCI)バス、ハイパートランスポート若しくはインダストリ・スタンダード・アーキテクチャ(ISA)バス、スモール・コンピュータ・システム・インターフェース(SCSI)バス、ユニバーサル・シリアル・バス(USB)、又はアイトリプルイー(IEEE)規格1394バス(時として、「Firewire(登録商標)」と呼ばれる)。
また、前記ストレージ・システム(108)は、ストレージ・オペレーティングシステム(118)を含み、該システムは、好ましくは高レベルのモジュール(例えば、 ファイル・システム)を実装して、ストレージ・デバイス(130)上のデータコンテナの階層構造として、情報を論理的に組織化する。
前記例示的な実施形態において、メモリ(114)は、記憶ロケーションを備え、該ロケーションは、マシン実行可能な指示を記憶するために、プロセッサ(112)及び他のモジュール(例えば、ストレージ・アダプタ(128)及びネットワーク・アダプタ(126))によって、アドレス割り当てがなされる。一部のメモリは、本開示に関連するデータ構造を記憶するための「キャッシュ」(116)として更に組織化されてもよい。
ストレージ・オペレーティングシステム(118)は、一部については、通常メモリ内に存在し、前記処理要素によって実行されるが、前記システム(108)を機能的に組織化し、とりわけ、前記ストレージ・システムによって実行されるストレージ操作を喚起することによって組織化される。当業者にとっては明らかであろうが、他の処理手段及びメモリ手段(様々なコンピュータ読取可能媒体を含む)が、本明細書に記載の発明に関する技術に従って、プログラム指示を記憶及び実行するために使用することができる。
前記ネットワーク・アダプタ(126)は、機械的、電子的、そして、信号の回路を含み、該回路は、前記ストレージ・システム(108)を、1以上のクライアント・システム(102)(クライアント(102)として示す)に、接続システム(106)(ネットワーク(106)とも言う)を介して接続するのに必要となる。そして、これらは、ポイント・トゥ・ポイント接続、又は共有媒体(例えば、ローカル・エリア・ネットワーク)を備えてもよい。例示として、接続システム(106)はイーサネット(登録商標)ネットワーク又はファイバー・チャネル(FC)ネットワークとして実施できる。前記クライアント(102)は、既定のプロトコル(例えば、伝送コントロール・プロトコル/インターネット・プロトコル(TCP/IP))に従って、個別のデータフレーム又はデータパケットを交換することにより、ネットワーク(106)を介して前記ストレージ・システムと通信することができる。
クライアント(102)は、プロセッサが実行可能なアプリケーション(104)を実行するように設計された汎用目的コンピュータであってよい。更に、クライアント(102)は、情報伝達のクライアント/サーバー・モデルに従い、前記ストレージ・システム(108)と相互作用することができる。すなわち、前記クライアントは、前記ストレージ・システムのサービスのリクエストをだすことができる。そして、前記システムは、前記クライアントからリクエストされたサービスの結果をリターンすることができる。該リターンは、前記ネットワーク(106)を介してパケット(110)を交換することによって行うことができる。ファイル及びディレクトリの形態の情報にアクセスするときに、前記クライアントは、TCP/IPを介してパケットを発行することができ、該パケットは、ファイルベースのアクセスプロトコルを含むことができる(例えば、コモン・インターネット・ファイル・システム(CIFS)プロトコル、又はネットワーク・ファイル・システム(NFS)プロトコル)。或いは、ブロック形態の情報にアクセスするときには、前記クライアントは、パケットを発行することができ、該パケットは、ブロック・ベースのアクセスプロトコルを含むことができる(例えば、TCPを介してカプセル化されたスモール・コンピュータ・システム・インターフェース(SCSI)プロトコル(iSCSI)、及びファイバー・チャネル(FCP)を介してカプセル化されたSCSI)。
前記ストレージ・アダプタ(128)は、前記システム(108)上で実行する前記ストレージ・オペレーティングシステム(118)と協働し、ユーザー(又はクライアント)が要求する情報にアクセスする。前記ストレージ・アダプタは、入力/出力(I/O)インターフェース回路を含み、前記回路は、I/O相互接続配置(例えば、従来の高性能な、FCシリアル・リンク・トポロジー)を介して前記ストレージ・デバイスと接続する。
ストレージ・システム(108)は、データの読み書きをするために、クライアントにストレージ・ボリュームを提示する。ここで使用される用語「ストレージ・ボリューム」又は「ボリューム」は、物理的なストレージを抽象化した論理的なデータセットを意味し、1以上の物理的マス・ストレージ・デバイス又はこれらのパーツを単一の論理的なストレージオブジェクトに結合したものを意味する。しかし、各ストレージ・ボリュームは、1つのストレージ・デバイス内の前記ストレージ・スペース、複数のストレージ・デバイス内の幾つか若しくはすべてのストレージ・スペースの集合、RAIDグループ、又は任意の他のストレージ・スペースのセットを表してもよい。
ストレージ・ボリュームは、通常、物理的ストレージ・デバイス(130)の集合であり、協働して前記ボリューム(複数可)上でのボリューム・ブロック・ナンバー(vbn)スペースの全体の論理的な配置を定義する。必ずしもそうとは限らないが、各論理的ボリュームは、一般的に、該ボリューム自身のファイル・システムと関連している。論理的ボリューム/ファイル・システム内の前記ストレージ・デバイスは、通常、1以上のグループとして組織化されており、各グループは、リダンダント・アレイ・オブ・インデペンデント(又はインエクスペンシブ)・ディスクス(RAID)として、稼働させてもよい。
前記ストレージ・デバイス(130)へのアクセスを促進させるため、一実施形態において、前記ストレージ・オペレーティングシステム(118)は、ライト・エニウェア・ファイル・システムを実装する。前記ファイル・システムは、名前付けされたデータコンテナ(例えば、 ディレクトリ及びファイル)の階層構造として、論理的に情報を組織化する。各「オンディスク」データコンテナは、情報(例えば、データ)を記憶するように設計されたブロックのセットとして実装することができる。一方で、ディレクトリは、特別にフォーマットされたデータコンテナとして実装することができる。ここで、名前並びに他のデータコンテナ及びディレクトリへのリンクが記憶される。ストレージ・デバイス(130)でのブロックは、名前付けされた論理的なユニット番号(lun)としてエクスポートすることができる。
前記例示的な実施形態において、前記ストレージ・オペレーティングシステムは、NetApp社(Sunnyvale, California)から入手できるNetApp(登録商標)Data ONTAP(商標)オペレーティングシステムが好ましく、該システムは、Write Anywhere File Layout(WAFL(商標))ファイル・システムを実装する。しかし、明示的に意図するが、本明細書に記載の本発明の原理に従い、任意の適切なストレージ・オペレーティングシステムを使用目的で強化することができる。従って、用語「WAFL」を用いるが、そのものでなかったとしても、本開示の教示内容に適合する任意のストレージ・オペレーティングシステムを指すものとして広く解釈すべきである。
ストレージ・システム(108)は、スタンド・アロン・システム、即ち、非クラスターベースのシステムとして示してはいるものの、別の実施形態では、ストレージ・システム(108)は、例えば、分離したN−(「ネットワーク」)ブレード及びD−(ディスク)ブレードを含むことができる、分散アーキテクチャを有することができる。要するに、前記N−ブレードは、クライアント(102)と通信するために用いられ、一方で、前記D−ブレードは、ストレージ・サブシステムの一部である前記ストレージ・デバイス(130)と通信するために用いられる。前記N−ブレード及びD−ブレードは、内部のプロトコルを用いてお互いに通信することができる。
或いは、ストレージ・システム(108)は組み込みアーキテクチャを有することができ、該アーキテクチャにおいて、ネットワーク及びデータ・コンポーネントが全て単一のボックス内に含まれる。前記ストレージ・システム(108)は、スイッチングファブリックを介して、他の類似のストレージ・システム(図示しない)に更に接続することができ、これらのシステムは、独自のローカル・ストレージ・サブシステムを有する。かくして、全てのストレージ・サブシステムは、単一のストレージ・プールを形成することができる。そこへ、任意の前記ストレージサーバーの任意のクライアントがアクセスする。
図2は、本開示の一実施形態に従ったストレージ・オペレーティングシステム(118)の包括的な例を示す。前記ストレージ・オペレーティングシステム(118)は、複数のデータコンテナを管理しており、これについては詳しく後述する。前記データコンテナは、可変圧縮グループサイズ及び非可変圧縮グループサイズを用いて部分的に複製される。これについては、詳しく後述する。
一例において、オペレーティングシステム(118)は、幾つかのモジュール、又は「層」を含むことができる。これらの層は、ファイル・システム・マネージャ(202)を含み、該マネージャは、ストレージ・デバイスに記憶されたデータのディレクトリ構造(階層)の追跡を継続し、読み書き操作を管理する(即ち、ストレージ・デバイス(130)上で読み書き操作を実行する)。
また、オペレーティングシステム(118)は、プロトコル層(204)及び関連するネットワーク・アクセス層(208)を含むことができ、ストレージ・システム(108)が、ネットワークを介して、他のシステム(例えば、クライアント(102))と通信することを可能にする。プロトコル層(204)は、後述するように、1以上の様々な高レベルのネットワーク・プロトコルを実装することができる(例えば、ハイパーテキスト・トランスファー・プロトコル(HTTP)、TCP/IP、及び他のプロトコル)。
ネットワーク・アクセス層(208)は、1以上のドライバを含むことができ、該ドライバは、1以上の低レベルプロトコルを実装し、ネットワーク(例えば、イーサネット(登録商標))を介して通信する。クライアント(102)及びマス・ストレージ・デバイス(130)の間の相互作用は、概念的にパスとして示しており、オペレーティングシステム(118)を通してのデータの流れを記載している。
また、前記オペレーティングシステム(118)は、ストレージ・アクセス層(206)、及び関連するストレージ・ドライバ層(210)を含むことができ、ストレージ・デバイス(例えば(130))と通信することができる。前記ストレージ・アクセス層(206)は、より高レベルのストレージ・プロトコル(例えば、RAID)を実装することができる。一方で、前記ストレージ・ドライバ層(210)は、より低レベルのストレージ・デバイス・アクセスプロトコル(例えば、SCSI)を実装することができる。
ファイル・システム・マネージャ(302)は、図1に関して詳細に上述したシステム(100)の様々なコンポーネントを含むことができ、又はこれらと相互作用することができる。ファイル・システム(202)は、視覚化モジュール(212)と相互作用することができ、又はこれとを含むことができ、ユーザー・インターフェース (UI)(214)を介して、ユーザー(システム管理者)にアクセス可能となり、該ユーザーは、前記ストレージ・システム(108)にコマンドを発行する。UI(214)は、管理者又はユーザーが様々な層及びシステムにアクセスすることを可能にする態様で、前記ストレージ・オペレーティングシステムを介して配置される。
留意されたい点として、上述のオペレーティングシステム層を介するソフトウェアの「パス」の代替えとして、ハードウェア、又はハードウェア及びソフトウェアの組み合わせ内で実装することができる。即ち、本開示の代替実施形態においては、ストレージ・アクセス・リクエスト・データ・パスは、現場でプログラム可能なゲートアレイ(FPGA)又はASIC内で実施される論理回路として実装することができる。
ここで使用される用語「ストレージ・オペレーティングシステム」とは、概して、コンピュータ実行可能なコードであり、コンピュータ上で動作するコードを指す。該コードは、データアクセスを管理し、汎用目的オペレーティングシステムのデータ・アクセス・セマンティクスを実装することができる、ストレージ機能を実行する。また、前記ストレージ・オペレーティングシステムは、以下のものとして実装することができる:マイクロカーネル;汎用目的オペレーティングシステム(例えば、UNIX(登録商標)、又はWindows(登録商標)XP(登録商標))上で動作するアプリケーション・プログラム;本明細書に記載のストレージ・アプリケーション用に設計された、設計可能な機能を有する汎用目的オペレーティングシステム。
更には、当業者は理解するであろうが、本明細書に記載の本開示は、任意の種類の特定目的コンピュータ(例えば、ファイル・サーバー、ファイラ、又はストレージ・サービング・アプライアンス)、又は汎用目的コンピュータに適用することができ、スタンドアロン・コンピュータ又はこれらの一部を含むことができ、ストレージ・システムとして実装することができ、又はこれを含むことができる。更に、本開示の教示内容は、種々のストレージ・システム・アーキテクチャに適応することができ、該アーキテクチャとして、以下の物が含まれるがこれらに限定されない。ネットワークに接続されたストレージ環境、ストレージ・エリア・ネットワーク、及びクライアント又はホスト・コンピュータに直接取り付けられたストレージ・デバイス。従って、用語「ストレージ・システム」は、広く解釈すべきものであり、ストレージ機能を実行するために設計され、且つ他の装置又はシステムと関連する任意のサブシステムに加えて、こうした配置構成を含む。
ファイル・システムは、例示として、メッセージ・ベースのシステムであり、該システムは、前記ストレージ・デバイス(130)に記憶された情報にアクセスする際の使用を目的として、論理的ボリューム管理機能を提供する。即ち、ファイル・システム・セマンティクスを提供することに加えて、前記ファイル・システム(202)は、ボリューム・マネージャと通常関連する機能を提供する。これらの機能は、以下のものを含む:(i)ストレージ・デバイスの集合、(ii)前記ストレージ・デバイスのストレージ帯域幅の集合、及び(iii)信頼性の保証(例えば、ミラーリング及び/又はパリティ(RAID))。
一実施形態において、前記ファイル・システム(202)は、例示として、WAFLファイル・システムを実装し、該システムは、オンディスク・フォーマット・レプレゼンテーションを有する。これは、ブロック・ベースの使用(例えば、4キロバイト(kB)ブロック)、及びインデックスノードの使用を行う(「アイノード」)。そして、データコンテナ及びデータコンテナ属性(例えば、作成時間、アクセス許可、サイズ、及びブロック・ロケーション)を特定する。前記ファイル・システム(202)は、データコンテナ(メタデータ・ファイル)を使用し、そのファイル・システムのレイアウトを記載したメタデータを記憶する。これらのメタデータ・ファイルは、数ある中でも、ファイル・ハンドルを有するアイノード、及び、ストレージ・ロケーションから前記アイノードを検索するために使用されるアイノード番号を含む識別子を含む。
広義に言うと、前記ライト・エニィウェア ファイル・システムの全てのアイノードは、前記アイノード・データコンテナに組織化される。ファイル・システム(FS)情報ブロックは、前記ファイル・システム内の情報のレイアウトを特定する。そして、前記情報ブロックは、前記ファイル・システムの全ての他のアイノードを含むデータコンテナのアイノードを含む。各論理的ボリューム (ファイル・システム)は、FS情報ブロックを有し、前記ブロックは、例えば、RAIDグループ内の固定ロケーションに記憶されるのが好ましい。ルートFS情報ブロックのアイノードは、アイノード・ファイルのブロックを直接参照(ポイント)することができる。又は、前記アイノード・ファイルのブロックを順々に直接参照するアイノード・ファイルのブロックを間接的に参照してもよい。アイノードは、前記アイノード・ファイルの各直接ブロック内に埋め込まれる。これらはそれぞれ、間接ブロックを参照することができ、データコンテナのデータ・ブロックを順々に参照することができる。
操作上で、クライアント(102)からのリクエストは、パケット(110)としてコンピュータ・ネットワーク(1106)を介し、そして、ストレージ・システム(108)上へ送られる。ここで、前記ネットワーク・アダプタ(126)で受信される。ネットワーク・ドライバ(層(208)のドライバ)は、パケットを処理する。そして、適宜、ライト・エニィウェア・ファイル・システム(202)へ送る前に更なる処理を行うことを目的として、パケットを、ネットワーク・プロトコル層及びファイル・アクセス層へ送る。ここで、もし、要求されたデータが「コア内」(即ちキャッシュ(116))に存在しない場合、前記ファイル・システムは、要求されたデータをストレージ・デバイス(130)からロードする操作を発生させる。前記キャッシュ内に情報が無い場合、適切なエントリにアクセスして、論理的VBNを検索するために、前記ファイル・システム(202)は、アイノード番号を用いて前記アイノードデータコンテナをインデックス化する。その後、前記ファイル・システムは、ストレージ・アクセス層(206)にメッセージ構造を渡し、該構造は、前記論理的VBNを含む。前記論理的VBNは、ストレージ・デバイス識別子、及びディスク・ブロック番号(ディスク、DBN)にマッピングされ、 前記ストレージ・ドライバ(210)に送信される。前記ストレージ・ドライバ(210)は、特定のディスク(130)からDBNにアクセスする。そして、前記ストレージ・システムが処理を行うことを目的としてキャッシュ(116)内のリクエストされたデータ・ブロック(複数可)をロードする。前記リクエストが完了すると、前記ストレージ・システム(及びオペレーティングシステム)は、ネットワーク(106)を介して、クライアント(102)に返答を返す。
例示的な実施形態において、データコンテナは、ストレージ・デバイス(130)で記憶するのに適応したアイノードとして表現される。また、アイノード(300)は、一実施形態に従って生成された部分的複製のために使用することができ、これについては、詳しく後述する。図3は、アイノード(300)の一例を提供する。該アイノードは、好ましくは、メタデータ・セクション(310)及びデータ・セクション(320)を含む。各アイノード(300)のメタデータ・セクション(310)中に記憶された情報は、データコンテナを記載する。従って、該情報は、以下のものを含む:データコンテナの種類(例えば、レギュラー、ディレクトリ、仮想ディスク)(312);データコンテナのサイズ(314);データコンテナに関するタイム・スタンプ(例えば、アクセス及び/又は変更)(316);並びに所有者(即ち、ユーザー識別子(UID(318)))、及びグループID(GID(320))。しかし、各アイノードのデータ・セクション(320)の中身は、タイプ・フィールド(312)内で定義されるアイノードの種類に依存して異なって解釈することができる。例えば、ディレクトリ・アイノードの前記データ・セクション(320)は、前記ファイル・システム(202)がコントロールするメタデータを含む。一方で、レギュラー・アイノードのデータ・セクションは、ファイル・システム・データを含む。後者の場合、前記データ・セクション(320)は、前記データコンテナに関連するデータを表したものを含む。
具体的には、レギュラー・アイノードのデータ・セクション(320)は、ファイル・システムデータ又はポインタを含むことができる。そして、後者は、前記ファイル・システムデータを記憶するのに用いられる前記ストレージ・デバイス(130)に対する4kBのデータ・ブロックを参照する。各ポインタは、好ましくは論理的VBNであり、記憶されたデータにアクセスする時のファイル・システム(202)間での効率化を促進する。アイノードのサイズが限られている場合(例えば、128バイト)、64バイト以下であるサイズを有するファイル・システム・データは、全体として、そのアイノードのデータ・セクション内に表現される。しかし、もし、ファイル・システム・データが64バイトを超え、しかし、64kB以下である場合、アイノード(例えば、第一レベルアイノード)のデータ・セクションは、様々なポインタ(例えば、16ポインタ)を含むことができる。そして、各ポインタは、ストレージ・デバイス(130)において4kBブロックのデータを参照する。
更に、もしも、データのサイズが64kBを超え、しかし、64メガバイト(MB)以下の場合、アイノード(例えば、第二レベルアイノード)のデータ・セクション(320)中の各ポインタが、間接ブロック(例えば、第一レベル・ブロック)を参照し、該ブロックは、様々なポインタ含むことができる(例えば、ポインタであって、それぞれが、ストレージ・デバイス(130)において、4kBのデータ・ブロックを参照する)。64MBを超えるサイズのファイル・システムデータについては、アイノード(例えば、第三レベルアイノード)のデータ・セクション(320)中の各ポインタが、二重間接ブロック(例えば、第二レベルブロック)を参照する。そして、該ブロックは、様々なポインタを含むことができる(例えば、(510)ポインタであって、各ポインタは、間接(例えば、第一レベル)ブロックを参照する)。前記間接ブロックは、順々に(510)ポインタを含み、各ポインタは、ストレージ・デバイス上の4kBデータ・ブロックを参照する。ファイルにアクセスするときには、前記ファイルの各ブロックは、ストレージ・デバイス(130)からキャッシュ(116)にロードしてもよい。
オンディスク・アイノード(又はブロック)が、ストレージ・デバイス(130)からキャッシュ(116)へロードされると、これに対応するインコア構造がオンディスク構造を埋め込む。例えば、アイノード(300)(図3)周辺の点線は、オンディスク・アイノード構造のインコアでの表現したものを表す。前記インコア構造は、あるブロックのメモリであり、オンディスク構造を記憶し、これに加えて、メモリ(しかし、ディスク上ではない)内でデータを管理するのに必要な追加情報を記憶する。前記追加情報とてしては、例えば、「ダーティ」(dirty)ビット(322)を含むことができる。アイノード(又はブロック)内のデータが、例えば、書き込みによる指示によって更新/変更された後、変更データは、前記ダーティ・ビット(322)を用いて「ダーティ」とマークされる。その結果、前記アイノード(ブロック)はその後「フラッシュ」(記憶)することができる。
図4Aは、ツリー構造の概念ブロック図である。該構造は、有利には、データコンテナの部分的複製を生成させるために本開示とともに用いられる。そして、生成の際には、非可変及び可変の圧縮グループサイズの両方を用いる。こうした点については、詳しく後述する。前記ツリー構造は、キャッシュ(116)にロードされ、そして、ファイル・システム(202)によって維持されるデータコンテナ(例えば、ファイルA(400))に関するブロックの内部表現物である。ルート(トップレベル)のアイノード(402)(例えば、ある埋め込まれたアイノード)は、間接(例えば、レベル1)ブロック(404)を参照する。前記間接ブロック(及びアイノード)は、ポインタ(405)を含み、該ポインタは、ファイルAの実際のデータを記憶するのに用いられるデータ・ブロック(406)を最終的には参照する。即ち、前記ファイルA(400)のデータは、前記データ・ブロックに記憶され、これらのブロックのロケーションは、前記ファイルの前記間接ブロックに記憶される。
各レベル1の間接ブロック(404)は、様々なブロック(例えば(510)データ・ブロック)へのポインタを含むことができる。ファイル・システムの「ライト・エニィウェア」特性に従って、これらのブロックは、ストレージ・デバイス(130)上のどこにでも配置することができる。
ストレージ管理者/ユーザーは、ファイル・システム又はこの一部を、「複製」することを望む可能性がある。ストレージ・スペースを効率的に使用するため、しばしば、シングル・インスタンス・ストレージ(SIS)クローニング(複製)技術が用いられる。SISクローニングにおいて、新たなアイノードが新たなレベル1ブロックとともにつくられる。しかし、前記レベル1ブロックは、元のデータコンテナのレベル0ブロックをポイントする。SISクローニングの一例を図4Bに提供する。ここで、ファイル(400)Aは、図4Aのファイル(400)のクローンである。
アイノード(402)と同様に、アイノード(403)は、(404)と同様の複数の間接ブロック(407)を有する独立構造である。ポインタ(409)は、(405)と同様に、図4Aの同じデータ・ブロック(406)をポイントする。従って、複製されたコピーにおいて、新たなアイノード(403)と、間接レベル1ブロック(407)のみが作成される。前記レベル0データ・ブロックでの元のデータは、同一性を維持している。こうした技術は、ストレージ・スペースを効率的に使用する。なぜならば、実際のデータを記憶する前記データ・ブロックは、コピーされていない。即ち、元のレベル0データを読み込み、そして、複製された/新たなレベル0データとして書き込んでいる。従って、不必要なストレージ・デバイス入力/出力操作を回避する。
また、ストレージ・システムは、複製の際に圧縮を用いてストレージ・スペースを節約することができる。大量のデータを複製することができるため、ストレージ・システム(108)は、通常、非可変圧縮グループサイズを用いて、ブロックを圧縮する。例えば、ストレージ・システム(108)は、個々のブロックを圧縮するのではなく、8つのブロックを1つのグループとして圧縮することができる。こうした方法はコンピューティング・リソースが節約されるため、効率的である。
ほとんどの状況においては、非可変圧縮グループサイズを使用することが望ましい。しかし、一部のデータコンテナ/ファイル・システムが複製される可能性がある場合には、部分的SISクローニングの目的において該サイズを使用することは好ましくない可能性がある。部分的SISクローニングについては、図4Cに関連した以下の記載を元に説明する。
図4Cは、データコンテナ(408)を示す。該コンテナは、ファイル・オフセット番号を有しており、行(410)に示すように0〜24まである。行(412)は、vbnスペース中のブロック番号V0−V24を示す。一方、行(414)は、pbnスペース中の物理的記憶スペース・ブロック番号P0−P24を示す。部分的に複製されたデータコンテナ(408)の部分は、(416)として示す。
複製された構造において、行(418)は、前記ファイル・オフセットを示し、0〜15まである。行(420)は、新たなレベル1ブロックを示しており、V4−V19で示してある。行(420)の前記レベル1ブロックは、行(422)の前記pbnブロックをポイントしている。行(422)と、行(414)ブロックは同一である点に留意されたい。
もし、ストレージ・システム(108)が非可変圧縮グループサイズ(例えば、8)を用いる場合、オフセット「0」で始まり、その後、ストレージ・システム(108)は、まず、行(418)に示すブロックに関するすべての情報を解凍しなければならない。そして、前記ストレージ・システムは、圧縮グループ・サイズ8を用いて前記ブロックを再圧縮することができ、その後、前記圧縮されたブロックをクローンへ(416)コピーすることができる。
部分的SISクローニングにおける非可変圧縮グループサイズを用いたチャレンジについては、図4Dに示す。ここで、データコンテナ(424)は、図4Cに示したデータコンテナ(408)の圧縮バージョンである。図4D中の行(426)は、ブロック番号0−24を示す。図4Cの8つのブロック0−7は、3つのブロックに圧縮され、行(428)でVc1、Vc2及びVc3として示される。ブロックH1は、圧縮されたブロック0−7に関する圧縮情報を含む。「T」とラベルされたブロックは、パディング情報を含む。
行(430)は、pbnスペース中の圧縮されたブロックを含み、Pc1、Pc2、及びPc3として示す。これは、P1−P7のファイル(408)がPc1、Pc2、Pc3に圧縮されたことを意味する。行(430)中のH1は、圧縮情報を含み、該情報をファイル・システム(202)が用いて、記憶された情報を解凍する。
ブロック8−15は、4つのブロックに圧縮され、Vc9−Vc12として示す。ブロック8−15に関するヘッダは、行(428)中にHとして示す。同様に、データコンテナ(408)のブロック16−23は、Vc17−Vc19を用いて圧縮される。前記ヘッダは、圧縮情報を記憶するために用いられる。
部分的SISクローニングについて、セグメント(432)として示した行(426)のブロック4−19のみが、ユーザーのリクエストに基づいて複製される。ストレージ・システム(108)がオフセット0から前記ソース・データコンテナ(424)を圧縮したため、前記複製の影響を受ける全てのブロックを解凍しなければならない。セグメント(432)内の全てのブロックがまず解凍される。その後、開始オフセットとしてのセグメント(426)のブロック4を用いて、再圧縮される。そして、前記部分的SISクローンとしてコピーされる。従って、部分的SISクローンのために非可変圧縮グループサイズを用いることは、さほど望まれない可能性がある。
一実施形態において、可変圧縮グループサイズ及び非可変圧縮グループサイズを部分的SISクローンのために用いる。前記部分的グループサイズは、通常、固定されたブロック・ロケーションに優先するか、又はそれに従うブロックの数のために用いられる。例えば、部分的にセグメント(432)を複製するために、可変圧縮サイズがセグメント(434)及び(438)のために用いられる。一方で、セグメント(436)に関する元のソース・データコンテナの非可変圧縮グループサイズは維持される。
セグメント(434)中の行(426)の4、5、6及び7でラベルされたブロックを複製するため、ファイル・システム(202)は、まず、ブロックを解凍し、その後、解凍したブロックを複製する。同様に、16、17、18及び19でラベルされたブロックは、まず、解凍され、その後、ブロック4、5、6及び7と同様にコピーされる。
しかし、セグメント(436)中8−15でラベルされたブロックは、解凍されず、元の圧縮されたデータコンテナ(424)から単純にコピーされる。
一実施形態において、ブロック4、5、6及び7、並びにブロック16、17、18及び19は、可変ブロックサイズ4を用いて複製バージョン中で圧縮することができる。上記例に基づいて、セグメント(434)及び(438)は、可変圧縮グループサイズを有する。一方で、セグメント(436)は、元の圧縮グループ・サイズを維持する。このことにより、部分的SISクローニングにおいて圧縮を用いることを望むユーザーにとっては、コンピューティング・リソースやスペースが節約されることとなる。
図4Eは、一実施形態に従って可変及び非可変圧縮グループサイズを使用するためのプロセス(440)のプロセスフロー図を示す。前記プロセスは、ブロックS442を開始し、ここでは、データコンテナを部分的に複製するためのリクエストをストレージ・オペレーティングシステム(118)が受け取る。前記リクエストは、データコンテナを特定し、UI(214)を通して受け取ることができる。
ブロックS444においては、ファイル・システム(202)がデータコンテナを検索し、部分的複製のための開始オフセットが、圧縮されたソース・データコンテナの開始オフセットとマッチするかどうか判定する。このことは、間接ブロックがデータコンテナ・ブロックを圧縮するために用いられる非可変圧縮グループサイズを満たしていることを意味する。例えば、図4Dを参照すると、リクエストが、行(426)のブロック0−15を部分的に複製するためのものである場合、ファイル・システム(202)は、行(428)のブロックを複製されたバージョンへと単純にコピーする。なぜならば、部分的複製のための開始オフセットは、前記圧縮されたブロックのオフセットとマッチするからである。
もしも、部分的複製のためのリクエストが、非可変圧縮グループサイズの開始オフセットとマッチしない場合には、ブロックS446において、ファイル・システム(202)が、ソース・データコンテナ・ブロックを解凍し、解凍されたブロックを記憶するか、又はデフォルト(非可変圧縮グループサイズ(例えば、8))とは異なる圧縮グループ・サイズを用いて前記解凍されたブロックを圧縮する。図4Dへ戻って、部分的複製の要求がセグメント(434)で開始したブロックに関するものである場合、セグメント(434)内のすべてのブロックが最初に読み込まれ、その後、複製されるか、またはブロック・サイズ4を用いて圧縮されるかのいずれかが行われる。セグメント(436)内のブロックは、単純にコピーされる。なぜならば、これらはデフォルトの圧縮グループ・サイズを用いているからである。セグメント(438)内の前記ブロックは、セグメント(434)中のブロックと同様に扱われる。
本明細書に記載の実施形態はいくつかの利点を有する。というのは、ユーザーは、部分的SISクローニング及び圧縮の両方の利点を教示することが可能となるからである。
図5は、高レベルのブロック図であり、該図は、高レベルでの処理システムのアーキテクチャの例を示す。ここで、上述したように、図4Eのプロセスのための実行可能な指示を、実施することができる。処理システム(500)は、クライアントシステム(102)を表すことができる。本開示とは密接に関連しない特定の標準的な且つ周知のコンポーネントは、図5では、図示しない点に留意されたい。
前記処理システム(500)は、1以上のプロセッサ(502)及びメモリ(504)を含み、バス・システム(505)に接続されている。図4に示したバス・システム(505)は、任意の1以上の分離した物理的バス及び/又はポイント・トゥ・ポイント接続を表して抽象化した物であり、これらは適切なブリッジ、アダプタ及び/又はコントローラーによって接続されている。従って、前記バス・システム(505)は、以下の物を含むことができる:例えば、システム・バス、ペリフェラル・コンポーネント・インターコネクト(PCI)バス、ハイパートランスポート若しくはインダストリ・スタンダード・アーキテクチャ(ISA)バス、スモール・コンピュータ・システム・インターフェース(SCSI)バス、ユニバーサル・シリアル・バス(USB)、又はアイトリプルイー(IEEE)規格1394バス(時として、「Firewire(登録商標)」と呼ばれる)。
プロセッサ(502)は、処理システム(500)の中央演算処理装置(CPU)であり、従って、該システムの全体の動作を制御する。ある実施形態において、プロセッサ(502)はメモリ(504)に記憶されたプログラム制御可能な指示(506)を実行することによってこれを達成する。プロセッサ(502)は、以下の1以上の物であってよく、または以下の1以上の物を含む:プログラム制御可能な汎用目的又は特定目的マイクロプロセッサ、デジタルシグナルプロセッサ(DSP)、プログラム制御可能なコントローラー、特定用途向けIC(ASIC)、プログラム制御可能な論理デバイス(PLD)等、またはこうしたデバイスの組合せ。
メモリ(504)は、任意の形態のランダム・アクセス・メモリ(RAM)、リード・オンリ・メモリ(ROM)、フラッシュ・メモリ等、又はこうしたデバイスの組み合わせを表す。メモリ(504)は処理システム(500)のメインメモリを含む。図4Eのプロセス・ステップを実施する指示(506)は、メモリ(504)内にあってもよく、及び該メモリから(プロセッサ(502)によって)実行されてもよい。
また、プロセッサ(502)には、バス・システム(505)を介して、1以上の内部のマス・ストレージ・デバイス(510)及びネットワーク・アダプタ(512)が接続される。内部のマス・ストレージ・デバイス(510)は以下の物であってもよく、又は以下の物を含んでもよい:不揮発性の態様(例えば、1以上の磁気又は光学ベースのディスク)で、大量のデータを記憶するための任意の従来の媒体。ネットワーク・アダプタ(512)は、ネットワークを介して遠隔装置と通信する能力を有する処理システム(500)を提供する。そして、該アダプタは、例えば、イーサネット(登録商標)アダプタ、ファイバー・チャネルアダプタ等であってもよい。また、処理システム(500)は、バス・システム(505)と接続された1以上の入力/出力(I/O)デバイス(508)を含む。前記I/Oデバイス(508)は、例えば、表示装置、キーボード、マウスなどを含むことができる。
クラウド・コンピューティング:上述したシステム及び技術は、今後のクラウド・コンピューティング環境において応用可能であり有用である。クラウド・コンピューティングは、コンピューティング能力を意味し、該能力として、コンピューティング・リソース及びその基礎となる技術的アーキテクチャ(例えば、サーバー、ストレージ、ネットワーク)との間の抽象化したものをさし、便利なオンデマンド・ネットワークアクセスを設計可能なコンピューティング・リソースの共有プールに対して行うことを可能にし、これらは、最小限の管理努力、又は最小限のサービス提供者の相互作用によって、素早く提供し、リリースすることができる。用語「クラウド」はインターネットを意味することを意図しており、クラウド・コンピューティングは、共有リソース(例えば、公共事業(public utility)のようなオンデマンドに利用可能なソフトウェア及び情報)を可能にする。
典型的なクラウド・コンピューティング・プロバイダは、オンライン上でありふれたビジネス・アプリケーションを配信する。そして、これらは、別のウェブサービス、又はウェブ・ブラウザのようなソフトウェアからアクセスされる。一方で、ソフトウェア及びデータは、サーバー上に離隔して記憶される。クラウド・コンピューティング・アーキテクチャは、アプリケーション・サービスを提供するために、層状のアプローチを用いる。第一層は、アプリケーション層であり、クライアント・コンピュータにおいて実行される。この例において、アプリケーションは、クライアントが、クラウドを介してストレージにアクセスすることを可能にする。
前記アプリケーション層の後は、クラウドのプラットフォームであり、クラウド・インフラであり、「サーバー」層が続く。該層は、クラウドの特定のサービスのために設計されたハードウェア及びコンピュータ・ソフトウェアを含む。これらの層に関する詳細は、本発明の実施系形態に密接に関連しない。上述したストレージ・システムは、ストレージ・サービスを提供するためのサーバー層の一部であってもよい。
従って、部分的SISクローニングにおいて、可逆及び非可逆サイズの圧縮グループを用いるための方法及び装置が提供される。本明細書全体を通して「一(one, an)実施形態]という用語に関する言及は、本開示の実施形態の少なくとも1つにおいて含まれる実施形態に関連して記載された特定の特徴、構造又は特性を意味する点に留意されたい。従って、強調すべき点且つ理解されたい点として、本明細書の様々な箇所においての、2以上の「一(one, an)実施形態」又は「別の実施形態」という言及は、必ずしも、同一の実施形態についてすべて言及しているわけでなない。更に、当業者は理解するであろうが、言及した特定の特徴、構造、又は特性は、本開示の1以上の実施形態において適宜組み合わせることができる。
現時点での好ましい実施形態に関連して本開示を上述しているが、上述した本開示に限定されない点を理解されたい。むしろ、本開示は、様々な改変や均等物配置を添付した特許請求の範囲の思想及び範囲内にカバーすることを企図する。
Claims (20)
- 非可変圧縮グループサイズ内である複数のブロックと前記非可変圧縮グループサイズ内ではないブロックとを有するデータコンテナを複製するための、機械で実施される方法であり、以下のステップを含む該方法:
前記非可変圧縮グループサイズを用いて圧縮された複数の圧縮ブロックを決定するステップ;
前記非可変圧縮グループサイズを用いて前記複数の圧縮されたブロックを複製するステップ;
前記非可変圧縮グループサイズ内ではない前記データコンテナの複数のブロックを解凍するステップ;及び
前記複数の圧縮されたブロックと前記非可変圧縮グループサイズ内ではない前記複数のブロックとを、部分的に複製された一部の前記データコンテナとして記憶するステップ。 - 請求項1に記載の方法であって、前記複製された複数の圧縮されたブロックとともに記憶される前に、解凍された前記複数のブロックが圧縮される該方法。
- 請求項1に記載の方法であって、プロセッサが実行可能なストレージ・オペレーティングシステムによって、前記データコンテナが階層構造で記憶される該方法。
- 請求項3に記載の方法であって、
前記階層構造は、前記データコンテナを同定する第一データ構造と、前記第一データ構造に関連する第二データ構造とを含み、
前記第二データ構造は、第三データ構造に対するアドレス・ポインタを記憶し、
前記第三データ構造は、ストレージ・デバイスの物理的記憶スペースに関連するブロック番号を記憶する該方法。 - 請求項1に記載の方法であって、前記非可変圧縮グループサイズが少なくとも8つのブロックである該方法。
- データコンテナを複製するための機械で実施される方法であって、以下のステップを含む該方法:
ソース・データコンテナの一部についての複製コピーを生成するために、前記ソース・データコンテナをスキャンするステップであり、前記ソース・データコンテナの前記一部が、非可変圧縮グループサイズを用いて圧縮された複数のブロックと、前記非可変圧縮グループサイズ内ではない少なくとも1つのブロックとを含む該ステップ;
前記ソース・データコンテナから前記少なくとも1つのブロックを読み出すステップ;及び
前記少なくとも1つのブロックと、前記非可変圧縮グループサイズを用いて圧縮された前記複数のブロックとを有する前記ソース・データコンテナの一部の前記複製コピーを生成するステップ。 - 請求項6に記載の方法であって、前記複製された複数の圧縮されたブロックとともに記憶される前に、解凍された前記複数のブロックが圧縮される該方法。
- 請求項6に記載の方法であって、プロセッサが実行可能なストレージ・オペレーティングシステムによって、前記ソース・データコンテナが階層構造で記憶される該方法。
- 請求項8に記載の方法であって、
前記階層構造は、前記ソース・データコンテナを同定する第一データ構造と、前記第一データ構造に関連する第二データ構造とを含み、
前記第二データ構造は、第三データ構造に対するアドレス・ポインタを記憶し、
前記第三データ構造は、ストレージ・デバイスの物理的記憶スペースに関連するブロック番号を記憶する該方法。 - 請求項6に記載の方法であって、前記非可変圧縮グループサイズは少なくとも8つのブロックである該方法。
- システムであって、
前記システムは、第一のコンピューティング・システムを含み、
前記第一のコンピューティング・システムは、ストレージ・システムとのインターフェースとなり、
前記ストレージ・システムは、複数のデータコンテナをストレージ・デバイスで管理するための指示を実行するハードウェア・プロセッサを含み;
前記プロセッサは、ソース・データコンテナの一部の複製コピーを生成するために、前記ソース・データコンテナをスキャンし、
前記一部の前記ソース・データコンテナは、非可変圧縮グループサイズを用いて圧縮された複数のブロックと、前記非可変圧縮グループサイズ内ではない少なくとも1つのブロックとを含み、
前記プロセッサは、前記ソース・データコンテナから前記少なくとも1つのブロックを読み出し、及び、
前記プロセッサは、前記少なくとも1つのブロックと、前記非可変圧縮グループサイズを用いて圧縮された前記複数のブロックとを有する前記データコンテナの一部の前記複製コピーを生成する、該システム。 - 請求項11に記載のシステムであって、前記複製された複数の圧縮されたブロックとともに記憶される前に、解凍された前記複数のブロックが圧縮される、該システム。
- 請求項11に記載のシステムであって、プロセッサが実行可能なストレージ・オペレーティングシステムによって、前記ソース・データコンテナが階層構造で記憶される、該システム。
- 請求項13に記載のシステムであって、
前記階層構造は、前記ソース・データコンテナを同定する第一データ構造と、前記第一データ構造に関連する第二データ構造とを含み、
前記第二データ構造は、第三データ構造に対するアドレス・ポインタを記憶し、
前記第三データ構造は、ストレージ・デバイスの物理的記憶スペースに関連するブロック番号を記憶する、該システム。 - 請求項13に記載のシステムであって、前記非可変圧縮グループサイズが少なくとも8つのブロックである、該システム。
- コンピュータ・プログラム製品であって、
前記製品は、コンピュータが使用可能な記憶媒体を含み、
前記媒体は、該媒体内で具現化されるコンピュータが読み取り可能な指示を含み、
前記コンピュータが読み取り可能な指示は、非可変圧縮グループサイズ内である複数のブロックと前記非可変圧縮グループサイズ内ではないブロックとを有するデータコンテナを複製するためのものであり、
前記コンピュータが読み取り可能な指示は、以下を含む該製品:
データコンテナの一部を複製するために前記非可変圧縮グループサイズを用いて圧縮された複数の圧縮ブロックを決定するための指示;
前記非可変圧縮グループサイズを用いて前記複数の圧縮されたブロックを複製するための指示;
前記非可変圧縮グループサイズ内ではない前記データコンテナの複数のブロックを解凍するための指示;及び
前記複数の圧縮されたブロックと前記非可変圧縮グループサイズ内ではない前記複数のブロックとを、部分的に複製された一部の前記データコンテナとして記憶するための指示。 - 請求項16に記載のコンピュータ・プログラム製品であって、前記複製された複数の圧縮されたブロックとともに記憶される前に、解凍された前記複数のブロックが圧縮される該製品。
- 請求項16に記載のコンピュータ・プログラム製品であって、プロセッサが実行可能なストレージ・オペレーティングシステムによって、前記データコンテナが階層構造で記憶される該製品。
- 請求項18に記載のコンピュータ・プログラム製品であって、
前記階層構造は、前記データコンテナを同定する第一データ構造と、前記第一データ構造に関連する第二データ構造とを含み、
前記第二データ構造は、第三データ構造に対するアドレス・ポインタを記憶し、
前記第三データ構造は、ストレージ・デバイスの物理的記憶スペースに関連するブロック番号を記憶する該製品。 - 請求項16に記載のコンピュータ・プログラム製品であって、前記非可変圧縮グループサイズが少なくとも8つのブロックである該製品。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/232,216 US8866649B2 (en) | 2011-09-14 | 2011-09-14 | Method and system for using non-variable compression group size in partial cloning |
US13/232,216 | 2011-09-14 | ||
PCT/US2012/055372 WO2013040329A1 (en) | 2011-09-14 | 2012-09-14 | Method and system for using compression in partial cloning |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014526749A true JP2014526749A (ja) | 2014-10-06 |
JP2014526749A5 JP2014526749A5 (ja) | 2015-01-08 |
Family
ID=47830895
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014530823A Pending JP2014526749A (ja) | 2011-09-14 | 2012-09-14 | 部分的複製において、圧縮を用いるための方法及びシステム |
Country Status (5)
Country | Link |
---|---|
US (1) | US8866649B2 (ja) |
EP (1) | EP2756420A4 (ja) |
JP (1) | JP2014526749A (ja) |
CN (1) | CN103842987B (ja) |
WO (1) | WO2013040329A1 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160335198A1 (en) * | 2015-05-12 | 2016-11-17 | Apple Inc. | Methods and system for maintaining an indirection system for a mass storage device |
US9760310B2 (en) | 2015-08-06 | 2017-09-12 | International Business Machines Corporation | High performance data storage management using dynamic compression |
US10732881B1 (en) * | 2019-01-30 | 2020-08-04 | Hewlett Packard Enterprise Development Lp | Region cloning for deduplication |
US11704035B2 (en) | 2020-03-30 | 2023-07-18 | Pure Storage, Inc. | Unified storage on block containers |
US12079162B2 (en) | 2020-03-30 | 2024-09-03 | Pure Storage, Inc. | Snapshot management in a storage system |
CN115688067A (zh) * | 2022-09-30 | 2023-02-03 | 金航数码科技有限责任公司 | 一种基于容器的数据存储及访问控制方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5630092A (en) * | 1994-10-20 | 1997-05-13 | International Business Machines | System and method for transferring compressed and uncompressed data between storage systems |
US6058462A (en) * | 1998-01-23 | 2000-05-02 | International Business Machines Corporation | Method and apparatus for enabling transfer of compressed data record tracks with CRC checking |
US6624761B2 (en) * | 1998-12-11 | 2003-09-23 | Realtime Data, Llc | Content independent data compression method and system |
TW440766B (en) * | 1999-05-15 | 2001-06-16 | Inventec Corp | The data copy method and system of computer hard disks |
CN1110754C (zh) * | 2000-02-21 | 2003-06-04 | 英业达股份有限公司 | 计算机硬盘数据复制方法及系统 |
US7484007B2 (en) * | 2002-02-01 | 2009-01-27 | Codekko Inc. | System and method for partial data compression and data transfer |
US6965897B1 (en) * | 2002-10-25 | 2005-11-15 | At&T Corp. | Data compression method and apparatus |
US20050010811A1 (en) * | 2003-06-16 | 2005-01-13 | Zimmer Vincent J. | Method and system to support network port authentication from out-of-band firmware |
US7224293B2 (en) * | 2003-10-17 | 2007-05-29 | Pacbyte Software Pty Limited | Data compression system and method |
US7756833B2 (en) * | 2004-09-22 | 2010-07-13 | Microsoft Corporation | Method and system for synthetic backup and restore |
US8122191B2 (en) * | 2005-02-17 | 2012-02-21 | Overland Storage, Inc. | Data protection systems with multiple site replication |
US7689630B1 (en) * | 2006-03-15 | 2010-03-30 | Richard L. Lam | Two-level bitmap structure for bit compression and data management |
US20090204650A1 (en) * | 2007-11-15 | 2009-08-13 | Attune Systems, Inc. | File Deduplication using Copy-on-Write Storage Tiers |
US7800519B2 (en) | 2008-09-30 | 2010-09-21 | Apple Inc. | Method and apparatus for compressing and decompressing data |
US8204854B2 (en) * | 2009-03-06 | 2012-06-19 | International Business Machines Corporation | Dynamically redirecting a target location during a file I/O operation |
-
2011
- 2011-09-14 US US13/232,216 patent/US8866649B2/en active Active
-
2012
- 2012-09-14 WO PCT/US2012/055372 patent/WO2013040329A1/en active Application Filing
- 2012-09-14 JP JP2014530823A patent/JP2014526749A/ja active Pending
- 2012-09-14 EP EP12831528.0A patent/EP2756420A4/en not_active Withdrawn
- 2012-09-14 CN CN201280044922.1A patent/CN103842987B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
WO2013040329A1 (en) | 2013-03-21 |
US20130067175A1 (en) | 2013-03-14 |
CN103842987A (zh) | 2014-06-04 |
US8866649B2 (en) | 2014-10-21 |
EP2756420A1 (en) | 2014-07-23 |
CN103842987B (zh) | 2016-08-17 |
EP2756420A4 (en) | 2015-03-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8296260B2 (en) | System and method for managing data deduplication of storage systems utilizing persistent consistency point images | |
US9798496B2 (en) | Methods and systems for efficiently storing data | |
JP4824085B2 (ja) | ネットワークファイルシステムをキャッシュするシステム、及び方法 | |
US8086652B1 (en) | Storage system-based hole punching for reclaiming unused space from a data container | |
US7743035B2 (en) | System and method for restoring a virtual disk from a snapshot | |
US7809693B2 (en) | System and method for restoring data on demand for instant volume restoration | |
US8041888B2 (en) | System and method for LUN cloning | |
US20210216414A1 (en) | System and method for efficient block level granular replication | |
US8955087B2 (en) | Method and system for transferring replicated information from source storage to destination storage | |
EP1880324A2 (en) | System and method for restriping data across a plurality of volumes | |
JP2014526749A (ja) | 部分的複製において、圧縮を用いるための方法及びシステム | |
US7577692B1 (en) | System and method for reserving space to guarantee file writability in a file system supporting persistent consistency point images | |
WO2006116293A2 (en) | System and method for restoring data on demand for instant volume restoration | |
US7856423B1 (en) | System and method for generating a crash consistent persistent consistency point image set | |
US7783611B1 (en) | System and method for managing file metadata during consistency points | |
US20170199675A1 (en) | Methods and systems for efficiently storing data | |
US20240119025A1 (en) | Mechanism to maintain data compliance within a distributed file system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20141111 |