ストレージの導入を検討する際に、ストレージベンダーのホームページやカタログを確認しているとIOPSという言葉が頻繁に出てきますよね。例えばNetAppのオールフラッシュアレイ AFF8000のホームページを見てみると、いきなり「4,000,000 IOPSまで拡張可能」と記述があります。
社内のエンジニアに「IOPSについて知りたい」と話したところ、「IOPSは『インプット・アウトプット Per Second』といって、1秒あたりの処理できるインプット・アウトプットの数ですよ」と説明されるかもしれません。
正直、なんとなくはわかるものの、これではあまりに簡単かつ不親切な説明ですね。結局IOPSがストレージ性能にどう影響しているのかが分かりません。
そこで今回は、この「IOPS」について詳しく説明していきたいと思います。正しい製品選定のために詳しく知りたいという方は、ぜひ参考にしてください。
IOPSの「IO」とは、インプットとアウトプットの頭文字を取ったものです。では、このインプットとアウトプットとは何を指しているのでしょうか?
答えは、データの「書き込み」と「読み込み」を示しています。
インプットは日本語で「入力」という意味があります。入力とはつまり「データの入力」のことで、システムサーバからストレージにデータを入力することを指しています。そのため、インプットはデータの「書き込み」です。
一方のアウトプットは日本語で「出力」という意味があります。ストレージから「データが出る」ということは、システムサーバがストレージ内のデータを参照にしていたり、別のストレージに移行するなどの場合を指します。そのため。アウトプットはデータの「読み込み」です。
一つ注意していただきたいのは、「IO」とはデータの「書き込み・読み込み」であり、「書き込んだり、読み込んだり」と一連の動作を表しているわけではありません。あくまで「書き込み」と「読み込み」という単語を、ひとまとめにしただけです。
例えば「I/Oデータ」という表現がある場合、「入って出ていったデータ」ではなく、「入ったデータ」と「読み込まれたデータ」という2種類のデータを指しています。
インプットとアウトプットの意味を理解したところで、改めて「IOPSとは何か?」について説明します。
IOPSの「PS」の部分は「Per Second(1秒あたりの)」という意味があるので、統合して考えるとIOPSとは「ストレージが1秒あたりに処理できるI/Oアクセスの数」ということになります。
もちろんこのIOPSが高いほど1秒間に処理できる数が多いわけですので高性能ということになります。
IOPS=1 / (平均アクセス時間+データ転送時間)
ここで平均アクセス時間とはシークタイムと回転待ち時間の和になります。
例えば8Kバイトのデータを書き込むために、平均アクセス時間 1ミリ秒のストレージにデータ転送速度が1ミリ秒だとします。そうすると以下のような計算式で500 IOPSとなります。つまりこのストレージは1秒間に500回データが書き込めることになるわけです。
IOPS=1/(1ミリ秒+1ミリ秒)=500 IOPS
読み込みや書き込みが多いデータベースアプリケーションなどは、このIOPSが高ければ高いほど処理はスムーズに行われるのです。
また、実際には読み込みや書き込み、転送するデータ量によってこのIOPSは変化するため正確な表現をする場合には、上記の例では「8KBランダムライトIOPS」というように条件を明記します。
今あるストレージ製品を大別すると、ディスクドライブを使用したものと、フラッシュメモリを使用したものが存在します。
ディスクドライブとは製品内に何枚もの光ディスクを搭載し、ある規則に従ってデータを読み書きすることで、大量のデータを保存を可能にしたものです。一般的には「HDD(ハード・ディスク・ドライブ)」と呼ばれたストレージ製品がそれに該当します。
HDD製品のIOPSは、1分あたりの回転数(RPM)によって変化します。現在の主流なRPMの中で最も高速なのが1万5,000RPMです。というより、HDD製品は機械部品を多く使用していることから、1万5,000RPM以上の回転数の実現が難しいという特徴があります。
このためIOPSにも限界があり、1万5,000RPMのHDD製品で最大で210IOPSほどに留まります。
一方のフラッシュメモリとは、記憶媒体に「セル」と呼ばれる電子を溜めこんだチップを使用し、そこでデータを蓄積していきます。HDD製品ほどの大容量化は進んでいないものの、機械部品が少ない分処理性能が大幅に向上しています。
フラッシュメモリを採用した一般的な製品といえば「SSD(ソリッド・ステート・ドライブ)」です。現在ではデスクトップPCのストレージにも幅広く採用されています。デスクトップPC向けのSSD製品IOPSは5万IOPS以上です。消費者向けのSSD製品でもHDD製品の100倍以上の性能があります。
企業向けのフラッシュメモリを採用したストレージ製品はというと、冒頭にご紹介しましたNetApp AFFでは400万IOPSなど、数十万から数百万 IOPSを実現する製品もあり、思い通りの処理性能が出ないという問題も発生しません。
IOPSが高いことで発生するメリットは、何も「情報システムの作業が楽になる」だけではありません。一番重要なメリットは「業務アプリケーションのパフォーマンスを最大限に引き出せること」でしょう。
「人材不足」や「急激な変化への対応」といった課題が重要視されている中、多数の企業が「生産性向上」に向けた様々な取り組みを行っています。一方は「残業時間短縮」に取り組んだり、一方は「フレックスタイム制」を取り入れたりなど、その取り組みは実に様々です。
中でも高い効果を発揮するのが「システムパフォーマンスの向上」でしょう。
点在する各業務アプリケーションのパフォーマンスをそれぞれ向上すれば、システム操作にかかる遅延も少なくなり、必然的に生産性が向上します。
データ量の急激な増加が問題視されている中、システムパフォーマンスが低下し、相対的に生産性が低下してしまっています。ストレージのIOPS数値が高いと、システムパフォーマンスを最大限に高め、生産性も向上できるのです。
また、パフォーマンスはコストに直結します。大量の処理を高性能なストレージで賄えるため、ストレージ購入も最低限に抑えられるでしょう。それにより設置スペースコスト、電力コストなどあらゆるものが連動しコストが圧縮できるのです。
IOPSは、ストレージの性能指標を表現する重要な役割であることをご理解いただけたかと思います。このIOPS性能が高い製品は総じて高性能であることに間違いはありませんが、製品選定の際には実際に試してみることが重要になってきます。
このブログは2023年8月まで公開していましたストレージチャンネルからの転載となります。
2019年4月よりNetAppに入社。IT業界でのマーケティング業務にて長年に渡り培ってきた経験を活かし、ABM、イベント企画・運営、コンテンツマーケティング、広告など幅広くフィールドマーケティング業務に従事しています。