20111028ssmjp

2,662 views

Published on

ふらっしゅ。ふらっしゅ。
この資料は個人的に公開情報ベースで調べた内容に基づいており所属組織の統一見解を表すものではありません。

Published in: Technology
  • Be the first to comment

20111028ssmjp

  1. 1. ささみの会 2011/10/28 ささみ@大崎 Takeshi HASEGAWA (Twitter: @hasegaw) v  本資料中の解説内容は、所属組織における 統一的な見解を示すものではありません。
  2. 2. プロフィール長谷川 猛 (HASEGAWA Takeshi)twitter: @hasegaw主にLinuxや仮想化技術を得意とする雑食系SEXen/KVMを調査、FreeBSD virtioを実装等 興味範囲:仮想化、ストレージもんはんしようず ゚+.(・ω・)゚+.゚ 2
  3. 3. おもな著書・寄稿 3
  4. 4. Webサイトの記事など エンジニアなら知っておきたい仮想マシンのしくみ http://gihyo.jp/dev/serial/01/vm_work/ 4
  5. 5. Today’s topic•  ハードディスク50年の歴史•  フラッシュメモリの登場•  近未来 – Flash専用オペレーションの可能性 5
  6. 6. Let’s know about Hard drive first:•  1955年 – 最初のハードディスク “IBM 350ディスクストレージ” o  約64センチのディスク50枚に合計5MBのデータを記録 o  洗濯機並の大きさだが、今思えば非常に小容量・低密度•  1973年 – ウインチェスター型ハードディスクの登場 o  現行のハードディスクに非常に近い構造となった o  密封式の構造となり信頼性が格段に向上 6
  7. 7. 50th anniversary of Disk System 7
  8. 8. Hard disk architecture ・常に回転している ・ヘッドのシーク操作が  生じる ・ディスク上に一定の  記録密度で情報が ディスク  保存されている 磁気ヘッド ・セクタが物理的に連続 アーム アクチュエータ 8
  9. 9. Key elements to determine spec of Hard Disk•  ハードウェア o  ディスク回転数 o  平均シーク時間 o  記録密度 o  キャッシュメモリ o  さらに、システム側インターフェイスの処理時間•  ソフトウェア、アルゴリズム o  先読みキャッシュ o  NCQ(Native Command Queue)によるI/O要求の処理順序のソート 9
  10. 10. Hard disks’ formula that have not changed 平均アクセス時間=平均シーク時間+平均回転待ち時間+データ転送時間 •  平均アクセス時間 o  システムがディスクI/Oの際に待たされる時間•  平均シーク時間 o  ディスクが対象セクタに向けシーク操作をするためにかかる平均時間•  平均回転待ち時間 o  ディスクが対象セクタが回ってくるまでに待つ平均時間•  データ転送時間 o  セクタの読み書きにかかる時間。密度および回転速度による 10
  11. 11. What’s RAID•  Redundant Arrays of Inexpensive Disks 「ディスクをたくさん並べて性能を稼ごうず!」•  RAID-1 … ミラーリング データを複数ディスクに書き込み、信頼性を担保する•  RAID-3/4/5 … パリティによるデータ保護•  RAID-0 … ストライピング•  RAID-10 データをミラーかつストライピングし性能および可用性を両立•  RAID-50, RAID-60, … データをパリティ保護かつストライピング 11
  12. 12. RAID-3/4/5 Basic - Parity•  保存すべきデータが 1101 0101 であると•  パリティ = 1101 XOR 0101 = 1000•  各ディスクには実データ 1101 0101 とパリティ 1000 を保存する o  Disk 1 – 1101 o  Disk 2 – 0101 o  Disk 3 – 1000•  ディスクが一台破損した場合でも、生存ディスクからデータを読み 出し、パリティを計算することで元の値が復元できる o  Disk2 が壊れた場合 o  Disk1 (1101) XOR Disk3 (1001) = 0101•  RAID-6ではパリティを2つ持ちディスク2台の故障に対応 12
  13. 13. Difference of RAID-3, 4, 5, 6•  RAID-3 o  バイト単位、ビット単位 o  データを細かく扱うため性能が低い•  RAID-4 o  パリティ計算がブロック単位となり高速化•  RAID-5 o  パリティデータをディスク分散し高速化•  RAID-6 o  パリティデータの個数を2個に増やし信頼性向上 ※一般的に性能は低下 13
  14. 14. RAID3 / RAID4 http://www.dataok.jp/data-recovery-document/002.html 14
  15. 15. RAID-5 http://www.dataok.jp/data-recovery-document/002.html 15
  16. 16. Unresolved Performance Problems of Hard disk•  デバイスを横に並べることで改善できるもの o  I/O帯域幅•  デバイスを横に並べても、なかなか改善しないもの o  時間あたりのI/O回数 (IOPS) 台数を増やしてもリニアにはスケールしない o  I/Oの応答速度 台数を増やしてもディスク一台の基本性能がベース 現状ストレージコントローラがDRAMでキャッシュしている 16
  17. 17. And now Flash Memory•  「HDDより速い!」•  「動く場所がないから壊れにくい!」•  「静か!」•  Etc… etc…. 17
  18. 18. So, what’s flash memory?•  NAND型/NOR型フラッシュメモリ o  開発者: 舛岡富士雄氏(当時東芝) o  読み書きの単位: ページ単位 (DRAM→バイト単位) o  書き込み前にはイレース操作が必要 (DRAM→不要) o  イレース操作はブロック単位(複数ページ単位) o  NOR型のほうが簡単だがNAND型のほうが容量が多い o  上記特性のかわりに価格が安い o  不揮発である(通電していなくても消えない) 18
  19. 19. Single Level Cell versus Multi Level Cell SLCの場合 MLCの場合 100% 100% 1 11 10 0 01 00 0% 0% 19
  20. 20. Motivation of Flash Memory東芝に入社後、高性能なメモリーを開発したが売れないことに業を煮やした舛岡は、営業職を志願し、アメリカのコンピューター会社を回った。結局全然売る事ができず1年もたたずに営業職からは外される。しかし、この時に何度も営業先に言われた「性能は最低限でいい。もっと安い製品はないのか」という言葉から、性能の向上ばかり考えず需要に見合った機能を持つ製品を低コストで作るべきだと悟る。結果、情報を1ビットごとではなく一括消去するという、あえて性能を落としてコストを4分の1以下にする方法を思いつき、フラッシュメモリが発明されるに至った。朝日新聞2011年8月1日付夕刊 20
  21. 21. Erase Block? ・素子摩耗を起こす素材で ある X 未使用領域 / / / ・ページへの書込前に  一度データ消去が必要、  消去には時間を要する 素子摩耗を X / / 常にデータの配置を変更 起こした領域 / / / しながら情報を記録するERASE単位 X / / / / / / 21
  22. 22. Pros of FlashMemory•  回転軸がない o  軸ブレ、モーター故障による故障リスクの回避 o  回転待ち時間 の撤廃•  ヘッドがない o  ヘッドクラッシュによるメディア故障リスクの回避 o  シーク待ち時間 の撤廃•  消費電力の削減 o  モーターが不要 22
  23. 23. Hard disk versus NAND Flash Memory Chip DRAM Hard Disk NAND Flash Write単位 1Bytes 512Bytes 4KBytes = 1 pages Read単位 1Bytes 512Bytes 4KBytes = 1 pages Erase単位 - - 256KBytes = 128 pages 書換寿命 - - 100,000 P/E Cycles ハードディスクはこれまで利用されてきた512バイトセクタのモデルを想定NAND Flashは様々なチップ仕様があるが、基本的な特性には共通である 23
  24. 24. A Flash Memory Datasheet from Samsung Read 25マイクロ秒 Write 200マイクロ秒 Erase 1500マイクロ秒 24
  25. 25. Latency of NAND Flash Memory Operation 所要時間 速度(Read比) Read 25マイクロ秒 100% Program 200マイクロ秒 12.5% Erase 1500マイクロ秒 1.6% •  NAND FlashのProgram/Eraseは遅い o  1秒=1,000,000マイクロ秒 o  7200rpm ハードディスクの平均待ち時間 •  1,000,000 マイクロ秒 ÷ 7,200 回転 ÷ 2 = 69.4マイクロ秒 o  15,000rpmハードディスクなら33.3マイクロ秒 o  シークがなければHDDもポテンシャルはある 25
  26. 26. Erase Block makes complexity 故郷を「愛知県」から「北海道」に書き換えたい場合・・・Sector 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 北 海 道Data 私 の 故 郷 、 愛 知 県 ハードディスクであれば該当セクタのみを書き換えることが可能。 NANDフラッシュの場合は、書き込み前にはイレースブロック単位での消去が必要な ため、単純書き換えはできない。Sector 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ×××Data 私 の 故 郷 、 愛 知 県 北 海 道このため、NANDフラッシュの場合は、違うところに更新後のデータを書き込み、過去のデータを論理的(データ構造的)に上書きする。古いデータは削除できない(セクタ0に残っている有効データがあるため、容易にイレースできない) 26
  27. 27. Erase Block makes complexity さらにデータを追加書き込みする(ハードディスクの場合)Sector 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Data 私 の 故 郷 、 北 海 道 は 素 敵 な 場 所 で す 。 同様の操作をNANDフラッシュに行う場合 さらにデータを追加書き込みする(ハードディスクの場合)Sector 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ×××Data 私 の 故 郷 、 愛 知 県 北 海 道 ブロックイレース で す 。 、 ブロック単位の書き込みを高速化するためイレースブロックにアラインする(コント は 素 敵 な 場 所 ローラの実装による)セクタ17まで書き込んでしまい残りが書けない…… → ブロックイレース発生未使用の領域を一旦クリアし再利用する。残っているデータがあれば移行が必要 27
  28. 28. Flash Translation Layer•  ブロックイレースの特性を 持つNANDフラッシュメモ リをブロックデバイスとし て利用するための変換方式•  様々なFTLの方式が研究さ れている 28
  29. 29. Why NAND Flash Devices don’t sustain performance?•  HDDと違って o  各LBAが物理的に連続して割り当てられているわけではない o  LBAでシーケンシャルでも内部的には準ランダムI/Oになっている可能性 がある o  「回転数」という考え方がそもそもない•  NAND Flashって遅いんだよね o  フラッシュチップ単発はかなり遅い o  いかにたくさん並列アクセスして帯域・IOPS性能を稼ぐか•  結果として、話題になるのはほとんどコントローラの性能 o  いかにNAND Flashを使った高速なデバイスを作るか 29
  30. 30. Summary of Flash Performance•  メディア部分の性能に限界があるのは同じ o  HDD … 回転するディスク、ヘッド o  NAND Flash … NANDフラッシュチップ o  メディア部分の性能改善ももちろん進んでいるが…•  メモリという特性は大きく違う o  HDD … 回転するディスク上にセクタを割り当て o  NAND Flash… Erase Blockの存在がありデータ構造が非常に複雑•  NANDフラッシュチップ独特の特性 o  HDD … リード/ライトの性能はほぼ一緒 o  書き込み/イレースが遅い•  性能差が出るのはどこか? o  主にコントローラ 30
  31. 31. Talk about reliability•  Program/Erase Cycleの目安は100,000回•  これを超えての繰り返し書き込みはデータ書き込みの保証がなくな る•  NANDフラッシュデバイスの信頼性 o  コントローラ側にほぼ依存している o  コントローラ側で信頼性を担保するもの、 より上のレイヤで担保するもの 31
  32. 32. Write-Amplification?•  もう皆さん、これは見たはずですよ。•  Write Amplificationの発生量はデバイスのログ形式、空容量回収ア ルゴリズムやユーザのワークロードにより大きく変動する•  シーケンシャルI/OよりランダムI/Oのほうが発生しやすい o  (ランダムI/OはNANDフラッシュデバイスの寿命を縮めがち) 32
  33. 33. Flash Memory Jargons•  Wear-out (ウエアアウト) o  NANDフラッシュ素子が繰り返しの書き込みにより劣化し、正常に機能しな くなった状態。•  Wear-Leveling o  Wear-outを発生させないように、書き込み先NANDフラッシュ素子が偏らな いようコントロールする手法。•  ECC o  エラー検出訂正アルゴリズム。 NANDフラッシュは信頼性が低いのでECCは必須•  Write-Amplification o  ユーザが意図しないうちに、デバイスのデータ構造を保つために生じる追加 書き込み。 33
  34. 34. A Flash Memory Datasheet from Samsung 34
  35. 35. Device Reliability of Flash Devices•  HDDの代替としてのSSD o  データの信頼性を確保する機能があまりない •  ECC等 o  HDDの中でミラーリングしていますか? -> No o  ストレージシステムでのRAID-1などで担保される前提なのか??•  PCIe 装着型のSSD o  RAIDカードに刺さらないのに内部でRAID-0しているカードがある o  ハードディスクのRAID-0と信頼性は変わらない…•  いわゆるハイエンドNANDフラッシュデバイス o  内部的にRAID-4(5)相当のパリティ保護を行っている o  信頼性を比較はSSDとではなく、ストレージ装置一式と比較すべき 35
  36. 36. Talk about storage in the future•  これまでの常識: セクタの書き換えは1つ単位でしかできなかった。 o  だって当たり前じゃない、プラッタにヘッドは一つしかないんだから•  Flashでは: 別れているセクタも結局は連続書き込みしている o  LBA的に離れているかは関係ない、いつ書いたか o  ログファイルシステムを利用している•  Atomic Write! o  1 IOPSの価値が変わる o  メタデータ更新の削減 o  書き込みデータ量の削減 36
  37. 37. Talk about storage in the future•  Atomic Write技術がアツイ•  なにがおきる? o  1 IOPSの価値が変わる o  メタデータ更新の削減 o  書き込みデータ量の削減•  どんなメリットがある? o  データベースミドルウェアなどのログの仕組みの単純化 o  書き込みデータ量の削減によるFlash寿命の長期化 o  パフォーマンス向上 37
  38. 38. Talk about storage in the future (Sorry – not available online.) 38
  39. 39. Topics I told to you today•  ハードディスク50年の歴史 o  IBMから最初のハードディスクが登場 o  ディスクの基本構造の復習 o  RAIDのしくみ o  パフォーマンスの課題•  フラッシュメモリの登場 o  NAND/NORフラッシュメモリの登場 o  Erase Block … NANDフラッシュデバイスの内部構造は色々複雑 o  パフォーマンス、信頼性、寿命はコントローラにとっての課題•  近未来 – Flash専用オペレーションの可能性 o  HDDでは物理的にできなかった操作が可能に 39

×