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
Satoru Takeuchi
PRO
May 27, 2026
Technology
41
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
41
Machine Check Exception
sat
PRO
2
51
バイナリダンプの模様を読む
sat
PRO
0
71
cpコマンドはディスク上でデータを コピーしないことがある
sat
PRO
3
57
113-Btrfsのスナップショット.pdf
sat
PRO
0
23
システム強制終了時にファイルシステムの整合性を保つ~ コピーオンライト編 ~
sat
PRO
0
63
システム強制終了時に ファイルシステムの整合性を保つ ~ ジャーナリング編 ~
sat
PRO
2
68
ファイルシステムの整合性を回復するfsck
sat
PRO
1
74
小学校5,6年生向けキャリア教育 大人になるまでの道
sat
PRO
8
5.7k
Other Decks in Technology
See All in Technology
JavaScript 研修 (2026)
recruitengineers
PRO
1
370
NetBoxを利用した作業効率化の試み_NetDevNight4
tnoha
0
470
社内の7割が使うデータ基盤を、 データチーム2人で回すためにやったこと
koh_yoshi
4
580
『三匹の子ぶた』から学ぶネットワークセキュリティの昔と今 / Network Security: Then and Now Through the Lens of The Three Little Pigs
nttcom
1
1.7k
AI駆動開発は個人技からチーム戦へ:組織でAIを使いこなすための実践設計
moongift
PRO
0
460
【CEDEC2026】『Relink』を拡張せよ - 『GRANBLUE FANTASY: Relink - Endless Ragnarok』の開発速度と品質を守るCI運用
cygames
PRO
0
130
オートロックマンションなのに、各部屋は施錠なし!? 攻撃者が組織内ネットワークで大暴れする理由 / The Front Door Is Locked, but the Rooms Are Wide Open: Why Attackers Move Freely Inside Enterprise Networks
nttcom
1
1.6k
【CEDEC2026】ゲームシナリオライターを支援するAIツール開発の実践 ― 設計とプロンプトの工夫 ―
cygames
PRO
1
740
初めてのGitHub Actions / GitHub Actions at First
tooppoo
0
140
AIコーディングの次。コードレビューと理解負荷を解消して組織の開発生産性を高める
moongift
PRO
2
1.8k
AI ネイティブな組織に Gemini Enterprise Agent Platform がなぜ必要なのか
asei
1
180
20260608_Codexの可能性_ノンプログラマー向け_大城追記
doradora09
PRO
0
770
Featured
See All Featured
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.6k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.1k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
520
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
170
GitHub's CSS Performance
jonrohan
1033
470k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
610
The Invisible Side of Design
smashingmag
301
52k
How to Talk to Developers About Accessibility
jct
2
480
Paper Plane
katiecoart
PRO
2
52k
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