HPE Blog, Japan
1759484 メンバー
2849 オンライン
108883 解決策
新規ポスト
yoshihiko1989

【連載】導入前のアドバイス – メモリ②:ストレージ用途で使用するメモリ・メモリの保護機能

この記事は2020年12月に更新されました

 

連載記事「導入前のアドバイス」 - メモリ(ストレージ用途のメモリ・メモリ保護)編です。

前回は、メモリの種類・規格についてご紹介しました。

今回は、メモリをストレージの代わりとして使用する「Persistent Memory」や、メモリの保護機能に関してご紹介します。

メモリ.png

PCやサーバーの性能は年々アップを重ね、処理能力はどんどん上がっています。データを格納して置くハードディスクやソリッドステートドライブ(SSD)などのストレージの性能は、容量は巨大化しているものの、一旦コントローラーを介す為、使用する上でのボトルネックとなっています。

一方、メモリはそれらのストレージより遥かに高速で動作します。そこで、メモリを何とかストレージの代わりに使用できないか、という事で開発されたのが、HPE Persistent Memoryです。

 

HPE Persistent Memory (featuring Intel® Optane™ DC persistent memory)

HPE Persistent Memoryは、インテルOptane DC Persistent Memory を採用した、高密度メモリまたは高速ストレージとして使用可能な新しいメモリ ソリューションです。

このHPE Persistent Memoryは今までのメモリと異なり、DRAMチップでは無く、SSDなどに使用されるフラッシュメモリの10倍高速で、さらにサーバーの電源を切ってもDRAMの様にデータが消えない(不揮発性といいます。)特殊なメモリチップを使用したメモリです。簡単に説明すると、非常に高速なSSDがメモリ スロットに刺さっているようなイメージです。

このHPE Persistent Memoryは、その高速性と不揮発性という特徴、またDRAMに比べて安価で大容量な点から、大きく3種類の使用方法があります。

・App Directモード(不揮発性)

HPE Persistent Memoryを超高速なストレージとして使用する方法です。サーバーに搭載したHPE Persistent Memoryの全ての容量がストレージとして使用可能になります。

・メモリ モード(揮発性)

メモリ モードに設定すると、HPE Persistent Memoryは、通常のメモリと同じような揮発性メモリとして動作します。HPE Persistent Memoryを大容量かつ低コストなメインメモリとして使用する方法です。

これは先述の通り、一般的なフラッシュメモリの10倍という、DRAMの代わりを務められるまで高速なために可能な使用方法ですが、残念ながら流石にDRAMよりは速度が劣ります。そのため、HPE Persistent Memoryをメモリ モードで使用する場合は、キャッシュとしてDRAMを別途用意し、それと組み合わせて使用する必要があります。

この使い方では、サーバーのメインメモリとして使用可能なのはHPE Persistent Memoryの容量のみで、キャッシュとして組み合わせて使用されたDRAMの容量は、サーバーのメインメモリの容量に含まれません。

・ミックス モード

App Directモードとメモリ モードを組み合わせて使用する方法です。メインメモリとして使用する部分についてキャッシュとしてDRAMが必要な点と、メインメモリとしてサーバーが使用可能なのはメインメモリに設定されたHPE Persistent Memoryの容量のみである点は、メモリ モードと同様です。

HPE Persistent Memoryには、多くの構成上の注意点があります。詳細はシステム構成図のHPE Persistent Memoryの項目を参照ください。

 

メモリの保護機能について

サーバーに搭載されたメモリは、時に故障やデータ異常などの不具合を起こすことがあります。そのような時にデータを保護し処理を続行する技術について、ご説明します。

ECC(Error Correcting Code)

サーバーを運用していると、外部からの電磁波などの影響により、稀にメモリの内部にデータ異常が発生することがあります。そのような際、そのまま処理を続けてしまうとサーバー内のデータがおかしくなってしまい、動作異常を引き起こしたりします。

そのため、メモリ内部で発生したデータ異常を読み出し時に検出し、訂正する機能を設けました。それがECC(Error Correcting Code)です。
ECC
メモリは、ECCメモリコントローラーにより、64ビットごとに8ビットのチェックサムを使用して、メモリのデータ保護を行います。

一般的なECCメモリでは、プロセッサーへの直接データ転送時に発生する1ビットのエラーの訂正をおこなうことが可能です。また、2ビット以上のエラーを検出できます。
尚、2ビット以上のエラーが検出された場合には、残念ながら訂正は出来ません。その場合には被害が広がらないようにサーバーを停止させるように指示を出し(専門的にいうとNMINon-Maskable Interruptを生成します)、システムに対するデータ不整合を回避します。

