*beegfs7向けに修正しました

本家様 http://www.beegfs.com/content/
複数ノードによる分散ファイルシステム
BeeGFS6からBeeGFS7へのアップグレード BeeGFS/upgrade
ストレージノードを追加BeeGFS/StorageNode
メターデータの移動BeeGFS/moveMetadata
admonBeeGFS/admon
BeeGFS/MultiMode
BeeGFS/NFS

仮想マシンで作業確認のために作ってみた。OSはCentOS 7です。
参照先:http://www.beegfs.com/wiki/ManualInstallWalkThrough

2017y02m18d_101446643.png

No役割hostHW構成(仮想マシン)備考*
1管理ノード
Management Server
ms.sybyl.local「Admon Server」と同居
2Metadata Serversmds.sybyl.localsda:16GB(system)
sdb:4GB(metadata,/beegfs)
ext4が推奨,4/8core,ssd有効
RAIDなら1or10有効
総ストレージの0.5%**
3Storage Serverss1.sybyl.localsda:16GB(system)
sdb:32GB(storage,/beegfs)
ext4,xfs,zfsが推奨
RAIDなら6-12本/1chのRAID6
複数ボリューム可
ss2.sybyl.local
ss3.sybyl.local
4Admon Serverms.sybyl.local「管理ノード」と同居
5クライアントclient.sybyl.local

機能ごとに5つの役割が存在しますが、同一マシン内でその役割を共存することも可能です。
例えば上記では「管理ノード」と「Admon Server」をホスト「ms.sybyl.local」で共存しています。
他にも「Metadata Servers」と「Storage Server」を同じにすることも可能です。丸々1台のマシンで全ての機能を持たすことも可能です。

注意 ライセンス

https://www.beegfs.io/content/documentation/#eula
この中でhttps://www.beegfs.io/docs/BeeGFS_EULA.txtを読むと
enterprise featuresとして存在する

を使うならエンタープライズサポートが必要っぽい.
Mirroringは具体的にはこれかなhttps://www.beegfs.io/wiki/AboutMirroring

(オプション)パスワードなしrootログイン環境

必須と言うわけではない。単に構築を楽に行うための手段です。操作の中心とする管理ノード「ms.sybyl.local」にてパスフレーズがない公開鍵・秘密鍵ペアを作成して各ノードに配布します。

[root@ms ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):   <---- そのままリターン
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):                <---- そのままリターン
Enter same passphrase again:                               <---- そのままリターン
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
 :
[root@ms ~]#

下記はMetadata Servers「mds.sybyl.local」へ配布しています。

[root@ms ~]# ssh root@mds 'mkdir .ssh && chmod 700 .ssh && touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys'
[root@ms ~]# ssh root@mds 'cat >> .ssh/authorized_keys' < .ssh/id_rsa.pub

これを他のノードにも行います クライアント「client.sybyl.local」も含む

BeeGFSリポジトリの登録

各ノードへBeeGFSのリポジトリを登録します。これでyumコマンドでBeeGFSのインストールが可能になります。
リポジトリの場所は https://www.beegfs.io/wiki/DownloadInstallationPackages
管理ノード「ms.sybyl.local」にて

[root@ms ~]# curl -o /etc/yum.repos.d/beegfs-rhel7.repo https://www.beegfs.io/release/beegfs_7_1/dists/beegfs-rhel7.repo

とbeegfs-rhel7.repoを取得して、これを各ノードへ配布します

[root@ms ~]# for i in mds ss1 ss2 ss3 client;do scp /etc/yum.repos.d/beegfs-rhel7.repo root@$i:/etc/yum.repos.d; done

BeeGFSパッケージのインストール

リポジトリで提供されているBeeGFSのパッケージは以下になる

[root@ms ~]# yum list |grep beegfs
beegfs-admon.x86_64                       20:7.1.2-el7                 beegfs
beegfs-client.noarch                      20:7.1.2-el7                 beegfs
beegfs-client-compat.noarch               20:7.1.2-el7                 beegfs
beegfs-client-devel.noarch                20:7.1.2-el7                 beegfs
beegfs-common.noarch                      20:7.1.2-el7                 beegfs
beegfs-debuginfo.x86_64                   20:7.1.2-el7                 beegfs
beegfs-helperd.x86_64                     20:7.1.2-el7                 beegfs
beegfs-meta.x86_64                        20:7.1.2-el7                 beegfs
beegfs-mgmtd.x86_64                       20:7.1.2-el7                 beegfs
beegfs-mon.x86_64                         20:7.1.2-el7                 beegfs
beegfs-storage.x86_64                     20:7.1.2-el7                 beegfs
beegfs-utils.x86_64                       20:7.1.2-el7                 beegfs
beegfs-utils-devel.noarch                 20:7.1.2-el7                 beegfs
beeond.x86_64                             20:7.1.2-el7                 beegfs
beeond-thirdparty-gpl.x86_64              20:7.1.2-el7                 beegfs
libbeegfs-ib.x86_64                       20:7.1.2-el7                 beegfs
[root@ms ~]#

管理ノード「ms.sybyl.local」には「beegfs-mgmtd」と「beegfs-admon」をインストールします

