パフォーマンス向上でナニに使える? OpenBlocks Aファミリによるサーバ実力診断

第5回ソフトウェアRAID、Samba、ownCloudによるストレージサーバの構築

はじめに

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の仕様
CPUIntel Core2 Quad Q9300 @ 2.50GHz
メモリ4.00GB
マザーボードSuper Micro Computer X7SBi
OSMicrosoft 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単体114119-
RAID0114251-
RAID150.21159.5
RAID1010220714
RAID545.523818.5
RAID627.120424.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サーバへの接続
図13 Sambaサーバへの接続

ベンチマークソフトCrystalDiskMarkで速度の測定をするために、フォルダobsax3の「ネットワーク ドライブの割り当て」でドライブ文字を指定しておきます(例ではZに割り当て⁠⁠。Windows PCにCrystalDiskMarkをインストールして起動します。テスト回数を5に、テストサイズを4000MBに、テストドライブをフォルダobsax3のドライブ文字に設定した測定結果を図14に示しました。

図14 Sambaサーバの性能測定結果
図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サーバの初期設定
図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 画面表示の言語の変更
図20 画面表示の言語の変更

ファイルのアップロード

ファイルをアップロードするには、まず画面左側の「ファイル」タブを選んでください。上矢印をクリックするか、ファイルを画面にドラッグ&ドロップします図21⁠。画像ファイルは画面左の「写真」タブを選べば表示されます図22⁠。

図21 ファイルのアップロード
図21 ファイルのアップロード
図22 画像の一覧
図22 画像の一覧

ファイル名は、半角英数字で始まっていれば日本語も使えます。ファイル名が日本語から始まっている場合、アップロードはできますが日本語の部分だけ表示されません。さらに、削除などの操作ができませんでした。

初期設定からやりなおしたい場合は、ファイル/var/www/owncloud/config/config.phpを削除してから、ownCloudサーバに接続してください。

ロケールの変更

前述の「Sambaサーバ」節の「ロケールの変更」をお読みください。

さいごに

AX3に外部ストレージをeSATA接続して、ソフトウェアRAIDを構築しました。そして、その外部ストレージを利用したSambaサーバとownCloudサーバを構築することで、AX3で簡単にストレージサーバを導入できることを紹介しました。

さて、みなさんはAX3を使ってみようというお気持ちになられたでしょうか。実運用の事例をお知らせいただければ、ぷらっとホームのページで紹介させていただきます。

おすすめ記事

記事・ニュース一覧