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 基礎概念とRAID1編
Search
Satoru Takeuchi
PRO
April 14, 2024
Technology
2
210
データ冗長化のしくみRAID 基礎概念とRAID1編
以下動画のテキストです。
https://youtu.be/RrgTcrSO3Nk
Satoru Takeuchi
PRO
April 14, 2024
Tweet
Share
More Decks by Satoru Takeuchi
See All by Satoru Takeuchi
ポーリングと割り込み
sat
PRO
0
14
Rook: Intro and Deep Dive With Ceph
sat
PRO
1
110
会社員しながら本を書いてきた知見の共有
sat
PRO
3
790
デバイスにアクセスするデバイスファイル
sat
PRO
1
39
ファイルシステムのデータを ブロックデバイスへの操作で変更
sat
PRO
1
34
デバイスドライバ
sat
PRO
0
49
マルチスレッドの実現方法 ~カーネルスレッドとユーザスレッド~
sat
PRO
2
130
共有メモリ
sat
PRO
3
71
マルチスレッドプログラム
sat
PRO
3
59
Other Decks in Technology
See All in Technology
CDKコード品質UP!ナイスな自作コンストラクタを作るための便利インターフェース
harukasakihara
2
240
TLSから見るSREの未来
atpons
2
310
shake-upを科学する
rsakata
7
1k
研究開発部メンバーの働き⽅ / Sansan R&D Profile
sansan33
PRO
3
18k
AI Ready API ─ AI時代に求められるAPI設計とは?/ AI-Ready API - Designing MCP and APIs in the AI Era
yokawasa
8
2.3k
今だから言えるセキュリティLT_Wordpress5.7.2未満を一斉アップデートせよ
cuebic9bic
2
170
An introduction to Claude Code SDK
choplin
2
1.1k
Snowflake Intelligenceという名のAI Agentが切り開くデータ活用の未来とその実現に必要なこと@SnowVillage『Data Management #1 Summit 2025 Recap!!』
ryo_suzuki
1
160
ソフトウェアテストのAI活用_ver1.25
fumisuke
1
610
AWS CDK 入門ガイド これだけは知っておきたいヒント集
anank
5
750
United™️ Airlines®️ Customer®️ USA Contact Numbers: Complete 2025 Support Guide
flyunitedguide
0
800
スタックチャン家庭用アシスタントへの道
kanekoh
0
120
Featured
See All Featured
Thoughts on Productivity
jonyablonski
69
4.7k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
Documentation Writing (for coders)
carmenintech
72
4.9k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
181
54k
Navigating Team Friction
lara
187
15k
Practical Orchestrator
shlominoach
189
11k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
A designer walks into a library…
pauljervisheath
207
24k
Into the Great Unknown - MozCon
thekraken
40
1.9k
What's in a price? How to price your products and services
michaelherold
246
12k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
108
19k
Fireside Chat
paigeccino
37
3.5k
Transcript
データ冗長化のしくみ RAID ~ 基礎概念とRAID1編~ Apr. 14th, 2024 Satoru Takeuchi X:
satoru_takeuchi 1
RAIDとは何か • 複数のディスクを束ねることによって高信頼性、高可用性、高速性、大容量などの 特性を実現する技術 ◦ 一般に全て容量が等しいディスクで構成する • Redundant Arrays of
Inexpensive Disksの略 ◦ 生まれた当時は上記特性の実現には高価な専用ディスクを使う必要があった ◦ これらの特性を安価なディスクの組み合わせによって実現するというコンセプトだったので Inexpensiveを含む名前がついた ◦ 「高価な専用ディスク」は廃れたので InexpensiveをIndependentと書くことも 2
RAIDの実現方法 • 複数のディスクを束ねて1台の仮想的な一台のディスクとして見せる ◦ ユーザからは普通のディスクと同じようにアクセスできる • 仮想ディスクに書き込むと、RAIDを構成する複数のディスクに書き込む • 誰がこれらの機能を実現するかは色々な方法がある ◦
ハードウェアRAID ◦ ソフトウェアRAID ◦ fake RAID • 📝 詳しくは別動画「RAIDの実現方法」を参照 3
RAIDレベル • RAIDの個々のディスクに何を書き込むかの仕組みごとに名前がついている ◦ それぞれの方法を「RAIDレベルn」あるいは「RAID n」と表記する ◦ よく使われるRAIDレベルは「1」「0」「10」「5」「6」 • 本動画ではRAID1(ミラーリング)を例に基礎概念を説明
◦ 📝 他のRAIDレベルについては別動画で 4
RAID1 • n台(nは2以上)のディスクで構成 • 全ディスクに同じデータをコピー ◦ 📝 同じデータ2台だけにコピーする RAID1Eという派生もある •
例: 2台のディスクA,BでRAID1を組む 5 aaa iii aaa iii 仮想ディスク aaa iii ディスクA ディスクB
RAID1の特性(n台で組んだ場合) • 耐障害性: n-1台のディスクが壊れてもデータは残る • アクセス速度 ◦ 書き込み: 同じデータをn回書くので、1台で構成する場合より遅くなる ◦
読み出し: 別ディスクに並列アクセス可能なので 1台構成のn倍に近い速度が出ることもある • 容量: 個々のディスクの容量に等しい (全ディスクの総容量から見ると 1/n) 6
書き込み時に発生しうるデータ不整合 • 例: 2台のディスクA,Bを使ってRAID構成を組み、ディスクにdata aaaが保存されて いる状態でデータをiiiに書き換え 7 disk A data:
aaa disk B data: aaa 1. 書き込み開始 2. disk Aを更新 disk A data: iii disk B data: aaa disk A data: iii disk B data: aaa 3. マシンがダウン データ不整合発生 再起動後に、読み出す ディスクによって 読めるデータが異なる
データ不整合への対処 • ハードウェアによる対策 ◦ 不揮発性キャッシュメモリを搭載して再起動後にデータの整合性を戻す ◦ UPS(無停電電源装置)を付ける • ソフトウェアによる対策 ◦
ディスク上にジャーナル領域や「書き込み中」であることを示すビットマップを用意して、再起動後に データの整合性を戻す 8
冗長性の回復 • ディスク故障時は、故障したディスクを正常なディスクと交換した上でリビルドという 処理によってデータの冗長性を回復させる • リビルドでは正常なディスクのデータをもとに、新規追加した交換されたディスクに 正しいデータを書き込む 9
可用性について色々(実装によって大きく変わる) • ディスク故障時にデータ冗長度が下がったまま運用できることも ◦ 所定の冗長度まで下がったら危険と判断して運用を止めることも • 運用中にリビルドできることもある ◦ 大量のI/Oが走るのでリビルド中は性能劣化する •
ホットスペア ◦ 交換用の予備ディスク (これをホットスペアと呼ぶことも )を最初からマシンに挿しておく ◦ 故障時に交換用ディスクを使って自動的にリビルドできることも • ホットプラグ ◦ 運用中にディスクを抜き差しする技術 ◦ とくに(故障した)ディスクを別のもので交換することをホットスワップという 10
RAIDのスコープ外のもの • バックアップ ◦ RAIDはバックアップ「ではない」 ◦ データは冗長化されているが、常に最新のデータが冗長化されているだけ ▪ データ更新時に過去のデータは全て新しいもので更新される •
マシンが丸ごと故障するケース ◦ RAIDは1台のマシンに挿している複数ディスクによって構成する z技術 ▪ ネットワーク越しのディスクを使うこともあるが今は考えない ◦ マシンが燃えたらデータ全損 ◦ 燃えなくてもマシンが落ちたらマシン上の全データにアクセスできなくなる 11
RAIDを使う際によくやること • 仮想ディスクの構築に使うディスクの型番をやロットを分ける ◦ 同じ型番やロットに共通して発生する問題を引くと RAIDを構成している全ディスクが一度に壊れる ことがある • 使用開始時期をずらす ◦
同じ時期に投入したディスクは同時期に壊れがち ▪ とくに型番やロットが同じ場合 12
まとめ • RAIDは複数のディスクを束ねて仮想的に一つのディスクを構築し、可用性などを 高める技術 ◦ アクセス速度や冗長性も変化する ◦ RAIDレベルによっても変わる ◦ 実装によっても変わる
• 何がRAIDのスコープ内で、何がスコープ外なのかは意識する必要がある 13