GlusterFSのパフォーマンス関連トピック
Upcoming SlideShare
Loading in...5
×
 

GlusterFSのパフォーマンス関連トピック

on

  • 5,254 views

GlusterFSのパフォーマンスに関連したトピックをちょろっと紹介するスライド

GlusterFSのパフォーマンスに関連したトピックをちょろっと紹介するスライド

Statistics

Views

Total Views
5,254
Views on SlideShare
5,050
Embed Views
204

Actions

Likes
23
Downloads
57
Comments
0

4 Embeds 204

https://gitter.im 170
https://twitter.com 30
http://openlink.to 3
http://s.deeeki.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

GlusterFSのパフォーマンス関連トピック GlusterFSのパフォーマンス関連トピック Presentation Transcript

  • GlusterFSの パフォーマンス関連トピック もりわかかずお
  • 構成例 10GbEスイッチ x 2 10GbE接続 10GbE / 1GbE接続 ・・・ ストレージノード x 4 クライアントノード 群
  • s213s211 s212 s214 GlusterFS サーバ GlusterFS クライアント Native Clientイメージ gluster srv. gluster cli. gluster srv. gluster srv. gluster srv. glusterfs独自プロトコル FUSE View slide
  • Native Clientのネットワーク転送量 ● レプリケーション個数分、クライアントは各サーバにwrite をおこなう ● サーバ間の通信は基本的に発生しない ● 例: レプリケーション数2でwriteを1回おこなった場合: – クライアント←→サーバ: 2回 – サーバ←→サーバ: なし ・・・ View slide
  • s213s211 s212 s214 GlusterFS サーバ GlusterFS クライアント CIFS clientイメージ(file system経由) FUSE gluster cli. gluster srv. FUSE gluster cli. gluster srv. FUSE gluster cli. gluster srv. FUSE gluster cli. gluster srv. glusterfs独自プロトコル samba samba samba samba CIFS プロトコル
  • s213s211 s212 s214 GlusterFS サーバ GlusterFS クライアント CIFS clientイメージ(libgfapi利用) gluster srv. gluster srv. gluster srv. gluster srv. glusterfs独自プロトコル samba CIFS プロトコル libgfapi samba libgfapi samba libgfapi samba libgapi
  • s213s211 s212 s214 GlusterFS サーバ GlusterFS クライアント NFS clientイメージ NFS gluster cli. gluster srv. NFS gluster cli. gluster srv. NFS gluster cli. gluster srv. NFS gluster cli. gluster srv. NFSv3 + NLMプロトコル glusterfs独自プロトコル
  • non-native (NFS, CIFS) clientの ネットワーク転送量 ● クライアントはmountしているサーバへ1回 writeをおこなう ● サーバはglusterfsのAPIでサーバ←→サーバ 間でレプリケーション個数分のwriteをおこ なう – クライアントが通信した先のサーバと実 際に書き込まれるべきサーバが同じ場合 も違う場合もありうる ● 例: レプリケーション数2でwriteを1回おこ なった場合: – クライアント←→サーバ: 1回 – サーバ←→サーバ: 1回ないし2回 ・・・
  • tunedプロファイル ● Red Hat Storageではglusterfs用プロファイルが同梱 – rhs-high-throughput プロファイル ● スループットを重視した設定 – rhs-virtualization プロファイル ● レイテンシを重視した設定 ● 設定方法: 各サーバで以下のコマンドを実行 – tuned-adm profile プロファイル名
  • ネットワーク ● VLANの分離、別スイッチの利用によるサーバ – NFS, CIFS利用時に有用 – ストレージサーバ間のgluster client←→gluster server通信がで きるだけクライアントに影響しないようにする ● ジャンボフレームの利用 – ディスクI/Oは4kB以上の読み書きが多いため、MTUを大きくす ることでスループット向上に寄与する場合が多い ● 複数NICのbonding – 送信先MACアドレスにより利用インタフェースを変更する balance-alb (mode=6) を利用する ● クライアントとサーバの間にルータが入ると利用不可 – ネットワーク帯域幅がボトルネックになっている場合に有効
  • ボリュームのロック設定 ● gluster volume set volume-name eager-lock on – ロック取得時に、レコードロックであってもまずファ イル全体のロック取得をためし、失敗した場合に必要 な範囲だけのロックを取得する。 ● 複数クライアントから同一ファイルへのI/Oが競合し ない場合に有用 ● 同一クライアント、同一ファイルへのI/O処理が並列 に発生した場合、ロック再取得のオーバーヘッドが 削減できる
  • 並列度設定 ● glusterfsの並列度設定 performance.io-thread-count – アプリケーションのI/O並列度>glusterfsの並列度 の場 合問題になりやすい – 小さなread/writeを多数実行する場合も問題になりやす い
  • XFSフォーマット時のパラメータ glusterfsのバックエンドとなるXFSフォーマット時のパラメータを検 討します 例: mkfs.xfs -i size=512 -n size=8192 -d su=256k,sw=10 /dev/device_name – -i size=512: inodeサイズは512bytes(動作要件) – -n size=8192: ディレクトリサイズの初期値を 8kBにする(デフォルトは4kB): ● 1ディレクトリ中のファイル数が多い場合に有効 – -d su=256k,sw=10: RAIDのstripe unitサイズ 256kB, stripe width 10 ● ハードウェア構成にあわせて指定する
  • ボトルネックは? ● いろいろなパターンがありますがおおまかには…… – 読み書きのデータサイズが小さい場合にはストレージ のIOPS, 並列度, CPU消費が問題になりやすい – 読み書きのデータサイズが大きい場合にはネットワー ク帯域幅が問題になりやすい
  • その他検討にあたいするもの ● クライアント側カーネルのread-ahead設定 – アプリケーションが細かなreadを行う場合にread-ahead設 定による先読みでreadをまとめることができる場合がある ● NFSの利用によるread/writeの集約 – NFSはO_SYNC, fsyncの呼び出し等がなければ30秒程度の キャッシュ不整合を許す – 連続もしくは近い領域へのread/writeを集約して読み書き の頻度を減らすことができる場合がある