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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Satoru Takeuchi
PRO
April 29, 2026
Technology
63
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
システム強制終了時に ファイルシステムの整合性を保つ ~ ジャーナリング編 ~
以下動画のスライドです
https://youtu.be/vNeJ9CLzv_I
Satoru Takeuchi
PRO
April 29, 2026
More Decks by Satoru Takeuchi
See All by Satoru Takeuchi
Machine Check Exception
sat
PRO
2
36
バイナリダンプの模様を読む
sat
PRO
0
68
cpコマンドはディスク上でデータを コピーしないことがある
sat
PRO
3
54
114-ファイルのshallow_copy.pdf
sat
PRO
2
38
113-Btrfsのスナップショット.pdf
sat
PRO
0
16
システム強制終了時にファイルシステムの整合性を保つ~ コピーオンライト編 ~
sat
PRO
0
59
ファイルシステムの整合性を回復するfsck
sat
PRO
1
65
小学校5,6年生向けキャリア教育 大人になるまでの道
sat
PRO
8
5.3k
ファイルシステムの不整合
sat
PRO
2
160
Other Decks in Technology
See All in Technology
公式ドキュメントの歩き方etc
coco_se
1
120
AI Agent SaaS を支える自社仮想化基盤への挑戦と実運用 / ai-agent-saas-virtualization
flatt_security
3
4.1k
そのドキュメント、自動化しませんか?
yuksew
1
290
End-to-Endで考える信頼性 —LINEアプリにおけるクライアント開発×SRE連携の実践
maruloop
4
4.5k
AIレビューはどこまで任せられるのか?自動化と人が背負うレビューの境界
sansantech
PRO
3
1.1k
タスクの複雑さでモデルを選ぶ ── Thompson Samplingで動かす“トークン/コスト最適化
satohy0323
0
550
アップデートで何が変わった?デモで学んで使いこなすIBM Bob2.0
muehara
0
110
SREとQA 二人三脚で進めるSLO運用/sre-qa-slo
sugitak
0
830
[2026-07-15] AI Ready なはずだったアーキテクチャと、見えてきた課題・次に目指す状態
wxyzzz
9
4k
AIと共生する開発者プラットフォーム:バクラクのモノレポ×マイクロサービス基盤
sakajunquality
2
3.7k
ファミコンでPHPを動かす / PHP on the Famicom
tomzoh
2
350
あなたの『Site』はどこですか? — xREという考え方
miyamu
0
1.2k
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
So, you think you're a good person
axbom
PRO
2
2.1k
Code Reviewing Like a Champion
maltzj
528
40k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
210
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
220
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.6k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
170
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
410
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
220
How to build a perfect <img>
jonoalderson
1
5.8k
Ruling the World: When Life Gets Gamed
codingconduct
0
280
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