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
システム強制終了時に ファイルシステムの整合性を保つ ~ ジャーナリング編 ~
Search
Satoru Takeuchi
PRO
April 29, 2026
Technology
56
1
Share
システム強制終了時に ファイルシステムの整合性を保つ ~ ジャーナリング編 ~
以下動画のスライドです
https://youtu.be/vNeJ9CLzv_I
Satoru Takeuchi
PRO
April 29, 2026
More Decks by Satoru Takeuchi
See All by Satoru Takeuchi
システム強制終了時にファイルシステムの整合性を保つ~ コピーオンライト編 ~
sat
PRO
0
48
ファイルシステムの整合性を回復するfsck
sat
PRO
1
56
小学校5,6年生向けキャリア教育 大人になるまでの道
sat
PRO
8
4.7k
ファイルシステムの不整合
sat
PRO
2
150
書籍執筆での生成AIの活用
sat
PRO
2
500
ChatGPTに従って体調管理2026
sat
PRO
0
180
eBPF
sat
PRO
1
150
waruiBPF
sat
PRO
0
140
eBPFとwaruiBPF
sat
PRO
5
5.4k
Other Decks in Technology
See All in Technology
Chart.js が簡単に使えるようになっていたので OGP 画像生成に使った話
kamekyame
0
120
美味しいスイスチーズを作ろう🧀🐭
taigamikami
1
220
大規模災害時でも高い信頼性を維持するアプリケーション基盤の実現/nikkei-tech-talk46
nikkei_engineer_recruiting
0
130
AI Engineering Summit Tokyo 2026 AIの前に、やることがある 〜医療データ企業の4フェーズ〜
dtaniwaki
0
600
新規事業を牽引する技術選定 〜フルスタックTypeScript開発の実践事例〜
nullnull
0
120
Oracle AI Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
4
2.8k
Spring AI × MCP 入門〜AIエージェントへのツール公開、境界設計から始める最小構成 〜
yuyamiyamoto
0
200
Oracle AI Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
6
1.8k
Cloud Run のアップデート 触ってみる&紹介
gre212
0
290
oracle-to-databricks-migration-with-llm-and-dbt
casek
1
400
Oracle AI Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
6
1.5k
運用を見据えたAIエージェント設計実践
amacbee
0
1.6k
Featured
See All Featured
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
The Curse of the Amulet
leimatthew05
1
13k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
1.1k
First, design no harm
axbom
PRO
2
1.2k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.2k
Rails Girls Zürich Keynote
gr2m
96
14k
Technical Leadership for Architectural Decision Making
baasie
3
390
The SEO Collaboration Effect
kristinabergwall1
1
470
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
160
The Curious Case for Waylosing
cassininazir
1
370
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.6k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
380
Transcript
システム強制終了時に ファイルシステムの整合性を保つ ~ ジャーナリング編 ~ Apr. 30th, 2026 Satoru Takeuchi
X: satoru_takeuchi 1
• ファイルシステムの更新中に不整合な状態でシステムが異常終了したとする ◦ 📝 過去動画: その109「ファイルシステム不整合」 • この状態から回復するファイルシステムの機能の一つがジャーナリング ◦ モダンなファイルシステムでは
ext4やXFSがサポート / foo bar huga hoge 本来どちらか1つからのみ参 照されるべき ジャーナリング 2
ジャーナリングをサポートするファイルシステムの変更 1. ユーザから変更要求が来る 2. ディスク内のジャーナル領域という場所に「どのファイルにどのような変更を加える か」を記録 3. 実際の変更を加える 3 ファイルシステムの
ドライバ (1) 変更要求 ジャーナル領域 ファイルシステムのデータ、メタ データ領域 (2) 変更内容の書き込み (3) 変更
初期状態 • 以下の状況で”mv bar foo”コマンドを実行する ◦ ファイルシステムはジャーナリング機能をサポート / foo bar
huga hoge ジャーナル領域
まずはジャーナル領域に何をするかを書き込む / foo bar huga hoge barをfoo以下に移動させる ジャーナル領域
fooからbarにリンクを張る / foo bar huga hoge barをfoo以下に移動させる ジャーナル領域
ここでシステムが異常終了 / foo bar huga hoge barをfoo以下に移動させる ジャーナル領域 異常終了
再起動後 • barはルートディレクトリからもfooからも参照されている不整合な状態 / foo bar huga hoge barをfoo以下に移動させる ジャーナル領域
mountを試みる • mountしようとするとext4ドライバが「ジャーナル領域に書き込まれた処理が完了し ていない」ことを検出 ◦ ext2と異なり通常はmount前にfsckを実行しない / foo bar huga
hoge barをfoo以下に移動させる ジャーナル領域
リプレイ処理 • ジャーナル領域に書いたことをやりなおす 1. fooからbarにリンクを張る 2. “/”からbarへのリンクを削除する / foo bar
huga hoge barをfoo以下に移動させる ジャーナル領域
ジャーナルログを削除 • これで処理完了 / foo bar huga hoge barをfoo以下に移動させる ジャーナル領域
コミットとチェックポイント • 実際は性能向上のため「ファイルのディレクトリを移動」というような小さな単位では なく、変更を複数束ねたまとまりごとに「コミット」する • コミットとは「コミット前にジャーナル領域に書かれている情報はシステムが異常終 了しても後から確実にファイルシステムに反映できる」という印 • システム強制終了時のリプレイ処理 ◦
コミット前のログ→ジャーナル領域に書かれている変更内容は全部捨てる ◦ コミット後のログ→前述の通り • ジャーナル領域に書かれたことを実際のファイルシステムのデータに反映すること をチェックポイントと呼ぶ 12
その他いろいろ • ファイルシステムがHDDベースだとして、ジャーナル領域だけSSDに置いて処理を 高速化させる手法がある • ここでは説明しないがジャーナリングにはモードがいろいろある ◦ ext4の場合「journal,ordered,writeback」 ◦ 一長一短ある。興味があれば調べてほしい
• データベースのWrite Ahead Log(WAL)も基本的な考え方は同じ 13
まとめ • ジャーナリングはシステムの強制終了時にファイルシステムの整合性を保つ機能 の一つ • ファイルシステムへの変更は、まずジャーナル領域に書き、その後実際のファイル システムに書くことによって整合性を保つ 14