GlusterFS(ファイルシステム)の概要とRHEL / CentOSおよびFedoraへのインストール


私たちはデータが予測できない方法で成長している世界に住んでおり、構造化されているかどうかにかかわらず、このデータを効率的な方法で保存する必要があります。分散コンピューティングシステムは、集中型コンピューティングシステムに比べてさまざまな利点を提供します。ここでは、データはサーバーとして複数のノードを使用して分散された方法で保存されます。

メタデータサーバーの概念は、分散ファイルシステムでは不要になりました。分散ファイルシステムでは、異なるサーバー間で分離されたすべてのファイルの共通の視点を提供します。これらのストレージサーバー上のファイル/ディレクトリには、通常の方法でアクセスします。

たとえば、ファイル/ディレクトリのアクセス許可は、通常のシステムアクセス許可モデルと同じように設定できます。つまり、所有者、グループなどです。ファイルシステムへのアクセスは、基本的に、特定のプロトコルが同じプロトコルで機能するように設計されているかどうかによって異なります。

GlusterFSとは何ですか?

GlusterFSは、ユーザースペースで使用するように定義された分散ファイルシステム、つまりユーザースペースのファイルシステム(FUSE)です。これは、独自の柔軟性機能を考慮したソフトウェアベースのファイルシステムです。

階層モデルにおけるGlusterFSの位置を概略的に表す次の図を見てください。デフォルトでは、TCPプロトコルがGlusterFSによって使用されます。

  1. Innovation – It eliminates the metadata and can dramtically improve the performance which will help us to unify data and objects.
  2. Elasticity – Adapted to growth and reduction of size of the data.
  3. Scale Linearly – It has availability to petabytes and beyond.
  4. Simplicity – It is easy to manage and independent from kernel while running in user space.
  1. Salable – Absence of a metadata server provides a faster file system.
  2. Affordable – It deploys on commodity hardware.
  3. Flexible – As I said earlier, GlusterFS is a software only file system. Here data is stored on native file systems like ext4, xfs etc.
  4. Open Source – Currently GlusterFS is maintained by Red Hat Inc, a billion dollar open source company, as part of Red Hat Storage.
  1. Brick – Brick is basically any directory that is meant to be shared among the trusted storage pool.
  2. Trusted Storage Pool – is a collection of these shared files/directories, which are based on the designed protocol.
  3. Block Storage – They are devices through which the data is being moved across systems in the form of blocks.
  4. Cluster – In Red Hat Storage, both cluster and trusted storage pool convey the same meaning of collaboration of storage servers based on a defined protocol.
  5. Distributed File System – A file system in which data is spread over different nodes where users can access the file without knowing the actual location of the file. User doesn’t experience the feel of remote access.
  6. FUSE – It is a loadable kernel module which allows users to create file systems above kernel without involving any of the kernel code.
  7. glusterd – glusterd is the GlusterFS management daemon which is the backbone of file system which will be running throughout the whole time whenever the servers are in active state.
  8. POSIX – Portable Operating System Interface (POSIX) is the family of standards defined by the IEEE as a solution to the compatibility between Unix-variants in the form of an Application Programmable Interface (API).
  9. RAID – Redundant Array of Independent Disks (RAID) is a technology that gives increased storage reliability through redundancy.
  10. Subvolume – A brick after being processed by least at one translator.
  11. Translator – A translator is that piece of code which performs the basic actions initiated by the user from the mount point. It connects one or more sub volumes.
  12. Volume – A volumes is a logical collection of bricks. All the operations are based on the different types of volumes created by the user.

以下に示すように、さまざまなタイプのボリュームの表現、およびこれらの基本的なボリュームタイプ間の組み合わせも許可されます。

分散複製ボリュームの表現。

RHEL / CentOSおよびFedoraへのGlusterFSのインストール

この記事では、ストレージの高可用性を実現するために、初めてGlusterFSをインストールして構成します。このために、2つのサーバーを使用してボリュームを作成し、それらの間でデータを複製します。

  1. Install CentOS 6.5 (or any other OS) on two nodes.
  2. Set hostnames named “server1” and “server2“.
  3. A working network connection.
  4. Storage disk on both nodes named “/data/brick“.

両方のサーバーにGlusterFSをインストールする前に、外部の依存関係を満たすためにEPELリポジトリとGlusterFSリポジトリを有効にする必要があります。次のリンクを使用して、両方のシステムにepelリポジトリをインストールして有効にします。

  1. How to Enable EPEL Repository in RHEL/CentOS

次に、両方のサーバーでGlusterFsリポジトリを有効にする必要があります。

# wget -P /etc/yum.repos.d http://download.gluster.org/pub/gluster/glusterfs/LATEST/EPEL.repo/glusterfs-epel.repo

両方のサーバーにソフトウェアをインストールします。

# 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/...

「/ 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

「Server1」で次のコマンドを実行します。

gluster peer probe server2

「Server2」で次のコマンドを実行します。

gluster peer probe server1

注:このプールが接続されると、信頼できるユーザーのみが新しいサーバーをこのプールにプローブできます。

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

注:ケース内ボリュームが開始されていない場合、エラーメッセージは一方または両方のサーバーの「/ var/log/glusterfs」の下に記録されます。

ボリュームを「/ mnt」の下のディレクトリにマウントします。

# mount -t glusterfs server1:/gv0 /mnt

これで、ファイルシステムの単一のビューとしてマウントポイントでファイルを作成、編集できます。

GlusterFSの機能

  1. Self-heal – If any of the bricks in a replicated volume are down and users modify the files within the other brick, the automatic self-heal daemon will come into action as soon as the brick is up next time and the transactions occurred during the down time are synced accordingly.
  2. Rebalance – If we add a new brick to an existing volume, where large amount of data was previously residing, we can perform a rebalance operation to distribute the data among all the bricks including the newly added brick.
  3. Geo-replication – It provides back-ups of data for disaster recovery. Here comes the concept of master and slave volumes. So that if master is down whole of the data can be accessed via slave. This feature is used to sync data between geographically separated servers. Initializing a geo-replication session requires a series of gluster commands.

これは、ジオレプリケーションモジュールを示す次のスクリーンショットです。

参照リンク

GlusterFSホームページ

今のところ以上です!今後の記事で、自己修復とリバランス、ジオレプリケーションなどの機能の詳細について最新情報を入手してください。