データが予測不能な方法で増加している世界に生きており、構造化されたか非構造化されたかにかかわらず、このデータを効率的に保存する必要があります。分散コンピューティングシステムは、集中型コンピューティングシステムよりも多くの利点を提供します。ここでは、データが複数のノードとしてのサーバーで分散して格納されます。

メタデータサーバーの概念は、分散ファイルシステムではもはや必要ありません。分散ファイルシステムでは、異なるサーバーに分割されたすべてのファイルの共通のビューポイントを提供します。これらのストレージサーバー上のファイル/ディレクトリは通常の方法でアクセスされます。
たとえば、ファイル/ディレクトリの権限は、通常のシステム権限モデルで設定できます。つまり、所有者、グループ、その他です。ファイルシステムへのアクセスは、基本的に、特定のプロトコルが同じように動作するように設計されているかどうかに依存します。
GlusterFSとは何ですか?
GlusterFSは、ユーザースペースで使用されるように定義された分散ファイルシステムです、すなわち、ユーザースペースでのファイルシステム(FUSE)。これは、独自の柔軟性機能を備えたソフトウェアベースのファイルシステムです。
次の図を見てください。これは、階層モデルにおけるGlusterFSの位置を模式的に表しています。デフォルトでは、GlusterFSではTCPプロトコルが使用されます。

GlusterFSの利点
- イノベーション – メタデータを排除し、パフォーマンスを劇的に向上させることで、データとオブジェクトを統合するのに役立ちます。
- 弾力性 – データのサイズの増減に適応します。
- 線形にスケール – ペタバイト以上の容量を持っています。
- シンプリシティ – カーネルから独立してユーザースペースで実行されるため、管理が簡単です。
Glusterを他の分散ファイルシステムと比較して優れたものにするのは何ですか?
- スケーラブル – メタデータサーバーの不在がより高速なファイルシステムを提供します。
- 手頃な価格 – 汎用ハードウェア上に展開されます。
- 柔軟性 – 先に述べたように、GlusterFSはソフトウェア専用のファイルシステムです。ここでは、データはext4、xfsなどのネイティブファイルシステムに保存されます。
- オープンソース – 現在、GlusterFSはRed Hat Incによってメンテナンスされており、これは10億ドルのオープンソース企業であり、Red Hat Storageの一部です。
GlusterFSのストレージコンセプト
- ブリック – ブリックは、信頼されたストレージプール間で共有される任意のディレクトリです。
- 信頼されたストレージプール – 設計されたプロトコルに基づいているこれらの共有ファイル/ディレクトリのコレクションです。
- ブロックストレージ – データがブロックの形式でシステム間を移動するデバイスです。
- クラスタ – Red Hat Storageでは、クラスタと信頼されたストレージプールは、定義されたプロトコルに基づいてストレージサーバーが協力することを意味します。
- 分散ファイルシステム – データが異なるノードに分散され、ユーザーはファイルの実際の場所を知らずにファイルにアクセスできるファイルシステム。ユーザーはリモートアクセスの感覚を経験しません。
- FUSE – カーネルコードを関与させずにカーネル上にファイルシステムを作成できるローダブルカーネルモジュールです。
- glusterd – GlusterFSの管理デーモンであり、サーバーがアクティブな状態にあるときに常に実行されるファイルシステムの中核です。
- POSIX – 移植可能なオペレーティングシステムインターフェース(POSIX)は、IEEEによって定義されたUnix系の互換性の解決策としての標準のファミリーであり、アプリケーションプログラマブルインターフェース(API)の形式で提供されます。
- RAID – 冗長な独立ディスクアレイ(RAID)は、冗長性を通じて増加したストレージ信頼性を提供する技術です。
- サブボリューム – 少なくとも1つのトランスレータによって処理されたブリック。
- トランスレータ – ユーザーからマウントポイントから開始された基本的なアクションを実行するコードの一部です。1つ以上のサブボリュームを接続します。
- ボリューム – ボリュームはブリックの論理的なコレクションです。ユーザーによって作成された異なるタイプのボリュームに基づいてすべての操作が行われます。
異なる種類のボリューム
異なる種類のボリュームの表現とこれらの基本ボリュームタイプの組み合わせも許可されます。



Distributed Replicated Volume
分散複製ボリューム

