March 18, 2006

RAID1 + FreeBSD6.0-RELEASE + Samba3でファイルサーバをリプレース

常用しているファイルサーバのCPUはMMX200MHz。97年製。さすがに遅く利用しづらくなってきたので、別のPCに役割を移行することにしました。ついでにRAIDカード3Ware 8006-2LPでRAID1を構築することにします。初めてのRAIDです。

RAID1の構築
PCIバスにRAIDカード挿し、HDDを二本繋いで起動。起動時にalt+3でコンフィグに入ります。ドライバなどは特に必要なし。
※二本繋がないとRAID1に設定できませんでした。

手順
(1) PC起動中にAlt + 3で3BM(3ware BIOS Manager)に入る
(2) Available Drivesに表示されている二台をEnterで選択して「Create Array」
(3) 「Select RAID configuration」を「RAID 1」にして「OK」
(4) F8でexit

これで自動的に初期化が始まるようです。


FreeBSD6.0-RELEASEのインストール

次にFreeBSD6.0-RELEASEのインストール。ISOイメージが楽なのでダウンロードしてCD-Rに焼きます。

ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/ISO-IMAGES/6.0/6.0-RELEASE-i386-disc1.iso
ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/ISO-IMAGES/6.0/6.0-RELEASE-i386-disc2.iso

DISK1をCD-ROM bootしてさくさくインストール。毎回思うのですがFreeBSDのインストーラはわかりづらいです。「Commit」を選ぶところ、以前はなかったような気が・・・。またFreeBSD6.0は、インストール完了した後に設定をし直せたりもするようですが、これが非常にわからづらかったです。何故終わった後に再度fdiskの画面が出るのだろうと悩んでしまいました。インストールは終了しているのでこの画面はExitで抜けてリブートしてしまって良いようです。

standardで、DistributionsはDeveloperとKern-Developerのみ。当然Xなど入れません。SSHはenable。パッケージ関連を選択したらDisk1/Disk2を交互に入れ直すような指示が出たので面倒になって何も入れませんでした。選択したのは、そのくらい。

次に、最新のportsツリーを持ってくるための作業です。
まずcvsup-without-gui を入れます
# pkg_add -r cvsup-without-gui


最も近いcvsupサーバを探す
# pkg_add -r fastest_cvsup (Perl5.8.7入っちゃったΣ(゚Д゚))
# fastest_cvsup -c jp
>> Querying servers in countries: jp
(snip)
>> Speed Daemons:
- 1st: cvsup3.jp.freebsd.org
- 2nd: cvsup2.jp.freebsd.org
- 3rd: cvsup5.jp.freebsd.org


ports-supfileをコピーして、一行だけ編集。
# mkdir /usr/local/etc/cvsup
# cp /usr/share/examples/cvsup/ports-supfile /usr/local/etc/cvsup/
# vi /usr/local/etc/cvsup/ports-supfile
*default host=cvsup3.jp.FreeBSD.org


portsの更新
# cvsup -g -L 2 -s /usr/local/etc/cvsup/ports-supfile


時計合わせ。
# vi /etc/rc.conf (下記追加)
ntpdate_enable="YES"
ntpdate_flags="-s -b 133.100.9.2"


※参考
http://iris.homeunix.net/yayoi/freebsd/inst/cvsup.asp
http://www.doblog.com/weblog/myblog/12826/2264670#2264670
http://www.fkimura.com/diary/?date=20040727
http://www.f-bell.net/FreeBSD/cvsup.html


RAIDの設定

3wareのRAIDカードRAIDを構築した場合、スリーウェア・ディスク・マネージャ(3DM2 & tw_cli)という管理ツールを使うことができます。

メールで通知させたいので、事前にMTAをいれておきます。

postfixのインストール
# cd /usr/ports/mail/postfix21/
# make install
# vi /usr/local/etc/postfix/main.cf
mydomain = $myhostname


3dm2のセットアップ。
# cd /usr/ports/sysutils/3dm
# make install

# vi /etc/rc.conf (下記追加)
twdm2_enable="YES"


起動
# /usr/local/etc/rc.d/3dm2.sh start


https://192.168.0.200:888/
でブラウザから管理ツールに入れる用になります。Administratorの初期パスワードは3ware。

状態監視メールの設定
https://192.168.0.200:888/
→3DM 2 Settings (設定を下記に変更)

Send E-Mail : Enabled
Notify on : INFO
Sender : 3dm2
Recipient : 携帯メールアドレス
Mail Server : localhost

→Save E-mail Settings
→Send Test Message
→キタ━━(゚∀゚)━━

これで何かあった時にメールが送信されるようになります。便利です♪

