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
71
データ冗長化のしくみ 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
2
180
利きプロセススケジューラ
sat
PRO
5
3.1k
俺とVSCode Python Debugger Extension
sat
PRO
1
200
コード再利用のしくみ ライブラリ
sat
PRO
3
65
AWKへの愛を語る
sat
PRO
3
540
syncコマンドのデータ同期 完了待ちやエラー検出
sat
PRO
0
110
動作中のLinux環境の全メモリを見る
sat
PRO
1
120
Linuxの時間を10秒止める
sat
PRO
2
220
プロセスへのメモリ割り当て4 - 実際に使うときにメモリを獲得するデマンドページング(実践編)
sat
PRO
1
150
Other Decks in Technology
See All in Technology
DevFest 2024 Incheon / Songdo - Compose UI 조합 심화
wisemuji
0
140
能動的ドメイン名ライフサイクル管理のすゝめ / Practice on Active Domain Name Lifecycle Management
nttcom
0
240
なぜCodeceptJSを選んだか
goataka
0
180
PHP ユーザのための OpenTelemetry 入門 / phpcon2024-opentelemetry
shin1x1
3
1.4k
[トレノケ雲の会 mod.13] 3回目のre:Inventで気づいたこと -CloudOperationsを添えて-
shintaro_fukatsu
0
110
KnowledgeBaseDocuments APIでベクトルインデックス管理を自動化する
iidaxs
1
280
AWS re:Invent 2024で発表された コードを書く開発者向け機能について
maruto
0
210
私なりのAIのご紹介 [2024年版]
qt_luigi
1
120
怖くない!ゼロから始めるPHPソースコードコンパイル入門
colopl
0
160
AWS環境におけるランサムウェア攻撃対策の設計
nrinetcom
PRO
0
160
クレカ・銀行連携機能における “状態”との向き合い方 / SmartBank Engineer LT Event
smartbank
2
100
pg_bigmをRustで実装する(第50回PostgreSQLアンカンファレンス@オンライン 発表資料)
shinyakato_
0
110
Featured
See All Featured
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
2
290
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.9k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
6
450
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.1k
Building Adaptive Systems
keathley
38
2.3k
How GitHub (no longer) Works
holman
311
140k
Designing on Purpose - Digital PM Summit 2013
jponch
116
7k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
520
How to train your dragon (web standard)
notwaldorf
88
5.7k
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.4k
Testing 201, or: Great Expectations
jmmastey
41
7.1k
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