Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
データ冗長化のしくみRAID 基礎概念とRAID1編
Search
Satoru Takeuchi
PRO
April 14, 2024
Technology
280
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
データ冗長化のしくみRAID 基礎概念とRAID1編
以下動画のテキストです。
https://youtu.be/RrgTcrSO3Nk
Satoru Takeuchi
PRO
April 14, 2024
More Decks by Satoru Takeuchi
See All by Satoru Takeuchi
119-多機能ファイルシステムBtrfs_のコピー.pdf
sat
PRO
1
76
Linuxカーネルの インタフェースは変わりうる?
sat
PRO
1
100
あなたの知らないバージョン命名規則
sat
PRO
3
920
Rook: Intro and Deep Dive with Ceph
sat
PRO
1
70
Machine Check Exception
sat
PRO
2
68
バイナリダンプの模様を読む
sat
PRO
0
110
cpコマンドはディスク上でデータを コピーしないことがある
sat
PRO
3
100
114-ファイルのshallow_copy.pdf
sat
PRO
2
59
113-Btrfsのスナップショット.pdf
sat
PRO
0
43
Other Decks in Technology
See All in Technology
オンラインゲームのシステム全体像 - コロプラ 2026年度 新卒研修
colopl
0
970
Codex概要
ymiya55
0
480
しろおびから始める!ログ活用の第一歩
shumei_ito
0
760
FOSS4Gを活用した自治体業務DXの試み
470715
0
140
自作バイナリを動かす「入口」8選
puhitaku
1
1.2k
全人類(ほぼ)AWS Organizations の上でAWSを利用している、その世界を知る話
htan
1
130
AIに攻撃される前に、AIに攻撃させる
tsuchikazu
0
160
OSC2026on_the-world-is-waiting-for-your-voice.pdf
naruoga
0
360
オブザーバビリティを高める AI エージェント体験を考える / Designing AI Agent Experiences That Enhance Observability
aoto
PRO
2
320
継続的なAIコスト最適化
bgpat
1
260
生成AIと進める探索的データ分析(2026.10.03 第122回Tokyo.R勉強会)
tatamiya
2
1.4k
SREでアラート疲れを 解決しよう!
kairim0
1
220
Featured
See All Featured
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.7k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.5k
Writing Fast Ruby
sferik
630
63k
30 Presentation Tips
portentint
PRO
1
420
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
840
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
770
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
280
Optimizing for Happiness
mojombo
378
71k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
490
The agentic SEO stack - context over prompts
schlessera
0
970
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
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