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回測定した後の中央値とする。
検証結果
- ddコマンドを用いて、大型のファイルを作成する時間を測定
- ddコマンドを用いて、小型のファイルを大量に作成する時間を測定
- アパッチベンチで100セッションを同時に送り、Request per secondを測定
- Fioでのベンチマーク
- random writeで10MBを16個並列で作成
-
fio -name=r -direct=1 -rw=randwrite -bs=4k -size 10M -numjobs=16 -runtime=16 -group_reporting
-
- random readで10MBを16個並列で読み込み
-
fio -name=r -direct=1 -rw=randread -bs=4k -size 10M -numjobs=16 -runtime=16 -group_reporting
-
- random writeで10MBを16個並列で作成
結果
- 今回の環境においては、単一のファイル作成、並列でのREADはCephFSのほうが速い。
- 並列でファイルを作成する場合においては、GlusterFSのほうが速かった。
まとめ
- 読み込みではCephFS、書き込みではGlusterFSの方が優秀と一長一短な結果となりました。
- 弊社のWordPressを用いている案件では読み込みの方が重要なので、CephFSの方を採用すべきです。しかし、最新のCephFS検証において以下の不具合が発生したため、これからはGlusterFSを採用しようと考えています。
- CephFSの不具合
- FIOで(random write)のサイズを一定以上大きくした場合に、処理が止まってストレージにアクセスできくなる
- CephFSの不具合
最後に
“gluster backed block storage” を作成し、メンテナンスを容易にするgluster-blockが現在開発中のようです。これが上手く機能すれば、CephFS並の読み込み速度を得られるのではないかと期待しています。
検証してみたかったのですが、CentOS7では動かないようなので、今回は見送りました。
WordPressでオートスケールを構築する際、ストレージ候補の参考になれば幸いです。
-
前の記事
HALインターンシップレポート(東京本社編) 2017.11.10
-
次の記事
Aimingインフラチームを支え(てくれてい)る技術と設計(3/3) 2017.11.29