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
July 01, 2021
Technology
0
110
バックアップと静止状態
以下動画のテキストです
https://youtu.be/SIlS8pQWfnc
Satoru Takeuchi
PRO
July 01, 2021
Tweet
Share
More Decks by Satoru Takeuchi
See All by Satoru Takeuchi
「Linux」という言葉が指すもの
sat
PRO
4
160
APIとABIの違い
sat
PRO
5
90
ファイルシステムへのアクセス方法
sat
PRO
0
35
ファイルシステム
sat
PRO
1
39
低レイヤソフトウェア技術者が YouTuberとして食っていこうとした話
sat
PRO
7
6.1k
ポーリングと割り込み
sat
PRO
1
87
Rook: Intro and Deep Dive With Ceph
sat
PRO
1
150
会社員しながら本を書いてきた知見の共有
sat
PRO
3
910
デバイスにアクセスするデバイスファイル
sat
PRO
1
73
Other Decks in Technology
See All in Technology
速習AGENTS.md:5分で精度を上げる "3ブロック" テンプレ
ismk
6
1.2k
ComposeではないコードをCompose化する case ビズリーチ / DroidKaigi 2025 koyasai
visional_engineering_and_design
0
110
LLM時代にデータエンジニアの役割はどう変わるか?
ikkimiyazaki
6
1.3k
Exadata Database Service on Dedicated Infrastructure(ExaDB-D) UI スクリーン・キャプチャ集
oracle4engineer
PRO
3
5.5k
AIツールでどこまでデザインを忠実に実装できるのか
oikon48
6
3.3k
How to achieve interoperable digital identity across Asian countries
fujie
0
150
GoでもGUIアプリを作りたい!
kworkdev
PRO
0
140
Wasmのエコシステムを使った ツール作成方法
askua
0
140
成長自己責任時代のあるきかた/How to navigate the era of personal responsibility for growth
kwappa
4
320
小学4年生夏休みの自由研究「ぼくと Copilot エージェント」
taichinakamura
0
690
Git in Team
kawaguti
PRO
3
360
いまからでも遅くない!SSL/TLS証明書超入門(It's not too late to start! SSL/TLS Certificates: The Absolute Beginner's Guide)
norimuraz
0
210
Featured
See All Featured
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
We Have a Design System, Now What?
morganepeng
53
7.8k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
30
2.9k
Visualization
eitanlees
149
16k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.6k
Site-Speed That Sticks
csswizardry
11
900
The Invisible Side of Design
smashingmag
302
51k
How to train your dragon (web standard)
notwaldorf
96
6.3k
Designing for humans not robots
tammielis
254
26k
Designing for Performance
lara
610
69k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
Docker and Python
trallard
46
3.6k
Transcript
バックアップと静止点 Jul. 1st, 2021 Satoru Takeuchi twitter: satoru_takeuchi, EnSatoru 1
バックアップの課題 • バックアップはいつでも取っていいというわけではない ◦ バックアップ中のデータは変化しうる • 例: 以下ディレクトリdir0のバックアップをとる 2 foo
bar dir0 file0 file1
理想的なケース 3 foo bar dir0 file0 file1 foo bar dir0
file0 file1 foo bar dir0 file0 file1 foo dir0.bak file0 foo bar dir0.bak file0 file1 コピー開始 file0をコピー file1をコピー
まずいケース 4 foo bar dir0 file0 file1 foo bar dir0
file0 file1 foo baz dir0 file0 file1 dir0.bak foo baz dir0.bak file0 file1 バックアップ開始 file0をコピー file1をコピー foo baz dir0 file0 file1 foo dir0.bak file0 別のプロセスが file1を更新 foo file0
まずいケース 5 foo bar dir0 file0 file1 foo bar dir0
file0 file1 foo baz dir0 file0 file1 dir0.bak foo baz dir0.bak file0 file1 バックアップ開始 file0をコピー file1をコピー foo baz dir0 file0 file1 foo dir0.bak file0 別のプロセスが file1を更新 foo file0 • 正しいデータをバックアップでき ていない
もっとまずいケース 6 foo bar dir0 file0 file1 コピー開始 file0を途中(“fo”)ま でコピー
file0の残りとfile1をコピー foo bar dir0 file0 file1 fo dir0.bak file0 別のプロセスがfile0 を”baz”に書き換え baz bar dir0 file0 file1 fo dir0.bak file0 baz bar dir0 file0 file1 foz dir0.bak file0 bar file1
もっとまずいケース 7 foo bar dir0 file0 file1 コピー開始 file0を途中(“fo”)ま でコピー
file0の残りとfile1をコピー foo bar dir0 file0 file1 fo dir0.bak file0 別のプロセスがfile0 を”baz”に書き換え baz bar dir0 file0 file1 fo dir0.bak file0 baz bar dir0 file0 file1 foz dir0.bak file0 • 正しいデータをバックアップでき ていない • file0の中身に不整合発生 bar file1
解決策 • バックアップ時にはデータを誰も更新しない状態にする ◦ 静止点(quiescent point)、静止状態(quiescent state)などと呼ぶ • バックアップが終われば更新再開 •
静止点を作るための機能もある ◦ 例: Linuxのファイルシステムにおける fsfreezeコマンド 1. fsfreeze -f <mount point> # 静止点を作る(freeze)。以後のwriteはブロックされる 2. cp -a <mount point> backup # バックアップをとる 3. fsfreeze -u <mount point> # データ更新再開 8 時間 データ更新可 不可 可 バックアップ開始! 終了!
さらなる課題 • データ量が増えるほど静止点を保持しなければならない時間が長くなる ◦ その間データの更新ができない 9 時間 データ更新可 小さなデータの場合 不可
可 大きなデータの場合 データ更新可 不可 可 バックアップ開始! 終了!ちょっと辛かった! バックアップ開始! 終了!すげえ辛かった!
まとめ • バックアップはいつ取ってもいいというわけではない • データを更新しない静止点を作った上で採取する必要がある • データ量が多いほど静止点を保持する時間が長くなるので辛い ◦ 📝 解決策は今後の動画で
! 10