ext3ファイルシステムへの...
TRANSCRIPT
Copyright (C) NTT COMWARE Corporation., 2005Copyright (C) VA Linux Systems Japan K.K., 2005
ext3ファイルシステムへのスナップショット機能の設計と実装
NTTコムウェア株式会社
オープンソースソフトウェア推進部
前野真輝( E-Mail: [email protected] )
2005/06/01 Linux Conference 2005 1
Copyright (C) NTT COMWARE Corporation., 2005Copyright (C) VA Linux Systems Japan K.K., 2005
目次
背景
スナップショットの概要及び実装例
ext3スナップショットの実現動機
ext3スナップショットの実現方針
ffsスナップショットの概要
ext3ファイルシステムのジャーナル機能の概要
ext3スナップショットの設計
現時点の実装とその評価
今後の課題
Copyright (C) NTT COMWARE Corporation., 2005Copyright (C) VA Linux Systems Japan K.K., 2005
背景
2005/06/01 Linux Conference 2005 3
Copyright (C) NTT COMWARE Corporation., 2005Copyright (C) VA Linux Systems Japan K.K., 2005
データ3へのポインタ
データ3へのポインタ
スナップショットの概要
スナップショットはある瞬間のイメージを保持
利点: 短い時間でイメージを取得可能
スナップショットスナップショット取得元ファイルシステム
データ1 データ2 データ3
スナップショットを取得する時
ポインタの作成のみデータ1への
ポインタデータ2への
ポインタデータ3への
ポインタ
スナップショット取得後に元のFS上のデータ更新が発生する時
データ1 データ2 データ3’
データ1へのポインタ
データ2へのポインタ
データ3×
更新前のデータのコピーポインタの変更
2005/06/01 Linux Conference 2005 4
Copyright (C) NTT COMWARE Corporation., 2005Copyright (C) VA Linux Systems Japan K.K., 2005
スナップショットの既存の実装例
NetApp社が特許を持つWAFLを拡張
スナップショットが同じinode番号を持つ
FSレイヤ
(追記型(LFS))ストレージシステム
WAFL(=write anywhere file layout)
スナップショット
ffsを拡張
soft updatesを利用
FSレイヤ
(更新型)FreeBSDNetBSD
ffs(=BSD fast file system)
スナップショット
特徴レイヤOS名称
EMC社のSymmetrix等
の製品に採用
FSレイヤストレージシステム
SnapViewTimeFinder
Device-mapperを利用ブロックデバイスレイヤ
LinuxLVM(=logical volume manager)
スナップショット
2005/06/01 Linux Conference 2005 5
Copyright (C) NTT COMWARE Corporation., 2005Copyright (C) VA Linux Systems Japan K.K., 2005
ext3スナップショットの実現動機
現在Linux上で有力なのはLVMスナップショットブロックデバイスレイヤでの実装
スナップショット専用領域を別に確保して差分情報を格納
chunk単位(=大きなサイズ)でスナップショット取得後の更新前データのコピー(=Copy-On-Write)して保護
利点スナップショット取得時に存在したデータの更新が速い
スナップショットとして利用できる量を自由に決定可能
欠点FSレベルでみると、更新されていないデータもコピーが行われるため、余分なコピーが発生し、余分にディスク容量を消費
利用できる量を超えるとスナップショットは消滅
•FSレイヤで実装する事により欠点を解決できるのではないか•現在Linuxで標準FSであるext3FSへの実装
2005/06/01 Linux Conference 2005 6
Copyright (C) NTT COMWARE Corporation., 2005Copyright (C) VA Linux Systems Japan K.K., 2005
ext3スナップショットの実現目標
スナップショットを通常通りext3FSとしてマウントして利用可能
ジャーナリングFSでスナップショット機能が実装可能である事を実証する
スナップショット数にFSレイアウト上の制限を付けない
スーパブロックにスナップショットinode番号を埋め込む事は受け入れない
短時間での(スナップショットの)クラッシュリカバリ
ext3FSの特徴を失わない
Copyright (C) NTT COMWARE Corporation., 2005Copyright (C) VA Linux Systems Japan K.K., 2005
ext3スナップショット実現方針
2005/06/01 Linux Conference 2005 8
Copyright (C) NTT COMWARE Corporation., 2005Copyright (C) VA Linux Systems Japan K.K., 2005
ext3スナップショットの実現方針
ffsとext3の関係BSD Linux
ffs ext2FS
ext3FS
ffsを元に設計
ジャーナル機能付加
ffs snapshot ext3 snapshotffs snapshotを元に設計
スナップショット機能付加
•ext3スナップショットもffsスナップショットを基本にする•ただしext3FSのジャーナリングに関する制限を克服する実装が必要
soft updates(soft dep)を利用して
スナップショット機能付加
2005/06/01 Linux Conference 2005 9
Copyright (C) NTT COMWARE Corporation., 2005Copyright (C) VA Linux Systems Japan K.K., 2005
ext3スナップショットの実現方針
ffsとext3の関係BSD Linux
ffs ext2FS
ext3FS
ffsを元に設計
ジャーナル機能付加
ffs snapshot
soft updates(soft dep)を利用して
スナップショット機能付加
ext3 snapshotffs snapshotを元に設計
スナップショット機能付加
•ext3スナップショットもffsスナップショットを基本にする•ただしext3FSのジャーナリングに関する制限を克服する実装が必要
まずffsスナップショットとext3FSのジャーナル機能について説明する
Copyright (C) NTT COMWARE Corporation., 2005Copyright (C) VA Linux Systems Japan K.K., 2005
ffsスナップショット
2005/06/01 Linux Conference 2005 11
Copyright (C) NTT COMWARE Corporation., 2005Copyright (C) VA Linux Systems Japan K.K., 2005
ffsスナップショットの概要
あらゆる更新操作についてデータを書き換えた後にポインタを変更するsoft updatesの機構を利用
inode更新, 直接/間接ブロック確保, truncate down/up, ディレクトリ/エントリの追加/削除等のあらゆる更新操作のデータ依存関係を考慮
ブロック書き出し時にCopy-On-Writeする事により、スナップショット取得時のデータを保護
前述した動作と同じ
データ1 データ2 データ3’
データ1へのポインタ
データ2へのポインタ
データ3への
ポインタ データ3× データ3へのポインタ
更新前のデータのコピーポインタの変更
2005/06/01 Linux Conference 2005 12
Copyright (C) NTT COMWARE Corporation., 2005Copyright (C) VA Linux Systems Japan K.K., 2005
…
1 2 4
ffsスナップショットのデータ退避先とその利用
Copy-On-Writeしたデータ退避先は取得元FS内の通常ファイル(=スナップショットファイル: 取得元FSと見かけ同容量のsparseファイル)へ行う
スナップショット取得元FS
スナップショットファイル
vnode仮想デバイス(=スナップショット用デバイス)
0
0
1’
1
2’
2
3
3
4’
4
5
5
6
6
…
…
…
1 42
= スナップショット取得後に更新されていないデータブロック
③: スナップショットファイルにブロックが存在すればスナップショットファイルから、存在しなければ取得元FSから読み出し
= スナップショット取得後に更新されたデータブロック
①: スナップショット取得後から更新されるブロックを更新前にスナップショットファイルへコピー(=Copy-On-Write)
②: vnode仮想デバイスへスナップショットファイルと取得元FSを関連付ける
④: vnode仮想デバイスをマウントしスナップショットをFSとして利用
Copyright (C) NTT COMWARE Corporation., 2005Copyright (C) VA Linux Systems Japan K.K., 2005
ext3ファイルシステム(ジャーナル機能)
2005/06/01 Linux Conference 2005 14
Copyright (C) NTT COMWARE Corporation., 2005Copyright (C) VA Linux Systems Japan K.K., 2005
ext3FSのジャーナルの仕組みとその役割
複数のブロックにわたる不可分な変更内容をまずジャーナル領域へ書き出す事で、システムクラッシュしても、ジャーナルリプレイにより高速なリカバリを実現する
ジャーナルも通常ファイルと同様にinodeやデータブロックを持つ
ジャーナルは別デバイスに確保する事も可能
ジャーナル
ext3FS
実際のデータ
①: データ変更要求
②: 変更内容を先に書き出す ③: 実際のデータを書き出す
③’ : ③中にクラッシュした場合ジャーナル内のデータを利用してリカバリする
2005/06/01 Linux Conference 2005 15
Copyright (C) NTT COMWARE Corporation., 2005Copyright (C) VA Linux Systems Japan K.K., 2005
ext3FSのジャーナルモード
data=journalデータを含む全ての変更をジャーナルする
data=ordered (ext3のデフォルトモード)通常ファイルのデータ以外(inodeや間接ブロックやビットマップブロックなどのメタデータ)に対しジャーナルする
ジャーナルを書き出す前に実際の通常ファイルのデータを書き出す
data=writeback通常ファイルのデータ以外(メタデータ)に対しジャーナルする
ジャーナルと通常ファイルのデータの書き出し順序は問わない
2005/06/01 Linux Conference 2005 16
Copyright (C) NTT COMWARE Corporation., 2005Copyright (C) VA Linux Systems Japan K.K., 2005
ffs soft updatesとext3FSのディスク書き出し依存関係
メタデータ
データ
ジャーナル
data=ordereddata=journaldata=journal
ディスク書き込み依存関係(Bを書き出し完了後, Aを書き出す)
ジャーナル解放依存関係(Bを書き出し完了後, Aを解放する)
A B
A Bdata=journal : メタデータとデータ
それ以外: メタデータのみ
•soft updatesは全ての追加/更新/削除の各
操作に対して細かい単位でディスク書き出しの依存関係を追跡する必要有
•ジャーナルはsoft updatesに比べてディスク
書き出しの依存関係が大幅に単純化
ext3ジャーナル
…
ffs soft updates
Copyright (C) NTT COMWARE Corporation., 2005Copyright (C) VA Linux Systems Japan K.K., 2005
ext3スナップショット設計
2005/06/01 Linux Conference 2005 18
Copyright (C) NTT COMWARE Corporation., 2005Copyright (C) VA Linux Systems Japan K.K., 2005
ext3スナップショットの実現方針
基本的な考え方はffsスナップショットと同様スナップショットの作成
スナップショットを取得する元のパーティション内へ見かけ上同容量のスナップショットファイルを作成
スナップショットの保護ファイルシステム上のデータが更新される直前にスナップショット取得時のデータをスナップショットファイルへ退避(=Copy-On-Write)
スナップショットの利用スナップショットファイルを関連付けたスナップショット専用のブロックデバイスからスナップショットを利用
基本的な考え方はffsスナップショットと同様で既に動作を説明済みなので、処理の流れに沿うのではなく、各機能に焦点を当てて説明する
2005/06/01 Linux Conference 2005 19
Copyright (C) NTT COMWARE Corporation., 2005Copyright (C) VA Linux Systems Japan K.K., 2005
ext3スナップショットへ必要な機能
ffsスナップショットと異なる方式で実装する機能
Copy-On-Writebeforeイメージジャーナル
スナップショットファイルのdelayed allocationクラッシュリカバリ
ffsスナップショットと同じ考え方で実装する機能
スナップショット初期化(スナップショットファイル作成)ブロック解放抑止
スナップショット用デバイス
2005/06/01 Linux Conference 2005 20
Copyright (C) NTT COMWARE Corporation., 2005Copyright (C) VA Linux Systems Japan K.K., 2005
必要な機能: Copy-On-Write
スナップショットのデータの保護
実際のデータが更新される前にスナップショット取得時のデータをスナップショットファイルへコピーする(=Copy-On-Write)
ext3FS with ext3スナップショット
スナップショットファイル
①: データ更新要求
メタデータ
データ
メタデータ
データ
③: スナップショット取得時の
データを退避
②: スナップショットのメタデータの更新④: 実際のデータの更新
2005/06/01 Linux Conference 2005 21
Copyright (C) NTT COMWARE Corporation., 2005Copyright (C) VA Linux Systems Japan K.K., 2005
必要な機能: Copy-On-Write
問題点
ffsスナップショットではディスクブロックの書き出し前にCopy-On-Writeしているが、ext3FSでは既にジャーナル領域に書き出されてしまった後である
その間にクラッシュするとスナップショットデータはジャーナルリプレイにより失われる
解決策
ディスクブロック書き出し時ではなく、データ更新時にCopy-On-Writeする
2005/06/01 Linux Conference 2005 22
Copyright (C) NTT COMWARE Corporation., 2005Copyright (C) VA Linux Systems Japan K.K., 2005
必要な機能: Copy-On-Write
Copy-On-Writeのタイミング
メタデータ更新の直前
ジャーナルの変更前処理
inode bitmapによるinodeブロック内クリア処理
データ更新の直前write()処理
mmap()処理
direct_IO()処理
ブロック境界でないtruncate down処理
2005/06/01 Linux Conference 2005 23
Copyright (C) NTT COMWARE Corporation., 2005Copyright (C) VA Linux Systems Japan K.K., 2005
必要な機能: beforeイメージジャーナル
クラッシュ時のスナップショットのデータの保護
スナップショット取得時のメタデータとデータをジャーナルへ書き出す(=ジャーナル量増加)
ただし、ジャーナルモードに依存せずにそれを行わなければならない
メタデータ
データ
ジャーナル
data=ordereddata=journaldata=journal
data=journal : メタデータとデータ
それ以外: メタデータのみ
スナップショット取得時の
メタデータとデータ+(=Copy-On-Writeされるデータ)
ディスク書き込み依存関係(Bを書き出し完了後, Aを書き出す)
ジャーナル解放依存関係(Bを書き出し完了後, Aを解放する)
A B
A Bスナップショット取得時に存在した
データが変更される場合
2005/06/01 Linux Conference 2005 24
Copyright (C) NTT COMWARE Corporation., 2005Copyright (C) VA Linux Systems Japan K.K., 2005
必要な機能: beforeイメージジャーナル
問題点
data=orderedではジャーナルよりもデータへの書き出しを先に行わねばならず、既存のジャーナルへスナップショットのデータを追加する方針には問題がある
data=journalでは問題なく、data=writebackでは新たな制約を設ければ良い
メタデータ
データ
ジャーナル
data=ordered
実際のメタデータ
スナップショット取得時のメタデータとデータ
実際のデータ変更中にシステムクラッシュすると、ジャーナル中にあるスナップショットのデータはまだディスクに書き出されておらず消滅してしまう
(=Copy-On-Writeされるデータ)
2005/06/01 Linux Conference 2005 25
Copyright (C) NTT COMWARE Corporation., 2005Copyright (C) VA Linux Systems Japan K.K., 2005
必要な機能: beforeイメージジャーナル
解決策従来のジャーナルとは別のスナップショット用のジャーナル(=beforeイメージジャーナル)を設ける
従来のジャーナルはafterイメージジャーナルと呼ぶ
メタデータ
データ
afterイメージジャーナル
data=journaldata=journal data=ordered
スナップショットファイルメタデータ
COWCOW
(取得元FS上にある)スナップショットファイル自身のメタデータを指す
スナップショット取得時のメタデータとデータ(=Copy-On-Writeされるデータ)
beforeイメージジャーナル
スナップショットファイルデータ
2005/06/01 Linux Conference 2005 26
Copyright (C) NTT COMWARE Corporation., 2005Copyright (C) VA Linux Systems Japan K.K., 2005
スナップショットファイルメタデータ
スナップショットファイルデータ
必要な機能: Copy-On-Writeとbeforeイメージジャーナル
Copy-On-Write処理によるスナップショット取得時のデータの流れ
メタデータ
データ
beforeイメージジャーナル
スナップショットファイルメタデータ
スナップショットファイルデータ
afterイメージジャーナル
①: afterイメージジャーナル(data=orderedの場合はデータ)を書き出す前にスナップショット取得時の情報をコピー
COWCOW
①の前後(スナップショット取得時の情報が更新されるのを検知した後):
スナップショット取得時の情報を各々のスナップショットファイルへコピー
COW
COW
…
…
2005/06/01 Linux Conference 2005 27
Copyright (C) NTT COMWARE Corporation., 2005Copyright (C) VA Linux Systems Japan K.K., 2005
スナップショットファイルデータ
スナップショットファイルメタデータ
COW
COW
スナップショットファイルメタデータ
スナップショットファイルデータ
COW
COW
必要な機能: スナップショットファイルのdelayed allocation
複数スナップショット取得時の問題点
スナップショット数が増えれば増えるほど、システムコールを完了するための変更ブロック数が増加し、afterイメージジャーナル量が多くなり過ぎ、処理が破綻
メタデータ
データ
beforeイメージジャーナル
スナップショットファイルメタデータ
スナップショットファイルデータ
afterイメージジャーナル
…
…
COW
COW
…
ジャーナル量がスナップショット数に比例し多くなり過ぎる
2005/06/01 Linux Conference 2005 28
Copyright (C) NTT COMWARE Corporation., 2005Copyright (C) VA Linux Systems Japan K.K., 2005必要な機能:
スナップショットファイルのdelayed allocation
解決策
ブロック割り当て処理をwrite()時に行うのではなく、ページ書き出し時に行うようにする
Copy-On-Write時に(afterイメージ)ジャーナルを必要としなく
なる
スナップショットファイルデータ
スナップショットファイルメタデータ
COW
COW
スナップショットファイルメタデータ
スナップショットファイルデータ
COW
COW
メタデータ
データ
beforeイメージジャーナル
スナップショットファイルメタデータ
スナップショットファイルデータ
afterイメージジャーナル
…
…
COW
COW
…
スナップショットファイルに対してdelayed allocationを行う
2005/06/01 Linux Conference 2005 29
Copyright (C) NTT COMWARE Corporation., 2005Copyright (C) VA Linux Systems Japan K.K., 2005
必要な機能: クラッシュリカバリ
スナップショットの回復処理の追加
クラッシュリカバリの流れ
従来のジャーナルのリプレイ
従来のジャーナルの有効化
クラッシュ時にtruncate/unlink中であったファイルの処理
スナップショットの回復処理•beforeイメージジャーナルからスナップショットファイ
ルに対して更新
2005/06/01 Linux Conference 2005 30
Copyright (C) NTT COMWARE Corporation., 2005Copyright (C) VA Linux Systems Japan K.K., 2005
必要な機能: スナップショット初期化
スナップショットファイル作成
見かけ上FSと同容量のファイルを作成
FSを停止させてメタデータをコピー
ext3FS with ext3スナップショット
①: スナップショット取得要求
メタデータ
データ
スナップショットファイル
②: スナップショットファイル作成
メタデータ
データ
④: メタデータのコピー
③: ファイルシステム停止
この時間がmkfs.ext3程度掛かってしまう(=FS停止時間が長すぎる)
⑤: ファイルシステム再開
Any: FSへの要求
2005/06/01 Linux Conference 2005 31
Copyright (C) NTT COMWARE Corporation., 2005Copyright (C) VA Linux Systems Japan K.K., 2005
必要な機能: スナップショット初期化
解決策
FSの停止時間を短くするために前もってメタデータをコピーし、コピー中に変化したメタデータだけをFSを停止させて再度コピー
ext3FS with ext3スナップショット
①: スナップショット取得要求
メタデータ
データ
スナップショットファイル
②: スナップショットファイル作成
メタデータ
データ
③: メタデータのコピーと変更追跡
④: ファイルシステム停止
⑥: ファイルシステム再開
Any: FSへの要求
⑤: メタデータのコピー中に変更されたメタデータの
再コピー
2005/06/01 Linux Conference 2005 32
Copyright (C) NTT COMWARE Corporation., 2005Copyright (C) VA Linux Systems Japan K.K., 2005
必要な機能: ブロック解放抑止
ブロック解放時のスナップショットのデータの保護スナップショット取得後は、スナップショットが該当ブロックを参照している可能性があり、もし参照している場合はブロック解放しない
ブロック解放抑止のタイミングブロック解放時
free_blocks()処理
Copy-On-Write時と異なり、解放処理はジャーナルされない(必要がない)ために解放抑止処理はブロック解放時で問題無い
2005/06/01 Linux Conference 2005 33
Copyright (C) NTT COMWARE Corporation., 2005Copyright (C) VA Linux Systems Japan K.K., 2005
必要な機能: スナップショット用デバイス
スナップショットの利用スナップ取得元デバイスのデータとスナップショットファイルを選択的に読み込む専用ブロックデバイスから利用
…
1 2 4 スナップショット取得元FS
スナップショットファイル
スナップショット専用ブロックデバイス
0
0
1’
1
2’
2
3
3
4’
4
5
5
6
6
…
…
…
1 42
= スナップショット取得後に更新されていないデータブロック
= スナップショット取得後に更新されたデータブロック
Copyright (C) NTT COMWARE Corporation., 2005Copyright (C) VA Linux Systems Japan K.K., 2005
ext3スナップショット現時点の実装状況
2005/06/01 Linux Conference 2005 35
Copyright (C) NTT COMWARE Corporation., 2005Copyright (C) VA Linux Systems Japan K.K., 2005
現時点での実装
スナップショットの基本動作は実装完了
FS毎に1つのスナップショットが取得でき、スナップショット用デバイスを介してスナップショットをマウントし読み出せ、スナップショットを解放できる
制約条件
アンマウントやシステムクラッシュによりスナップショットは消滅する
ディスクフル時はスナップショット取得元FSがReadOnlyへ移行する
ディスクフルに関与しない部分への読み出しはスナップショット・取得FS共に可能
2005/06/01 Linux Conference 2005 36
Copyright (C) NTT COMWARE Corporation., 2005Copyright (C) VA Linux Systems Japan K.K., 2005
現時点で実装した機能
実装済が青色, 未実装が赤色
ffsスナップショットと異なる方式で実装する機能
Copy-On-Writebeforeイメージジャーナル
既存のジャーナル量を増やしてdata=journalでスナップショットファイルをジャーナルしたアドホックな実装
スナップショットファイルのdelayed allocationクラッシュリカバリ
ffsスナップショットと同じ考え方で実装する機能
スナップショット初期化(スナップショットファイル作成)ブロック解放抑止
スナップショット用デバイス
Copyright (C) NTT COMWARE Corporation., 2005Copyright (C) VA Linux Systems Japan K.K., 2005
ext3スナップショット現時点の実装の評価
2005/06/01 Linux Conference 2005 38
Copyright (C) NTT COMWARE Corporation., 2005Copyright (C) VA Linux Systems Japan K.K., 2005
評価観点と測定内容
評価観点LVMスナップショット(ext3 on LVM)との比較
スナップショット未取得時のデータ更新・新規作成の速さ
スナップショットを取得する速さ
スナップショット取得後のデータ更新の速さ
スナップショット取得後のデータ新規作成の速さext3スナップショットではCopy-On-Write処理が発生しないが、LVMスナップショットではCopy-On-Write処理が発生する
測定内容(3回測定した各平均時間)スナップショット未取得時のデータ更新・新規作成の時間
スナップショット取得の時間とその際のFS停止の時間
スナップショット取得後の既存ファイルのデータ更新の時間
スナップショット取得後の新規ファイルのデータ作成の時間
2005/06/01 Linux Conference 2005 39
Copyright (C) NTT COMWARE Corporation., 2005Copyright (C) VA Linux Systems Japan K.K., 2005スナップショット未取得時の
既存データ更新と新規データ作成の時間
•データの更新・新規作成ともに若干遅い
•Copy-On-Writeのために予約するジャーナル量が増え、ジャーナルのディスク書き出し動作が増えているため
既存データ更新時間 新規データ作成時間
既存データ更新時間
(スナップショット未取得時)
0
50
100
150
200
250
300
350
200MB x 2 / 1GB 1GB x 2 / 20GB
既存データ更新容量 / 取得元FS容量
sec ext3ss
LVMss
新規データ作成時間
(スナップショット未取得時)
0
50
100
150
200
250
300
350
200MB x 2 / 1GB 1GB x 2 / 20GB
新規データ作成容量 / 取得元FS容量
sec ext3ss
LVMss
2005/06/01 Linux Conference 2005 40
Copyright (C) NTT COMWARE Corporation., 2005Copyright (C) VA Linux Systems Japan K.K., 2005
スナップショット取得の時間
スナップショット取得時間 ddコマンドで新規データ作成しながらスナップショットを取得
スナップショット取得時間(I/O負荷無)
0
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
1GB 20GB
スナップショット取得元FS容量
sec ext3ss
LVMss
スナップショット取得時間(I/O負荷有)
0
20
40
60
80
100
120
140
160
1GB 20GB
スナップショット取得元FS容量
sec ext3ss
LVMss
•ext3の方が3~4倍程度遅い
•メタデータのコピー処理で必要なブロックを前もって確保するのではなく、その都度ブロックを確保しているため
•両者とも数十秒以上掛かっている
•LVMはI/O高負荷時スナップショット取得が遅いためかddコマンドによるデータの作成が速いためか
2005/06/01 Linux Conference 2005 41
Copyright (C) NTT COMWARE Corporation., 2005Copyright (C) VA Linux Systems Japan K.K., 2005
スナップショット取得時のFS停止の時間
スナップショット取得時FS停止時間
•I/O負荷が無い時は問題無い
ddコマンドで新規データ作成しながらスナップショットを取得
•I/O負荷が有る時は数十秒もFS停止していて問題有り
•もしくは やむを得ない(かも)
FS停止時間(I/O負荷有)
0
5
10
15
20
25
30
35
40
45
1GB 20GB
スナップショット取得元FS容量
sec
ext3ss
FS停止時間(I/O負荷無)
0
0.5
1
1.5
22.5
3
3.5
4
4.5
5
1GB 20GB
スナップショット取得元FS容量
sec
ext3ss
2005/06/01 Linux Conference 2005 42
Copyright (C) NTT COMWARE Corporation., 2005Copyright (C) VA Linux Systems Japan K.K., 2005スナップショット取得後の
既存データ更新と新規データ作成の時間
既存データ更新時間 新規データ作成時間
新規データ作成時間
(スナップショット取得時)
0
200
400
600
800
1000
1200
1400
200MB x 2 / 1GB 1GB x 2 / 20GB
新規データ作成容量 / 取得元FS容量
sec ext3ss
LVMss
既存データ更新時間
(スナップショット取得時)
0
200
400
600
800
1000
1200
1400
200MB x 2 / 1GB 1GB x 2 / 20GB
既存データ更新容量 / 取得元FS容量
sec ext3ss
LVMss
•ext3の方が1.5~4倍程度遅い
•LVMの方がCopy-On-Write単位が大きいため、効率が良い
•少し遅すぎる(かも)
•ext3の方が1.5倍~3倍程度速い
•LVMの方がCopy-On-Write単位が大きいため、余分なCopy-On-Writeが発生している
2005/06/01 Linux Conference 2005 43
Copyright (C) NTT COMWARE Corporation., 2005Copyright (C) VA Linux Systems Japan K.K., 2005
現時点の実装の評価のまとめ(LVMとの比較)
利点スナップショット取得後の新規データ作成が速い
更新されないデータはCopy-On-Writeされないので、余分なディスク容量の消費が無い
欠点(=今後の課題)スナップショット取得後の既存データ更新が遅い
スナップショット取得時間やI/O高負荷下のFS停止が長い
•課題はあるもののFSレイヤで実装する事により、LVMスナップショットと異なる性能特性を示し、ext3スナップショットの存在意義が認められる
•ただし実装途中なので数値は参考程度に
Copyright (C) NTT COMWARE Corporation., 2005Copyright (C) VA Linux Systems Japan K.K., 2005
ext3スナップショットデモ
時間があれば…
2005/06/01 Linux Conference 2005 45
Copyright (C) NTT COMWARE Corporation., 2005Copyright (C) VA Linux Systems Japan K.K., 2005
ext3スナップショットの利用の流れ
利用例
スナップショットの取得から利用まで
スナップショットの利用終了から解放まで
# e3snapconfig –c /mnt/src/snapshot.img … ①# ssdevconfig –c /mnt/src/snapshot.img /dev/ssdev/0 … ②# mount /dev/ssdev/0 /mnt/ss … ③# cd /mnt/ss … ④
…
…# umount /mnt/ss … ⑤# ssdevconfig –d /dev/ssdev/0 … ⑥# e3snapconfig –d /mnt/src/snapshot.img … ⑦
Copyright (C) NTT COMWARE Corporation., 2005Copyright (C) VA Linux Systems Japan K.K., 2005
まとめ
2005/06/01 Linux Conference 2005 47
Copyright (C) NTT COMWARE Corporation., 2005Copyright (C) VA Linux Systems Japan K.K., 2005
まとめ
ext3FSへのスナップショット機能追加の設計と実装について述べ、その存在意義を示した
現時点のソースコード及び利用手順を以下で公開している
http://sourceforge.net/projects/ext3snapshot/
今後の課題スナップショット取得の性能向上
未実装部分の実装スナップショットの永続化
beforeイメージジャーナルの実装
クラッシュリカバリの実装
複数のスナップショットの取得スナップショットファイルのdelayed allocationの実装
Copyright (C) NTT COMWARE Corporation., 2005Copyright (C) VA Linux Systems Japan K.K., 2005
ご静聴頂きまして誠にありがとうございました
前野真輝′ 松尾隆利′ 山幡為佐久″
所属: ′= NTTコムウェア株式会社, ″= VA Linux Systems Japan株式会社