[root@ms ~]# yum install beegfs-mgmtd beegfs-admon

次にMetadata Servers「mds.sybyl.local」には「beegfs-meta」を折角なのでリモート操作でインストールします。

[root@ms ~]# ssh root@mds yum -y install beegfs-meta

次にStorage Serversな「ss1、ss2、ss3」らには「beegfs-storage

[root@ms ~]# for i in ss1 ss2 ss3;do ssh root@$i yum -y install beegfs-storage;done

最後にClientは、モジュールの作成があるので開発環境とkernel-develを加えてから「beegfs-client」「beegfs-helperd」をインストールします。

[root@ms ~]# ssh root@client yum -y groupinstall "Development Tools"
[root@ms ~]# ssh root@client yum -y install kernel-devel
[root@ms ~]# ssh root@client yum -y install beegfs-client beegfs-helperd

各ノードで設定

クライアントは関係しないが、「管理ノードManagement Server」と「Metadata Servers」、「Storage Server」には識別番号で区別する必要がある。
識別番号の「1」は既定で「管理ノードManagement Server」が担っている。
ここでは下記のように識別番号を定義した。

ノード識別番号ストレージID備考
ms1-既定で管理ノードは「1」
bee1101012つストレージを持たせるなら下記のようにする
101
102
bee220201
bee330301
mds9-

*機能ごとで異なっていればいいのか不明。なので全体で被らないように定義しました。
IDの取れる範囲は、1-65535

起動

単純に各マシンを再起動します。
その後、clientにて下記のように確認ができればOK

[root@client ~]# df -Th -t beegfs
ファイルシス   タイプ サイズ  使用  残り 使用% マウント位置
beegfs_nodev   beegfs    96G   97M   96G    1% /mnt/beegfs
 
[root@client ~]#

既定は/mnt/beegfsだが、/homeにmountすることも可能
「/etc/beegfs/beegfs-mounts.conf」を下記のように修正してbeegfs-helperd.serviceとbeegfs-client.serviceを再起動する。

- /mnt/beegfs /etc/beegfs/beegfs-client.conf
+ /home /etc/beegfs/beegfs-client.conf
[root@client ~]#  df -Th -t beegfs
ファイルシス   タイプ サイズ  使用  残り 使用% マウント位置
beegfs_nodev   beegfs    96G   97M   96G    1% /home
[root@client ~]#

確認

設定後に詳細を確認してみます。クライアントなノードでないと使えないのが??なのですが、
「beegfs-utils」を入れたノードで、「beegfs-check-servers」で現状の構成要素が見えます。

[root@client ~]# beegfs-check-servers
Management
==========
ms.sybyl.local [ID: 1]: reachable at 192.168.0.47:8008 (protocol: TCP)
 
Metadata
==========
mds.sybyl.local [ID: 9]: reachable at 192.168.0.48:8005 (protocol: TCP)
 
Storage
==========
ss1.sybyl.local [ID: 10]: reachable at 192.168.0.49:8003 (protocol: TCP)
ss2.sybyl.local [ID: 20]: reachable at 192.168.0.50:8003 (protocol: TCP)
ss3.sybyl.local [ID: 30]: reachable at 192.168.0.51:8003 (protocol: TCP)
 
[root@client ~]#

beegfsにデータを多少流し込んで、現在の使用率とか、各ノードの状態らも確認する

[root@client ~]# beegfs-ctl --listtargets --longnodes --state --spaceinfo
TargetID     Reachability  Consistency        Total         Free    %      ITotal       IFree    %   NodeID
========     ============  ===========        =====         ====    =      ======       =====    =   ======
     101           Online         Good      32.0GiB      28.4GiB  89%       16.0M       16.0M 100%   beegfs-storage ss1.sybyl.local [ID: 10]
     201           Online         Good      32.0GiB      28.4GiB  89%       16.0M       16.0M 100%   beegfs-storage ss2.sybyl.local [ID: 20]
     301           Online         Good      32.0GiB      28.4GiB  89%       16.0M       16.0M 100%   beegfs-storage ss3.sybyl.local [ID: 30]
[root@client ~]#

ストレージの状況は「beegfs-ctl --getentryinfo /mnt/beegfs」でみれます

[root@client ~]# beegfs-ctl --getentryinfo /mnt/beegfs
EntryID: root
Metadata node: mds.sybyl.local [ID: 9]
Stripe pattern details:
+ Type: RAID0
+ Chunksize: 512K
+ Number of storage targets: desired: 4
+ Storage Pool: 1 (Default)
[root@client ~]#

1つファイルを/mnt/beegfsに配置して、その分散具合は下記コマンドで見れます。

[root@client ~]# beegfs-ctl --getentryinfo /mnt/beegfs/IMG_20180220_0006.pdf
EntryID: 141-5C5DB94B-9
Metadata node: mds.sybyl.local [ID: 9]
Stripe pattern details:
+ Type: RAID0
+ Chunksize: 512K
+ Number of storage targets: desired: 4; actual: 3
+ Storage targets:
  + 301 @ ss3.sybyl.local [ID: 30]
  + 101 @ ss1.sybyl.local [ID: 10]
  + 201 @ ss2.sybyl.local [ID: 20]
