はじめに
最近オブジェクトストレージをgoofysやs3fsなどでマウントして、通常のディスクと同じように利用するケースが多くなっております。
IBM CloudにもIBM Cloud Object Storage(ICOS)というサービスが存在し、仮想サーバからマウントして利用することが可能となっております。
ただ通常のディスク(Block Storage, File Storage)と違い、トランザクションを中心としたストレージではないため、どのくらいの性能が出るかは気にかかるところです。
今回、vpc上のVSIからICOSをgoofysでマウントして性能検証しましたので、簡単に共有いたします。
比較のため、ローカルディスクも参考に計測しております。
検証環境
IBM CloudのTOKYOリージョンのvpc環境で実施しております。
【サーバ】
・Virtual Servers for vpc
・OS : CentOS Stream 9 (Default設定)
・SPEC : bx2-2x8 (2vCPU, 8GB)
・NW Bandwidth : 3000Mbps
検証テスト内容
ケース1) オブジェクトストレージ
・IBM Cloud Object Storage
goofys によりマウント(デフォルト・オプション)
$ goofys --endpoint https://s3.direct.jp-tok.cloud-object-storage.appdomain.cloud (bucket名) /mnt/icos
ケース2) ローカルディスク
・容量 100GB(3,000 IOPS)
【検証方法】
ddコマンドにて3つの異なるサイズのファイルをそれぞれの対象のストレージに作成。
3回試行の平均値
$ dd if=/dev/zero of=1G.dat bs=1M count=1000
※ bs:バッファーサイズ(全てのケース 1M固定)
※ 上記のコマンドは1GBファイルの場合(1Mを1000回書き込む)
検証結果
検証結果に対するコメント
ICOSの性能検証は、特にキャッシュが効いていないため、ICOSへの実際の書き込みスピードと考えられます。
またgoofysにもローカルディスクにキャッシュする機能があるので、そちらを利用することで更に性能を上げることは可能であると考えられます。
ローカルディスクの場合は、ファイルキャッシュがきいているため、実際のディスクIO性能ではないと考えられます。10GBケースはキャッシュが足りなくなり、 性能が下がっているものと考えられます。
さいごに
ICOSへのIO性能として、ブロックサイズなどを変更することで値が変わる可能性はありますが、一つの目安としていただければと思います。
実際にgoofysなどでマウント利用されるケースは、事前にその利用ケースで計測することをおすすめいたします。