GNU/Linux >> Linux の 問題 >  >> Fedora

Fedora12上のGlusterFSを使用した4つのストレージノードにまたがる分散ストレージ

このチュートリアルでは、4つの単一ストレージサーバー(Fedora 12を実行)をGlusterFSを使用して1つの大容量ストレージサーバー(分散ストレージ)に結合する方法を示します。クライアントシステム(Fedora 12も)は、ローカルファイルシステムであるかのようにストレージにアクセスできます。GlusterFSは、数ペタバイトに拡張できるクラスター化されたファイルシステムです。 InfinibandRDMAまたはTCP/IP相互接続を介してさまざまなストレージブリックを1つの大規模な並列ネットワークファイルシステムに集約します。ストレージブリックは、SATA-IIRAIDおよびInfinibandHBAを備えたx86_64サーバーなどの任意のコモディティハードウェアで作成できます。

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

これがあなたのために働くという保証はありません!

1予備メモ

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

  • 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
[...]
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
[...]

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

2GlusterFSサーバーのセットアップ

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

GlusterFSサーバーはFedora12のパッケージとして利用できるため、次のようにインストールできます。

yum install glusterfs-server

コマンド

glusterfs --version

インストールしたばかりのGlusterFSバージョン(この場合は2.0.9)が表示されます:

[[メールで保護]〜]#glusterfs --version
glusterfs 2.0.9は、2010年1月3日00:12:49に構築されました
リポジトリの改訂:v2.0.9
Copyright(c)2006- 2009 Gluster Inc.
GlusterFSには、まったく保証がありません。
GNU General Public Licenseの条件に基づいて、GlusterFSのコピーを再配布できます。
[[メール保護]〜]#

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

mkdir / data /
mkdir / data / export
mkdir / data / export-ns

次に、GlusterFSサーバー構成ファイル/etc/glusterfs/glusterfsd.volを作成します(最初に元の/etc/glusterfs/glusterfsd.volファイルのバックアップを作成します)。これは、エクスポートされるディレクトリ(/ data / export)とその内容を定義します。クライアントは接続を許可されています(192.168.0.101 =client1.example.com):

cp /etc/glusterfs/glusterfsd.vol /etc/glusterfs/glusterfsd.vol_orig
cat / dev / null> /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)。

その後、GlusterFSサーバーのシステム起動リンクを作成して起動します:

chkconfig --levels 35 glusterfsd on
/etc/init.d/glusterfsd start

3GlusterFSクライアントのセットアップ

client1.example.com:

Fedora 12用のGlusterFSクライアントrpmパッケージがありますが、問題は、df: `/ mnt / glusterfs':ソフトウェアが原因で接続が中止された、またはdf:` / mnt / glusterfs':トランスポートエンドポイントが接続されていないなどのエラーが発生することです。 GlusterFS共有にアクセスしようとしたとき。そのため、これらの問題を回避するために、ソースからGlusterFSクライアントを構築します。

GlusterFSクライアントを構築する前に、その前提条件をインストールします。

yum groupinstall 'Development Tools'
yum groupinstall 'Development Libraries'
yum install libibverbs-devel fuse-devel

次に、GlusterFS 2.0.9ソースをダウンロードし(これはサーバーにインストールされているものと同じバージョンであることに注意してください!)、次のようにGlusterFSをビルドします。

cd / tmp
wget http://ftp.gluster.com/pub/gluster/glusterfs/2.0/LATEST/glusterfs-2.0.9.tar.gz
tar xvfz glusterfs-2.0.9.tar .gz
cd glusterfs-2.0.9
./configure

./configureコマンドの最後に、次のようなメッセージが表示されます。

[...]
GlusterFS構成の概要
===========================
FUSEクライアント:はい
Infiniband動詞:はい
epoll IOマルチプレックス:はい
Berkeley-DB:はい
libglusterfsclient:はい
argp-standalone:いいえ

[[email protected] glusterfs-2.0.9]#

make &&make install
ldconfig

後でGlusterFSのバージョンを確認してください(2.0.9である必要があります):

glusterfs --version

[[メールで保護]glusterfs-2.0.9]#glusterfs --version
glusterfs 2.0.9は、2010年2月19日19:20:46に構築されました
リポジトリリビジョン:v2.0.9
Copyright( c)2006-2009 Gluster Inc.
GlusterFSには、まったく保証がありません。
GNU General Public Licenseの条件に基づいて、GlusterFSのコピーを再配布できます。
[[email protected] glusterfs-2.0.9]#

次に、次の2つのディレクトリを作成します。

mkdir / mnt / glusterfs
mkdir / etc / glusterfs

次に、ファイル/etc/glusterfs/glusterfs.vol:

を作成します。
vi /etc/glusterfs/glusterfs.vol
volume remote1
  type protocol/client
  option transport-type tcp
  option remote-host server1.example.com
  option remote-subvolume brick
end-volume

volume remote2
  type protocol/client
  option transport-type tcp
  option remote-host server2.example.com
  option remote-subvolume brick
end-volume

volume remote3
  type protocol/client
  option transport-type tcp
  option remote-host server3.example.com
  option remote-subvolume brick
end-volume

volume remote4
  type protocol/client
  option transport-type tcp
  option remote-host server4.example.com
  option remote-subvolume brick
end-volume

volume distribute
  type cluster/distribute
  subvolumes remote1 remote2 remote3 remote4
