pNFS

Open Solaris環境を作ってみて

pNFSプロトコルを採用した商用プロダクトを販売している都合上、同様のOpenSource環境を構築してみたくなりチャレンジすることとなった。まともで親切なドキュメント? が無いままテストを続けることとなり、OpenSolarisサーバに Linux nfs ver4.1拡張版を接続するため、Linuxのディストリビューションを各種構築しテストを実施した。幸いクライアントとして都合のつくホストは10数台用意できるのでInstallの手間を除けばテスト環境としては十分な環境なので大したことではないが、骨の折れる作業ではある。
唯一まともな動作をしてくれたのが、OpenSolarisのみであり、Fedora・RedHat Enterprise・Ubuntsu・CentOSなどは接続はできたが、そこまで。今後の開発に期待である。



NEW : Throughput

SSD SLC 32GBを使用してみた
SSDメディアをキャッシュ用に搭載しブロックサイズ1M、 dd で10GBまで連続書込みテスト実施した。結果は以下の通り

3U16ドライブのflex filerストレージサーバーで実施

使用ドライブ:
HGST製2TB3.5インチ7200rpmDrive
  1. RAID5 + SSD cache:約380MB/s
  2. 15本 RAIDZ1 + SSD cache:約400MB/s
  3. 7本 RAIDZ1 + SSD cache:約450MB/s
如何でしょう?ローカルと言えど上記のスピードが何の最適化を施さずとも発揮できる事は重要です。
オープンソース
OpenSolaris: How to Install

1.はじめに
本ドキュメントでは、ラボで使用するOpenSolaris上でpNFSを使用するためのインストール方法について述べる。

2.インストール
OpenSolaris上でpNFSを利用するためには、以下をインストールする必要がある。

  1. Solaris Express Communication Edition B91
  2. OpenSolaris BFU, Tools
  3. pNFS BFU, Tools

2-1.Solaris Express Communication Edition B91
Solaris Express Communication Edition B91をDVDからインストールする。
インストールはメニューに従い、質問に答えていけばよい。

2-2.OpenSolaris BFU, Toolsのインストール
OpenSolaris化するために以下をインストールする。

  1. SUNWonbld.i386.tar.bz2
  2. on-bfu-nightly-osol.i386.tar.bz2

SUNWonbld.i386.ta.bz2を先にインストールし設定を行う。
# bzip2 -d SUNWonbld.i386.tar.bz2
# tar xvf SUNWonbld.i386.tar
# pkgadd -d onbld SUNWonbld

/etc/profileに以下を追加する。
export FASTFS=/opt/onbld/bin/`uname -p`/fastfs
export BFULD=/opt/onbld/bin/`uname -p`/bfuld
export GZIPBIN=/usr/bin/gzip
export PATH=$PATH:/opt/onbld/bin

次にon-bfu-nightly-osol.i386.tar.bz2をインストールし再起動する。
# source /etc/profile
# bzip2 -d on-bfu-nightly-osol.i386.tar.bz2
# tar xvf on-bfu-nightly-osol.i386.tar
# bfu /root/osol_pnfs-91/ON/archives-nightly-osol/i386
# bfu exit
# acr
# reboot

2-3.pNFS BFU, Toolのインストール
OpenSolarisでpNFSが利用可能とするため、pNFSカーネル、ツールをインストールする。

# bzip2 -d on-pnfs-draft19-onnv91-SUNWonbld-20080702.i386.tar.bz2
# tar xvf on-pnfs-draft19-onnv91-SUNWonbld-20080702.i386.tar
# pkgadd -d onbld SUNWonbld

ON:
# source /etc/profile
# bzip2 -d on-pnfs-draft19-onnv91-bfu-20080702.i386.tar.bz2
# tar xvf on-pnfs-draft19-onnv91-bfu-20080702.i386.tar
# bfu /root/osol_pnfs-91/pNFS/archives-nightly-osol/i386/
# bfu exit
# acr
# reboot

2-4.pNFSの設定
pNFS環境では、Data Server, Meta Data Server, Clientの3種類のホストが存在する。

2-4-1.Data Server, Meta Data Serverの設定
今回の設定では、Data Server とMeta Data Serverを同じホストで動作させている。
もちろん、この2つのサーバは違うホストで動作させた方がよりクライアント数に対してパフォーマンスが高くなる。

#!/bin/bash
###
# PNFS Metadata Server and Data Server starting script
# Refer to
#? http://wikis.sun.com/display/NFS/Latest+-+pNFS+Admin+Documentation
###
PATH=/usr/sbin:$PATH

##
# Parameters
##
DS="172.17.1.87"
MDS="172.17.1.87"
GROUP="xxxx"
EXPORT="/export/pnfs"

##
# MDS
##
# Share a file system
sharemgr create -P nfs ${GROUP}
sharemgr add-share -s ${EXPORT} ${GROUP}

# Specify the data server that is allowed to talk to this MDS
mdsadm -o add -t auth -a ip=${DS}

##
# DS
##
# Share a file system
#sharemgr create -P nfs ${GROUP}
#sharemgr add-share -s ${EXPORT} ${GROUP}

# Add the address of the MDS for use by the data server
dservadm addmds? ${MDS}.8.1

2-4-2.clientでのmount
クライアント側では、MDSを指定してmountを以下のように行う。

#mount -F nfs -o vers=4 172.20.48.143:/export /mnt
今回はここまでの記述とする。次回は本格的にI/Oレポートの掲載を予定する。