CephFSとGlusterFSの性能比較検証


こんにちは! インフラエンジニアの趙です。

業務では、主にゲーム公式サイトのインフラまわりを担当しています。

弊社の一部公式サイトでは、WordPressを用いてオートスケールを導入しています。データ以外でステートフルな部分はCephFSにまかせています。

CephFSの運用につきましては、弊社小熊の記事に詳細がありますのでご参考にしてください。

ちまたではCephFSよりもGlusterFSを使っている方が多く、理由の一つとしてその速度がよくあげられていますが、特に比較記事が存在しないようでしたので検証してみました。

今回、用いたCephFSは2017年の8月にリリースされたばかりのLuminousになります。
リリースノートを見る限りでは、jewel(前のLTS ver)よりも速度の面においてかなり進化してる模様です。

検証に用いたOSS一覧

OSS Version
CephFS 12.2.2
GlusterFS 3.10.5
nginx 1.10.1
php 7.1.9
MariaDB 10.1.26

CephFSの構成図

GlusterFSの構成図

検証方法

  • 測定するたびに必ずLinuxのcacheをpurgeする。
    • e.g. ) echo 3 > /proc/sys/vm/drop_caches
  • 測定結果は3回測定した後の中央値とする。

 

検証結果

  1. ddコマンドを用いて、大型のファイルを作成する時間を測定
  2. ddコマンドを用いて、小型のファイルを大量に作成する時間を測定
  3. アパッチベンチで100セッションを同時に送り、Request per secondを測定
  4. Fioでのベンチマーク
    1. random writeで10MBを16個並列で作成
      1. fio -name=r -direct=1 -rw=randwrite -bs=4k -size 10M -numjobs=16 -runtime=16 -group_reporting
    2. random readで10MBを16個並列で読み込み
      1. fio -name=r -direct=1 -rw=randread -bs=4k -size 10M -numjobs=16 -runtime=16 -group_reporting

結果

  • 今回の環境においては、単一のファイル作成、並列でのREADはCephFSのほうが速い。
  • 並列でファイルを作成する場合においては、GlusterFSのほうが速かった。

 

まとめ

  • 読み込みではCephFS、書き込みではGlusterFSの方が優秀と一長一短な結果となりました。
  • 弊社のWordPressを用いている案件では読み込みの方が重要なので、CephFSの方を採用すべきです。しかし、最新のCephFS検証において以下の不具合が発生したため、これからはGlusterFSを採用しようと考えています。
    • CephFSの不具合
      • FIOで(random write)のサイズを一定以上大きくした場合に、処理が止まってストレージにアクセスできくなる

 

最後に

“gluster backed block storage” を作成し、メンテナンスを容易にするgluster-blockが現在開発中のようです。これが上手く機能すれば、CephFS並の読み込み速度を得られるのではないかと期待しています。
検証してみたかったのですが、CentOS7では動かないようなので、今回は見送りました。
WordPressでオートスケールを構築する際、ストレージ候補の参考になれば幸いです。