第2回ストレージ編
サーバーにおけるストレージの四方山話!?
クラウド事業やサーバー事業を営んでいるInfiniCloud社に、実際のサーバーマシンに使われているハードウェアについて、色々訊いていくこの企画。前回は、InfiniCloud社が提供を開始した、最新プライベートクラウドサービス「6G Third Edition」のCPU周りについての特徴やこだわりについて伺ったが、今回は、ストレージデバイスについて聞いていこうかと思う。
ストレージデバイスというと、なんとなく"華"がないように思えるかもしれないが、なかなかどうして。サーバー業界のストレージデバイスには、案外、一般PCユーザーが知らないことも多いのだ。今回は、そのあたりの話題を紹介していくことにしたい。
サーバー向けのSSDを見てみよう!
まず初めに、下の写真を見てもらおう。
今回の話題はSSDということで、いきなりSSDの写真を示してみたのだが、このSSDは、どんなフォームファクターのSSDか分かるだろうか。
システムインテグレータ(SIer)やサーバー事業の関係者だと即答だろうが、一般的なPCユーザーだと「あ、SATA接続の2.5インチのSSDだ」と答えるかもしれない。
実はこれ、見た目は「SATA接続の2.5インチのSSD」によく似ているが、PCI-Express x4で接続できる「U.3」フォームファクターのSSDなのだ。
普段、我々が活用しているPCに搭載されているSSDは、速度重視の起動ドライブにはM.2フォームファクターのものが主流だということは、多くの人が知っていることだろう。最近のこのM.2型SSDの接続インターフェースの主流はPCI-Express(プロトコルとしてはNVMe。以下同)となっていることも今や説明不要だろう。
PCには、この他、データ保存用ドライブ用途としてSATAインターフェース接続の「箱型」形状のハードディスクドライブ(HDD)やSSDを搭載している場合もあるだろう。前出の「U.3」型SSDは、まさに、このSATA接続タイプのSSDに酷似していたわけだが、目を凝らしてよーく見ると、端子の形状が違うことに気がつくだろう。
このU.3 SSDは、インターフェースとしてはSATA/SAS接続にも対応しているものもあるが、現在の主流はM.2のSSDと同様に、PCI-Express x4(NVMe)接続タイプである。また、U.3 SSDは、そのサーバーの動作中に換装が可能なホットスワップ(活線挿抜)に対応している点も特徴となっている。
ここで気になるのが、我々が普段使っている、デスクトップPCやノートPCに搭載されている、いわゆ民生向けSSD製品と、こうしたサーバー向けSSD製品の相違点だ。速さだけでいったら、民生向けのSSDも相応に高速になってきている。
(エンジニアリング本部 本部長, 小熊 氏)
SSDを構成する単位記憶素子のNANDフラッシュメモリーには、素子レベルでは「上書き」という概念が存在しない。それこそ、CD-RWのように「消してから書く」ことしかできないデバイスである。
なので、SSDにおいて「データの書き換え」時には、この「消してから書く」という工程を隠蔽して高速化するために、NANDフラッシュメモリーへの書込み先を並列化させるような「ライト・アンプリフィケーション」を実践したり、空き容量の方に先に直接、書き込んでしまい、元々の記憶箇所を"後消し"するような「ウェアレベリング」制御を行ったりする。こうした制御は、その動作原理上、SSD側の空き容量が小さくなってくると、うまく働かなくなる。
サーバー向けSSDの場合も、キャッシュが効きにくくなれば、「ライト・アンプリフィケーション」や「ウェアレベレング」は行われているが、サーバー向けSSDは、民生向けSSDよりも多めに冗長領域を担保しているため、長期に渡って効果的な「ウェアレベレング」を効かせることが出来る。実際、民生向けSSDでは、公称容量4TB、8TBという切りのよい容量値で販売されているものが多いが、サーバー用SSDは、民生向け同容量クラスよりも4%ほど少ない公称容量3.84TB、7.68TBで販売されている。サーバー用SSDは、同容量クラスの民生向けSSDよりも4%ほど記憶容量が減っているが、その4%の容量を、アクセスの高速性と長寿命の維持のために活用しているのだ。
「Interconnected Storage」とは?
このInfiniCloudが提供するプライベートクラウドサービス「6G Third Edition」のサーバーマシンのストレージサービスには「Interconnected Storage」と「Enterprise Storage」、「Backup Storage」の3つがあるが、「Interconnected Storage」と「Enterprise Storage」にて、このU.3型のSSDが使われている。しかし、そのストレージシステムの構築スタイルは異なっているとのこと。それぞれ、どのように使い分けるものなのだろうか。
(代表取締役CEO:瀧 氏)
「6G Third Edition」サービスでは、容量にして3.84TB、7.68TB、15.36TBの「Interconnected Storage」を選択でき、最大12スロット構成の「Interconnected Storage」を構成できるようになっている。
上でも瀧氏が述べているように「Interconnected Storage」を構成するU.3型SSDはCPUに直結されることから、その接続バスはチップセットからのPCI-Expressバスではなく、CPUから直出しで提供されるPCI-Expressバスとの接続になる。そのため、クラウドインスタンスのデータ領域としてだけでなく、高速なブート領域としても使えるようになっている。
ところで、前回、「6G Third Edition」のサーバーマシンはCPUにintel Xeonを採用しているソリューションと、AMD EPYCを採用しているソリューションがあることについて触れたが、XeonとEPYCでは、CPUに対して直結できるPCI-Expressレーン数が異なる。具体的には、第4世代EPYCは128レーン、第3世代Xeonは64レーン(第4世代は80レーン)となっている。この影響で、最大12スロット構成が実現できるのはCPUにEPYCを搭載したソリューションの方で、Xeonのソリューションでは最大10スロットとなる。
「Enterprise Storage」とは?
続いて、もう一つのストレージサービス「Enterprise Storage」はどういうものなのだろうか。これにもU.3型のSSDが使われているようだが。
「Enterprise Storage」は、「6G Third Edition」サービスのインスタンスのデータ収納用や、OS内からブロックストレージ(いわゆるストレージボリューム)、共有用ファイルストレージ(ファイル共有用途)などとして利用することができるストレージサービスです。こちらのブロックストレージもブートボリュームとして利用もできます。
「Interconnected Storage」は、直結されたU.3 SSDを活用する形態でしたが、「Enterprise Storage」は、U.3 SSDが実現するストレージ機能をストレージサーバーが25Gbpsのイーサネットの2レーンで実現する50Gbpsの帯域を通して「6G Third Edition」のクラウドサービスに提供するものになります。要するに、ストレージサービスをサーバー直結形態で提供するのが「Interconnected Storage」、ストレージサーバー経由で提供するのが「Enterprise Storage」ということですね。
(エンジニアリング本部 本部長, 小熊 氏)
25Gbpsのイーサネットを1レーンとして、複数レーンをまとめて活用することで、上層から見ると「1つの高い帯域イーサネット」として活用できるようにする技術はLink Aggregationと呼ばれ、IEEE 802.3adにおいて、LACP(Link Aggregation Control Protocol)として定義されている。「Enterprise Storage」は、物理回線としては25GbpsのイーサネットをLACPによって2レーン・50Gbpsの帯域を実現させたストレージサービスということになる。
ところで「Enterprise Storage」では、ユーザーが、予算やニーズに合わせて「Dedicated」(占有型)タイプと、「Guaranteed」(リソース保証型)タイプの2タイプのストレージモデルから選択して利用出来る。
「Dedicated」タイプはスループット重視のストレージモデル、「Guaranteed」タイプは必要な容量と帯域の範囲で利用出来るコストパフォーマンス重視のストレージモデルとなっているとのこと。 さて、「Enterprise Storage」は、ストレージサーバーによって提供されるストレージサービスなので、当然、コンピュータ部分があるはずだ。しかし、InfiniCloud社のWebサイトにも、そのコンピュータ部分のスペックは特に公開されていない。このあたりのスペック、教えてもらえないだろうか。
(エンジニアリング本部 本部長, 小熊 氏)
EPYC版のEnterprise Storageを構築していない理由はなにかあるのだろうか。
(エンジニアリング本部 本部長, 小熊 氏)
InfiniCloudの旧世代のサーバーシステムでは、PCI-Express Gen3だったそうで、そのころは、U.3 SSDに往来するデータがPCI-Express Gen3 x4の最大帯域(双方行で約8GB/s)に対して頭打ちとなってしまっていたという。これがPCI-Express Gen4 x4(双方行で約16GB/s)ではこれがほぼ解消されたそうだ。
現在、民生向けのNVMe SSDは、PCI-Express Gen5対応のモノがチラホラと出てきているが、サーバー向けのPCI-Express Gen5対応SSDも同様で、2023年8月時点では、EDSFF(Enterprise and Data Center SSD Form Factor)E3.Sのフォームファクターのものが出始めたくらいで、まだ始まったばかりというところ。U.3 SSD製品については、2023年8月時点ではいまだにGen4対応品が主流となっている。いずれ、Gen5への移行も活発化するのであろう。
ストレージサーバーの性能を上げるにはメモリー性能の高さが重要になってくる!?
我々が普段使っているPCは、高性能で広帯域なSSDの登場によって、HDDが主流だった頃と比べて、使用感が劇的に向上した。そして、インターフェースがSATAからPCI-Expressへ、そのPCI-Expressの世代が新しくなるたびに、PCの使用感の快適性がシンプルに向上していっている。
今はまだ、サーバー向けSSDにPCI-Express Gen5対応のものは少ないようだが、今後、Gen5対応製品が主流となれば、サーバーのパフォーマンスはもちろん、仮想マシンのパフォーマンスもますます向上していくのだろうか。
(代表取締役CEO:瀧 氏)
どうしてこのようなことが起きるのか。
サーバー上の、複数の仮想マシンからストレージへのデータの書込み依頼があったとする。このデータはハイパーバイザーのメモリー空間にコピーされ、今度はそのデータは、ハイパーバイザー側のストレージデバイスのデバイスドライバーのバッファへコピーされる。もし、データを書き込むべきストレージデバイスが、ネットワークの向こう側のストレージサーバーであれば、今度はそのデータはネットワークに伝送される。それを受け取ったストレージサーバーは、そのデータをネットワークインターフェースのバッファからカーネル側のファイルシステムで処理するためにコピーを行う。そして今度は……と言う具合に、サーバーシステムにおけるストレージアクセスの際には、もうそこかしこで、メモリーコピーが頻発するのである。
CPUが完全に目を離した状態で行えるDMA(Direct Memory Access)ベースのメモリーコピーが利用出来るのは、実体としてのストレージデバイスを制御するデバイスドライバーの段階でのみだ。
(エンジニアリング本部 本部長, 小熊 氏)
我々が普段使っている民生向けのPCでは、メインメモリーのインターフェースはデュアルチャンネル(2ch)が採用されている。これは、メモリーアクセスを、"2つ"に分けたメモリーバンクに対して同時並列アクセス(インターリーブ・アクセス)を実践することで、各メモリーバンクへのアクセス時に生じる遅延を隠蔽する仕組み。理論的にはメモリー帯域は、単一のメモリーバンクへのアクセスであるシングルチャンネル(1ch)時の2倍となる。たとえば、DDR4-3200MHzのシングルチャンネルでは25.6GB/s、デュアルチャンネルでは51.2GBの帯域がある。
InfiniCloudが提供しているサーバーマシンに採用しているCPUはIntel系ではXeon Silver 4310/4316を、AMD系ではEPYC9124/9334を採用しているが、そのメモリーバンク数は、Intel系でDDR4-3200の8ch、AMD系でDDR5-4800の12chを採用している。つまり、帯域はそれぞれ、341GB/sと920GB/sとなり、民生向けPCとは文字通り、桁違いに高い帯域を実現している。
サーバーマシンの異常なまでのメモリー帯域の高さは、ストレージパフォーマンスの性能維持にも一役買っているわけである。
(エンジニアリング本部 本部長, 小熊 氏)
サーバーマシンにおいて、ストレージ性能を上げるには、「メモリーパフォーマンスが重要」という話は、かなり興味深い話であった。
次回もお楽しみに!
シリーズ: 西川善司の「InfiniCloudのサーバーの中身、見せてもらえます?」
※当ページに記載されている会社名、システム名、サービス名、製品名等は一般に各社の登録商標または商標です。