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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Satoru Takeuchi
PRO
April 14, 2024
Technology
270
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
70
Linuxカーネルの インタフェースは変わりうる?
sat
PRO
1
95
あなたの知らないバージョン命名規則
sat
PRO
3
910
Rook: Intro and Deep Dive with Ceph
sat
PRO
1
64
Machine Check Exception
sat
PRO
2
67
バイナリダンプの模様を読む
sat
PRO
0
90
cpコマンドはディスク上でデータを コピーしないことがある
sat
PRO
3
89
114-ファイルのshallow_copy.pdf
sat
PRO
2
58
113-Btrfsのスナップショット.pdf
sat
PRO
0
41
Other Decks in Technology
See All in Technology
ほんとうの信頼性はヒーローが死んでからはじまる / True reliability begins after the hero dies
vtryo
0
110
Deployment の 先にある AI Agent 基盤 - kagent vNext、Agent Substrate、Hermes から読み解く Agent Runtime の現在地 / k8s-matsuri-2-ai-agent-platform-amsy810
masayaaoyama
4
710
【技術的負債conf】事業成長に伴う技術的負債の説明責任とAIによるモニタリング、認知的負債について
i35_267
3
2.1k
サーバーレスをどこまで使う? WebRTC対戦ゲームで選んだVPSとの共存設計
kaidouji85
0
350
AIを活用するために決めた "やらないこと" - 価値に注目する / Not betting on AI
soudai
PRO
3
590
Slack上でインフラをトラブルシュートする! Agentic Platform Engineeringの第一歩
teru0x1
5
1.9k
AIエージェントの自己改善をどう設計するか / How to Design Self-Improvement for AI Agents
22mi
26
17k
手を動かして実感する、Kiro が変える開発体験
inariku
0
200
Why Agent Cost Needs Observability
nttcom
0
140
データ界隈LT祭 第1回LT登壇
taromatsui_cccmkhd
2
1.5k
C#コードの結合を可視化する Roslyn解析による設計改善と リファクタリング判断
dora56
0
490
AI de Idea
kawaguti
PRO
2
130
Featured
See All Featured
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
610
Typedesign – Prime Four
hannesfritz
42
3.2k
Building Flexible Design Systems
yeseniaperezcruz
330
41k
Fireside Chat
paigeccino
43
4k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6.2k
Evolving SEO for Evolving Search Engines
ryanjones
0
300
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Are puppies a ranking factor?
jonoalderson
2
3.9k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
1k
From π to Pie charts
rasagy
1
380
Accessibility Awareness
sabderemane
1
220
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