GlusterFS (ファイル システム) の概要と RHEL/CentOS および Fedora へのインストール
私たちは、データが予測不可能な形で増加する世界に住んでおり、構造化されているかどうかに関係なく、このデータを効率的な方法で保存する必要があります。分散コンピューティング システムには、集中型コンピューティング システムに比べてさまざまな利点があります。ここでは、データは複数のノードをサーバーとして使用して分散された方法で保存されます。
メタデータ サーバーの概念は、分散ファイル システムでは必要なくなりました。分散ファイル システムでは、異なるサーバー間で分離されたすべてのファイルに対する共通の視点が提供されます。これらのストレージ サーバー上のファイル/ディレクトリには通常の方法でアクセスします。
たとえば、ファイル/ディレクトリの権限は、通常のシステム権限モデル (所有者、グループなど) と同様に設定できます。ファイル システムへのアクセスは、基本的に、特定のプロトコルがその上でどのように動作するように設計されているかによって異なります。
GlusterFS とは何ですか?
GlusterFS は、ユーザー空間で使用するように定義された分散ファイル システム、つまりユーザー空間のファイル システム (FUSE) です。これは、独自の柔軟性機能を備えたソフトウェア ベースのファイル システムです。
階層モデルにおける GlusterFS の位置を概略的に表す次の図を見てください。デフォルトでは、GlusterFS によって TCP プロトコルが使用されます。
GlusterFS の利点
- イノベーション – メタデータを排除し、パフォーマンスを大幅に向上させることができ、データとオブジェクトの統合に役立ちます。
- 弾力性 – データのサイズの増加と縮小に適応します。
- 直線的に拡張 – ペタバイト以上の可用性があります。
- シンプルさ – 管理が簡単で、ユーザー空間での実行中はカーネルから独立しています。
Gluster が他の分散ファイル システムの中で優れているのは何ですか?
- 販売可能 – メタデータ サーバーがないため、より高速なファイル システムが提供されます。
- 手頃な価格 – 汎用ハードウェアに導入されます。
- 柔軟性 – 先ほども述べたように、GlusterFS はソフトウェアのみのファイル システムです。ここでは、データは ext4、xfs などのネイティブ ファイル システムに保存されます。
- オープンソース – 現在、GlusterFS は、10 億ドル規模のオープンソース企業である Red Hat Inc によって、Red Hat Storage の一部として維持されています。
GlusterFS のストレージの概念
- ブリック – ブリックは基本的に、信頼できるストレージ プール間で共有されるディレクトリです。
- 信頼できるストレージ プール – 設計されたプロトコルに基づいたこれらの共有ファイル/ディレクトリのコレクションです。
- ブロック ストレージ – データがブロックの形でシステム間を移動されるデバイスです。
- クラスタ – Red Hat Storage では、クラスタと信頼できるストレージ プールの両方が、定義されたプロトコルに基づいたストレージ サーバーのコラボレーションという同じ意味を伝えます。
- 分散ファイル システム – データがさまざまなノードに分散され、ユーザーがファイルの実際の場所を知らなくてもファイルにアクセスできるファイル システム。ユーザーはリモートアクセスの感覚を体験しません。
- FUSE – これは、ユーザーがカーネル コードを一切関与させずにカーネル上にファイル システムを作成できるようにするロード可能なカーネル モジュールです。
- glusterd – glusterd は、サーバーがアクティブ状態にあるときは常に実行されるファイル システムのバックボーンである GlusterFS 管理デーモンです。
- POSIX – ポータブル オペレーティング システム インターフェイス (POSIX) は、アプリケーション プログラマブル インターフェイス (API) の形式で Unix バリアント間の互換性のソリューションとして IEEE によって定義された標準ファミリーです。
- RAID – Redundant Array of Independent Disks (RAID) は、冗長性によってストレージの信頼性を向上させるテクノロジーです。
- サブボリューム – 少なくとも 1 人の翻訳者によって処理された後のレンガ。
- トランスレータ – トランスレータは、ユーザーがマウント ポイントから開始した基本的なアクションを実行するコード部分です。 1 つ以上のサブボリュームを接続します。
- ボリューム – ボリュームはブリックの論理的なコレクションです。すべての操作は、ユーザーが作成したさまざまなタイプのボリュームに基づいています。
さまざまなタイプのボリューム
以下に示すように、さまざまなタイプのボリュームの表現や、これらの基本的なボリューム タイプ間の組み合わせも許可されます。
分散レプリケートボリューム
分散複製ボリュームの表現。
RHEL/CentOS および Fedora への GlusterFS のインストール
この記事では、ストレージの高可用性を実現するために、初めて GlusterFS をインストールして構成します。このために、2 つのサーバーを使用してボリュームを作成し、それらの間でデータをレプリケートします。
ステップ :1 少なくとも 2 つのノードを用意する
- 2 つのノードにCentOS 6.5 (またはその他の OS) をインストールします。
- 「server1」と「server2」という名前のホスト名を設定します。
- 動作しているネットワーク接続。
- 両方のノードのストレージ ディスクの名前は「/data/brick」です。
ステップ 2: EPEL と GlusterFS リポジトリを有効にする
両方のサーバーに GlusterFS をインストールする前に、外部依存関係を満たすために EPEL と GlusterFS リポジトリを有効にする必要があります。次のリンクを使用して、両方のシステムに epel リポジトリをインストールして有効にします。
- RHEL/CentOS で 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 を「許可」または「無効」モードに変更します。ファイルを保存して閉じます。
# 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 ボリュームをセットアップする
サーバー 1 と サーバー 2 の両方で。
# mkdir /data/brick/gv0
任意の単一サーバー上にボリュームを作成し、ボリュームを起動します。ここでは「サーバー 1」を選択しました。
# gluster volume create gv0 replica 2 server1:/data/brick1/gv0 server2:/data/brick1/gv0
gluster volume start gv0
次にボリュームの状態を確認します。
# gluster volume info
注: In-case ボリュームが開始されていない場合、エラー メッセージは 1 つまたは複数の '/var/log/glusterfs' に記録されます。両方のサーバー。
ステップ 7: GlusterFS ボリュームを確認する
ボリュームを「/mnt」の下のディレクトリにマウントします。
# mount -t glusterfs server1:/gv0 /mnt
ファイル システムの単一ビューとしてマウント ポイント上でファイルを作成、編集できるようになりました。
GlusterFSの特徴
- 自己修復 – レプリケートされたボリューム内のいずれかのブリックがダウンし、ユーザーが他のブリック内のファイルを変更した場合、次にブリックが起動するとすぐに自動自己修復デーモンが動作します。ダウンタイム中に発生したトランザクションはそれに応じて同期されます。
- リバランス – 以前に大量のデータが存在していた既存のボリュームに新しいブリックを追加する場合、リバランス操作を実行して、新しく追加されたブリックを含むすべてのブリックにデータを分散できます。
- 地理レプリケーション – 災害復旧のためのデータのバックアップを提供します。ここで、マスター ボリュームとスレーブ ボリュームの概念が登場します。そのため、マスターがダウンした場合でも、スレーブ経由でデータ全体にアクセスできます。この機能は、地理的に離れたサーバー間でデータを同期するために使用されます。 geo レプリケーション セッションを初期化するには、一連の gluster コマンドが必要です。
以下は、Geo レプリケーション モジュールを示す画面キャプチャです。
参考リンク
GlusterFS ホームページ
今のところは以上です!自己修復や再バランス、Geo レプリケーションなどの機能の詳細な説明については、今後の記事で随時更新していきます。