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
61
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
cpコマンドはディスク上でデータを コピーしないことがある
sat
PRO
3
44
114-ファイルのshallow_copy.pdf
sat
PRO
2
26
113-Btrfsのスナップショット.pdf
sat
PRO
0
10
システム強制終了時にファイルシステムの整合性を保つ~ コピーオンライト編 ~
sat
PRO
0
54
ファイルシステムの整合性を回復するfsck
sat
PRO
1
62
小学校5,6年生向けキャリア教育 大人になるまでの道
sat
PRO
8
5k
ファイルシステムの不整合
sat
PRO
2
150
書籍執筆での生成AIの活用
sat
PRO
2
530
ChatGPTに従って体調管理2026
sat
PRO
0
190
Other Decks in Technology
See All in Technology
「ビジネスがわかるエンジニア」とは何か?
ryooob
0
290
脱SaaS!FDEを支えるプロビジョニングと分離設計
knih
0
300
クレデンシャル流出 ― 攻撃 3 時間 vs 復旧 10 時間。この非対称性にどう備えるか
kazzpapa3
3
550
AIが自律的に回る開発ループを設計してチーム開発に組み込む
nekorush14
0
120
あなたの知らないPDFのアクセシビリティ
lycorptech_jp
PRO
0
240
GitHub Copilot 最新アップデート – 「一歩先」の実践活用術
moulongzhang
5
1.7k
いまさら聞けない「仕様駆動開発入門」 〜AI活用時代の開発プロセスを考える〜
findy_eventslides
2
200
技術・能力を向上する原理原則 #きのこセッションa #きのこ2026
bash0c7
0
120
Bucharest Tech Week 2026 - Guardians of the Cloud-Native Galaxy
edeandrea
PRO
0
140
不要なレビューをAIにまかせて AIコーディングの環境改善を加速した
shoota
1
260
作る力から、見極める力へ — AI時代に広がるエンジニアの価値と役割
rince
0
330
GitHub Copilot app最速の発信の裏側
tomokusaba
1
250
Featured
See All Featured
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
870
Building Flexible Design Systems
yeseniaperezcruz
330
40k
What's in a price? How to price your products and services
michaelherold
247
13k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
160
VelocityConf: Rendering Performance Case Studies
addyosmani
333
25k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
150
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
170
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.5k
Marketing to machines
jonoalderson
1
5.5k
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