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
114-ファイルのshallow_copy.pdf
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Satoru Takeuchi
PRO
May 27, 2026
Technology
8
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
114-ファイルのshallow_copy.pdf
Satoru Takeuchi
PRO
May 27, 2026
More Decks by Satoru Takeuchi
See All by Satoru Takeuchi
113-Btrfsのスナップショット.pdf
sat
PRO
0
3
システム強制終了時にファイルシステムの整合性を保つ~ コピーオンライト編 ~
sat
PRO
0
54
システム強制終了時に ファイルシステムの整合性を保つ ~ ジャーナリング編 ~
sat
PRO
1
58
ファイルシステムの整合性を回復するfsck
sat
PRO
1
59
小学校5,6年生向けキャリア教育 大人になるまでの道
sat
PRO
8
4.9k
ファイルシステムの不整合
sat
PRO
2
150
書籍執筆での生成AIの活用
sat
PRO
2
510
ChatGPTに従って体調管理2026
sat
PRO
0
180
eBPF
sat
PRO
1
160
Other Decks in Technology
See All in Technology
連合学習と機密コンピューティング
lycorptech_jp
PRO
0
100
On-behalf-of Token exchange with AgentCore Identity
hironobuiga
2
150
Djangoユーザが知っ得なPostgreSQL機能 - 設計の選択肢を増やす / Djang-use-PostgreSQL
soudai
PRO
1
230
EventBridge Connection
_kensh
5
690
2026TECHFRESH畢業分享會 - Lightning Talk - 打造精準高效的 MCP 設計模式與測試實務
line_developers_tw
PRO
0
780
新しいVibe Codingと”自走”について
watany
5
290
AI-DLCを活用した高品質・安全なAI駆動開発実践 / AI Driven Development with AI-DLC
yoshidashingo
0
170
「速く作る」から「正しく作る」へ ─ 生成AI時代の開発フロー改革の ロードマップと実行 ─
starfish719
0
9.8k
エラーバジェットのアラートのタイミングを考える.pdf
kairim0
0
110
Dario Amodi『Policy on the AI Exponential』を理解する
nagatsu
0
220
AAIFに入ってみた ~内から見えるコミュニティ動向~
sato4
0
160
Oracle AI Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
6
1.9k
Featured
See All Featured
YesSQL, Process and Tooling at Scale
rocio
174
15k
30 Presentation Tips
portentint
PRO
1
320
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.5k
Designing Experiences People Love
moore
143
24k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
Docker and Python
trallard
47
3.9k
Producing Creativity
orderedlist
PRO
348
40k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
240
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
140
Music & Morning Musume
bryan
47
7.2k
Optimising Largest Contentful Paint
csswizardry
37
3.7k
Transcript
ファイルのshallow copy May. 26th, 2026 Satoru Takeuchi X: satoru_takeuchi 1
• ファイルのデータそのものではなくデータの参照だけをコピーする機能 • snapshotをファイル単位で実現するようなもの • メジャーどころのファイルシステムではBtrfsとXFSがサポート • shallow copyが何かを実験によって説明 はなすこと
2
まずはデカいファイルを作る • VMではなく物理マシン上のシステムで実験 ◦ 📝 ホスト側のキャッシュメモリの影響を受けないようにするため ▪ そのうち別の動画で詳細を説明するかも • /mnt以下にXFSがマウントされているとする
• 1GiBのファイルを作ってキャッシュメモリを捨てる ◦ こうしないと後の実験でディスク上のデータではなくメモリ上のデータを読み書きするだけになってし まうので性能測定の意味が無くなる 3 # dd if=/dev/random of=/mnt/test.data bs=1M count=1024 oflag=sync … # echo 3 >/proc/sys/vm/drop_caches
普通のコピーの性能測定 • 以下の処理にかかる時間を測定 1. /mnt/test.dataを同じファイルシステム上の別のファイルにコピー 2. コピーするだけだとキャッシュメモリに書くだけなので、その後 fsyncシステムコールを発行してデー タをディスクに同期 4
# time (cp ––reflink=never /mnt/test.data /mnt/deep.data; xfs_io -c fsync /mnt/deep.data) real 0m9.496s user 0m0.006s sys 0m1.819s # echo 3 >/proc/sys/vm/drop_caches
shallow copyの性能測定 • 以下の処理にかかる時間を測定 1. /mnt/test.dataを同じファイルシステム上の別のファイルに shallow copy ▪ cpコマンドに--reflinkオプションを付ける
2. コピーするだけだとキャッシュメモリに書くだけなので、その後 fsyncシステムコールを発行してデー タをディスクに同期 5 # time (cp --reflink /mnt/test.data /mnt/shallow.data; xfs_io -c fsync /mnt/shallow.data) real 0m0.048s user 0m0.005s sys 0m0.009s # cmp /mnt/test.data /mnt/shallow.data # cmp /mnt/deep.data /mnt/shallow.data
それぞれの違い 6 test.dataの メタデータ test.dataの データ deep.dataの メタデータ deep.dataの データ
コピーする shallowコピー test.dataの メタデータ test.dataの データ shallow.dataの メタデータ 普通のコピー データはコピーせずリ ンクを張るだけ
その他 • shallow copyによって共有しているデータに書き込むと、更新した部分を別の場所 に保存して、その部分だけリンクを張り替える • 書き込みするたびにデータが断片化して性能劣化する ◦ 📝 そうなったときにデフラグすることもできる
• XFSはメタデータの書き換えはCoWではないのでsnapshotは作成できないが、 ファイル書き換えはCoWも使えるのでファイルのshallow copyができる 7
ext4、XFS、Btrfsの比較 • 8 ファイルシステム subvolumeなどファイルより 大きな単位の snapshot(shallow copy) ファイルのshallow copy
ext4 できない できない XFS できない できる Btrfs できる できる
まとめ • shallow copyはファイルを参照する別のファイルを作成する方法 ◦ 高速だがデータはコピーされないので冗長性は無い • XFSとBtrfsはサポートするが、ext4はサポートしない • コピーが高速といういいところばかりではなくデータ冗長度は上がらない、データが
断片化しやすいといった問題もある 9