はじめに
OpenBlocks AファミリのAX3には、外部インターフェースにeSATA(SATA II)ポートが付いています。これを活用することで、ユーザの目的に応じてカスタマイズ可能な大容量ストレージサーバとしてAX3を運用できます。今回は、このストレージサーバの構築例を紹介します。
全体の流れは、まずeSATAインターフェースを持つHDDケースに複数のHDDを搭載して、ソフトウェアRAIDを構築します。次にそれを外部ストレージとして、AX3でSambaサーバとownCloudサーバを構築します。
SambaサーバとownCloudサーバの説明はそれぞれ別にしますので、興味のあるほうからお読みください。
使用機材
サーバにはOpenBlocks AファミリのAX3を使います。OSはDebian GNU/Linux 6.0(squeeze) 、ファームウェアのバージョンはkernel-image-3.0.6-4です。ストレージは内蔵しないで、RAMディスクモードで運用します。
HDDケースは、( 株)センチュリーの「裸族の集合住宅 USB3.0&eSATA(CRSJ35EU3) 」を使います。このHDDケースは、インターフェースにUSB 3.0とeSATAを備え、3.5インチSATA HDDを4台搭載できます。HDDには、Western Digital社の2TBのSATA HDD(WD20EARS)を4台使います。
そして構築作業、性能測定などに使うWindows PCを用意します。PCの仕様は表1 に示します。
表1 PCの仕様
CPU Intel Core2 Quad Q9300 @ 2.50GHz
メモリ 4.00GB
マザーボード Super Micro Computer X7SBi
OS Microsoft Windows 7 Ultimate Service Pack 1
ソフトウェアRAID
まずはソフトウェアRAIDを構築し、性能を測ってみましょう。HDDケースにHDDを4台搭載し、AX3にeSATAケーブルで接続してHDDケースの電源を入れます。そのあと、AX3を起動します。以下ではシリアルコンソールで作業しますので、Windows PCからTera Termなどで接続してログインしておいてください。
mdadmパッケージのインストール
ソフトウェアRAIDを構築/運用するためにmdadmパッケージをインストールします。インターネットに接続できるようネットワークの設定をしてください。利用可能なパッケージのリストを更新してから、mdadmパッケージをインストールします(図1 ) 。インストール途中の問い合わせにはデフォルトで回答しておきます。mdadmパッケージのバージョンは、「 3.1.4-1+8efb9d1+squeeze1」です。
図1 mdadmパッケージのインストール
# aptitude update
# aptitude install mdadm
AX3はRAMディスクモードで動いていますので、ルートファイルシステムの変更をフラッシュROMに保存します(図2 ) 。さもないと、次回起動時に変更が失われますので注意してください。
図2 フラッシュROMへの保存
# /usr/sbin/flashcfg -S
RAIDアレイの作成
それではRAIDアレイを作成しましょう。mdadmパッケージをインストールしたときにMDモニタデーモンが起動されていますので、それを停止します(図3 ) 。
図3 MDモニタデーモンの停止
# /etc/init.d/mdadm stop
# /etc/init.d/mdadm-raid stop
fdiskコマンドでHDDにパーティションを設定します。4台のHDDは、/dev/sda、/dev/sdb、/dev/sdc、/dev/sddと認識されます。各HDDには、全体で1つのパーティションを設定します。
パーティションを設定したので、RAIDアレイを作成します。図4 は、HDDのパーティション4つ(--raid-devices=4)からなる、RAIDレベルがRAID6(--level=6)のRAIDアレイ/dev/md0を作成するコマンドです。RAIDアレイを作成するとリビルドが始まります。表2 に、リビルドにかかった時間を示します。RAIDアレイの情報は、図5 に示します。
図4 RAIDアレイの作成
# mdadm --create /dev/md0 --level=6 --raid-devices=4 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1
表2 RAIDの性能測定
RAIDレベル 書き込み(MB/s) 読み込み(MB/s) リビルド時間(時間)
HDD単体 114 119 -
RAID0 114 251 -
RAID1 50.2 115 9.5
RAID10 102 207 14
RAID5 45.5 238 18.5
RAID6 27.1 204 24.5
図5 RAIDアレイの情報
# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md0 : active raid6 sda1[0] sdd1[3] sdc1[2] sdb1[1]
3907020800 blocks super 1.2 level 6, 512k chunk, algorithm 2 [4/4] [UUUU]
unused devices:
# mdadm --detail /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Thu Sep 20 12:45:16 2012
Raid Level : raid6
Array Size : 3907020800 (3726.03 GiB 4000.79 GB)
Used Dev Size : 1953510400 (1863.01 GiB 2000.39 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Fri Sep 21 13:02:43 2012
State : active
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 512K
Name : obsax3:0 (local to host obsax3)
UUID : fdf19ba9:ab638bd5:3308ee0b:7ee87d4f
Events : 24
Number Major Minor RaidDevice State
0 8 1 0 active sync /dev/sda1
1 8 17 1 active sync /dev/sdb1
2 8 33 2 active sync /dev/sdc1
3 8 49 3 active sync /dev/sdd1
作成したRAIDアレイをmdadmコマンドの設定ファイル、/etc/mdadm/mdadm.confに反映させます(図6 ) 。ファイルmdadm.confの末尾に追加されたARRAY行(リスト1 )が、作成したRAIDアレイの設定です。設定の変更をフラッシュROMに保存します(図2) 。
図6 mdadmの設定
# mdadm --detail --scan > >/etc/mdadm/mdadm.conf
リスト1 /etc/mdadm/mdadm.confのARRAY行
ARRAY /dev/md0 metadata=1.2 name=obsax3:0 UUID=fdf19ba9:ab638bd5:3308ee0b:7ee87d4f
ファイルmdadm.confに古いARRAY行がある場合には、コメントアウトするか削除してください。それが残っていると、AX3の起動時にRAIDアレイが見えなくなってしまいます。そうなった場合には、ARRAY行すべてをコメントアウトまたは削除し、フラッシュROMに保存してからAX3を再起動します。それでRAIDアレイが見えるようになります。ARRAY行中のUUIDの値はRAIDアレイを作成するたびに変わりますが、それが見えなくなる原因です。
最後にファイルシステムを作成します(図7 ) 。
図7 ファイルシステムの作成
# mkfs.ext4 /dev/md0
性能測定
ddコマンドを使って読み書き速度の測定をしてみましょう。マウントポイント/mntに/dev/md0をマウントしたあと、ddコマンドを実行します(図8、9 ) 。
図8 書き込み速度の測定
# dd if=/dev/zero of=/mnt/4GB.dat bs=1M count=4096
図9 読み込み速度の測定
# dd if=/mnt/4GB.dat of=/dev/null bs=1M
前述の表2に示したものは、5回測定した平均値です。HDD単体での速度と、RAIDレベルをRAID0、RAID1、RAID10、RAID5、RAID6に変えた場合の速度の一覧となっています。書き込み速度は、HDD単体の24~100%、読み込み速度は97~211%です。測定が終わったらアンマウントします。以上で、ソフトウェアRAIDによるeSATA接続の外部ストレージが用意できました。
Sambaサーバ
AX3にSambaサーバを構築して、性能を測ってみましょう。
sambaパッケージのインストール
Sambaサーバを構築するためにsambaパッケージをインストールします。インターネットに接続できるようネットワークの設定をしてください。利用可能なパッケージのリストを更新してから、sambaパッケージをインストールします(図10 ) 。
インストール途中の問い合わせにはデフォルトで回答しておきます。sambaパッケージのバージョンは、「 2:3.5.6~dfsg-3squeeze8」です。
図10 sambaパッケージのインストール
# aptitude update
# aptitude install samba
ストレージのマウント
ストレージをマウントして、Sambaサーバ用ディレクトリを用意します。ファイル/etc/fstabにリスト2 の1行を追加します。そのあと、ストレージをマウントしてディレクトリを作成します(図11 ) 。
リスト2 /etc/fstab
/dev/md0 /opt ext4 defaults 1 1
図11 Samba用ディレクトリの作成
# mount /opt
# mkdir /opt/samba
# chmod 1777 /opt/samba
Sambaの設定
ファイル/etc/samba/smb.confをリスト3 のとおり変更します。[global]節でsecurityをshareに、[obsax3]節でpublicをyesに設定して、パスワードなしでの接続を許可しています。
リスト3 /etc/samba/smb.conf
[global]
...
security = share
...
[obsax3]
path = /opt/samba
public = yes
writable = yes
Sambaの設定を変更したので、Sambaを再起動します(図12 ) 。設定の変更をフラッシュROMに保存して完了です(図2) 。
図12 Sambaの再起動
# /etc/init.d/samba restart
性能測定
Sambaサーバを構築できたので、性能を測定してみましょう。Windows PCのエクスプローラにAX3のIPアドレスを入力してSambaサーバに接続してください(図13 ) 。なお、RAIDレベルはRAID6にし、AX3とWindows PCのEthernetポートをクロスLANケーブルで接続しました。
図13 Sambaサーバへの接続
ベンチマークソフトCrystalDiskMark で速度の測定をするために、フォルダobsax3の「ネットワーク ドライブの割り当て」でドライブ文字を指定しておきます(例ではZに割り当て) 。Windows PCにCrystalDiskMarkをインストールして起動します。テスト回数を5に、テストサイズを4000MBに、テストドライブをフォルダobsax3のドライブ文字に設定した測定結果を図14 に示しました。
図14 Sambaサーバの性能測定結果
ロケールの変更
ファイル名が日本語の場合、Windows PC上では正常に表示されますが、AX3上では日本語の部分が文字化けしてしまいます。AX3で正常に表示したい場合には、ロケールをja_JP.UTF-8に変更します(図15 ) 。
図15 ロケールの変更
# aptitude update
# aptitude install locales
# dpkg-reconfigure locales
ログアウトしてからログインすれば、ロケールがja_JP.UTF-8になっています。localeコマンドで確認できます。
ownCloudサーバ
ownCloud により、WebブラウザやWebDAVでファイルのアップロード/ダウンロードなどができるようになります。導入も簡単で、高い拡張性があります。ここまでで用意した外部ストレージを使って、ownCloudサーバを構築してみましょう。
owncloudパッケージのインストール
ownCloudサーバを構築するために、owncloudパッケージをインストールします。Debian GNU/Linux 6.0(squeeze)用のowncloudパッケージは、Debianプロジェクトからは配布されていません。ここでは、Open Build Serviceによるパッケージ を利用します。
インターネットに接続できるようネットワークの設定をしてください。ファイル/etc/apt/sources.listに、リスト4 の1行を追加します。利用可能なパッケージのリストを更新してから、owncloudパッケージをインストールします(図16 ) 。owncloudパッケージのバージョンは2012.0.7-1です。
リスト4 /etc/apt/sources.list
deb http://download.opensuse.org/repositories/isv:ownCloud:ownCloud2012/Debian_6.0/ /
図16 owncloudパッケージのインストール
# wget http://download.opensuse.org/repositories/isv:ownCloud:ownCloud2012/Debian_6.0/Release.key
# apt-key add - < Release.key
# aptitude update
# aptitude install owncloud
ストレージのマウント
ストレージをマウントしてownCloudサーバ用ディレクトリを用意します。ファイル/etc/fstabにリスト2の1行を追加します。ストレージをマウントして、ディレクトリを作成します(図17 ) 。
図17 ownCloud用ディレクトリの作成
# mount /opt
# mkdir /opt/owncloud
# chown www-data.www-data /opt/owncloud
ownCloudサーバの初期設定
apache2を再起動します(図18 ) 。Webブラウザで、http:///owncloud/に接続してください。図19 のような初期設定の画面が表示されます。
図18 apache2の再起動
# /etc/init.d/apache2 restart
図19 ownCloudサーバの初期設定
「Create an admin account」の入力欄にユーザ名とパスワードを入力します。続いて、「 Advanced」の「Data folder:」に、図17で作成したownCloud用ディレクトリ/opt/owncloudを入力します。「 Configure the database」はSQLiteを選び、「 Finish setup」ボタンを押せば初期設定は終了です。
デフォルトの設定では画面表示が英語です。日本語にするには、画面左下から[Settings] →[ Personal] →[ Language] →[ Japanese(日本語) ]と設定してください(図20 ) 。設定の変更をフラッシュROMに保存して完了です(図2) 。
図20 画面表示の言語の変更
ファイルのアップロード
ファイルをアップロードするには、まず画面左側の「ファイル」タブを選んでください。上矢印をクリックするか、ファイルを画面にドラッグ&ドロップします(図21 ) 。画像ファイルは画面左の「写真」タブを選べば表示されます(図22 ) 。
図21 ファイルのアップロード
図22 画像の一覧
ファイル名は、半角英数字で始まっていれば日本語も使えます。ファイル名が日本語から始まっている場合、アップロードはできますが日本語の部分だけ表示されません。さらに、削除などの操作ができませんでした。
初期設定からやりなおしたい場合は、ファイル/var/www/owncloud/config/config.phpを削除してから、ownCloudサーバに接続してください。
ロケールの変更
前述の「Sambaサーバ」節の「ロケールの変更」をお読みください。
さいごに
AX3に外部ストレージをeSATA接続して、ソフトウェアRAIDを構築しました。そして、その外部ストレージを利用したSambaサーバとownCloudサーバを構築することで、AX3で簡単にストレージサーバを導入できることを紹介しました。
さて、みなさんはAX3を使ってみようというお気持ちになられたでしょうか。実運用の事例をお知らせいただければ、ぷらっとホームのページで紹介させていただきます。