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
データ冗長化のしくみ RAID ~冗長性が無いRAID0編~
Search
Satoru Takeuchi
PRO
June 07, 2024
Technology
2
57
データ冗長化のしくみ RAID ~冗長性が無いRAID0編~
以下動画のテキストです。
https://youtu.be/RzELZcEAODE
Satoru Takeuchi
PRO
June 07, 2024
Tweet
Share
More Decks by Satoru Takeuchi
See All by Satoru Takeuchi
コード再利用のしくみ ライブラリ
sat
PRO
3
29
AWKへの愛を語る
sat
PRO
3
480
syncコマンドのデータ同期 完了待ちやエラー検出
sat
PRO
0
37
動作中のLinux環境の全メモリを見る
sat
PRO
1
59
Linuxの時間を10秒止める
sat
PRO
2
180
プロセスへのメモリ割り当て4 - 実際に使うときにメモリを獲得するデマンドページング(実践編)
sat
PRO
1
85
プロセスへのメモリ割り当て(3) 実際に使うときにメモリを獲得するデマンドページング
sat
PRO
1
57
プロセスへのメモリ割り当て(1) mmap
sat
PRO
2
100
プロセスへのメモリ割り当て2-Pythonのようなナウい言語ではどうやってメモリ獲得するのか
sat
PRO
1
96
Other Decks in Technology
See All in Technology
Valuable Software Engineering
avandeursen
0
250
【shownet.conf_】持続可能な次世代Wi-Fi運用に向けて
shownet
PRO
0
240
Oracle GoldenGate 23ai 導入Tips
oracle4engineer
PRO
1
200
How CERN serves 1EB of data via FUSE
ennael
PRO
0
15k
分析者起点の企画を成功させた連携面の工夫
lycorptech_jp
PRO
0
220
入門 バックアップ
ryuichi1208
3
140
CVE alive
ennael
PRO
0
350
Interfacing Kernel C APIs from Rust
ennael
PRO
0
200
10Xでのデータ基盤の変遷とこれから: データマネジメントのリアル 〜BtoB企業3社の歩みとこれから〜
10xinc
6
1.2k
Authenticator のエミュレーションによる パスキーのログインテスト/nikkei-tech-talk-25
nikkei_engineer_recruiting
0
140
Rubyはなぜ「たのしい」のか? / Why is Ruby a programmers' best friend? #tqrk15
expajp
4
1.7k
Causal Impactを用いたLINE Pay UIの効果検証とABテスト実施への貢献
lycorptech_jp
PRO
2
460
Featured
See All Featured
Principles of Awesome APIs and How to Build Them.
keavy
125
17k
Code Reviewing Like a Champion
maltzj
518
39k
Navigating Team Friction
lara
183
14k
Creatively Recalculating Your Daily Design Routine
revolveconf
216
12k
Side Projects
sachag
452
42k
Learning to Love Humans: Emotional Interface Design
aarron
271
40k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
278
13k
Web development in the modern age
philhawksworth
205
10k
The Brand Is Dead. Long Live the Brand.
mthomps
53
38k
The Straight Up "How To Draw Better" Workshop
denniskardys
231
130k
Optimising Largest Contentful Paint
csswizardry
31
2.8k
Raft: Consensus for Rubyists
vanstee
136
6.6k
Transcript
データ冗長化のしくみ RAID ~ 冗長性が無いRAID0編~ Jun. 7th, 2024 Satoru Takeuchi X:
satoru_takeuchi 1
はなすこと • RAIDの一種と言われたり「いや違う」と言われたりするRAID0の説明 • 何が嬉しいのか • なぜRAIDじゃないと言われることがあるのか • 注: RAIDはLinux
RAIDで実現しているものとします 2
RAID0 • 複数のディスクを束ねることによって高速なデバイスを構築する技術 • デバイスへのアクセスを複数台のディスクへの並列アクセスによって実現できるの で高速 3
RAID0のデータ配置方法 • RAID0デバイス上のデータは所定の長さのチャンクに区切る • チャンクは複数のディスクに順番に配置される • 例) 2台のディスクsda,sdbから構成したRAID0デバイスdm-0 4 dm-0
sda sdb A B C D A C B D
データアクセス方法 • シーケンシャル書き込みを例に説明 • 仮定 ◦ ディスクsda,sdbからRAID0デバイスdm-0を構成している ◦ チャンクサイズは100MiB ◦
ディスクのシーケンシャル書き込み速度は 100MiB/s • やること: 400MiBのデータをdm-0に書き込む ◦ sdaに直接書き込む場合は、完了まで 4秒(=400/4)かかる ◦ dm-0への書き込みの場合は 4秒より短くなるのだろうか ? 5
初期状態 • メモリの中にデータA,B,C,Dがある • それぞれサイズはチャンクサイズと同じ100MiB • A,B,C,Dをdm-0にシーケンシャルに書き込む 6 dm-0 sda
sdb メモリ A B C D 0~ 100MiB~ 200MiB~ 300MiB~ 0~ 100MiB~ 0~ 100MiB~
前半 1. dm-0のドライバがsdaにAを書き込むよう指示 2. dm-0のドライバがsdbにBを書き込むよう指示 3. dm-0のドライバがA,Bの書き込み完了を待つ 7 dm-0 sda
sdb メモリ A B C D 0~ 100MiB~ 200MiB~ 300MiB~ 0~ 100MiB~ 0~ 100MiB~
前半 1. dm-0のドライバがsdaにAを書き込むよう指示 2. dm-0のドライバがsdbにBを書き込むよう指示 3. dm-0のドライバがA,Bの書き込み完了を待つ 8 dm-0 sda
sdb メモリ A B C D 0~ 100MiB~ 200MiB~ 300MiB~ 0~ 100MiB~ 0~ 100MiB~ ここは一瞬で終わる
前半 1. dm-0のドライバがsdaにAを書き込むよう指示 2. dm-0のドライバがsdbにBを書き込むよう指示 3. dm-0のドライバがA,Bの書き込み完了を待つ 9 dm-0 sda
sdb メモリ A B C D 0~ A 100MiB~ B 200MiB~ 300MiB~ 0~ A 100MiB~ 0~ B 100MiB~ ここは1秒かかる。 100MiB/sのsda,sdbにそれぞれ 100MiBを書き込むため
後半 1. dm-0のドライバがsdaにCを書き込むよう指示 2. dm-0のドライバがsdbにDを書き込むよう指示 3. dm-0のドライバがC,Dの書き込み完了を待つ 10 dm-0 sda
sdb メモリ A B C D 0~ A 100MiB~ B 200MiB~ 300MiB~ 0~ A 100MiB~ 0~ B 100MiB~
後半 1. dm-0のドライバがsdaにCを書き込むよう指示 2. dm-0のドライバがsdbにDを書き込むよう指示 3. dm-0のドライバがC,Dの書き込み完了を待つ 11 dm-0 sda
sdb メモリ A B C D 0~ A 100MiB~ B 200MiB~ 300MiB~ 0~ A 100MiB~ 0~ B 100MiB~ ここは一瞬で終わる
後半 1. dm-0のドライバがsdaにCを書き込むよう指示 2. dm-0のドライバがsdbにDを書き込むよう指示 3. dm-0のドライバがC,Dの書き込み完了を待つ 12 dm-0 sda
sdb メモリ A B C D 0~ A 100MiB~ B 200MiB~ C 300MiB~ D 0~ A 100MiB~ C 0~ B 100MiB~ D ここは1秒かかる。 100MiB/sのsda,sdbにそれぞれ 100MiBを書き込むため
結果 • 合計所要時間は2秒程度 • 単一ディスクの場合(4秒)に比べて2倍高速になった • 説明は省略するが、シーケンシャル読み出し、ランダム読み書きともに2倍程度高 速化できることがある • RAID0を構成するデバイスの数を増やせば、さらに高速化
◦ 📝: ドライバによるI/O発行処理に時間がかかるようになってくるなどの事情でディスク数に応じて線 形に速度向上…とはいかない 13
RAID0の弱点 • n台のディスクのうち1台でも壊れたらデータを失うので、RAID0を構成するディスク 数が増えれば増えるほどデータを失うリスクは高まる • RAIDは”Redundant Arrays of Inexpensive Disks”の略なのに冗長性
(redundancy)が無い! • なので「RAID0はRAIDではない」と言われることも 14
📝ベンチマーク記事で愛されるRAID0 • 新型のディスクが出るたびに「RAIDを組んだときの性能は云々」と書かれているも のはRAID0のことがよくある • RAID0はディスク単品を大幅に上回る性能が出て見栄えがするからかも ◦ 例: 「3GiB/sのディスクを4枚束ねて10GiB/s以上を達成!」 •
RAIDは高速化技術ではなく、あくまで冗長化技術なことに注意 15
まとめ • RAID0は複数のディスクを束ねて高速なデバイスを構築する技術 • Redundancy(冗長性)は無い 16