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
Search
Satoru Takeuchi
PRO
July 25, 2022
Technology
1
69
RAID
以下動画のテキストです
https://youtu.be/xkUt6DMlLfk
Satoru Takeuchi
PRO
July 25, 2022
Tweet
Share
More Decks by Satoru Takeuchi
See All by Satoru Takeuchi
Linuxのブートプロセス
sat
PRO
6
99
シェルのジョブ
sat
PRO
1
21
常駐サービスを実現するデーモンプロセス
sat
PRO
0
26
絶対殺すSIGKILLシグナルと絶対死なないプロセス
sat
PRO
3
91
シェルのセッション
sat
PRO
2
33
RubyでKubernetesプログラミング
sat
PRO
4
190
プロセスの生成 exec編
sat
PRO
1
44
プロセスの生成 fork&exec編
sat
PRO
0
38
プロセスの生成 コピーオンライトを使ったfork編
sat
PRO
0
38
Other Decks in Technology
See All in Technology
QAエンジニアが スクラムマスターをすると いいなぁと思った話
____rina____
0
200
20250309 無冠のわたし これからどう先生きのこれる?
akiko_pusu
9
850
AIエージェント入門
minorun365
PRO
34
20k
20250304_赤煉瓦倉庫_DeepSeek_Deep_Dive
hiouchiy
2
140
【内製開発Summit 2025】イオンスマートテクノロジーの内製化組織の作り方/In-house-development-summit-AST
aeonpeople
2
1.2k
手を動かしてレベルアップしよう!
maruto
0
260
Log Analytics を使った実際の運用 - Sansan Data Hub での取り組み
sansantech
PRO
0
150
貧民的プログラミングのすすめ
kakehashi
PRO
2
200
AIエージェント開発のノウハウと課題
pharma_x_tech
9
5.1k
開発組織を進化させる!AWSで実践するチームトポロジー
iwamot
2
570
エンジニアの健康管理術 / Engineer Health Management Techniques
y_sone
8
4.7k
サイト信頼性エンジニアリングとAmazon Web Services / SRE and AWS
ymotongpoo
7
1.9k
Featured
See All Featured
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
46
2.4k
Building Your Own Lightsaber
phodgson
104
6.2k
How STYLIGHT went responsive
nonsquared
99
5.4k
Why Our Code Smells
bkeepers
PRO
336
57k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
33
2.8k
The World Runs on Bad Software
bkeepers
PRO
67
11k
Designing for humans not robots
tammielis
250
25k
Automating Front-end Workflow
addyosmani
1369
200k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Practical Orchestrator
shlominoach
186
10k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
30
2.3k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3k
Transcript
RAID Jul. 25th, 2022 Satoru Takeuchi twitter: satoru_takeuchi
RAIDとは • Redundant Array of Independent Diskの略 • データ冗長化手法のひとつ ◦
複数のディスクを束ねて一つの仮想的なディスクに見せる ◦ 仮想的なディスク上のデータは冗長性されている ◦ 物理的なディスクが壊れてもデータが失われず、かつ、運用継続可能 仮想的なディスク ディスク ディスク ディスク … 使う 束ねる
RAIDレベル • データ格納方法は複数のレベルに分けられている • レベルが高ければよいというわけではなく、一長一短 ◦ データ利用効率、耐障害性、性能などが違う • RAID1,1+0,5,6あたりがよく使われる ◦
📒 そもそも冗長性が無い RAID0というのもある • もっとも簡単なRAID1についてのみ説明
RAID1 • 同じデータを2台以上のディスクに書き込む • n-1台の破壊に耐えられる • ユーザから見える容量は総容量の1/nになる 仮想的なディスク ディスク0 ディスク1
仮想的なディスク ディスク0 ディスク1 データA データA 仮想的なディスク ディスク0 ディスク1 故障 データAを書く ディスク0だけ読み 書きすれば 運用継続可能 2台構成のRAID1 データを書く ディスク故障後
リビルド • 壊れたディスクの交換後に実行 • 交換したディスクにデータを埋めて冗長度を戻す 仮想的なディスク ディスク0 ディスク1 故障 ディスク故障後
(ディスク0も壊れたら データを失う) 仮想的なディスク ディスク0 ディスク2 故障したディスクの交換 リビルド データ 仮想的なディスク ディスク0 ディスク2 データ データ データ コピー
すごい機能 • ホットスワップ ◦ 電源を切らなくてもディスク交換できる ◦ OSが対応していたらディスク故障後に電源を切らずに交換 →リビルドできる ◦ RAIDじゃなくても便利
• ホットスペア(ホットスタンバイ) ◦ RAIDアレイに組み込まない予備のディスクを用意しておく ◦ ディスクが壊れたら自動的に予備ディスクを使ってリビルド
実現方式 • ハードウェアRAID ◦ RAID用の専用ハードウェアを使う ◦ たとえばディスクを複数台接続できる PCIカード(RAIDカード)として実現 ◦ RAID用の処理はカード上のコントローラが担当。
CPUは使わない ◦ 操作はファームウェアやベンダ提供コマンドで実施 • ソフトウェアRAID ◦ RAID用の処理はソフトウェアが担当 ◦ Linuxではmdraidがよく使われる(mdadmコマンドで操作) • fake RAID ◦ ハードウェア機能だが、ほとんどの処理は CPUが行う ◦ fake RAIDを指してソフトウェア RAIDと呼ぶことがある
📒 RAIDつらい話 • ディスクが同時に複数個壊れる ◦ →RAIDに組み込むディスクの型番や製造時期を変えたりする • RAIDコントローラが壊れる ◦ →コントローラの二重化
(お高い) • RAIDコントローラがバグってて変な動きをする ◦ ファームウェアアップデート ◦ ベンダを変える ◦ ソフトウェアRAIDにする(オープンソースだと自分でなんとかできることもあるかも ) • ディスクを積んでたマシンが爆発した ◦ RAIDでは救えません。バックアップや分散ストレージを使ってね • write hole ◦ 話が長くなるのでまた後日
まとめ • RAIDはデータ冗長化手法の一つ ◦ 複数台のディスクを束ねて仮想的な一台のディスクとして見せる ◦ 仮想的なディスク上のデータは冗長性されている ◦ 物理的なディスクが壊れてもデータが失われず、かつ、運用継続可能 •
様々なレベルがある ◦ よく使われるのはRAID1,10,5,6 • 実現方法もいろいろ : ハードウェア、ソフトウェア、両方 • いいところだけではなくて、いろいろつらいところもある