ハクソク

世界を動かす技術を、日本語で。

インテル オプテインの特長とは (2023)

概要

  • Intel Optaneシリーズは、従来のNAND型SSDに比べて超低遅延・高耐久・高性能を実現した革新的なストレージ技術
  • Optane SSDは特に高い書き込み耐久性と一貫したパフォーマンスを持つため、プロフェッショナル用途に最適
  • 2022年7月にIntelはOptane開発を停止したが、現行製品の販売は継続中
  • 主な用途は高IOPS・低遅延を要求するデータベースや仮想化基盤など
  • 本記事では、Optane技術の特徴・耐久性・パフォーマンス・用途を解説

Intel Optane SSDの概要

  • Intel Optaneシリーズは、2017年後半に登場した高性能SSDのシリーズ
  • 対象機種はOptane P4800X、P5800Xおよび一般向けの900P、905P
  • すべてIntelとMicronが共同開発した3D XPointテクノロジーを採用
  • 通常のNAND型SSDと異なり、DRAMとNANDの長所を併せ持つ新技術
  • 超低遅延・高耐久・高性能が最大の特徴
  • 欠点は価格の高さと容量の小ささ
  • NAND SSDの進化やCXL技術の登場により、Optaneへの移行は限定的
  • 2022年7月、IntelはIDM 2.0戦略の一環としてOptane開発を終了
  • 既存のOptane製品(SSD、DIMM)は引き続き販売中
  • 2023年1月にはSapphire Rapids対応のOptane Persistent Memory NV-DIMM 300シリーズもリリース

Optane SSDの仕様比較

  • Optane P4800X(1st Gen)
    • 容量:375GB~1.5TB
    • PCIe 3.0(NVMe対応)
    • シーケンシャルリード:2,500MB/s
    • シーケンシャルライト:2,200MB/s
    • 4KランダムリードIOPS:550,000
    • 4KランダムライトIOPS:500,000
    • 耐久性(DWPD):30
  • Optane P5800X(2nd Gen)
    • 容量:400GB~3.2TB
    • PCIe 4.0(NVMe対応)
    • シーケンシャルリード:7,200MB/s
    • シーケンシャルライト:6,200MB/s
    • 4Kランダムリード/ライトIOPS:1,500,000
    • 耐久性(DWPD):100

Optaneの優位性

  • 耐久性

    • SSDの耐久性は「どれだけのデータを書き込めるか」を示す重要指標

    • Optaneは他のプロフェッショナルSSDより圧倒的な書き込み耐久性を持つ

    • 例:P4800XでDWPD 30、P5800XでDWPD 100(5年保証)

    • 高書き込み環境に最適な選択肢

    • SSDの耐久性指標

      • Drive Writes per Day(DWPD)
      • Terabytes Written(TBW)
      • GB/日
  • データ一貫性(Data Consistency)

    • **パワーロスプロテクション(PLP)**を全機種搭載
    • 電源断時もキャッシュやマッピングテーブルのデータを安全に保持
    • ハードウェア実装のPLPが推奨され、Optaneは「Enhanced Power Loss Data Protection」対応
  • パフォーマンス

    • 遅延(Latency)

      • Optaneは4Kランダムリードで約25マイクロ秒(NAND SSDは90~110マイクロ秒)
      • 300%以上高速な小容量ランダムリード性能
      • 最大130万IOPSを単体ドライブで実現
      • CPUの待機時間短縮・システム全体の効率向上
    • 書き込み一貫性(Write Consistency / QoS)

      • Optaneはバイト単位アドレッシングにより常に最大パフォーマンスを維持
      • NAND SSDはDRAMキャッシュや高速フラッシュによる一時的な高速化が必要
      • NANDは空きページ不足時に書き込み速度が劣化(ガベージコレクションの影響)
      • Optaneは連続高負荷でも書き込み性能が落ちない

主な用途

  • Ceph(WAL・キャッシュ)用途
  • ZFS(ZIL・SLOG)用途
  • QoS重視環境
  • 高書き込み環境
  • 高性能データベース
  • VDI環境
  • vSANキャッシュ層

