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
69
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
Rook: Intro and Deep Dive with Ceph
sat
PRO
1
42
Machine Check Exception
sat
PRO
2
51
バイナリダンプの模様を読む
sat
PRO
0
71
cpコマンドはディスク上でデータを コピーしないことがある
sat
PRO
3
58
114-ファイルのshallow_copy.pdf
sat
PRO
2
41
113-Btrfsのスナップショット.pdf
sat
PRO
0
23
システム強制終了時にファイルシステムの整合性を保つ~ コピーオンライト編 ~
sat
PRO
0
63
ファイルシステムの整合性を回復するfsck
sat
PRO
1
75
小学校5,6年生向けキャリア教育 大人になるまでの道
sat
PRO
8
5.7k
Other Decks in Technology
See All in Technology
モバイルアプリ開発概論2026
recruitengineers
PRO
3
480
SmartHR Engineering Team Deck
smarthr
0
440
JavaScript 研修 (2026)
recruitengineers
PRO
1
440
AIコーディングの次。コードレビューと理解負荷を解消して組織の開発生産性を高める
moongift
PRO
2
2.2k
Software Supply Chain Attackからクラウド環境を守るためにできること
lhazy
2
200
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
4.9k
侵入は突然に 〜 IoTマルウェアと悪用される家庭の機器 ~ / When Intrusion Strikes: IoT Malware and the Abuse of Home Devices
nttcom
0
1.5k
修正PRを食べてレビュースキルが賢くなる:Claude Codeによる自己改善サイクル
yuyaumetsu
5
1.3k
新しい SLO が良い感じにハマっている話
z63d
5
2.1k
【CEDEC2026】次世代デジタルカードゲームのサーバー設計と運用 〜『Shadowverse: Worlds Beyond』の舞台裏~
cygames
PRO
1
950
ボトムアップ文化が強い組織で セキュリティをどう根付かせていくかの現在進行形の話 / Making Security Stick in a Bottom-Up Organization
yamaguchitk333
0
200
ブラウザ研修 2026
recruitengineers
PRO
4
760
Featured
See All Featured
Side Projects
sachag
455
43k
Building the Perfect Custom Keyboard
takai
2
830
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
200
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
440
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
680
A designer walks into a library…
pauljervisheath
211
24k
Documentation Writing (for coders)
carmenintech
77
5.4k
How STYLIGHT went responsive
nonsquared
100
6.2k
Paper Plane (Part 1)
katiecoart
PRO
1
10k
Music & Morning Musume
bryan
47
7.3k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.3k
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