end-volume

volume writebehind
  type performance/write-behind
  option window-size 1MB
  subvolumes distribute
end-volume

volume cache
  type performance/io-cache
  option cache-size 512MB
  subvolumes writebehind
end-volume

オプションのリモートホスト行で正しいサーバーホスト名またはIPアドレスを使用していることを確認してください!

それでおしまい!これで、次の2つのコマンドのいずれかを使用して、GlusterFSファイルシステムを/ mnt/glusterfsにマウントできます。

glusterfs -f /etc/glusterfs/glusterfs.vol /mnt/glusterfs

または

mount -t glusterfs /etc/glusterfs/glusterfs.vol /mnt/glusterfs

これで、出力に新しいシェアが表示されるはずです...

mount

[[メール保護]〜]#mount
/ dev / mapper / vg_server5-lv_root on / type ext4(rw)
proc on / proc type proc(rw)
sysfs on / sys type sysfs(rw)
devpts on / dev / pts type devpts(rw、gid =5、mode =620)
tmpfs on / dev / shm type tmpfs(rw)
/ dev / sda1 on / boot type ext4(rw)
none on / proc / sys / fs / binfmt_misc type binfmt_misc(rw)
sunrpc on / var / lib / nfs / rpc_pipefs type rpc_pipefs(rw)
/etc/glusterfs/glusterfs.vol on / mnt / glusterfsタイプfuse.glusterfs(rw、allow_other、default_permissions、max_read =131072)
[[email protected]〜]#

...そして...

df -h

[[メール保護]〜]#df -h
ファイルシステム使用済み使用率使用率
/ dev / mapper / vg_server5-lv_root
25 / dev / sda1 194M 23M 161M 13%/ boot
/ etc / glusterfs / glu glusterfs
[[メール保護]〜]#

(server1.example.com、server2.example.com、server3.example.com、およびserver4.example.comには、それぞれGlusterFSファイルシステム用に約28.5 GBのスペースがあるため、結果の共有のサイズは約4x28.5になります。 GB(114GB)。)

GlusterFS共有をクライアントに手動でマウントする代わりに、/ etc / fstabを変更して、クライアントの起動時に共有が自動的にマウントされるようにすることができます。

/ etc / fstabを開き、次の行を追加します。

vi /etc/fstab  
[...]
/etc/glusterfs/glusterfs.vol  /mnt/glusterfs  glusterfs  defaults  0  0

変更した/etc/ fstabが機能しているかどうかをテストするには、クライアントを再起動します。

reboot 

再起動後、出力に共有が表示されます...

df -h

...そして...

mount

4つのテスト

それでは、GlusterFS共有にいくつかのテストファイルを作成しましょう:

client1.example.com:

touch / mnt / glusterfs / test1
touch / mnt / glusterfs / test2
touch / mnt / glusterfs / test3
touch / mnt / glusterfs / test4
touch / mnt / glusterfs / test5
touch / mnt / glusterfs / test6

次に、server1.example.com、server2.example.com、server3.example.com、およびserver4.example.comの/ data/exportディレクトリを確認しましょう。各ストレージノードは、クライアント上のGlusterFS共有を構成するファイル/ディレクトリの一部のみを保持していることに気付くでしょう:

server1.example.com:

ls -l /data/export 

[[メール保護]〜]#ls -l / data / export
total 0
-rw-r--r-- 1 root root 0 2010-02-22 20:15 test1
-rw-r--r--1ルートルート02010-02-2220:15 test2
-rw-r--r--1ルートルート02010-02-2220:15 test5
[[メール保護]〜]#

server2.example.com:

ls -l /data/export 

[[メール保護]〜]#ls -l / data / export
total 0
-rw-r--r-- 1 root root 0 2010-02-22 20:15 test4
[[メール保護]〜]#

server3.example.com:

ls -l /data/export 

[[メール保護]〜]#ls -l / data / export
total 0
-rw-r--r-- 1 root root 0 2010-02-22 20:15 test6
[[メール保護]〜]#

server4.example.com:

ls -l /data/export 

[[メール保護]〜]#ls -l / data / export
total 0
-rw-r--r-- 1 root root 0 2010-02-22 20:15 test3
[[メール保護]〜]#

  • GlusterFS:http://www.gluster.org/
  • Fedora:http://fedoraproject.org/

Fedora
  1. Debian8上のGlusterFSを使用した高可用性ストレージ-2つのストレージサーバー間でミラーリング

  2. CentOS7上のGlusterFSを使用した高可用性ストレージ-2つのストレージサーバー間でミラーリング

  3. Ubuntu12.10上のGlusterFS3.2.xを使用した4つのストレージノードにまたがる分散ストレージ

  1. Ubuntu12.10上のGlusterFS3.2.xを使用した4つのストレージノードに分散されたレプリケートされたストレージ

  2. Ubuntu12.10のGlusterFS3.2.xを使用した4つのストレージノード間のストライピング

  3. DebianLenny上のGlusterFSを使用した4つのストレージノードにまたがる分散ストレージ

  1. DebianLenny上のGlusterFSを使用した4つのストレージノードに分散されたレプリケートされたストレージ

  2. DebianLenny上のGlusterFSを使用した4つのストレージノード間のストライピング

  3. CentOS5.4上のGlusterFSを使用した4つのストレージノードに分散されたレプリケートされたストレージ