Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Metadata Management in Distributed File Systems
Search
UENISHI Kota
December 20, 2023
Technology
2
520
Metadata Management in Distributed File Systems
Database Engineering Meetup #1 LT
https://scalar.connpass.com/event/298887/
UENISHI Kota
December 20, 2023
Tweet
Share
More Decks by UENISHI Kota
See All by UENISHI Kota
Storage Systems in Preferred Networks
kuenishi
0
47
Behind The Scenes: Cloud Native Storage System for AI
kuenishi
2
410
Apache Ozone behind Simulation and AI Industries
kuenishi
0
390
Distributed Deep Learning with Chainer and Hadoop
kuenishi
3
1.2k
A Few Ways to Accelerate Deep Learning
kuenishi
0
1.1k
Introducing Retz
kuenishi
5
1.2k
Introducing Retz and how to develop practical frameworks
kuenishi
3
740
Formalization and Proof of Distributed Systems (ja)
kuenishi
10
6.4k
Mesos Frameworkの作り方 (How to Make Mesos Framework)
kuenishi
7
2.4k
Other Decks in Technology
See All in Technology
Escaping_the_Kraken_-_October_2025.pdf
mdalmijn
0
160
能登半島災害現場エンジニアクロストーク 【JAWS FESTA 2025 in 金沢】
ditccsugii
0
290
Adminaで実現するISMS/SOC2運用の効率化 〜 アカウント管理編 〜
shonansurvivors
4
430
The Cake Is a Lie... And So Is Your Login’s Accessibility
leichteckig
0
110
from Sakichi Toyoda to Agile
kawaguti
PRO
1
110
リーダーになったら未来を語れるようになろう/Speak the Future
sanogemaru
0
370
研究開発部メンバーの働き⽅ / Sansan R&D Profile
sansan33
PRO
3
20k
ACA でMAGI システムを社内で展開しようとした話
mappie_kochi
1
310
AI駆動開発を推進するためにサービス開発チームで 取り組んでいること
noayaoshiro
0
250
20201008_ファインディ_品質意識を育てる役目は人かAIか___2_.pdf
findy_eventslides
2
600
OpenAI gpt-oss ファインチューニング入門
kmotohas
2
1.2k
AI時代こそ求められる設計力- AWSクラウドデザインパターン3選で信頼性と拡張性を高める-
kenichirokimura
3
270
Featured
See All Featured
How to Think Like a Performance Engineer
csswizardry
27
2k
BBQ
matthewcrist
89
9.8k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
Writing Fast Ruby
sferik
629
62k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
900
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
114
20k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
For a Future-Friendly Web
brad_frost
180
9.9k
The Language of Interfaces
destraynor
162
25k
Balancing Empowerment & Direction
lara
4
680
GitHub's CSS Performance
jonrohan
1032
470k
jQuery: Nuts, Bolts and Bling
dougneiner
64
7.9k
Transcript
分散ファイルシステムの メタデータ管理 Database Engineering Meetup LT 2023/12/20 @kuenishi Metadata Management
in Distributed File Systems
分散ファイルシステムとは • 大きなblob をいくらでも置けるシステム ◦ オブジェクトストレージともいう場合がある ◦ POSIX API でアクセスできるかどうかで扱いが異なる場合が多い
• 大きな: 5TB くらいまで • いくらでも (※): ◦ AWS S3: 100 Trillion (2021) ◦ Azure: 4 Trillion (2008) • オンプレの場合 ◦ ストレージノード追加すれば空間を増やせる • ※ AWS: S3 storage now holds over 100 trillion objects ZDNet
ファイルを分割して(分散)保存する 09230843975 ….. 90934045350 ….. …... blob: /bucket/path/to/filename 90934045350 …..
09230843975 ….. ….. …... 90934045350 ….. 09230843975 ….. ….. …... 90934045350 ….. 09230843975 ….. ….. …... host: A host: B host: C
分散ファイルシステムのメタデータ • ファイルの断片をどこにどれだけ置い たか ◦ [file id, offset, length, replica,
host] • ファイルの名前 ◦ [path, file id] ◦ [directory, children] • ファイルの付属情報 ◦ atime, mtime, ctime ◦ owner, group, ACL-ish stuff, ◦ •
メタデータを保存する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 (...)
分散ファイルシステムの評価観点 HPC面 • io500.org • メタデータの読み書き性能 • blobデータの読み書き性能 • (IIRC)
相加平均でスコアリング • POSIX必須 SC23 No.1 (ANL) • blob: 10TiB/sec • meta: 102Mops/sec エンプラ or Web面 • 永続性があるか • 非計画のダウンタイムはどの程度か • 専門家でないエンジニアでも扱えるか • サービスの持続性 • エコシステムやサードパーティ • 必要十分な機能があるか • etc…
GFS, HDFS (Apache Hadoop) • Single replicated master • 独自実装
• ブロック単位の管理 The Google File System (SOSP’03) HDFS Architecture Guide
Lustre • HPCで定番 ◦ 富嶽で採用 • 2000年発表 2003年 1.0リリース •
メタデータ、ブロックともに永続性は個々の ノードのストレージレイヤで保証 • 最近だとOpenZFSが定番らしい • 現代だとDDNやLLIO のようなステージング やキャッシュレイヤを挟んで高速化 • MDSの構造は独自(要調査) Introduction to Lustre Architecture
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)
Gfarm • 数少ない現存する国産の分散ファイルシステム • メタデータ管理はPostgreSQL ◦ 運用でPostgreSQLをいい感じにする • 2001年〜 ペタバイトスケールデータインテンシブ
コンピューティングのた めのGrid Datafarmアーキテクチャ
Apache Ozone (1/2) • HDFSの後継OSS ◦ 最初はSubprojectだったが2019年に独立 • S3 APIとHDFS
API両方喋る • メタデータを分けて別コンポーネントで管理する ことにより、HDFS のNameNodeよりも高いメタ データ性能を目指した • ファイルツリーはOzone Manager • ブロック配置はStorage Container Manager Apache Ozone: Overview
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
Collossus • GFS の後継で現用の分散ファイルシステム • Spannerをメタデータ管理に使っている • エクサバイト置けるらしい Colossus の仕組み:
Google のスケーラブルなスト レージ システムの舞台裏
Others • DAOS ◦ Intel 謹製→OSSとして独立 ◦ OptaneDC向けの最適化が入っている ◦ HLCというのを使ってメタデータ性能を向
上したらしい ◦ io500 No.1 • • • AWS S3 ◦ 言わずとしれたデファクト ◦ In-house something ◦ Range分散するものっぽい ◦ 昔は固定長prefixベースだった模 様 ◦ 100兆オブジェクト