※ディスク破損時の交換を想定して、稼働中にHDDを一本抜いてみましたが問題なし。
下記手順でRebuildできました。
→Management
→Maintenace
→異常発生しているドライブを[Remove Drive]
→Rescan Controller
→Availabe DrivesにRemoveしたドライブが表示される。チェック。Unit Maintenanceのものにもチェック
→Rebuild Unit


tw_cliのセットアップ
# cd /usr/ports/sysutils/tw_cli
# make install

# tw_cli
//box> info c0

Unit UnitType Status %Cmpl Stripe Size(GB) Cache AVerify IgnECC
------------------------------------------------------------------------------
u0 RAID-1 REBUILDING 25 - 232.885 ON - -

Port Status Unit Size Blocks Serial
---------------------------------------------------------------
p0 OK u0 232.88 GB 488397168 VDB41BT4D0YEUC
p1 DEGRADED u0 232.88 GB 488397168 VDB41AT4C1U0WA

//box> quit

こんな感じでコンソールからも状態確認、verifyなどができます。上記はRebuild中。

※参考
http://japan.3ware.com/support/userdocumentation.asp
http://www.clustcom.com/content/view/206/


Samba3のインストール

Sambaの前にEUCJP-MSを使うためにlibiconvをWITH_EXTRA_PATCHES付きで入れておきます。
# cd /usr/ports/converters/libiconv/
# make -DWITH_EXTRA_PATCHES install
# iconv -l | grep MS
CP1250 MS-EE WINDOWS-1250
CP1251 MS-CYRL WINDOWS-1251
CP1252 MS-ANSI WINDOWS-1252
CP1253 MS-GREEK WINDOWS-1253
CP1254 MS-TURK WINDOWS-1254
CP1255 MS-HEBR WINDOWS-1255
CP1256 MS-ARAB WINDOWS-1256
ARMSCII-8
EUC-JP-MS EUCJP-MS EUCJP-OPEN EUCJP-WIN
MS_KANJI SHIFT-JIS SHIFT_JIS SJIS CSSHIFTJIS
CP936 GBK MS936 WINDOWS-936


Samba 3.0.21bのインストール
※インストール時のオプション設定の中にあるMySQLを有効にしたら50分もかかりました。
# cd /usr/ports/net/samba3/
# make install
# vi /etc/rc.conf (下記追加)
samba_enable="YES"


smb.confの修正
# vi /usr/local/etc/smb.conf
※以下のようにしました。
[global]
workgroup = MYWORKGROUP
server string = Samba Server
security = user
load printers = yes
log file = /var/log/samba/log.%m
max log size = 50
socket options = TCP_NODELAY
dns proxy = no
# 20060318
security = share # パスワードなしのアクセスを許可
hosts allow = 192.168.0. 127.
display charset = EUCJP-MS
unix charset = EUCJP-MS
dos charset = CP932

[public]
comment = Public Space
path = /home/public
public = yes
writable = yes

[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = no
writable = no
printable = yes

こちらによれば、

Windows側のCP932コードが、EUC-JPコードに変換されると、いくつかの文字で異なるコードナンバーに変換されてしまう。EUCJP-MSならこういった問題は起きない

とのことなのでEUCJP-MSを使用することにしました。実際試してみたところ、EUC-JPでは(株)などのNEC特殊文字が文字化
けしました。EUCJP-MSにすると、WinXP, OSXどちらからも正常に読み書き可能でした。

ファイル格納領域作成
# mkdir /home/public
# chown -R nobody:nobody /home/public/


起動
# /usr/local/etc/rc.d/samba.sh start


SWATの起動
# vi /etc/inetd.conf
※下記行のコメントを外す。
swat stream tcp nowait/400 root /usr/local/sbin/swat swat


inetdが立ち上がっていなかったので起動。(立ち上がってる場合はkill- HUP)
# /usr/sbin/inetd


port901にアクセス。rootのパスワードでログインします。
http://192.168.0.200:901/



参考
http://macmini.ameblo.jp/entry-4a742405751677724469f0bad5717db8.html
http://www.fkimura.com/samba1.html
http://www.fmp.jp/~guu/net/samba.html
http://bakuretsu.atso-net.jp/bakuretsu/freebsd/samba3.html
http://www.abk.nu/~nabe/document/samba3.htm#2.1


ProFTPDのインストール
おまけ。

# cd /usr/ports/ftp/proftpd
# make install

vi # /etc/rc.conf
proftpd_enable="YES"

# /usr/local/etc/rc.d/proftpd.sh start


こんな感じでRAIDが構築できました。Sabma2の時に悩まされた文字化け問題も解決してすっきり。大掃除が終わったような気分です。(´∇`)