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
73
RAID
以下動画のテキストです
https://youtu.be/xkUt6DMlLfk
Satoru Takeuchi
PRO
July 25, 2022
Tweet
Share
More Decks by Satoru Takeuchi
See All by Satoru Takeuchi
Rook: Intro and Deep Dive With Ceph
sat
PRO
1
89
会社員しながら本を書いてきた知見の共有
sat
PRO
3
770
デバイスにアクセスするデバイスファイル
sat
PRO
1
32
ファイルシステムのデータを ブロックデバイスへの操作で変更
sat
PRO
1
28
デバイスドライバ
sat
PRO
0
45
マルチスレッドの実現方法 ~カーネルスレッドとユーザスレッド~
sat
PRO
2
110
共有メモリ
sat
PRO
3
67
マルチスレッドプログラム
sat
PRO
3
56
Linuxのブートプロセス initramfs編
sat
PRO
2
76
Other Decks in Technology
See All in Technology
監視のこれまでとこれから/sakura monitoring seminar 2025
fujiwara3
11
3.6k
Agentic DevOps時代の生存戦略
kkamegawa
1
1.2k
より良いプロダクトの開発を目指して - 情報を中心としたプロダクト開発 #phpcon #phpcon2025
bengo4com
1
3.1k
25分で解説する「最小権限の原則」を実現するための AWS「ポリシー」大全 / 20250625-aws-summit-aws-policy
opelab
9
970
PHP開発者のためのSOLID原則再入門 #phpcon / PHP Conference Japan 2025
shogogg
3
560
Definition of Done
kawaguti
PRO
6
470
成立するElixirの再束縛(再代入)可という選択
kubell_hr
0
1k
ハノーバーメッセ2025座談会.pdf
iotcomjpadmin
0
160
登壇ネタの見つけ方 / How to find talk topics
pinkumohikan
3
330
Clineを含めたAIエージェントを 大規模組織に導入し、投資対効果を考える / Introducing AI agents into your organization
i35_267
4
1.5k
生成AIでwebアプリケーションを作ってみた
tajimon
2
140
JSX - 歴史を振り返り、⾯⽩がって、エモくなろう
pal4de
4
1.1k
Featured
See All Featured
Why Our Code Smells
bkeepers
PRO
337
57k
Rails Girls Zürich Keynote
gr2m
94
14k
The Cult of Friendly URLs
andyhume
79
6.4k
Raft: Consensus for Rubyists
vanstee
140
7k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
48
5.4k
Java REST API Framework Comparison - PWX 2021
mraible
31
8.6k
Gamification - CAS2011
davidbonilla
81
5.3k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
2.8k
Statistics for Hackers
jakevdp
799
220k
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 • 実現方法もいろいろ : ハードウェア、ソフトウェア、両方 • いいところだけではなくて、いろいろつらいところもある