ブログを作る※無料・簡単アフィリ    ブログトップ | 楽天市場
049767 ランダム
OpenfilerでiSCSI (パソコン・家電)楽天ブログ 【ケータイで見る】 【ログイン】
文章練習帳

PR

Calendar

November 2011
SMTWTFS
  12345
6789101112
13141516171819
20212223242526
27282930   
<一覧へthis monthnext>

Keyword Search

Category

カテゴリ未分類(19)
ファイルシステム(2)
日常生活(44)
ブログ(7)
OS(9)
FreeBSD(10)
Windows(10)
ネットワーク(23)
PC(29)
VoIP(8)
仕事(9)
コンピュータ(11)
自転車(16)
Linux(12)
買い物(7)
Xen(5)
読書(1)
サーバ(12)

Archives

Mobile

>>ケータイに
このブログの
URLを送信!

 

日記

<< 前へ次へ >>一覧

2008.12.22 楽天プロフィール Add to Google XML

OpenfilerでiSCSI
[ Linux ]    

Openfilerを使ってiSCSIなNASを作ってみた。これはその備忘録。

初期状態


サーバ


ML115(初代)

ディスク構成


1TB x 4のHDDで2つの1TBのRAID1を組む。

OS構成


Xenの上に以下のOSを入れている。

  • openSUSE 11.0 (Domain-0 x86_64)

  • openSUSE 11.0 (Domain-U x86_64)

  • WindowsXP (Domain-U HVM i386)

  • FreeBSD 7.0 (Domain-U HVM i386)



目的


ディスクボリュームサイズを動的に変更したかったため、
Domain-0側でDomain-U openSUSEの/home用ディスク領域を確保し、NFSでマウント
していた。
NFSマウントの影響でSamba経由のファイル転送やソフトウェアのコンパイルが遅くなるといった問題が出ていた。

iSCSIでディスクを接続したならば、NFSよりもオーバーヘッドが減ってディスクI/O性能が上がると思い、ディスクのiSCSI化を計画した。
また、現状ではRAID1 1TB x 2という使いづらい構成なので、iSCSIを提供するNASサーバでRAID6 4TBを組み、将来に備えることとした。

準備



ハードウェア



  • NEC Express5800/110Ge

    • NASサーバ用に用意したサーバ

    • 安サーバなのにベイが多いため購入(5inch x 2, 3.5inch x 2, shadow 3.5inch x 4)

    • NTT-X Storeにて12,800円


  • Western Digital WD10EADS x 4

    • Sofmap 秋葉原本店にて 7,780 x 4 = 31,120円


  • Western Digital WD10EACS x 2

    • 現在使用中のディスクを流用。4プラッタ品(00ZJB0)


  • A-DATA C801 4GB

    • NASアプライアンスのブート用

    • 安いUSBメモリならなんでも良かったので購入。パソコンハウス東映にて880円

    • あとでUSBメモリまとめWikiを見て性能の低さに愕然。今は反省している。


  • Serial ATAケーブル 60cm x 4

    • HDD増設に必要と思い購入

    • 110Geにケーブルが同梱されていたため、実際は不要だった…




追記(2008/12/25)


元々付いている電源ではSerial ATA HDD用の電源が4台分しかない。
6台積むには電源の入れ替えが必要だった。
今回は余っていたSeasonicの550W電源を流用している。

ソフトウェア


フリーのNAS用アプライアンスとしてFreeNASOpenfilerを見つけたが、Openfilerの方が若干性能が高いようなのでこちらを採用。
簡単な比較は以下の通り。





















Openfiler FreeNAS
ベースOS Linux(rPath Linux?) FreeBSD 6.4
RAID 0,1,5,6 0,1,5
プロトコル NFS,SMB,iSCSI NFS,SMB,AFS,iSCSI


ソフトウェア


OpenfilerはHDDインストールが前提となっているため、USBメモリへインストールする場合は工夫が必要。ここここを参照。以下はそれらの情報をパクったもの。

