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
220
データ冗長化のしくみRAID 基礎概念とRAID1編
以下動画のテキストです。
https://youtu.be/RrgTcrSO3Nk
Satoru Takeuchi
PRO
April 14, 2024
Tweet
Share
More Decks by Satoru Takeuchi
See All by Satoru Takeuchi
「Linux」という言葉が指すもの
sat
PRO
4
170
APIとABIの違い
sat
PRO
5
91
ファイルシステムへのアクセス方法
sat
PRO
0
37
ファイルシステム
sat
PRO
1
41
低レイヤソフトウェア技術者が YouTuberとして食っていこうとした話
sat
PRO
7
6.1k
ポーリングと割り込み
sat
PRO
1
88
Rook: Intro and Deep Dive With Ceph
sat
PRO
1
150
会社員しながら本を書いてきた知見の共有
sat
PRO
3
910
デバイスにアクセスするデバイスファイル
sat
PRO
1
73
Other Decks in Technology
See All in Technology
Claude Code Subagents 再入門 ~cc-sddの実装で学んだこと~
gotalab555
2
570
ガバメントクラウド(AWS)へのデータ移行戦略の立て方【虎の巻】 / 20251011 Mitsutosi Matsuo
shift_evolve
PRO
2
200
能登半島地震で見えた災害対応の課題と組織変革の重要性
ditccsugii
0
750
プロポーザルのコツ ~ Kaigi on Rails 2025 初参加で3名の登壇を実現 ~
naro143
1
240
「れきちず」のこれまでとこれから - 誰にでもわかりやすい歴史地図を目指して / FOSS4G 2025 Japan
hjmkth
1
310
Git in Team
kawaguti
PRO
3
370
[Codex Meetup Japan #1] Codex-Powered Mobile Apps Development
korodroid
2
730
20251010_HCCJP_AdaptiveCloudUpdates
sdosamut
0
110
衛星画像超解像化によって実現する2D, 3D空間情報の即時生成と“AI as a Service”/ Real-time generation spatial data enabled_by satellite image super-resolution
lehupa
0
160
業務効率化をさらに加速させる、ノーコードツールとStep Functionsのハイブリッド化
smt7174
2
140
Data Hubグループ 紹介資料
sansan33
PRO
0
2.2k
カンファレンスに託児サポートがあるということ / Having Childcare Support at Conferences
nobu09
1
570
Featured
See All Featured
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
A better future with KSS
kneath
239
18k
Mobile First: as difficult as doing things right
swwweet
224
10k
BBQ
matthewcrist
89
9.8k
Navigating Team Friction
lara
190
15k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
33
2.3k
Optimising Largest Contentful Paint
csswizardry
37
3.5k
Large-scale JavaScript Application Architecture
addyosmani
514
110k
A Modern Web Designer's Workflow
chriscoyier
697
190k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Docker and Python
trallard
46
3.6k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
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