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
45
2
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
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
113-Btrfsのスナップショット.pdf
sat
PRO
0
25
システム強制終了時にファイルシステムの整合性を保つ~ コピーオンライト編 ~
sat
PRO
0
66
システム強制終了時に ファイルシステムの整合性を保つ ~ ジャーナリング編 ~
sat
PRO
2
71
ファイルシステムの整合性を回復するfsck
sat
PRO
1
78
小学校5,6年生向けキャリア教育 大人になるまでの道
sat
PRO
8
6k
Other Decks in Technology
See All in Technology
Bits Agent Builder の⼊⾨と活⽤事例
nulabinc
PRO
0
200
DatadogのBits Chatが開発組織にもたらしたもの / What Bits Chat Has Brought Us
sms_tech
1
290
Reference-Free Image Quality Assessment for Virtual Try-On via Human Feedback
zozotech
PRO
0
640
AIコーディングの次。コードレビューと理解負荷を解消して組織の開発生産性を高める
moongift
PRO
2
2.7k
猫付きpingコマンドを自作
uyuki234
0
260
自宅NWにISR4331を導入してみた話
okaits
0
110
SmartHR Engineering Team Deck
smarthr
1
2.8k
AIペネトレーションテスト・ セキュリティ検証「AgenticSec」紹介資料
laysakura
2
9.2k
Adding Right-to-Left support to your web application with CSS logical properties — Lessons from Redmine
vividtone
0
130
MulticaとPi Coding Agentで、小規模OSSを30本同時運用した流れ
eiei114
0
130
QAエンジニア起点で進める、SmartHRにおける信頼性向上について
kaomi_wombat
1
150
Genie Codeハンズオン応用編
taka_aki
0
120
Featured
See All Featured
Amusing Abliteration
ianozsvald
1
250
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.2k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
900
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
57k
How STYLIGHT went responsive
nonsquared
100
6.2k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
GraphQLとの向き合い方2022年版
quramy
50
15k
The untapped power of vector embeddings
frankvandijk
2
1.8k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
780
How GitHub (no longer) Works
holman
316
150k
Discover your Explorer Soul
emna__ayadi
2
1.3k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3k
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