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
分散ストレージCephのデータ破壊検知修復機能は本当に動作するのか
Search
Satoru Takeuchi
PRO
December 11, 2023
Technology
300
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
分散ストレージCephのデータ破壊検知修復機能は本当に動作するのか
以下動画のテキストです
https://youtu.be/uN_Gn-bfiSI
Satoru Takeuchi
PRO
December 11, 2023
More Decks by Satoru Takeuchi
See All by Satoru Takeuchi
Linuxカーネルの インタフェースは変わりうる?
sat
PRO
1
55
あなたの知らないバージョン命名規則
sat
PRO
2
660
Rook: Intro and Deep Dive with Ceph
sat
PRO
1
59
Machine Check Exception
sat
PRO
2
55
バイナリダンプの模様を読む
sat
PRO
0
80
cpコマンドはディスク上でデータを コピーしないことがある
sat
PRO
3
68
114-ファイルのshallow_copy.pdf
sat
PRO
2
45
113-Btrfsのスナップショット.pdf
sat
PRO
0
30
システム強制終了時にファイルシステムの整合性を保つ~ コピーオンライト編 ~
sat
PRO
0
66
Other Decks in Technology
See All in Technology
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
5k
AI時代のデータ基盤を考える問い
pacocat
0
600
形式手法特論:Hyperproperty とモデル検査 #kernelvm / Kernel VM Study Tokyo 19th
ytaka23
0
780
現場回帰したデータエンジニアが考える AI 時代のキャリア開発 / Career Development in the Age of AI Perspectives from a Hands-on Data Engineer
medley
0
330
AI・HPC開発を支えるGPU環境の新しい選択肢 液冷GPUシステム「AquSys」の取り組み
gpuunite_official
0
240
NANDでも描画したい!
nichica906
3
700
Introduction to Bill One Development Engineer
sansan33
PRO
0
470
Claude Teamプランの コスト最適化を考える
rfdnxbro
0
480
研究開発部の紹介 / Sansan R&D Profile
sansan33
PRO
4
24k
暗号化?某ファイルストレージはどうなるの!? 3rd Partyとうまく付き合う秘密度ラベル設計
kasada
0
190
LLM Internals: 언어 모델의 계보와 알고리즘 진화 (2023~2026)
inureyes
PRO
1
920
도구에서 동료까지: 10년차 AI 스타트업의 AI 적응기
inureyes
PRO
1
350
Featured
See All Featured
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
640
Heart Work Chapter 1 - Part 1
lfama
PRO
8
36k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Everyday Curiosity
cassininazir
0
290
Optimizing for Happiness
mojombo
378
71k
Testing 201, or: Great Expectations
jmmastey
46
8.2k
A Soul's Torment
seathinner
6
3.5k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
Code Review Best Practice
trishagee
74
20k
What does AI have to do with Human Rights?
axbom
PRO
1
2.3k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4.2k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
400
Transcript
分散ストレージCephの データ破壊検知&修復機能は 本当に動作するのか Dec, 11st, 2023 Satoru Takeuchi X: satoru_takeuchi
今回話すこと • 分散ストレージCephのデータ破壊検知&修復機能の動作確認 ◦ レプリカが2個以上ある状態で1つのレプリカが壊れても、正しいデータから修復できる ◦ …という触れ込みだが、本当なのだろうか ? • 「その63
ディスクI/O障害のエミュレーション ~既存ターゲット編~」を見ていると理解 しやすい ◦ 軽い事例紹介なので、難しいところは雰囲気を理解するだけで OK
Cephのアーキテクチャ node node node disk OSD disk OSD disk OSD
RADOS(独自インタフェースのオブジェクトストレージ ) ファイルシステム ブロックデバイス S3互換 オブジェクトストレージ
実験に使ったCephクラスタ node disk RADOS ファイル ファイル /dev/loop0 /dev/loop1 dust0 dust1
OSD0 OSD1
オブジェクトを作成 $ cat /tmp/test.data Hello Ceph world! $ rados -p
replicapool put test-object test.data RADOS /dev/loop0 /dev/loop1 dust0 dust1 OSD0 OSD1 データ データ write write
GETする場合に読むOSDを得る $ ceph pg ls-by-pool replicapool PG OBJECTS … UP
ACTING … 1.a 1 … [1,0]p1 [1,0]p1 … オブジェクトを読み出すのは dust0上のOSD1から RADOS /dev/loop0 /dev/loop1 dust0 dust1 OSD0 OSD1 データ データ read
オブジェクトの位置を知る • stringsコマンドを使ってそれっぽいデータがあるセクタを疑似不良セクタとする ◦ 📝 本当はOSDの中にあるRocksDBを走査してセクタ番号を求めます $ sudo strings -t
d /dev/mapper/dust1 | grep "Hello Ceph world!" 4616192 Hello Ceph world! ^C $ echo $((4616192/512)) 9016
疑似不良セクタを設定 $ sudo dmsetup message dust1 0 addbadblock 9016 0
$ sudo dmsetup message dust1 0 enable RADOS /dev/loop0 /dev/loop1 dust0 dust1 OSD0 OSD1 データ データ readするとI/Oエラー発生 データ
オブジェクトをGETすると中身は正しい $ rados -p replicapool get test-object /tmp/out.data $ cat
/tmp/out.data Hello Ceph world! RADOS /dev/loop0 /dev/loop1 dust0 dust1 OSD0 OSD1 データ データ read データ readするとI/Oエラー発生 したはずだが…
OSDのログにデータを修復した痕跡が出ている … _aio_thread got r=-5 ((5) Input/output error) … _aio_thread
translating the error to EIO for upper layer … log [ERR] : 1.a missing primary copy of 1:5756f1fd:::test-object:head, will try copies on 0 RADOS /dev/loop0 /dev/loop1 dust0 dust1 OSD0 OSD1 データ データ データ
何が起きたか RADOS /dev/loop0 /dev/loop1 dust0 dust1 OSD0 OSD1 データ データ
read データ
何が起きたか RADOS /dev/loop0 /dev/loop1 dust0 dust1 OSD0 OSD1 データ データ
I/Oエラー発生 データ破壊検知
何が起きたか RADOS /dev/loop0 /dev/loop1 dust0 dust1 OSD0 OSD1 データ データ
正しいデータをコピー
何が起きたか RADOS /dev/loop0 /dev/loop1 dust0 dust1 OSD0 OSD1 データ データ
渡す
おわり • Cephのデータ破壊検知&修復機能は仕様通り機能することを確認した • こういうことを楽々試せるdm-dustは便利