まとめ

  • Intel Optane SSD低遅延・高IOPS・高耐久性を求める用途に最適
  • NAND SSDも進化を続け、価格競争力が高い
  • OptaneはIntelの撤退により今後入手困難になるが、現行製品はしばらく流通
  • 本記事でOptaneのアーキテクチャ的特徴、耐久性、PLP、書き込み一貫性の重要性を解説

参考リンク

  • ServeTheHome: Optane Persistent Memory (NV-DIMM’s or also called PMEM)
  • ServeTheHome: Compute eXpress Link (CXL)
  • Western Digital: Understanding SSD Endurance
  • TheSSDGuy: Comparing Wear Figures on SSDs
  • Kingston: A Closer Look At SSD Power Loss Protection
  • Storagereview.com: Intel Optane P5800X Review

Hackerたちの意見

目立つのは、売れなかったからだよね。変な話だけど、使うメリットは結構大きかったんだよ。1バイトの更新のレイテンシーがめちゃくちゃ良かったし、zfsみたいなデータベースやジャーナルにはすごく役立った。
みんながどう使うかを理解した頃には、もう生産が終わってた感じだね。
ほとんどの人がAWS RDSでデータベースを運用したり、信じられないほど低いスループットとレイテンシーのEBSドライブを使ってる中で、納得できるよ。そんなに低いレイテンシーが恩恵を受けるアプリケーションはほとんどないし、簡単だけど遅くて高い、自動バックアップもある標準的な道から外れなきゃいけないなら、みんな楽な方を選ぶよね。最高の技術性能があっても、マーケットフィットには足りないんだ。Intelの経営陣が求められる実行力は、彼らの能力をはるかに超えてる。プラットフォームを開発して、他の人にアプリケーションを作らせたかったんだろうけど、スタートアップのキラーアプリがないと、エコシステムを構築するための採用が足りないんだよね。
Optaneは「全く新しい物理学」とか「RAM並みに速いけど持続性がある」みたいな自分の過剰な宣伝に犠牲になった。客観的に見れば革命的だったのに、現実は失敗のように感じられた。
Optaneは売れなかったのは、変な永続DIMMスティックに注力しすぎたからだよ。企業向けには、普通の用途では電源を切った瞬間に消える一時的なデータが必要なのに、あれは悪夢だよね。もっと普通のストレージを作って、インターコネクトの帯域幅やレイテンシの問題を、最新のPCIe規格を使って解決すべきだった。
>「変だよね…」全然変じゃないよ。最初から成功するとは思ってなかったし、コストが高すぎた。インテルがマイクロン以外には技術を共有しなかったし、マイクロンも本気じゃなかった。ファブの未使用キャパシティはインテルが支払ってたから、彼らも気にしてなかった。コストを下げるための長期的な解決策や戦略もなかったし、インテルもマイクロンもこの分野にビジョンがなかった。誰もインテル独占の技術ロックインを望んでなかったし、高い価格にもかかわらず、NANDやDRAMと比べてユニットあたりの利益はほとんどなかった。NANDとDRAMのサイクルが再び下がると、オプテインのコスト/パフォーマンスは魅力的じゃなくなった。サムスンもオプテインに似た性能のSLC NANDを作ったけど、安いし、興味がなくなって開発をやめちゃった。
個人的には、オプテインが売れなかった理由は、理想的な使い方が遅い回転ディスクと組み合わせることだったからだと思う。オプテインの問題は、SSDの容量が劇的に増えたのに対して価格が急落したこと。オプテインとSSDの違いはあまりにも小さくなった。特にM.2規格が普及して、SSDがPCI-Eのパフォーマンスを活かすようになったからね。オプテインはパフォーマンスの優位性を保っていたと思うし、今でも最高のSSDより速いと思うけど、SSDは十分に良くて速くて、しかもずっと安い。オプテインの理想的な使い方は、ZFSのZILとしてだった。
インテルはメモリセル周りのエコシステムをひどく扱ったよね。彼らは二つのアプローチを試みたけど、両方とも失敗した。1. DIMM形状の「オプテイン」。これがターゲットにしていたのは二つの市場だと思う。一つは、遅いけど安くて高密度の揮発性RAMとしての使用。実際に需要があったし、さまざまなキャッシングワークロードが、サーバーに数百GBや数TBを求めていたから、オプテインはその道を提供していた。でも、マシンとDIMMは本当に手に入らなかった。次に、オプテインDIMMを永続ストレージとして使うというアイデアがあったけど、DDRインターフェースはこれを想定していなかったし、インテルはレガシー技術が邪魔をしているようだった(キャッシングシステムやメモリコントローラー)。理由はわからないけど、自社の技術を改善するのがほとんどできなかったみたい。いくつかの深刻な失敗を繰り返していたし(NMIやMCEを使った電源供給早期警告システム、メモリコントローラーにフラッシュをお願いするためのひどいプラットフォーム固有のレジスタ、そして死産のPCOMMIT命令)。2. とても良いNVMeデバイス。これはマーケティングの失敗だったと思う。適切なファイルシステムと組み合わせることで、99%のfsyncレイテンシが5マイクロ秒になるSSDラインをマーケティングしていたら、みんな買ったと思う。でも、そんなことは何もしなかった。代わりに「オプテイン」という言葉を不一致に使っていただけ。今ではPCMをバックにしたCXL接続のメモリマップドドライブを作ることができて、パフォーマンスは素晴らしいかもしれない。もしかしたら、GPUがそのデバイスからNVLinkのような速度で直接ウェイトをストリーミングするのも難しくないかも。インテルも試してみるべきだね。
「データベースやジャーナル」では、1バイトだけを更新することはめったにないんだ。データ、いくつかのインデックス、メタデータを更新するトランザクションを行うから、すべてがアトミックである必要がある。電源障害は「1バイトの更新とクレイジーなレイテンシ」の間に起こる可能性があるんだ。どんなに小さなレイテンシでも、電源障害の方が早いからね。通常、書き込み前や他のログがあって、問題を軽減してくれるんだけど、そのログは通常ストリーミング方式で書かれるんだ。ただ、良い点は「失敗の影響範囲」が通常より小さいこと。失敗した1バイトの書き込みが、他の1バイトやキャッシュラインを壊すことはめったにない。SQLiteはほとんどのディスクで512バイト(それ以上も)長の可能性のある破損に対処しなきゃいけないけど、オプテインでは必ずしもそうではない。だから、コピーするデータやスキャンするデータが少なくて済むんだ。
彼らが何をするつもりだったのか、全然理解できなかった。インテルはRAMが永続的になる未来を描いていたみたいだけど、RAMを置き換えるには全然速くなかったし、システムが変な状態になったときに再起動するオプションは、コンピュータの機能であって、回避すべき問題じゃないんだよね。
Intelの今の混乱については詳しく知らないけど、彼らはクールなプロジェクトを潰すのが得意だよね。
リアルセンスもね。
関連記事: 「ハイバンド幅フラッシュの進展と未来」(15件のコメント)、https://news.ycombinator.com/item?id=46700384 RAMが不足していて、四半期ごとに価格が上がる時代に、OptaneはスワップやCPU/GPUキャッシュにとってまだ有効だね。
うん、こういう技術が復活するかもしれないって思ったこともあるよ。
今の不足の時代に、もし今日オプテイン工場があったら、すごい利益を生むだろうね…。
そのために、8x64GBモデルを買って、同じ優先度のスワップディスクとして設定しようか考えてる。
メモリセルの物理レベルでの良い技術的説明はこちら: https://pcper.com/2017/06/how-3d-xpoint-phase-change-memory-...
オプテインは本当にすごい技術だったけど、当時は普及するには高すぎた。でも、その利点は素晴らしかったよね。あのグラフを見ると、DWPDを除けば普通のNVMeがほぼ追いついてる感じがする。もし第7世代や8世代のオプテインが普及してたら、今頃すごいことになってたと思う。
>「DWPDを除けば普通のNVMeがほぼ追いついてる感じがする。」つまり、あなたが言いたいのは、多くのワークロードにとって最も重要な指標では、フラッシュベースのNVMeは全く追いついていないってことだよね。DWPDが限られたストレージで書き込みが多いワークロードを実行すると、高いパフォーマンスは実際には耐久性を損なうことになる。
Optaneの実際の強みは、混合ワークロードにあったんだよね。フラッシュセルを書くのは難しい(読み出し-消去-書き込みサイクル、高いプログラム電圧、セッティング時間など)。Optaneはそういう負担がなかったから、50%読み込み、50%書き込みのミックスで素晴らしい数字が出たんだ。実際のワークロードの多くはそういうものだけど、ベンチマークではあまりカバーされないんだよね。だから、OSのブートドライブとしては最高なんだ。OSを読み込むために同時にたくさんのクソみたいなログ(書き込み)が行われるからね。だからOptaneがそこでは王様だった。
データベースサーバーには絶対に必要な存在だし、復活してほしいな。大きな連続ファイルアクセスには向いてないけど、小さなランダムアクセスには最高だよ:データベースにぴったり。
私の理解では、Optaneはレイテンシに関してはまだ無敵だと思うんだけど、OSボリュームとしての使い方を、今のトップSSDと比べた人いる?スループットはそんなに高くないのは分かってるけど、私の経験上、マシンの反応の良さにはレイテンシの方が重要なんだよね。
みんながOSの書き込みバッファリングのせいで関係ないって言う前に、指摘しておきたいのは、a) 今の肥大化したソフトウェアと、その上に構築された多層的で抽象化されたI/Oスタックは、不要なフラッシュをたくさん発行しがちだし、b) 読み込みのレイテンシも書き込みと同じくらい重要(いや、むしろそれ以上)で、特に全体がメモリに収まらない場合はね。
数年前に、480GBの3D Xpoint SSDを搭載したHetznerのAX101ベアメタルサーバーを設定したんだ。それがブートボリュームとして使われていて、サーバーがかなりオーバープロビジョニングされてるにも関わらず速いみたいだけど、比較する基準がないから本当のところは分からない。
> OSボリュームとしての使い方を、今のトップSSDと比べた人いる? 昨年の終わりに、1.5TBのOptane 905Pから4TBのWD Blue SN5000 NVMeドライブにゲーム用マシンを切り替えたんだけど、ロード時間が改善されたよ。読み込みと書き込みの速度が約2倍だから、納得できる。その他には目立った違いはないけどね。君が探してたユースケースじゃないと思うけど。ベンチマークでレイテンシの違いを引き出せるかもしれないけど、私はそんな風にはコンピュータを使ってない。905Pは今、大きなメディアサーバーのSSDキャッシュとして使われていて、パフォーマンスが大幅に向上したけど、比較の基準はただのスピニングドライブだからね。
ルーターに16GiBのOptane NVMe M.2ドライブをブートドライブとして使ってるんだけど、OpenWRTを動かしてる。めちゃくちゃ速くて反応が良くて、ログインフォームでエンターを押した瞬間にLuCIインターフェースが完全にロードされるんだ。
1.5TBのオプテインを2台RAID-0でXFSで使ってるよ(2年前にセールで1台300ドルで買った)。これらはPCIE 3.0 x4に制限されてて(それぞれ最大約4GB/s)。ブートドライブとして64GBのオプテインドライブも使ってる。主観的なことだから言いづらいけど、SSDとオプテインドライブの間で行ったり来たりはしてないんだ。古いシステムには2TBのSamsung 980 Pro NVMEドライブ(PCIE 4.0 x4、最大8GB/s)がルートとして使われてて、サブにはSabrent Rocket 4 Plusの4TBドライブ(これもPCIE 4.0)があるから、両方のシステムでsysbenchを実行して、違いを共有できるようにしたんだ。(古いシステムは5950X、新しいシステムは9950X3D)。特にコンパイルをしているときに、よりスナッピーに感じるよ… シーケンシャルリードでは、150GBのファイルセットから始めたけど、新しいシステムのカーネルキャッシュ(256GB RAM対128GBの古いシステム)で提供されてたから、300GBのデータを使うことにしたら、オプテインはシーケンシャルリードで5000 MiB/sを出して、980 Proは2800 MiB/s、Rocket 4 Plusは4340 MiB/sだった。ランダム書き込みだけ(読み込み負荷なし)では、オプテインシステムが2184 MiB/s、980 Proが32 MiB/s、Rocket 4 Plusが53 MiB/s。混合負荷(ランダム読み書き)では、オプテインが725/483に対して980 Proが9/6、Rocket 4 Plusが42/28だった。2x1.5TBオプテインRAID0: 準備時間: `sysbench fileio --file-total-size=150G prepare` 161061273600バイトが50.41秒で書き込まれた(3047.27 MiB/sec)。ベンチマーク: `sysbench fileio --file-total-size=150G --file-test-mode=rndrw --max-time=60 --max-requests=0 run` 警告: --max-timeは非推奨、代わりに--timeを使ってください sysbench 1.0.20(システムLuaJIT 2.1.1741730670を使用) 次のオプションでテストを実行中: スレッド数: 1 現在の時間から乱数生成器を初期化 追加のファイルオープンフラグ: (なし) 128ファイル、各1.1719GiB 150GiBの合計ファイルサイズ ブロックサイズ16KiB IOリクエスト数: 0 組み合わせランダムIOテストの読み書き比率: 1.50 定期的なFSYNCが有効、100リクエストごとにfsync()を呼び出し。テストの最後にfsync()を呼び出し、有効。同期I/Oモードを使用 ランダムr/wテストを実行中 ワーカースレッドを初期化中... スレッドが開始されました! ファイル操作: 読み取り/s: 46421.95 書き込み/s: 30947.96 fsyncs/s: 99034.84 スループット: 読み取り、MiB/s: 725.34 書き込み、MiB/s: 483.56 一般統計: 合計時間: 60.0005s 合計イベント数: 10584397 レイテンシ(ms): 最小: 0.00 平均: 0.01 最大: 1.32 95パーセンタイル: 0.03 合計: 58687.09 スレッドの公平性: イベント(平均/標準偏差): 10584397.0000/0.00 実行時間(平均/標準偏差): 58.6871/0.00 2TB NAND Samsung 980 Pro: 準備時間: `sysbench fileio --file-total-size=150G prepare` 161061273600バイトが87.15秒で書き込まれた(1762.53 MiB/sec)。ベンチマーク: `sysbench fileio --file-total-size=150G --file-test-mode=rndrw --max-time=60 --max-requests=0 run` 警告: --max-timeは非推奨、代わりに--timeを使ってください sysbench 1.0.20(システムLuaJIT 2.1.1741730670を使用) 次のオプションでテストを実行中: スレッド数: 1 現在の時間から乱数生成器を初期化 追加のファイルオープンフラグ: (なし) 128ファイル、各1.1719GiB 150GiBの合計ファイルサイズ ブロックサイズ16KiB IOリクエスト数: 0 組み合わせランダムIOテストの読み書き比率: 1.50 定期的なFSYNCが有効、100リクエストごとにfsync()を呼び出し。テストの最後にfsync()を呼び出し、有効。同期I/Oモードを使用 ランダムr/wテストを実行中 ワーカースレッドを初期化中... スレッドが開始されました! ファイル操作: 読み取り/s: 594.34 書き込み/s: 396.23 fsyncs/s: 1268.87 スループット: 読み取り、MiB/s: 9.29 書き込み、MiB/s: 6.19 一般統計: 合計時間: 60.0662s 合計イベント数: 135589 レイテンシ(ms): 最小: 0.00 平均: 0.44 最大: 15.35 95パーセンタイル: 1.73 合計: 59972.76 スレッドの公平性: イベント(平均/標準偏差): 135589.0000/0.00 実行時間(平均/標準偏差): 59.9728/0.00 4TB Sabrent Rocket 4 Plus: 準備時間: `sysbench fileio --file-total-size=300G prepare` 322122547200バイトが152.39秒で書き込まれた(2015.92 MiB/sec)。ベンチマーク: `sysbench fileio --file-total-size=300G --file-test-mode=rndrw --max-time=60 --max-requests=0 run` 警告: --max-timeは非推奨、代わりに--timeを使ってください sysbench 1.0.20(システムLuaJIT 2.1.1741730670を使用) 次のオプションでテストを実行中: スレッド数: 1 現在の時間から乱数生成器を初期化 追加のファイルオープンフラグ: (なし) 128ファイル、各2.3438GiB 300GiBの合計ファイルサイズ ブロックサイズ16KiB IOリクエスト数: 0 組み合わせランダムIOテストの読み書き比率: 1.50 定期的なFSYNCが有効、100リクエストごとにfsync()を呼び出し。テストの最後にfsync()を呼び出し、有効。同期I/Oモードを使用 ランダムr/wテストを実行中 ワーカースレッドを初期化中... スレッドが開始されました! ファイル操作: 読み取り/s: 2690.28 書き込み/s: 1793.52 fsyncs/s: 5740.92 スループット: 読み取り、MiB/s: 42.04 書き込み、MiB/s: 28.02 一般統計: 合計時間: 60.0155s 合計イベント数: 613520 レイテンシ(ms): 最小: 0.00 平均: 0.10 最大: 8.22 95パーセンタイル: 0.32 合計: 59887.69 スレッドの公平性: イベント(平均/標準偏差): 613520.0000/0.00 実行時間(平均/標準偏差): 59.8877/0.00
一つの可能性として期待していたのは、従来のフラッシュSSDの前に置くことで、非常に優れた電源喪失保護が得られることだった。書き込みが持続されたことを正しく報告するためには、全体のSSD容量に対して少しだけあればいいし、常に動いているから「本当に必要なときにPLPが機能するのか?」って疑問も少なくて済む。(もしかしたら、リードキャッシュとしての使い道もあるかも?でもホストRAMの方がいいかもね。)何度も書き換えられるけど、それに対応する準備ができているはず。商業的には新しい不揮発性メモリのための非常に狭いウィンドウがあるみたい。フラッシュのスループットは非常にコスト効率よくスケールするし、すでに数十マイクロ秒のレイテンシ(あるいはそれ以上、ネットワークブロックストレージ!)に対処するために多くが構築されている。読み込みのレイテンシはキャッシュで解決できるし、書き込みはコミットレイテンシを受け入れるか、ちょっと無理をして(複製された書き込みを安全と見なすか...ただ安全でないままにするか)することができる。フラッシュを超えるためには、飛躍する価値があるほどの改善が必要で、他のアプローチよりも安くなければならないし、それを実現する自信がなければ、前もってたくさん投資するのは難しい。簡単じゃないね!
> 商業的には新しい不揮発性メモリのための非常に狭いウィンドウがあるみたい。フラッシュのスループットは非常にコスト効率よくスケールするけど、フラッシュは書き込みが重いワークロードには向いてないし、ランダムアクセスのR/WパフォーマンスはOptaneと比べると微妙だね。MLCやSLCは耐久性とパフォーマンスがいいけど、やっぱり中途半端。
まともなSSDには、キャパシタ(エンタープライズ向け)やバッテリーでバックアップされた(スマホ用の)DRAMがあるよね。だから、同期書き込みは「データをPCIe経由でI/Oバッファにコピーする」だけなんだ。データベースでは、小さな散発的な書き込みや、ログの末尾への小さな上書きがたくさんあるから、現代のSSDはそのバッファ内で書き込みをまとめて、書き込みの摩耗を大幅に減らしてる。これによって、実効書き込み帯域幅がメディアの書き込み帯域幅を超えることも可能になるんだ。これらの仕組みは、オプテインよりずっと安いよ。
> ひとつの可能性として、従来のフラッシュSSDの前に非常に優れた電源喪失保護があることに期待してたんだけど、それはうまくいかなかった。ストレージスタックに全く新しい種類のメモリを追加するのは、いくつかの大きなキャパシタをドライブに追加して、オプテインがあろうがなかろうがSSDがまだ必要とするDRAMの内容を保存できるようにするよりも、簡単でも安くもなかったんだ。
オプテインの衰退の要因の一つは、低価格のノートパソコンメーカーの不誠実さだったと思う。貧乏学生がエントリーレベルの安いノートパソコンを探していて、4GBの「メモリ」を搭載したモデルがたくさんあったのに、突然「20GBメモリ」のモデルが同じ価格で出てきた。普通の人には魅力的に見えたけど、実際には4GBのRAM + 16GBのオプテイン不揮発性ストレージ(おそらく残りは32GBのSSD)だったんだ。オプテインはWindows OSを保存するためのドライブとして扱われる
俺は一度も買ったことないんだけど、Optaneって低スペックの構成でしか見たことなかったからさ。小さいSSDに使い道があるとは思えなかった。廃盤になってから、やっと詳しく知るようになったよ。
今日、代わりになるものってあるのかな?新しいPCIe5のSSDをベンチマークしたんだけど、ランダムな小さなデータの読み書きは10GB/sを超えるのに、全体的には70MB/sにも満たないんだ。対して、Optaneはそれの5倍速かったよ。