[root@client ~]#

ここでは/mnt/beegfs/IMG_20180220_0006.pdf(865KB)のデータが3つに分かれています。
システム側は「desired: 4」と4つに分散して欲しいようです

もしchunksizeを大きくすれば、パフォーマンスは上がります。
Storageが3台(ss1,ss2,ss3)で、データを16MBつづで分配するのなら下記の様にします

[root@client ~]# beegfs-ctl --setpattern --numtargets=3 --chunksize=16m /mnt/beegfs

公式でパフォーマンスの調整方法が各タイプごとに掲載されている
http://www.beegfs.com/wiki/TuningAdvancedConfiguration

観察

clientマシンからファイルを /mnt/beegfs に書き込むと Storage Server の/beegfs/storageはこんな感じになります

[root@ss1 ~]# ls -l /beegfs/storage/
合計 20
drwxrwxrwx 2 root root   6  2月  9 01:20 buddymir/
drwxrwxrwx 3 root root  16  2月  9 02:02 chunks/
-rw-r--r-- 1 root root  60  2月  9 01:20 format.conf
-rw-r--r-- 1 root root   0  2月  9 01:50 lock.pid
-rw-r--r-- 1 root root   3  2月  9 01:20 nodeNumID
-rw------- 1 root root 210  2月  9 01:50 originalNodeID
-rw------- 1 root root  13  2月  9 01:51 targetID
-rw-r--r-- 1 root root   4  2月  9 01:20 targetNumID
[root@ss1 ~]#
[root@ss1 ~]# du -hs /beegfs/storage/chunks/u0/5C5D/B/
3.4G    /beegfs/storage/chunks/u0/5C5D/B/
 
[root@ss1 ~]# ls /beegfs/storage/chunks/u0/5C5D/B/
0-5C5DB63A-9/    148-5C5DB894-9/  1E-5C5DB894-9/   43-5C5DB766-9/  72-5C5DB81B-9/  A9-5C5DB7DF-9/
0-5C5DB766-9/    14C-5C5DB894-9/  1E-5C5DB90E-9/   43-5C5DB7A2-9/  72-5C5DB94B-9/  A9-5C5DB81B-9/
0-5C5DB8D0-9/    14D-5C5DB81B-9/  1F-5C5DB98A-9/   45-5C5DB6EE-9/  73-5C5DB894-9/  A9-5C5DB8D0-9/
0-5C5DB90E-9/    15-5C5DB81B-9/   1F4-5C5DB81B-9/  45-5C5DB7A2-9/  74-5C5DB81B-9/  AB-5C5DB7A2-9/
1-5C5DB6B2-9/    150-5C5DB894-9/  1FA-5C5DB81B-9/  46-5C5DB766-9/  74-5C5DB90E-9/  AC-5C5DB7DF-9/
1-5C5DB7A2-9/    150-5C5DB90E-9/  1FD-5C5DB81B-9/  46-5C5DB81B-9/  74-5C5DB98A-9/  AD-5C5DB7A2-9/
 :
 :
[root@ss1 ~]#

一方Metadataサーバは、

[root@mds ~]# ls -lF /beegfs/beegfs_meta/
合計 24
drwxr-xr-x   4 root root 4096  2月  9 01:52 buddymir/
drwxr-xr-x 130 root root 4096  2月  9 01:52 dentries/
-rw-r--r--   1 root root   71  2月  9 01:18 format.conf
drwxr-xr-x 130 root root 4096  2月  9 01:52 inodes/
-rw-r--r--   1 root root    0  2月  9 01:52 lock.pid
-rw-r--r--   1 root root    2  2月  9 01:18 nodeNumID
-rw-------   1 root root  210  2月  9 01:52 originalNodeID
[root@mds ~]# du -hs  /beegfs/beegfs_meta/*
130M    /beegfs/beegfs_meta/buddymir
83M     /beegfs/beegfs_meta/dentries
4.0K    /beegfs/beegfs_meta/format.conf
67M     /beegfs/beegfs_meta/inodes
0       /beegfs/beegfs_meta/lock.pid
4.0K    /beegfs/beegfs_meta/nodeNumID
4.0K    /beegfs/beegfs_meta/originalNodeID
[root@mds ~]#

な感じとなる。

最新の60件
2024-12-08 2024-12-05 2024-12-04 2024-11-28 2024-11-23 2024-11-22 2024-11-15 2024-11-14 2024-11-12 2024-11-06 2024-11-05 2024-11-04 2024-11-02 2024-11-01 2024-10-29 2024-10-28 2024-10-27 2024-10-23 2024-10-18 2024-10-17 2024-10-15 2024-10-14 2024-10-13 2024-10-11 2024-10-10 2024-10-09 2024-10-08 2024-10-05 2024-10-04 2024-10-03 2024-10-02 2024-10-01 2024-09-30 2024-09-29 2024-09-28 2024-09-27 2024-09-22 2024-09-20 2024-09-17

edit


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-10-08 (火) 22:52:38