現在のHPE ProLiantサーバーでは、この一般的なECCより強力な、アドバンストECCというエラー訂正機能を採用しています。

このアドバンストECCは、メモリ内のDRAMチップの各ビットを各々別のECCコントローラーに分割して割り付けてチェックサムを付けることで、メモリのデータ保護を行います。

アドバンストECCは、1つのDRAMチップ上の2ビット以上のエラーをも訂正することができます。それどころか、チップ全体の障害があった場合でも訂正することが可能です。たとえば、4ビットのDRAMチップの場合、各DRAMチップの 4ビットのデータは、各々分割されて4つのECCメモリコントローラーに入力されます。仮にDRAMチップ全体が障害を起こしたとしても、各ECCコントローラーでは1ビットのエラーとして処理でき、データの訂正を行うことができます。

メモリ_pic11.png

 

オンライン スペア メモリ

オンライン スペア メモリは、障害の事前予知状態になったシステムメモリから、スペアとして指定されたメモリにデータをコピーして、サーバーの稼働中(オンライン)に切り替えることでメモリ保護を行います。障害の事前予知状態かどうかの判断は、ある一定の閾(しきい)値を超えるような訂正可能なメモリエラーの発生を検出することによって行います。訂正可能なメモリエラーを多発するDIMMは、将来、訂正不可能なメモリエラーが起こす可能性が高いため、メモリ障害によるシステムダウンの可能性を減らすことを期待できます。

オンライン スペア メモリは、Intelプロセッサーを採用したHPE ProLiant サーバーの100 シリーズ以上の一部の機種でサポートされています。オンライン スペア メモリでは、全体容量からスペア メモリの容量分を除いたものが使用可能な容量となります。

障害のあったメモリの交換にシステムの停止を必要としますが、予定されたメンテナンスタイミングなどに対応ができるので、メモリの障害に伴う停止時間を削減することができます。

ミラーメモリ

ミラーメモリは、メモリモジュールを 2 分してミラー化した構成をつくり、メモリ保護を行います。Intelプロセッサーを採用したHPE ProLiantサーバーの一部の機種でミラーメモリをサポートします。実際に使用可能なメモリ容量は、全体容量のうちの半分となります。

ミラーメモリを構成した場合、データはミラー化した2つのメモリに同時に書き込まれ、プライマリとして構成されたメモリから読み出されます。プライマリ側のメモリでの修正不能なエラーや、DIMM の故障などの場合、自動的に読み出しを行うメモリを切り替えるため、サーバーを停止すること無く稼動し続けることができます。

障害のあったメモリの交換にシステムの停止を必要としますが、予定されたメンテナンスタイミングなどに対応ができるので、メモリの障害に伴う停止時間を削減することが可能です。

また、このミラーメモリの機能では、パーシャルミラーと呼ばれる、部分的なメモリミラーリング機能があり、ミラーリング用としてメモリ合計の20%10%を予約することができる設定の他、OS側でパーシャルミラーを構成できる設定など、用途に応じて活用可能です。

Fast Fault Tolerance

ECCの項目の説明で、HPE ProLiantサーバーはアドバンスドECCを採用しており、メモリのDRAMチップ1つが故障してもエラーを訂正して処理を続行できることは先述しました。

しかし、アドバンスドECCでも、DRAMチップが2つ故障すればもはやエラー訂正は出来ず、サーバーは停止してしまいます。そこで、DRAMチップが2つ故障してもエラー訂正可能なDDDC(Double Device Data Correction)という技術が開発されました。

しかし、このDDDC、システム起動時に有効にする必要があり、その際にメモリスループットが著しく低下するという欠点がありました。そのため、お客様は耐障害性とパフォーマンスの二者択一を迫られていました。そこで、ProLiant Gen10サーバーより採用されたのが、このFast Fault Toleranceです。

HPE Fast Fault Toleranceは、DDDCDRAMチップ2枚の故障でもエラー訂正可能という長所はそのままに、メモリのパフォーマンスを最大限発揮して起動することができます。エラーの訂正が必要な場合はメモリの小さなセクション(バンク)をロックステップで動作させるだけでよいため、DDDCをはるかに凌ぐ性能を発揮します。

 

メモリの保護機能については以上となります。
より詳細な情報については、以下の資料を参照ください。

https://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-3490JPN.pdf?

 

次回は、HPEの独自技術が採用されたHPE SmartMemoryに関してご紹介します。

 

「導入前のアドバイス」まとめリンク

0 感謝
作者について

yoshihiko1989

日本ヒューレット・パッカード株式会社で Server Solution / CloudNative関連のプリセールスを担当しています。