ストレージ · 1 min read · Feb 07, 2026

Debian Lenny上のGlusterFSを使用した4つのストレージノード間の分散ストレージ

このチュートリアルでは、4つの単一ストレージサーバー(Debian Lennyを実行)を1つの大きなストレージサーバー(分散ストレージ)にGlusterFSを使用して統合する方法を示します。クライアントシステム(Debian Lennyも同様)は、ローカルファイルシステムのようにストレージにアクセスできます。GlusterFSは、数ペタバイトにスケーリング可能なクラスターファイルシステムです。さまざまなストレージブリックをInfiniband RDMAまたはTCP/IP相互接続を介して1つの大きな並列ネットワークファイルシステムに集約します。ストレージブリックは、SATA-II RAIDおよびInfiniband HBAを備えたx86-64サーバーなど、任意のコモディティハードウェアで構成できます。

この種のストレージ(分散ストレージ)は、複製ストレージの場合のような高可用性機能を提供しないことに注意してください。

これがあなたにとって機能するという保証はありません!

1 予備ノート

このチュートリアルでは、5つのシステム、4つのサーバーと1つのクライアントを使用します:

  • server1.example.com: IPアドレス 192.168.0.100 (サーバー)
  • server2.example.com: IPアドレス 192.168.0.101 (サーバー)
  • server3.example.com: IPアドレス 192.168.0.102 (サーバー)
  • server4.example.com: IPアドレス 192.168.0.103 (サーバー)
  • client1.example.com: IPアドレス 192.168.0.104 (クライアント)

すべての5つのシステムは、他のシステムのホスト名を解決できる必要があります。これがDNSを介して行えない場合は、/etc/hostsファイルを編集して、すべての5つのシステムで次のように見えるようにする必要があります:

vi /etc/hosts

| 127.0.0.1 localhost.localdomain localhost 192.168.0.100 server1.example.com server1 192.168.0.101 server2.example.com server2 192.168.0.102 server3.example.com server3 192.168.0.103 server4.example.com server4 192.168.0.104 client1.example.com client1 # 以下の行はIPv6対応ホストにとって望ましい ::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts |

(次の設定ではホスト名の代わりにIPアドレスを使用することも可能です。IPアドレスを使用することを好む場合は、ホスト名が解決できるかどうかを気にする必要はありません。)

2 GlusterFSサーバーの設定

server1.example.com/server2.example.com/server3.example.com/server4.example.com:

GlusterFSはDebian Lenny用のDebianパッケージとしては利用できないため、自分でビルドする必要があります。まず、前提条件をインストールします:

aptitude install sshfs build-essential flex bison byacc libdb4.6 libdb4.6-dev

次に、http://www.gluster.org/download.phpから最新のGlusterFSリリースをダウンロードし、次のようにビルドします:

cd /tmp  
wget http://ftp.gluster.com/pub/gluster/glusterfs/2.0/LATEST/glusterfs-2.0.1.tar.gz  
tar xvfz glusterfs-2.0.1.tar.gz  
cd glusterfs-2.0.1  
./configure --prefix=/usr > /dev/null
server1:/tmp/glusterfs-2.0.1# ./configure --prefix=/usr > /dev/null  
  
GlusterFS configure summary  
===========================  
FUSE client        : no  
Infiniband verbs   : no  
epoll IO multiplex : yes  
Berkeley-DB        : yes  
libglusterfsclient : yes  
mod_glusterfs      : no ()  
argp-standalone    : no  
  
server1:/tmp/glusterfs-2.0.1#
make && make install  
ldconfig

コマンド

glusterfs --version

は、あなたがちょうどコンパイルしたGlusterFSのバージョン(この場合は2.0.1)を表示するはずです:

server1:/tmp/glusterfs-2.0.1# glusterfs --version  
glusterfs 2.0.1 built on May 29 2009 17:23:10  
Repository revision: 5c1d9108c1529a1155963cb1911f8870a674ab5b  
Copyright (c) 2006-2009 Z RESEARCH Inc.   
GlusterFS comes with ABSOLUTELY NO WARRANTY.  
You may redistribute copies of GlusterFS under the terms of the GNU General Public License.  
server1:/tmp/glusterfs-2.0.1#

次に、いくつかのディレクトリを作成します:

mkdir /data/  
mkdir /data/export  
mkdir /data/export-ns  
mkdir /etc/glusterfs

次に、どのディレクトリがエクスポートされるか(/data/export)と、どのクライアントが接続を許可されるか(192.168.0.104 = client1.example.com)を定義するGlusterFSサーバー設定ファイル/etc/glusterfs/glusterfsd.volを作成します:

vi /etc/glusterfs/glusterfsd.vol

| volume posix type storage/posix option directory /data/export end-volume volume locks type features/locks subvolumes posix end-volume volume brick type performance/io-threads option thread-count 8 subvolumes locks end-volume volume server type protocol/server option transport-type tcp option auth.addr.brick.allow 192.168.0.104 subvolumes brick end-volume |

IPアドレスにワイルドカード(192.168.*のような)を使用することが可能であり、カンマで区切って複数のIPアドレスを指定することができることに注意してください(例:192.168.0.104,192.168.0.105)。

その後、glusterfsd initスクリプトのシステム起動リンクを作成します…

update-rc.d glusterfsd defaults

… そしてglusterfsdを起動します:

/etc/init.d/glusterfsd start
Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。