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
500
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
20
Behind The Scenes: Cloud Native Storage System for AI
kuenishi
2
390
Apache Ozone behind Simulation and AI Industries
kuenishi
0
360
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.1k
Introducing Retz and how to develop practical frameworks
kuenishi
3
720
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
RubyKaigi NOC 近況 2025
sorah
3
1.1k
4月15日の AZ 障害をテクサポの中の人目線で振り返ってみる
kazzpapa3
1
120
AI-in-the-Enterprise|OpenAIが公開した「AI導入7つの教訓」——ChatGPTで変わる企業の未来とは?
customercloud
PRO
0
170
2025年8月から始まるAWS Lambda INITフェーズ課金/AWS Lambda INIT phase billing changes
quiver
1
1.1k
Google Cloud Next 2025 Recap マーケティング施策の運用及び開発を支援するAIの活用 / Use of AI to support operation and development of marketing campaign
atsushiyoshikawa
0
270
雑に疎通確認だけしたい...せや!CloudShell使ったろ!
alchemy1115
0
230
Next.jsと状態管理のプラクティス
uhyo
6
2.3k
激動の一年を通じて見えてきた「技術でリードする」ということ
ktr_0731
8
7.5k
250510 StepFunctionのテスト自動化始めました vol.1
east_takumi
1
250
Tailwind CSS の小話「コンテナークエリーって便利」
yamaday
0
130
LangfuseではじめるAIアプリのLLMトレーシング
codenote
0
180
技術選定を突き詰める 懇親会LT
okaru
2
1k
Featured
See All Featured
Navigating Team Friction
lara
185
15k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
179
53k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
47
2.7k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Building an army of robots
kneath
305
45k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.8k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
12k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
227
22k
For a Future-Friendly Web
brad_frost
177
9.7k
Six Lessons from altMBA
skipperchong
28
3.8k
Raft: Consensus for Rubyists
vanstee
137
6.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兆オブジェクト