Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
分散ファイルシステムの メタデータ管理 Database Engineering Meetup LT 2023/12/20 @kuenishi Metadata Management in Distributed File Systems
Slide 2
Slide 2 text
分散ファイルシステムとは ● 大きなblob をいくらでも置けるシステム ○ オブジェクトストレージともいう場合がある ○ POSIX API でアクセスできるかどうかで扱いが異なる場合が多い ● 大きな: 5TB くらいまで ● いくらでも (※): ○ AWS S3: 100 Trillion (2021) ○ Azure: 4 Trillion (2008) ● オンプレの場合 ○ ストレージノード追加すれば空間を増やせる ● ※ AWS: S3 storage now holds over 100 trillion objects ZDNet
Slide 3
Slide 3 text
ファイルを分割して(分散)保存する 09230843975 ….. 90934045350 ….. …... blob: /bucket/path/to/filename 90934045350 ….. 09230843975 ….. ….. …... 90934045350 ….. 09230843975 ….. ….. …... 90934045350 ….. 09230843975 ….. ….. …... host: A host: B host: C
Slide 4
Slide 4 text
分散ファイルシステムのメタデータ ● ファイルの断片をどこにどれだけ置い たか ○ [file id, offset, length, replica, host] ● ファイルの名前 ○ [path, file id] ○ [directory, children] ● ファイルの付属情報 ○ atime, mtime, ctime ○ owner, group, ACL-ish stuff, ○ ●
Slide 5
Slide 5 text
メタデータを保存するDBが必要 block10 block11 block12 block134 …. block10 block41 block42 block45 …. block42 block45 block92 block98 …. …. Servers create table buckets (...); create table files (...); create table directories (...); create table blocks (...); create table hosts (...) create table buckets (...); create table files (...); create table directories (...); create table blocks (...); create table hosts (...) create table buckets (...); create table files (...); create table directories (...); create table blocks (...); create table hosts (...)
Slide 6
Slide 6 text
分散ファイルシステムの評価観点 HPC面 ● io500.org ● メタデータの読み書き性能 ● blobデータの読み書き性能 ● (IIRC) 相加平均でスコアリング ● POSIX必須 SC23 No.1 (ANL) ● blob: 10TiB/sec ● meta: 102Mops/sec エンプラ or Web面 ● 永続性があるか ● 非計画のダウンタイムはどの程度か ● 専門家でないエンジニアでも扱えるか ● サービスの持続性 ● エコシステムやサードパーティ ● 必要十分な機能があるか ● etc…
Slide 7
Slide 7 text
GFS, HDFS (Apache Hadoop) ● Single replicated master ● 独自実装 ● ブロック単位の管理 The Google File System (SOSP’03) HDFS Architecture Guide
Slide 8
Slide 8 text
Lustre ● HPCで定番 ○ 富嶽で採用 ● 2000年発表 2003年 1.0リリース ● メタデータ、ブロックともに永続性は個々の ノードのストレージレイヤで保証 ● 最近だとOpenZFSが定番らしい ● 現代だとDDNやLLIO のようなステージング やキャッシュレイヤを挟んで高速化 ● MDSの構造は独自(要調査) Introduction to Lustre Architecture
Slide 9
Slide 9 text
Ceph ● CRUSHという独自のアルゴリズムでブロックをい い感じに重み付けしつつ分散管理できた ● ディレクトリツリーは Dynamic Subtree Partitioning ● Inktank起業→RedHat ● 多くの国産クラウドサービスでオブジェクトスト レージに使われた実績がある CRUSH: Controlled, Scalable, Decentralized Placement of Replicated Data (SC’06) Ceph: a scalable, high-performance distributed file system (OSDI’06)
Slide 10
Slide 10 text
Gfarm ● 数少ない現存する国産の分散ファイルシステム ● メタデータ管理はPostgreSQL ○ 運用でPostgreSQLをいい感じにする ● 2001年〜 ペタバイトスケールデータインテンシブ コンピューティングのた めのGrid Datafarmアーキテクチャ
Slide 11
Slide 11 text
Apache Ozone (1/2) ● HDFSの後継OSS ○ 最初はSubprojectだったが2019年に独立 ● S3 APIとHDFS API両方喋る ● メタデータを分けて別コンポーネントで管理する ことにより、HDFS のNameNodeよりも高いメタ データ性能を目指した ● ファイルツリーはOzone Manager ● ブロック配置はStorage Container Manager Apache Ozone: Overview
Slide 12
Slide 12 text
Apache Ozone (2/2) ● メタデータはRocksDBに保存 ● RocksDBへの更新バッチをRaft (Ratis)でレプリケーション ● OMではdouble buffering をしてスループットを上げている Ozone (Ratis leader) RocksDB Ozone (Ratis follower) RocksDB Ozone (Ratis follower) RocksDB Write Read
Slide 13
Slide 13 text
Collossus ● GFS の後継で現用の分散ファイルシステム ● Spannerをメタデータ管理に使っている ● エクサバイト置けるらしい Colossus の仕組み: Google のスケーラブルなスト レージ システムの舞台裏
Slide 14
Slide 14 text
Others ● DAOS ○ Intel 謹製→OSSとして独立 ○ OptaneDC向けの最適化が入っている ○ HLCというのを使ってメタデータ性能を向 上したらしい ○ io500 No.1 ● ● ● AWS S3 ○ 言わずとしれたデファクト ○ In-house something ○ Range分散するものっぽい ○ 昔は固定長prefixベースだった模 様 ○ 100兆オブジェクト