GlusterFSの概要と設定方法

GlusterFSとは

GlusterFSは、クラスタ型NASストレージシステムであり、POSIX準拠の分散ファイルシステムです。TCP/IP経由で接続され、並列ネットワークファイルシステムとして動作します。ネイティブのGlusterFSプロトコルの他、NFS/CIFSプロトコルを使ってもアクセス可能です。メタデータサーバーを持たない設計により、高いパフォーマンス、信頼性、安定性を実現しています。

主な用語

用語説明
Brickストレージの最小単位。信頼できるストレージプールで提供されるディレクトリ。
Volume複数のBrickで構成される論理ボリューム。
FUSEカーネルを変更せずにユーザー空間でファイルシステムを実装するためのモジュール。
GlusterdGlusterFSの管理デーモン。すべてのストレージサーバーで動作。
POSIXGlusterFSが準拠する標準インターフェース。

ボリュームの種類

  • 基本ボリューム
    • 分散ボリューム(Distributed Volume)
    • ストライプボリューム(Striped Volume)
    • レプリカボリューム(Replicated Volume)
  • 複合ボリューム
    • 分散ストライプボリューム
    • 分散レプリカボリューム
    • ストライプレプリカボリューム
    • 分散ストライプレプリカボリューム

他の分散ファイルシステムとの比較

比較項目GlusterFSMooseFSLustreCeph
成熟度2005年リリース。成熟したアーキテクチャ。2008年リリース。安定。2003年リリース。HPC分野で広く利用。2013年リリース。実験段階。
安定性高い。多くのプロダクション環境で使用。安定。非常に安定。RADOSは安定。一部企業での導入あり。
複雑さシンプル。メタデータサーバーなし。シンプル。モジュール構造。カーネル依存で複雑。機能豊富で複雑。
パフォーマンスメタデータボトルネックなし。メタデータがボトルネック。HPC向け高性能。データ分散が均等。
拡張性数百PBまで線形拡張。ストレージノードは拡張可能。数百PBまで。10〜1000ノード。
可用性AFR、DHT、ストライプ。メタデータ+ログ。高可用性設計。自動修復機能。
管理性簡単。GUIなし。簡単。GUIあり。複雑。カーネル依存。中程度。GUIあり。
開発コスト低。ユーザースペース。低。高。高。
用途大規模ファイルストレージ。小規模。メタデータ制限。HPC向け。汎用。

設定とインストール

前提条件

  • IPアドレス構成:
    • 192.168.1.11 gluster-1-1
    • 192.168.1.12 gluster-1-2
    • 192.168.1.13 gluster-1-3
  • /etc/hostsの設定、時間同期、iptablesとSELinuxの無効化。
  • 各サーバーに10GBのストレージディスクを追加。

インストール手順


# YUMリポジトリ設定
echo "[gluster]
name=GlusterFS
baseurl=http://bits.gluster.org/pub/gluster/glusterfs/3.4.2/x86_64
enabled=1" > /etc/yum.repos.d/gfs.repo

# 必要パッケージのインストール
yum install -y rpcbind libaio lvm2-devel
yum install -y glusterfs-server glusterfs glusterfs-cli glusterfs-fuse glusterfs-libs glusterfs-api

# ディスクのフォーマット
mkfs.ext4 /dev/sdb
mkdir /brick1
mount /dev/sdb /brick1

クラスタ構築


# サービス起動
/etc/init.d/glusterd start

# ノード追加
gluster peer probe gluster-1-2
gluster peer probe gluster-1-3

# 状態確認
gluster peer status

ボリューム作成


# 分散ボリューム
gluster volume create dis_vol gluster-1-1:/brick1 gluster-1-2:/brick1 gluster-1-3:/brick1

# レプリカボリューム
gluster volume create rep_vol replica 2 gluster-1-1:/brick1 gluster-1-2:/brick1

# ストリーピングボリューム
gluster volume create str_vol stripe 3 gluster-1-1:/brick1 gluster-1-2:/brick1 gluster-1-3:/brick1

# ボリューム起動
gluster volume start dis_vol

クライアント設定


# マウント
mount -t glusterfs gluster-1-1:/dis_vol /mnt

# テスト
touch {1..9}.txt
rm 4.txt

ノード操作


# ノード削除
gluster peer detach gluster-1-2

# ノード追加
gluster peer probe gluster-1-2
gluster volume add-brick dis_vol gluster-1-2:/brick1

# データ再バランス
gluster volume rebalance dis_vol fix-layout start
gluster volume rebalance dis_vol start

ボリューム削除


# アンマウント
umount /mnt

# 停止と削除
gluster volume stop dis_vol
gluster volume delete dis_vol

その他の設定


# アクセス制限
gluster volume set dis_vol auth.allow 192.168.1.*

# NFS無効化
gluster volume set dis_vol nfs.disable on

タグ: GlusterFS distributed filesystem storage linux NAS

6月16日 18:25 投稿