分散複製ボリュームの表現。
RHEL/CentOSおよびFedoraでのGlusterFSのインストール
この記事では、ストレージの高可用性のためにGlusterFSを初めてインストールして設定します。これには、2つのサーバーを使用してボリュームを作成し、データをレプリケートします。
- ステップ: 1 ノードを少なくとも2つ持っていますCentOS 6.5(または他のOS)を2つのノードにインストールします。
- ホスト名を「server1」および「server2」として設定します。
- A working network connection.
- 両方のノードにストレージディスクを「/data/brick」として設定します。
ステップ2: EPELおよびGlusterFSリポジトリを有効にする
両方のサーバーでGlusterFSをインストールする前に、外部依存関係を満たすためにEPELおよびGlusterFSリポジトリを有効にする必要があります。以下のリンクを使用して、両方のシステムにepelリポジトリをインストールして有効にします。
次に、両方のサーバーでGlusterFsリポジトリを有効にする必要があります。
# wget -P /etc/yum.repos.d http://download.gluster.org/pub/gluster/glusterfs/LATEST/EPEL.repo/glusterfs-epel.repo
ステップ3: GlusterFSのインストール
両方のサーバーにソフトウェアをインストールします。
# yum install glusterfs-server
GlusterFS管理デーモンを起動します。
# service glusterd start
今、デーモンの状態を確認します。
# service glusterd status
サンプル出力
service glusterd start service glusterd status glusterd.service - LSB: glusterfs server Loaded: loaded (/etc/rc.d/init.d/glusterd) Active: active (running) since Mon, 13 Aug 2012 13:02:11 -0700; 2s ago Process: 19254 ExecStart=/etc/rc.d/init.d/glusterd start (code=exited, status=0/SUCCESS) CGroup: name=systemd:/system/glusterd.service ├ 19260 /usr/sbin/glusterd -p /run/glusterd.pid ├ 19304 /usr/sbin/glusterfsd --xlator-option georep-server.listen-port=24009 -s localhost... └ 19309 /usr/sbin/glusterfs -f /var/lib/glusterd/nfs/nfs-server.vol -p /var/lib/glusterd/...
ステップ4: SELinuxおよびiptablesの構成
‘/etc/sysconfig/selinux‘を開き、両方のサーバーでSELinuxを「permissive」または「disabled」モードに変更します。ファイルを保存して閉じます。
# This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # mls - Multi Level Security protection. SELINUXTYPE=targeted
次に、両方のノードでiptablesをフラッシュするか、iptablesを介して他のノードへのアクセスを許可する必要があります。
# iptables -F
ステップ5:信頼されたプールの構成
「Server1」で次のコマンドを実行します。
gluster peer probe server2
「Server2」で次のコマンドを実行します。
gluster peer probe server1
注意:このプールに接続されると、信頼されたユーザーのみがこのプールに新しいサーバーをプローブできます。
ステップ6:GlusterFSボリュームの設定
両方のserver1およびserver2で。
# mkdir /data/brick/gv0
任意の単一のサーバーでボリュームを作成し、ボリュームを開始します。ここでは、「Server1」を使用しました。
# gluster volume create gv0 replica 2 server1:/data/brick1/gv0 server2:/data/brick1/gv0 # gluster volume start gv0
次に、ボリュームの状態を確認します。
# gluster volume info
注意:場合によっては、ボリュームが開始されない場合、エラーメッセージが1つまたは両方のサーバーの「/var/log/glusterfs」にログされます。
ステップ7:GlusterFSボリュームの検証
ボリュームを「/mnt」以下のディレクトリにマウントします。
# mount -t glusterfs server1:/gv0 /mnt
これで、ファイルシステムの単一のビューとしてマウントポイント上でファイルを作成、編集できます。
GlusterFSの機能
- セルフヒール – 複製されたボリューム内のいずれかのブリックがダウンしており、ユーザーが他のブリック内のファイルを変更した場合、次にブリックがアップされると、自動セルフヒールデーモンがアクションに移り、ダウンタイム中に発生したトランザクションが同期されます。
- リバランス – 既存のボリュームに新しいブリックを追加した場合、以前に大量のデータが存在した場所に、データを新しく追加されたブリックを含むすべてのブリックに分散するためにリバランス操作を実行できます。
- ジオレプリケーション – 災害復旧のためにデータのバックアップを提供します。ここでは、マスターボリュームとスレーブボリュームの概念が登場します。したがって、マスターがダウンした場合、データ全体にスレーブ経由でアクセスできます。この機能は、地理的に分離されたサーバー間でデータを同期するために使用されます。ジオレプリケーションセッションの初期化には、一連のGlusterコマンドが必要です。
以下は、ジオレプリケーションモジュールを示すスクリーンショットです。

参照リンク
今は以上です!今後の記事では、セルフヒールとリバランス、ジオレプリケーションなどの詳細な説明について更新されていきますので、ご期待ください。