14. ストレージの階層構造
VFS
FUSE
glusterfs
glusterfsd
VFS
file system
block device
Copyright (C) 2011, NTTPC Communications, Inc. All Rights Reserved. 14
15. 分散アルゴリズム
Copyright (C) 2011, NTTPC Communications, Inc. All Rights Reserved. 15
16. 分散アルゴリズム
Copyright (C) 2011, NTTPC Communications, Inc. All Rights Reserved. 16
17. 分散アルゴリズム
③800〜1199
①0〜399
②400〜799
注)ハッシュ値及びbrick名は説明のために簡略化してあります。以下同じ。 Copyright (C) 2011, NTTPC Communications, Inc. All Rights Reserved. 17
18. 分散アルゴリズム
A
/path/to/fileA
③800〜1199
768
①0〜399
②400〜799
Copyright (C) 2011, NTTPC Communications, Inc. All Rights Reserved. 18
19. 分散アルゴリズム
/path/to/fileA
③800〜1199
768
①0〜399
A
②400〜799
Copyright (C) 2011, NTTPC Communications, Inc. All Rights Reserved. 19
20. Elasticなレイアウト変更
Copyright (C) 2011, NTTPC Communications, Inc. All Rights Reserved. 20
21. Elasticなレイアウト変更
brick追加直後の状態(gluster volume add-brick ④)
古いハッシュテーブル 新しいハッシュテーブル
(3 bricks) (4 bricks)
③800〜1199 ④900〜1199
③600〜899 ①0〜299
①0〜399
A
②400〜799
②300〜599
既存データの読み書きは
古いハッシュテーブルに基づき
実行される。
Copyright (C) 2011, NTTPC Communications, Inc. All Rights Reserved. 21
22. Elasticなレイアウト変更
新規ファイルの作成には新しいハッシュテーブルを使う
古いハッシュテーブル 新しいハッシュテーブル
(3 bricks) (4 bricks)
③800〜1199 ④900〜1199
③600〜899 ①0〜299
①0〜399
A
②400〜799
②300〜599
B /path/to/fileB 1024
Copyright (C) 2011, NTTPC Communications, Inc. All Rights Reserved. 22
23. Elasticなレイアウト変更
新規ファイルの作成には新しいハッシュテーブルを使う
古いハッシュテーブル 新しいハッシュテーブル
(3 bricks) (4 bricks)
リンク先brickの書かれた
B スパースファイル B
③800〜1199 ④900〜1199
③600〜899 ①0〜299
①0〜399
A
②400〜799
②300〜599
/path/to/fileB 1024
Copyright (C) 2011, NTTPC Communications, Inc. All Rights Reserved. 23
24. Elasticなレイアウト変更
rebalanceを実行(gluster volume rebalance <volume> start)
古いハッシュテーブル 新しいハッシュテーブル
(3 bricks) (4 bricks)
B B
③800〜1199 ④900〜1199
③600〜899 ①0〜299
①0〜399
A
②400〜799
②300〜599
Copyright (C) 2011, NTTPC Communications, Inc. All Rights Reserved. 24
25. Elasticなレイアウト変更
rebalanceを実行(gluster volume rebalance <volume> start)
古いハッシュテーブル 新しいハッシュテーブル
(3 bricks) (4 bricks)
B B
③800〜1199 ④900〜1199
A
③600〜899 ①0〜299
①0〜399
A リンク先brickの書かれた
②400〜799 スパースファイル
②300〜599
Copyright (C) 2011, NTTPC Communications, Inc. All Rights Reserved. 25
26. Elasticなレイアウト変更
rebalanceを実行中...
古いハッシュテーブル 新しいハッシュテーブル
(3 bricks) (4 bricks)
B B
③800〜1199 ④900〜1199
A
③600〜899 ①0〜299
①0〜399
A リンク先brickの書かれた
②400〜799 スパースファイル
②300〜599
Copyright (C) 2011, NTTPC Communications, Inc. All Rights Reserved. 26
27. Elasticなレイアウト変更
rebalanceを実行中...
古いハッシュテーブル 新しいハッシュテーブル
(3 bricks) (4 bricks)
B B
③800〜1199 ④900〜1199
A
③600〜899 ①0〜299
①0〜399
②400〜799
②300〜599
Copyright (C) 2011, NTTPC Communications, Inc. All Rights Reserved. 27
28. Elasticなレイアウト変更
rebalanceを実行中...
古いハッシュテーブル 新しいハッシュテーブル
(3 bricks) (4 bricks)
B B
③800〜1199 ④900〜1199
A
③600〜899 ①0〜299
①0〜399
②400〜799
②300〜599
C /path/to/fileC 384
rebalance中のファイル生成処理は...
Copyright (C) 2011, NTTPC Communications, Inc. All Rights Reserved. 28
29. Elasticなレイアウト変更
rebalanceを実行中...
古いハッシュテーブル 新しいハッシュテーブル
(3 bricks) (4 bricks)
B B
③800〜1199 ④900〜1199
A
①0〜299
C ③600〜899
①0〜399
②400〜799 C
②300〜599
/path/to/fileC 384
rebalance実行前と同様 Copyright (C) 2011, NTTPC Communications, Inc. All Rights Reserved. 29
30. Elasticなレイアウト変更
rebalance完了
古いハッシュテーブル 新しいハッシュテーブル
(3 bricks) (4 bricks)
B B
③800〜1199 ④900〜1199
A
古いハッシュテーブルを破棄
①0〜299
C ③600〜899
①0〜399
②400〜799 C
②300〜599
Copyright (C) 2011, NTTPC Communications, Inc. All Rights Reserved. 30
31. Elasticなレイアウト変更
B
④900〜1199
A
B C
③600〜899
①0〜299
C
②300〜599
Copyright (C) 2011, NTTPC Communications, Inc. All Rights Reserved. 31
32. 特殊なケース
Copyright (C) 2011, NTTPC Communications, Inc. All Rights Reserved. 32
33. 特殊なケース
③800〜1199
一部brickがdisk full!!
①0〜399
②400〜799
Copyright (C) 2011, NTTPC Communications, Inc. All Rights Reserved. 33
34. 特殊なケース
そこへ新規ファイル作成
A
/path/to/fileA
③800〜1199
768
①0〜399
②400〜799
Copyright (C) 2011, NTTPC Communications, Inc. All Rights Reserved. 34
35. 特殊なケース
実体は書き込み可能な
brickへ
A
/path/to/fileA
③800〜1199
768
①0〜399
A ②400〜799
リンク付きスパースファイル
Copyright (C) 2011, NTTPC Communications, Inc. All Rights Reserved. 35
36. メタデータ構造
Copyright (C) 2011, NTTPC Communications, Inc. All Rights Reserved. 36
37. メタデータ構造
Copyright (C) 2011, NTTPC Communications, Inc. All Rights Reserved. 37
38. メタデータ構造
メタデータ (xattr)
(実)データ
Copyright (C) 2011, NTTPC Communications, Inc. All Rights Reserved. 38
39. メタデータ構造
A
VFS
FUSE
glusterfs
glusterfsd
VFS
file system
block device
Copyright (C) 2011, NTTPC Communications, Inc. All Rights Reserved. 39
40. メタデータ構造
VFS glusterfsがxattrを記述
(するようにglusterfsdに命令)
FUSE
glusterfs
A
glusterfsd
VFS
file system
block device
Copyright (C) 2011, NTTPC Communications, Inc. All Rights Reserved. 40
41. メタデータ構造
VFS
FUSE
glusterfs
glusterfsd
glusterfsdがfile system上に
VFS xattrを記述
file system
A
block device
Copyright (C) 2011, NTTPC Communications, Inc. All Rights Reserved. 41
42. メタデータ構造
VFS
glusterfsを
FUSE 経由しないと
xattrが付与
glusterfs
されない!
glusterfsd
VFS
file system
A B
block device
Copyright (C) 2011, NTTPC Communications, Inc. All Rights Reserved. 42
43. メタデータ構造
VFS
FUSE 原則、GlusterFS経由では
アクセスできない。
glusterfs
但し、ディレクトリエントリとして
glusterfsd 見えてしまう場合もある。
VFS
file system
A B
block device
Copyright (C) 2011, NTTPC Communications, Inc. All Rights Reserved. 43
44. メタデータ構造
ディレクトリに付与されるxattr
trusted.gfid
trusted.glusterfs.dht
trusted.glusterfs.test
ファイルに付与されるxattr
trusted.gfid
trusted.afr.<volume>-client-<number>
trusted.afr.<volume>-client-<number++>
trusted.<volume>-stripe-<number>.stripe-count
trusted.<volume>-stripe-<number>.stripe-index
Copyright (C) 2011, NTTPC Communications, Inc. All Rights Reserved. 44