サーバをリプレイスしたときのメモ4 sambaをインストール、パフォーマンスを最適化する

alice, Domain-0 はファイルサーバ。
windows XPなどのクライアントにリードオンリー、または書き込み可能なネットワークフォルダを提供しなければならない。そのためにsambaを使う。


以下ではゲストを許容しない設定にしている。

samba認証用のアカウントを追加する

smb_admin, smb_userを追加してから

# smbpasswd -a smb_admin
#パスワード入力
# wmbpasswd -a smb_user
#パスワード入力

smb.confを編集する

vi /etc/samba/smb.conf

globalの要点

[global]
        #workgroupがwindows XPなどのデフォルト
        workgroup = workgroup
        #日本語でもいい
        server string = アリス

        security = user
        passdb backend = tdbsam

        username map = /etc/samba/smbusers
        #多分必須
        encrypt passwords = yes
        #ゲストは許可しない
        guest ok = no

        #サーバ側の文字コード
        unix charset = UTF-8
        #windows側の文字コード
        dos charset = CP932
        #表示
        display charset = UTF-8


フォルダ設定の要点

どちらでも書き込み可能
[unsafe]
        path = /samba/unsafe
        browseable = yes
        read only = no
        public = yes
        create mode = 0666
        directory mode = 0777
片方だけ書き込み可能
[safe]
        path = /samba/safe
        browseable = yes
        read only = yes
        public = yes
        write list = smb_admin
        create mode = 0644
        directory mode = 0755

CentOS5.3でネットワークフォルダをマウントする

# yum install samba-client

# mkdir /samba/doc
//test
# mount -t cifs -o user=smb_admin,password=XXXX //alice/doc /samba/doc

これでマウント出来ているようならOK。

自動マウントされるように設定する

# vi /etc/fstab

+//alice/doc  /samba/doc  cifs  auto,username=smb_admin,password=XXXX,uid=root,gid=root,rw  0 0

おそらくこれだけでは自動マウントされないので

# vi /etc/rc.d/rc.local

+sleep 30
+mount //alice/doc

などとして、少し時間をおいてマウントするといい。




以下、役立ちそうなtipsなど

linux側からwindows側のNETBIOS名でipが引けない

# vi /etc/nsswitch.conf

-hosts:      files dns
+hosts:      files dns wins

ディレクトリ、ファイルそれぞれの権限を再帰的に設定

# find . -type f -exec chmod 644 {} \;

# find . -type d -exec chmod 755 {} \;

lost+foundが見えちゃう

元々のパーミッションは700なので元に戻す

# chmod 700 lost+found

あまりにも遅い、フォルダを開くだけでストレス、などのときは

ネットワークフォルダをドライブに割り当ててFDBENCHしてみる。
明らかに転送速度が遅いと思うので、どちらが遅いか、あるいは両方かを見ておく。


http://thinkit.jp/article/754/3/
などを参考に(あまり参考にならないが)SO_RCVBUF, SO_SNDBUFの値をあれこれ設定してみる。


設定したら

# service smb restart

してまたベンチを取る。
設定値に対して変化はあると思うのでそのうち最適値が導ける。


うちの環境では以下が最適だった。

[global]
        socket options = TCP_NODELAY SO_RCVBUF=32768 SO_SNDBUF=32768


サーバをリプレイスしたときのメモ1 ntfsからext3
http://d.hatena.ne.jp/ruby-U/20090728/1248721117
サーバをリプレイスしたときのメモ2 xenの上に最小のCentOS 5.3をインストールする
http://d.hatena.ne.jp/ruby-U/20090729/1248760935
サーバをリプレイスしたときのメモ3 xenの上にwindows 2000をインストールする
http://d.hatena.ne.jp/ruby-U/20090730/1248760993
サーバをリプレイスしたときのメモ4 sambaをインストール、パフォーマンスを最適化する
http://d.hatena.ne.jp/ruby-U/20090731/1248761382
サーバをリプレイスしたときのメモ5 CentOS 5.3のtips(Domain-0, Domain-U 問わず)
http://d.hatena.ne.jp/ruby-U/20090801/1248766003
サーバをリプレイスしたときのメモ6 baculaの設定と運用
http://d.hatena.ne.jp/ruby-U/20090802/1248774098