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
113-Btrfsのスナップショット.pdf
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Satoru Takeuchi
PRO
May 25, 2026
25
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
113-Btrfsのスナップショット.pdf
Satoru Takeuchi
PRO
May 25, 2026
More Decks by Satoru Takeuchi
See All by Satoru Takeuchi
Rook: Intro and Deep Dive with Ceph
sat
PRO
1
58
Machine Check Exception
sat
PRO
2
53
バイナリダンプの模様を読む
sat
PRO
0
73
cpコマンドはディスク上でデータを コピーしないことがある
sat
PRO
3
61
114-ファイルのshallow_copy.pdf
sat
PRO
2
45
システム強制終了時にファイルシステムの整合性を保つ~ コピーオンライト編 ~
sat
PRO
0
66
システム強制終了時に ファイルシステムの整合性を保つ ~ ジャーナリング編 ~
sat
PRO
2
71
ファイルシステムの整合性を回復するfsck
sat
PRO
1
78
小学校5,6年生向けキャリア教育 大人になるまでの道
sat
PRO
8
6k
Featured
See All Featured
Thoughts on Productivity
jonyablonski
76
5.3k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
490
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
490
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
370
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
420
For a Future-Friendly Web
brad_frost
183
10k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.8k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
The SEO identity crisis: Don't let AI make you average
varn
0
530
Deep Space Network (abreviated)
tonyrice
0
260
Build your cross-platform service in a week with App Engine
jlugia
234
19k
Transcript
Btrfsのスナップショット May. 25th, 2026 Satoru Takeuchi X: satoru_takeuchi 1
• Btrfsがサポートしているファイルシステムレベルでのスナップショット • CoW(Copy-on-Write)機能を利用して実現 ◦ 📝 過去動画: その112 システム強制終了時にファイルシステムの整合性を保つ ~
コピーオンライト 編 ~ • スナップショットそのものが何かについては過去動画を参照 ◦ 📝 過去動画: その29 スナップショット はなすこと 2
サブボリューム • Btrfsでsnapshotを作成する単位(ここでは/mntにbtrfsをmountしている) • ファイルシステム上はディレクトリに見える 3 # btrfs subvolume create
/mnt/foo # 作成 Create subvolume '/mnt/foo' # ls /mnt # ディレクトリに見える foo # ls /mnt/foo # 中でlsもできる #
snahshot • foo以下に適当にファイルを作る • fooのsnapshot作成 4 # echo bar >/mnt/foo/bar
# echo baz >/mnt/foo/baz # ls /mnt/foo/ bar baz # btrfs subvolume snapshot /mnt/foo /mnt/hoge Create a snapshot of '/mnt/foo' in '/mnt/hoge' # ls /mnt/hoge/ bar baz # cat /mnt/hoge/bar bar # cat /mnt/hoge/baz baz #
snahshot • foo以下に適当にファイルを作る • fooのsnapshot作成 5 # echo bar >/mnt/foo/bar
# echo baz >/mnt/foo/baz # ls /mnt/foo/ bar baz # btrfs subvolume snapshot /mnt/foo /mnt/hoge Create a snapshot of '/mnt/foo' in '/mnt/hoge' # ls /mnt/hoge/ bar baz # cat /mnt/hoge/bar bar # cat /mnt/hoge/baz baz # “cp -r /mnt/foo /mnt/hoge”との違い • foo以下に大量のデータがあっても短 時間(多くはほぼ一瞬)で終わる • 追加容量をほぼ必要としない
btrfsのsnapshot作成が高速な理由を説明 • 初期状態 ◦ サブボリュームfooの下にbar,bazというファイルが存在する ◦ bar,bazはものすごく大きいとする (例: 数TiB) /
foo bazのメタデータ barのメタデータ barのデータ bazのデータ
fooのsnapshotであるhogeを作成すると… • barとbazを参照するhogeを作る • fooとhogeを参照するrootを作る / foo bazのメタデータ barのメタデータ barのデータ
bazのデータ / hoge
最後にrootを差し替え • これで終わり • barとbazには一切触っていないので高速 • 後でbarやbazを更新するときはメタデータ/データをCoWする / foo bazのメタデータ
barのメタデータ barのデータ bazのデータ / hoge
まとめ • Btrfsはbtrfs subvolume createコマンドでsubvolumeを使える • btrfs subvolume snapshotコマンドでsubvolumeのsnapshotを作成できる •
snapshotの利点 ◦ コピーに比べて高速で完了するし容量もほとんど消費しない ◦ readonlyでsnapshotを作成して、そのデータをコピーによりバックアップを作成するといった使い方 ができる ◦ かっこいい • snapshotの注意点(過去動画と一部同じ) ◦ データは冗長化されず、あくまで参照をコピーするだけなので、 snapshotそのものはバックアップに はならない ◦ snapshotを読み書き可能状態で作成すると後から使用量が CoWで予測しづらい形で増える ▪ ファイルの新規作成やファイルサイズの拡張をしていないのに使用量が増える 9