qpstudy 2014.04 ハードウェア設計の勘所

15,696 views

Published on

Published in: Devices & Hardware
0 Comments
51 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
15,696
On SlideShare
0
From Embeds
0
Number of Embeds
8,225
Actions
Shares
0
Downloads
112
Comments
0
Likes
51
Embeds 0
No embeds

No notes for slide

qpstudy 2014.04 ハードウェア設計の勘所

  1. 1. 第3セッション ハードウェア設計の勘所 qpstudy 2014.04 -険しい道の歩き方をちょっとだけ教えてあげる- Apr 19, 2014 @ DWANGO セミナールーム Takeshi HASEGAWA (@hasegaw)
  2. 2. @hasegaw is 誰 長谷川 猛 (HASEGAWA Takeshi) twitter: @hasegaw 前職時代 ・SEとしてシステム構築、客先のシステム運用、提案 ・気付いたらプリセールス∼PM担当SE (ざっくりデザイン、工数/導入物品見積もり、  構築プロジェクトの管理、保守等の問い合わせ対応) 現職 ・フラッシュを軸としたアプリケーション高速化を支援する セールスエンジニア
  3. 3. ioMemory
  4. 4. Fusion-­‐io  Confiden-al   4  
  5. 5. @hasegaw is 誰
  6. 6. 今日のトピック •  モチベーション –  どうしてハードウェアのことを知るべきなのか –  サーバの構成とは •  コンポーネント別のポイント –  プロセッサ –  メモリ –  ネットワーク –  ストレージ •  その他のコンポーネントや留意事項 –  マネジメント機能 –  保守
  7. 7. ハードウェアのことを知るべき理由 •  ソフトウェアは、ハードウェア上で動作する •  ハードウェアを知っていなければ、 適切なソフトウェアのデザインはできない •  ハードウェアを知っていなければ、 •  クラウドを使っていますか?
  8. 8. サーバーの構成とは HDD/SSD DRAM DRAM DRAM CPU CPU CPU CPU PCIe PCIe
  9. 9. Processor ます最初に知っておくべきこと NUMAとは 要件の整理 スペックと選定方法
  10. 10. プロセッサー •  コンピュータの心臓部 •  ソフトウェアに従って データを入力、加工、出力する
  11. 11. プロセッサーの選定 •  まず最初に知っておくべきこと – 今のプロセッサのデザイン ­ NUMA – 必要としているのはコアあたりの処理能力か、 トータルの処理能力か – どれだけのメモリチャンネル、I/Oが必要か
  12. 12. NUMAとは何か NUMA(非対称メモリアクセス) vs UMA(対称型マルチプロセッサ) Uniform  Memory  Access  (UMA) Non-­‐Uniform  Memory  Access (NUMA) 近いデバイスへ速くアクセスできるが、遠 くのデバイスにはアクセスに時間がかかる どのCPUから見ても同じ時間でアクセスで きるが、全CPUでバスを共有する
  13. 13. NUMAとは何か NUMA(非対称メモリアクセス) vs UMA(対称型マルチプロセッサ) Uniform  Memory  Access  (UMA) Non-­‐Uniform  Memory  Access (NUMA) 近いデバイスへ速くアクセスできるが、遠 くのデバイスにはアクセスに時間がかかる どのCPUから見ても同じ時間でアクセスで きるが、全CPUでバスを共有する PCIe PCIe DRAM PCIe CPU CPU DRAM DRAM CPU CPU MCH
  14. 14. NUMA ‒ AMD と Intel Quick  Path  Interconnect  (Intel) Hyper  Transport  (AMD)
  15. 15. IvyBridge EP (E5-26xxv2)
  16. 16. プロセッサーのスペック •  コア数/クロック周波数 •  みんな認識してる(よね?) •  インターコネクトの数 •  幾つのプロセッサとNUMA構成を組めるか •  メモリチャンネル数 •  CPUが認識できるDIMM数には限りがある •  3 4[channel] = 12[DIMM per CPU] •  その他制限は後述 •  PCI Express レーン数 •  CPUあたりのPCI Expressレーンは有限資源 •  40 lanes per CPU、ただし自由には使えない •  PCIeスロットの使い方は重要
  17. 17. プロセッサーの選定 •  コア数重視か、クロック周波数重視か – 高周波数なモデルは、コア数が少ない – 多コアなモデルは、周波数が落ちる •  複数のコアを使い切るためには、 並列度が必要 – アプリやミドルウェアのマルチスレッド対応状況 は?
  18. 18. プロセッサーの選定 •  ワークロードで判断するしかない – アプリケーションサーバ •  多くの場合は多コア重視のほうがよい – バッチ処理 •  並列度が低いとクロック周波数がきくケースも – RDBMSミドルウェア (MySQLなど) •  どちらかと言えばSQLスレッドが詰まることが多い •  トランザクションを乗り切るスピード重視 ‒ 高周波数 •  クエリへの応答の並列度重視 ‒ 多コア – スレッドが下手なHPCワークロード、 リアルタイム応答 •  コア数よりもコアあたりのクロック周波数が効いたり
  19. 19. 整理すると:プロセッサーの選び方 •  1プロセッサでいけるなら、1プロセッサで – Intelならいま一発12コアまではいける – 6コア 2より性能を出しやすく、扱いやすい •  2プロセッサ以上必要な事情とは – コア数がもっと欲しい場合 (16∼24コア以上) – DRAMスロットが足りない場合 – PCIeスロット/レーンが足りない場合
  20. 20. Memory 知っておくべきこと 要件の整理とサイジング 知っておくべきトレンド
  21. 21. メモリ(一次記憶) •  コンピュータが実行するプログラムや データを保存する一次領域 •  一般的にDRAMが利用される Dynamic Random Access Memory •  DIMMモジュールとして取り付けて 利用する
  22. 22. DIMMの価格 •  低容量なDIMMは安い •  大容量なDIMMは高い
  23. 23. DIMMの搭載方法 •  チャネル内に同種類DIMMが揃えば高速 •  実装・増設単位は、事実上「チャネル単位」 •  プロセッサがあるスロットのみ利用可
  24. 24. メモリーの選定 •  必要な容量は? •  導入/追加の単位は? •  DRAMの速度ってどれぐらい? •  今後のために想定すべきトレンド
  25. 25. 要件の整理とサイジング •  要件 – 必要な容量は? – 段階的な拡張は可能か? •  サイジング – DIMMサイズ、チャネルから最適な構成を 要件から選ぶ •  例: 60GB → 3*3[ch]*8[GB DIMM]=72GB – 容量あたり幾つCPUが必要か •  プロセッサあたりで装着できるDIMM数に制限有り – 枚数は少ないほうがよい •  マシンによっては、DIMMが多いとメモリ速度が低下
  26. 26. Memory 知っておくべきトレンド
  27. 27. メモリのティアリング •  ランダムI/O性能、帯域幅ともに最強 •  その要件で本当に必要ですか? •  どうしてメモリを積むのか – シミュレーション等HPC的な計算 – 容量 – ストレージが遅いのでキャッシュしたい 今はDIMM以外の選択肢がある
  28. 28. ioMemory
  29. 29. PCI express接続のフラッシュティア •  DRAMより遅いが10年前のDIMM相当の シーケンシャル性能 •  再起動しても消えないRAM Diskとして、 またはDisk Cacheなどとして利用できる •  DRAMとは違ってメリットがある – バイト単価が安い – 消費電力が少ない – 大量に詰める
  30. 30. PCIe Native Flash •  フラッシュはDRAMより低速 – だが10年前のDIMMに匹敵する帯域幅 – 再起動してもデータが消えない – しかも安い 0.0GB/s   2.0GB/s   4.0GB/s   6.0GB/s   8.0GB/s   10.0GB/s   12.0GB/s   14.0GB/s   16.0GB/s   Bandwidth   Bandwidth   0   2000   4000   6000   8000   10000   12000   14000   16000   18000   0   500000   1000000   1500000   2000000   2500000   4  GB   8  GB   16  GB   32  GB  365  GB   Flash   785  GB   Flash   1205   GB   Flash   定価 /GB  
  31. 31. 帯域幅の比較 0.0GB/s   2.0GB/s   4.0GB/s   6.0GB/s   8.0GB/s   10.0GB/s   12.0GB/s   14.0GB/s   16.0GB/s   ioDrive2   ioDrive2  Duo   PC2-­‐2700   PC2-­‐3200   PC3-­‐6400   PC3-­‐10600   PC3-­‐14900   Bandwidth   Bandwidth  
  32. 32. バイト単価 0   2000   4000   6000   8000   10000   12000   14000   16000   18000   0   500000   1000000   1500000   2000000   2500000   4  GB   8  GB   16  GB   32  GB   365  GB  Flash   785  GB  Flash   1205  GB  Flash   定価 /GB  
  33. 33. フラッシュの性能の考え方 DRAMに全てのデータを置いた場合、フラッシュに全てのデータを置いた場合の   コスト差。どちらも秒間800,000トランザクション/秒の性能要件を満たしている   ソース: hYp://wikibon.org/wiki/v/Data_in_DRAM_is_a_Flash_in_the_Pan   78ドル   (7956円) 1209ドル   (123318円)
  34. 34. PCIe Flashのまとめ •  年々、ワークロードのデータ量は増加傾向 •  DRAM+Flashのティアリングは、今後、 必要 に •  もはや 容量 はDIMMで賄う領域ではない •  大容量のDIMMは高価 •  プロセッサのスロット数制限があり 小容量のDIMMを並べるのは不可能(or高価) •  DIMM 256GBぶんの価格で 128GB DRAM+400GB Flashの構成が視野に •  スピード面でも、PCIe Flashは 10年前のDRAMクラスの帯域幅 •  10年相当と言え、ディスクと比べれば明らかに速い
  35. 35. Network まず最初に知っておくべきこと 特性にあわせた選定を
  36. 36. ネットワークが大事な時代 •  コンピュータはネットワークに繋がっている •  一部のユースケースを除けば データを送受信して、はじめて価値がある •  まわりとのコネクティビティ、大事
  37. 37. (余談)日本とブラジルでマリオカート •  光の速度 – 秒速30万キロメートル(地球7周半) •  日本-ブラジルでマリオカートしよう – ブラジルからの光は0.13秒遅延する – 時速100km=秒速27.7m – 27.7[m] 0.13[sec]=3.6 [m] – 光でさえ Mini 1台分の遅延 – コンピュータ通信はもっと遅い
  38. 38. 光がブラジルから日本に届くまでに   100km/hの車が進む距離   (だいたい、だよ?だいたい。)
  39. 39. ネットワーク •  現在よく使われる イーサネット規格 – Gigabit Ethernet (1Gpbs=100MB/s) – 10Gigabit Ethernet (10Gbps=1GB/s) •  ネットワーク性能の考え方 – 帯域幅 (bps) – 単位時間あたりのパケット数 (pps) – パケットの送信から受信までの遅延時間 (ns/μs)
  40. 40. 10GbEの魅力 •  GbEと10GbEで応答時間が けっこう変わる •  レイテンシーに敏感な部分では10GbE – アプリケーション ‒ DB間のクエリとか – データの同期レプリケーションとか •  資料引用元は Solarflare (超低遅延NIC)
  41. 41. 必要な所には高速なインターコネクトを
  42. 42. 必要な所には高速なインターコネクトを
  43. 43. 必要な所には高速なインターコネクトを •  10Gbpsは割と身近になってきている •  必要に応じて積極的に使おう •  システムの高速化 – APサーバ ‒ ミドル間のインターコネクトなど •  広帯域なデータ送受信が必要なシステム – 動画配信 – 大量のショートパケット – etc
  44. 44. NIC/HBA利用時のベストプラクティス •  特定のアダプタが障害で止まるかもしれない •  二枚以上搭載するなら、冗長化するポートは別々の アダプタを使う •  Fibre Channel (FC)などでも同様の事が言える
  45. 45. Storage HDD, SSDとRAID アレイコントローラの役割 PCIe Flashとは何なのか
  46. 46. ストレージ •  コンピュータの構成の中で 一番価値があるコンポーネント –  仮想化やクラウドにより、データ以外は代替可能 •  システムの性能を最も左右する コンポーネント –  CPU&メモリ…ナノ秒(10^-9) –  ネットワーク…マイクロ秒(10^-6)∼ミリ秒 –  ストレージ…マイクロ秒(10^-6)∼数十ミリ秒 •  様々な構成 –  HDD, SSD, RAID, アレイコントローラ
  47. 47. Storage Hard Disk Drive
  48. 48. ハードディスクドライブ (HDD)の構造 1) SATA等のインターフェイス 2) 2.5 フォームファクタ 3) 見えないが、コントローラ (マイコン)が存在 4) プラッタ 5) アクチュエータ 6) 磁気ヘッド 写真引用元  hYp://www.businesswire.com/news/home/20130929005004/ja/
  49. 49. ハードディスクドライブ (HDD) •  50年以上に渡り使われてきたストレージ –  磁気的にデータを読み書きする –  ほぼ対称的なリード/ライト性能 –  円盤状のメディア、ヘッドでデータを読み書き •  複数のモデル –  SATA (デスクトップ用など) –  Nearline (Near on-line) SATA (NASなど) –  SAS (サーバ用などで高速) •  トレンド –  小容量・高速性を求める場合はフラッシュへ SAS HDDは今後消えていくのでは –  大容量のSATAが中心に
  50. 50. Storage Solid State Drive (SATA/SAS SSD)
  51. 51. ソリッドステートドライブ (SSD)の構造 1) SATA等のインターフェイス 2) 2.5 フォームファクタ 3) NANDコントローラ 4) RAM 5)NAND Flash 引用元  hYp://www.dosv.jp/other/0910/02.htm
  52. 52. ソリッドステートドライブ (SSD)の構造 •  ここ数年で採用が進んできたストレージ – デジカメ/スマートフォン同様、 NANDフラッシュメモリを利用しデータを保存 •  NANDフラッシュの特徴 – 読み込みは高速、書き込みは低速、 書き換えはド低速 – 書き換え回数に制限がある
  53. 53. NANDフラッシュとはなんぞや •  NANDセルの浮遊 ゲート内に電荷を 閉じ込める •  電荷があるかないかで 0 or 1を記録 •  NANDセルの種類
  54. 54. NANDフラッシュとはなんぞや •  ゲート内に電荷量をコントロールし プログラム •  電圧をセンシングすることで値を読み出す 11 01 10 00 11 01 10 00 11 01 10 00
  55. 55. Storage RAID
  56. 56. RAID 0とRAID 1 引用元  hYp://ja.wikipedia.org/wiki/RAID 複数のデバイスで性能を引き上げる。信 頼性は犠牲に(メンバの故障=停止) 同一内容を複数デバイスに書き込み信 頼性を引き上げる。
  57. 57. RAID 01とRAID 10 引用元  hYp://ja.wikipedia.org/wiki/RAID RAID-­‐0とRAID-­‐1を組み合わせた構成。   組み合わせ方によりRAID-­‐10とRAID-­‐01の2パターンがある
  58. 58. RAID 5とRAID 6 引用元  hYp://ja.wikipedia.org/wiki/RAID 3台以上のディスクで、分散パリティを保存することでメンバデバイスの故障に備える。 RAID-­‐5は1パリティで1デバイスの障害、RAID-­‐6の場合は2パリティで2デバイスの障害に 耐える。パリティの再計算が必要となるため書き込みが遅くなる傾向にある
  59. 59. RAIDの種類まとめ •  RAID-0 –  複数デバイスで性能を引き上げる。信頼性は低下 •  RAID-1 –  複数デバイスに同一内容を置き、信頼性を上げる •  RAID-5 –  3本以上のデバイスのうち1本にパリティを持つ。 1本のデバイス故障から保護できるが低速 •  RAID-6 –  4本以上のデバイスのうち2本にパリティを持つ。 2本のデバイス故障から保護できるがさらに低速 •  その他のパターン –  RAID-10, RAID-01, RAID-50など
  60. 60. RAIDレベルの選び方 •  信頼性を求められるところにRAID-0を利用 してはいけない – クラッシュリスクが高まります – 内部冗長化されたPCIe Flashならよいかと – RAID-1/6/5を検討 •  性能を求められるところにRAID-5/6を利 用してはいけない – 動きます – スピードが足りないかもしれません – RAID-10を検討
  61. 61. Storage Array Controller
  62. 62. アレイコントローラとは •  RAIDカードなどとも呼ばれる –  複数のHDD, SSDを束ねてRAIDを構成、 ひとつのストレージ装置と見せかける –  パリティ計算などをハードウェアで支援 –  不意のシステム電源断時に書き込みデータを保護 •  ストレージの信頼性を確保する上で大事 –  RAID-5/6を使つもりなら必ず装備しよう •  Write hole/Partial write issue –  バックアップ付ライトバックキャッシュを必ず装備 •  ライトスルーだと、多くの場合、手許のPCよりI/Oが遅い •  RAID機能を持たない ホストバスアダプタ –  SATAインターフェイスなどとも呼ぶ –  安物RAIDカードは実体がホストアダプタで、 ドライバでRAID機能を実装している場合もあり注意
  63. 63. ライトスルーとライトバック •  ライトスルー (Write Through) •  ストレージへの書き込みを必ず行い、書き込みが成功 した後に「成功」と返す •  書き込み要求をキャッシュしないため、データ喪失の リスクは少ない •  サーバーのディスクは、ライトスルーだと手許のパソ コンよりも遅い •  ライトバック (Write Back) •  ストレージへの書き込み要求をキャッシュし、書き込 み前に「成功」と返す •  ストレージへの実際の書き込みは後ほど非同期で行う •  BBWC/FBWCがあれば安全、なければ危険
  64. 64. RAIDカード       ライトスルー ミドルウェア   (MySQLなど)   ディスクアレイ         ライトバックキャッシュ (DRAM) 書き込み要求はそのまま   ストレージに伝えられる
  65. 65. ライトバック ミドルウェア   (MySQLなど)   RAIDカード       ディスクアレイ         ライトバックキャッシュ (DRAM) 書き込み要求があったら、   とりあえず、書いたことする 遅延   書き込み
  66. 66. ライトバックの停電対策 •  ライトバックキャッシュには DRAMが使われる – 停電で、書き込んだデータが消える •  停電時の書き込みデータ保護 – FBWC (Flash-backup Write Cache) •  ライトキャッシュDRAMのデータを 専用フラッシュメモリに待避 – BBWC (Battery-backup Write Cache) •  ライトキャッシュDRAMのデータが消えないよう バッテリーでバックアップ保護する
  67. 67. ライトバック、BBWCとFBWC ミドルウェア   (MySQLなど)   RAIDカード       ディスクアレイ         ライトバックキャッシュ (DRAM) BBWC   ライトバックキャッシュの   DRAMに電源を供給   しつづけるバッテリ     ・バッテリが劣化する   ・時々再充電が必要   ・数日しか持たない FBWC   電源断が発生したら   不揮発のフラッシュメモリに   データをコピーし保護   ・フラッシュには利用回数    制限があるが、寿命は    無視できる程度   ・BBWCと比べて堅い   書き込み要求があったら、書い たことにする 遅延   書き込み
  68. 68. ストレージのまとめ
  69. 69. まとめ: ストレージ(不揮発層) •  今なら – 容量重視 -> HDD – 性能重視 -> SSD – RAID使うならH/Wコントローラ買っとけ •  ライトバック バックアップキャッシュも付けとけ – なんちゃってオンメモリ -> PCIe Flash •  メモリの話題として話した – RAID+SSDベースのPCIe Flash •  RAIDカードとSSDが一枚に収まってる
  70. 70. 運用保守のあれこれ リモートマネジメント ハードウェアの保守
  71. 71. どうやって管理していくか •  運用期間>>>構築にかかる期間 – 日常のメンテナンス – 障害時のメンテナンス – 監視 •  何が求められるか – システムが止まるまで、持続的な管理が必要 – コストの見合う範囲で、できるだけラクしたい
  72. 72. リモートマネジメント •  実装 –  IPMI ‒ 業界標準の管理インターフェイス –  ベンダ固有のマネジメント機能 •  できること –  シリアルコンソール/IP-KVM –  リモートからの電源制御 –  温度/ファン状態/消費電力量などの監視 •  機能があるなら活用したほうがいい –  いちいちサーバルームで作業する必要が減る –  ソフトウェア的な管理が可能に
  73. 73. 保守スキーム •  オンサイト保守 •  ベンダー/リセラーと一緒に問題切り分け •  保守パーツを送付してもらう •  作業員がきて交換 •  ベンダー/リセラーのセンドバック保守 •  ベンダー/リセラーと一緒に問題切り分け •  保守パーツを送付してもらう •  自分で交換 •  オレオレ保守 •  自身で切り分け •  保守パーツを事前購入/慌てて購入 •  自分で交換
  74. 74. 保守スキーム •  規模が小さければオレオレ保守かもしれない •  激安サーバ程度ならこの方針でもよいでしょう •  HDD/SSD程度なら秋葉で買ってきたほうが安い •  「わかってる人間」がいないとできない •  「直る」と思ってたものが直らないとつらい •  台数が増えてくるとトラブル件数も増え、個別対応はつらい •  ある程度の時点でベンダー/リセラー保守を利用 •  コストをキャップしやすい •  切り分け/予備パーツ/代替パーツの手配に時間をとられない •  ハードウェアの保守作業時間、そのためのトレーニング時間が不要 •  台数が異常クラスになるとオレオレ保守へ •  数千台∼の規模になると保守費用払うよりオレオレ保守したほう がよいことも多い(のではないか)
  75. 75. おわりに
  76. 76. 今日のトピック •  モチベーション –  どうしてハードウェアのことを知るべきなのか –  サーバの構成とは •  コンポーネント別のポイント –  プロセッサ –  メモリ –  ネットワーク –  ストレージ •  その他のコンポーネントや留意事項 –  マネジメント機能 –  保守
  77. 77. THANK YOU

×