インストール



  • OpenfilerのインストールCDを作成する。

  • インストール前にBIOS画面でSATAをdisableする。これによりUSBメモリに/dev/sdaが割り当てられる。

  • インストールCDからブート。

  • ブートプロンプトで "expert" と入力。USBメモリを認識させるため。

  • USBメモリにインストール。進行が遅いがフラッシュメモリなので仕方ない。

  • インストール終了後にリブートするが、次もインストールCDからブートさせる。

  • ブートプロンプトで "rescue" と入力。

  • USBメモリをマウントする。今回は sda1: /boot, sda2: swap, sda3: / としたため、以下のようにした。

    # mount /dev/sda3 /mnt/source
    # mount /dev/sda1 /mnt/source/boot


  • vi等を使えるようにするため、USBメモリ上のファイルシステムへchrootする。

    # chroot /mnt/source


  • initrdの中身を展開し、initスクリプトを変更する。

    # cp /boot/initrd-2.X.X.img /tmp/initrd.gz
    # gunzip /tmp/initrd.gz
    # mkdir /tmp/a
    # cd /tmp/a
    # cpio -i < /tmp/initrd
    # vi init

    initスクリプトには下記の行を追記する。
    今回はecho "Loading jbd.ko module"の前に入れてみた。

    > insmod /lib/scsi_mod.ko
    > insmod /lib/sr_mod.ko
    > insmod /lib/sd_mod.ko
    > insmod /lib/ehci-hcd.ko
    > insmod /lib/ohci-hcd.ko
    > insmod /lib/uhci-hcd.ko
    > sleep 10
    > insmod /lib/usb-storage.ko
    > sleep 12


  • カーネルモジュールのコピーを行う。

    # cd /lib/modules/`uname -r`/kernel/drivers
    # cp scsi/scsi_mod.o /tmp/a/lib
    # cp scsi/sd_mod.o /tmp/a/lib
    # cp scsi/sr_mod.o /tmp/a/lib
    # cp usb/storage/usb-storage.o /tmp/a/lib
    # cp usb/host/ehci-hcd.ko /tmp/a/lib
    # cp usb/host/ohci-hcd.ko /tmp/a/lib
    # cp usb/host/uhci-hcd.ko /tmp/a/lib


  • initrdの作成。

    # cd /tmp/a
    # find . | cpio -c -o | gzip -9 > /boot/usbinitrd.img


  • grub.confの変更。既存のエントリをコピーし、initrd=の部分だけ変更する。

  • リブート。rescureシェルをexitすると自動的にリブートする。

  • USBメモリからブートする



Openfiler設定


https://(Openfilerに割り当てられたIP):446/に接続すると管理画面が開く。
俺様証明書なので、Firefox3だと文句を言われるが気にしない。
管理用のユーザ・パスワードはopenfiler, passwordとなっているが、インストール時に設定したrootでも入れてしまう。rootで入った場合はquota設定しかできないので注意が必要。

RAID作成


いまいち使い方が判らなかったので、今回はコンソールからログインしてRAID6のボリュームを作成してしまった。参考にしたのはここ。やったことはそのままなので省略。

Volume Group作成


VGを作成しないとディスクを割り当てることすらできない。仕方ないのでRAID6デボリュームに対して手動でpvcreateを実行。Volume Group作成以降はOpenfilerの管理画面から設定。

iSCSIの設定


まずはTarget ConfigurationでiSCSI TargetのTarget IQNを登録。その後、LUN MappingでiSCSI領域を割り当てることになる。
iSCSI領域の確保はAdd Volume(Volumesタグを選択し、右側にあるVolumes Sectionからたどる)にて行う。
Network ACLは必ず作成すること。CHAPはよく判らないので放置した。

とりあえず全領域をiSCSI領域にしてイニシエータと接続させたところ、イニシエータ側で実行したpvcreateでは2TBしか領域確保ができなかった。
泣く泣く2TBのiSCSI領域を作成。残りは後程使う予定。

iSCSIイニシエータ側設定


openSUSEのyastにあるiSCSIイニシエータ設定をいじれば、簡単に接続できる。
CHAPまわりは判らなかったので放置。

fstab


ここを参考にして、
とりあえずこんな感じで書いている。(iSCSIデバイス/dev/sda1上にVolume Group: VG1, Logical Volume: LV1を作成したものと想定)

/dev/mapper/VG1-LV1 /data ext3 acl,user_xattr,_netdev 1 2

iSCSIの切断


ここを参考にする。LVMの処理も行ったほうが良い?(このあたり)


Last updated  2008.12.25 00:06:43






<< 前へ次へ >>一覧一番上に戻る


Powered By 楽天ブログは国内最大級の無料ブログサービスです。楽天・Infoseekと連動した豊富なコンテンツや簡単アフィリエイト機能、フォトアルバムも使えます。デザインも豊富・簡単カスタマイズが可能!

Copyright (c) 1997-2012 Rakuten, Inc. All Rights Reserved.