corega の RAID 対応ハードディスクケースを購入したので,CentOS 5.5 上の VirtualBox で FreeNAS 7 を走らせて,RAID1 の NAS を構築した。
材料
今回調達した機材は次のとおり。
ちなみに,このケースに上記の HDD を 2 個セットし,ワットチェッカーで消費電力を測定したところ,アイドル時で 12W くらいを示した。ベアボーンの方は,アイドル時で 30W 前後だった。
ファイルシステムの構築
今回は RAID1 (2 台のハードデイスクをミラーリング) を用いることにする。導入した HDD 2 台をケースに格納し,ケースの取説どおりに設定を行なってから,マシンとケースを eSATA ケーブルで接続する。
dmesg でデバイスを確認する。
# dmesg | grep SCSI
:
Type: Direct-Access ANSI SCSI revision: 05
SCSI device sdb: 3906928640 512-byte hdwr sectors (2000347 MB)
SCSI device sdb: drive cache: write through
SCSI device sdb: 3906928640 512-byte hdwr sectors (2000347 MB)
SCSI device sdb: drive cache: write through
2TB のディスクが sdb として認識されていることがわかる。
fdisk でハードデイスクのパーティションを構築する。今回は 2TB まるごと NAS として使う。
# fdisk /dev/sdb
このディスクのシリンダ数は 243195 に設定されています。
間違いではないのですが、1024 を超えているため、以下の場合
に問題を生じうる事を確認しましょう:
1) ブート時に実行するソフトウェア (例. バージョンが古い LILO)
2) 別の OS のブートやパーティション作成ソフト
(例. DOS FDISK, OS/2 FDISK)
コマンド (m でヘルプ): n
コマンドアクション
e 拡張
p 基本領域 (1-4)
p
領域番号 (1-4): 1
最初 シリンダ (1-243195, default 1):
Using default value 1
終点 シリンダ または +サイズ または +サイズM または +サイズK (1-243195, default 243195):
Using default value 243195
コマンド (m でヘルプ): w
領域テーブルは交換されました!
ioctl() を呼び出して領域テーブルを再読込みします。
ディスクを同期させます。
mkfs でファイルシステムを構築する。
# mkfs.ext3 /dev/sdb1
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
244187136 inodes, 488365951 blocks
24418297 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
14904 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 36 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
VirtualBox でアクセス
VirtualBox のゲスト OS から raw デバイス (/dev/sdb1) に直接アクセスするための設定を行なう。
まず,一般ユーザでも sdb1 を読み書きできるようにする。
# chmod a+rw /dev/sdb1
VirtualBox を実行するユーザ (USERNAME) の権限で,ディスクを作成する。
# su USERNAME
$ cd ~/.VirtualBox/HardDisks/
$ VBoxManage internalcommands createrawvmdk -filename nas.vmdk -rawdisk /dev/sdb1
あとは VirtualBox の「ストレージ」設定で nas.vmdk を指定すれば良い。今回はデータのみ RAID1 ドライブ上に格納するようにする。
最後に FreeNAS でディスクをフォーマットする。ホストの CentOS からも読み書きできるフォーマット (ext3 や FAT32) にしたかったが,うまく動かなかったのでデフォルトの UFS を使うことにした。
以上で RAID1 の NAS が構築できた。
参考ページ
- 外付けUSBハードディスク全体をext3でフォーマットする方法 – SumiTomohikoの日記
コメント