このブログを検索

2010-08-31

Ubuntu9.10 で NAS on RAID1(4/6)

今回の目玉であるRAIDの構成をします
地雷だらけなので気をつけてください

sda4/sdb4をmd0としてRAID化し、/homeにマウントして使用します


RAIDを構成する

1.パーティション構築
※Gpartedを使うとなぜかGRUBが壊れ再起不能になるのでpartedを使う
※10.04ならgdiskが使えるけど9.10にはない?

$ sudo parted /dev/sda
(parted) set 4 raid on
(parted) quit

$ sudo parted /dev/sdb
(parted) set 4 raid on
(parted) quit

mdadmのインストール
$ sudo apt-get install mdadm

mdadmと一緒にpostfixを入れることができる
異常時にメールを出すためにメール設定する
メール設定の一般形式 インターネットサイト
システムメール名 localhost
※システムメール名はよくわからない

2.RAID-ARRAYを構築する(1)
$ sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda4 /dev/sdb4
# 同期が始まるがどうせ中断するので待たずに進む

FSを作成
$ sudo mkfs.ext4 /dev/md0

再起動
$ sudo shutdown -h now
※念のため終了→ボタン起動

3.MBR/PBRリストア
再起動するとなぜかNo Bootable Deviceと出る場合はこの手順

GParted LiveCD等を起動し、端末を起動する


さっき保存したMBR,PBRの場所をマウント
$ mount /dev/sdc1 /mnt
MBR,PBRをリストアする
$ sudo dd if=/mnt/mbr_sda of=/dev/sda
$ sudo dd if=/mnt/mbr_sdb of=/dev/sdb
$ sudo dd if=/mnt/mbr_sda1 of=/dev/sda1 bs=512 count=1
$ sudo dd if=/mnt/mbr_sda2 of=/dev/sda2 bs=512 count=1

再起動
$ sudo shutdown -h now
GParted Live CDを抜く
※念のため終了→ボタン起動

4.RAIDリストア
再起動するとなぜかmd0が壊れるので修復

$ cat /proc/mdstat
md_d0というraidがinactiveになっている

RAID解除
$ sudo mdadm --manage --stop /dev/md/d0
$ sudo mdadm --manage --remove /dev/md/d0

mdadm再インストール(しないと再起動すると復活する)
$ sudo apt-get --purge remove mdadm
$ sudo apt-get install mdadm

RAID再構築
$ sudo mdadm --assemble /dev/md0 /dev/sda4 /dev/sdb4

再起動
$ sudo shutdown -r now

md0がactiveになっていることを確認する
$ cat /proc/mdstat

5.RAID-ARRAYを構築する(2)

起動時にMD開始(?)
$ sudo sh -c "mdadm --examine --scan >> /etc/mdadm/mdadm.conf"

同期するのを待つ
$ watch -n 1 cat /proc/mdstat
※100%になる前に再起動すると0%からやり直し?

RAID詳細はこれで確認できる
$ sudo mdadm --detail /dev/md0

6./homeを新しく作ったRAIDパーティションと入れ替える
homeを退避
$ cd /
$ sudo mkdir /home.org
$ sudo cp -r /home/* /home.org

md0をhomeにマウント
$ sudo mount -t ext4 /dev/md0 /home
$ sudo nano /etc/fstab
最後尾に↓を追記
/dev/md0 /home ext4 defaults 0 0

退避を削除
$ cd
$ pwd
の結果が/home/ユーザー名になっていればOK
問題なければ
$ sudo rm -r /home.org

所有者を戻す
$ cd /home
$ sudo chown ユーザー名:ユーザー名 ユーザー名

マウントを確認する
$ df

7.postfixの設定
ここではgmailを使用する
$ sudo postconf -e relay_transport=smtp
$ sudo postconf -e relayhost=[smtp.gmail.com]:587
$ sudo postconf -e smtp_use_tls=yes
$ sudo postconf -e smtp_sasl_auth_enable=yes
$ sudo postconf -e smtp_sasl_password_maps=hash:/etc/postfix/sasl/sasl_passwd
$ sudo postconf -e smtp_sasl_security_options=noanonymous
$ sudo postconf -e smtp_sasl_mechanism_filter=plain
$ sudo postconf -e smtp_tls_security_level = secure
$ sudo postconf -e smtp_tls_CApath = /etc/postfix/certs

ログイン情報を作成する
$ sudo touch /etc/postfix/sasl/sasl_passwd
$ sudo chmod 600 /etc/postfix/sasl/sasl_passwd
$ sudo nano /etc/postfix/sasl/sasl_passwd
↓の行を記入する
[smtp.gmail.com]:587 raid-report@gmail.com:password
$ sudo postmap /etc/postfix/sasl/sasl_passwd

$ sudo mkdir /etc/postfix/certs
$ sudo chmod 600 /etc/postfix/certs
$ sudo openssl s_client -connect pop.gmail.com:995 -showcerts > /home/ユーザー/gmail.pem
$ sudo cp /home/ユーザー/gmail.pem /home/ユーザー/equifax.pem

$ sudo vim /home/ユーザー/gmail.pem
1つめの
-----BEGIN CERTIFICATE-----
から
-----END CERTIFICATE-----
までを残してあと削除(タグは残す)


$ sudo vim /home/ユーザー/equifax.pem
2つめの
-----BEGIN CERTIFICATE-----
から
-----END CERTIFICATE-----
までを残してあと削除(タグは残す)

$ sudo mv /home/ユーザー/*.pem /etc/postfix/certs
$ sudo chmod 644 *.pem
$ c_rehash /etc/postfix/certs

$ sudo vim /etc/postfix/submit.cred

submitcred version 1
hostname|username|password

$ chmod 600 /etc/postfix/submit.cred

$ sudo /etc/init.d/postfix restart

送信テストを行う
$ sudo apt-get install heirloom-mailx
$ mail あて先
本文は.で終了

$ vim /var/log/mail.log
shift+gで最後尾に移動し
Server certificate not trusted
みたいなエラーが出ている場合はequifax.pemの更新とthawte.pemの追加が必要となる
http://stevejenkins.com/blog/2011/06/fixing-postfix-certificate-verification-failed-for-gmail-untrusted-issuer-error-message/
に書かれているものを使ってpemを/etc/postfix/certsに配置し
$ c_rehash /etc/postfix/certs
としてから再度テストしてみる。

転載

Using your favorite text editor, create a file called Equifax_Secure_CA.pem in the /etc/postfix/ssl directory. Paste the following into the file:

-----BEGIN CERTIFICATE-----
MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJVUzEQMA4GA1UE
ChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5
MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoT
B0VxdWlmYXgxLTArBgNVBAsTJEVxdWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCB
nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPR
fM6fBeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+AcJkVV5MW
8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kCAwEAAaOCAQkwggEFMHAG
A1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UE
CxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoG
A1UdEAQTMBGBDzIwMTgwODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvS
spXXR9gjIBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQFMAMB
Af8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUAA4GBAFjOKer89961
zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y7qj/WsjTVbJmcVfewCHrPSqnI0kB
BIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee95
70+sB3c4
-----END CERTIFICATE-----


Next, create a file called Thawte_Premium_Server_CA.pem in the /etc/postfix/ssl directory and paste the following into that file:
-----BEGIN CERTIFICATE-----
MIIDJzCCApCgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBzjELMAkGA1UEBhMCWkExFTATBgNVBAgT
DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3Vs
dGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UE
AxMYVGhhd3RlIFByZW1pdW0gU2VydmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNlcnZl
ckB0aGF3dGUuY29tMB4XDTk2MDgwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgc4xCzAJBgNVBAYT
AlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEdMBsGA1UEChMU
VGhhd3RlIENvbnN1bHRpbmcgY2MxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2
aXNpb24xITAfBgNVBAMTGFRoYXd0ZSBQcmVtaXVtIFNlcnZlciBDQTEoMCYGCSqGSIb3DQEJARYZ
cHJlbWl1bS1zZXJ2ZXJAdGhhd3RlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0jY2
aovXwlue2oFBYo847kkEVdbQ7xwblRZH7xhINTpS9CtqBo87L+pW46+GjZ4X9560ZXUCTe/LCaIh
Udib0GfQug2SBhRz1JPLlyoAnFxODLz6FVL88kRu2hFKbgifLy3j+ao6hnO2RlNYyIkFvYMRuHM/
qgeN9EJN50CdHDcCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQAm
SCwWwlj66BZ0DKqqX1Q/8tfJeGBeXm43YyJ3Nn6yF8Q0ufUIhfzJATj/Tb7yFkJD57taRvvBxhEf
8UqwKEbJw8RCfbz6q1lu1bdRiBHjpIUZa4JMpAwSremkrj/xw0llmozFyD4lt5SZu5IycQfwhl7t
UCemDaYj+bvLpgcUQg==
-----END CERTIFICATE-----



障害発生時のメールアドレス設定
$ sudo nano /etc/aliases
mdadm-admins: メールアドレス
※カンマ区切りで複数指定可
$ sudo postalias /etc/aliases

$ sudo nano /etc/mdadm/mdadm.conf
MAILADDRの値を mdadm-admins にする

mdadm再起動
$ sudo /etc/init.d/mdadm reload

テストメール発信
$ mdadm --monitor --scan --oneshot --test

X.参考
http://d.hatena.ne.jp/adsaria/20100701/1277955172
http://www.gem.mydns.jp/daitei/linux/homeserver/OS/mdadm-addmd.html
http://blog.livedoor.jp/dankogai/archives/51366575.html
http://doronkoit.blog37.fc2.com/blog-entry-23.html
http://bibo-log.blog.so-net.ne.jp/archive/20100418
http://www.itmedia.co.jp/help/tips/linux/l0349.html
http://blogs.yahoo.co.jp/wine100per/38395650.html
http://nabe.blog.abk.nu/0301
http://rdt17.blogspot.com/2010/05/mdadmraid.html
http://www.ioss.jp/sohodiy/mdadm8.html

(20121127追記)
gmailでメール送信ができなくなっていたのでできる方法を探してきて訂正
追加した手順を青表記
参考:
http://www.criterion.sc/sub_notes/Postfix_Security.html
http://archive.aerial.st/archive/2011/12/08/postfix-via-gmail-on-lion/


RAID化した/home以下をsambaで公開します
今回はsamba用ユーザを作成し、そのユーザのユーザディレクトリを公開するようにします

sambaの設定
1.samba用ユーザーの作成
$ sudo groupadd sambausers
$ sudo adduser --ingroup sambausers sambauser
パスワードをタイプ
Full Name : sambauser
あとはenterでスキップ

$ sudo smbpasswd -a sambauser
パスワードをタイプ
※ubuntuユーザと同時にパスワード作成されるらしい

2.共有ディレクトリを作成する
$ sudo nano /etc/samba/smb.conf
最後尾に↓を追記、[ ]内が共有名になる
[share]
comment = share contents
path = /home/sambauser
writable = yes
printable = no
create mask = 0640
directory mask = 0750

※このmaskで、guest不可、同じグループの人はread only になるはず

(20110909追記)
下記を変更
wins support = no ->yes に変更
load printers が no もしくはコメントアウトされていることを確認
map to guest = bad user ->Never に変更

下記を[global]に追加
netbios name = XXXX windows機からのホスト名(?)
hosts allow = XXX.XXX.XXX.XXX アクセスを許可するIP

"hosts allow"でワイルドカードを使うような書き方も可能
127.*.*.*なら、 127. と書く。
192.168.*.*なら、 192.168. と書く。
スペース区切りで複数のIPを書くことも可能

(20111017追記)
wins support=yesと一緒に
domain master = yes
local master = yesも指定した方がいい・・・?

dos charset = CP932
unix charset = UTF8
display charset = UTF8
を指定したほうがよい?


(20120806追記)設定を検証
$ testparm

3.サービス再起動
$ sudo /etc/init.d/samba restart

4.確認
Windowsマシンから\\ubuntuホスト名\にアクセス
shareフォルダが見えていたらOK
shareフォルダにsambauserでログインして
ファイル操作ができることを確認する

X.参考
http://hooktail.org/computer/index.php?Samba


quota設定
1.quotaをインストール
$ sudo apt-get install quota
$ sudo nano /etc/fstab
/dev/md0のdefaultsをdefaults,usrquota に変更
$ sudo mount -o remount /dev/md0
$ sudo quotacheck /dev/md0
$ ls /home
/homeにaquota.userが作成されていることを確認
$ sudo quotaon /dev/md0

2.quotaの設定
$ sudo edquota -u sambauser
ここでは1つめのsoftに900000
1つめのhardに1000000と入れる
※単位はKB

3.quotacheckをcronで実行
$ sudo nano /etc/cron.daily/quotacheck.cron
↓を記述
#!/bin/sh
quotaoff /dev/md0
if [ $? -eq 0 ]; then
    quotacheck -augm
    if [ $? -eq 0 ]; then
            quotaon /dev/md0
    fi
fi
手動実行してエラーが出ないことを確認する
$ sudo sh /etc/cron.daily/quotacheck.cron

X.参考
http://itmst.blog71.fc2.com/blog-entry-62.html
http://www.samba.gr.jp/doc/quota.html
http://satospo.sakura.ne.jp/blog_archives/tech/centos/quota.html


共有フォルダにアクセスする
1.Windows
普通に\\ホスト名\共有名
にアクセスして、sambauserでログインする

2.MAC
移動メニューから[サーバへ接続]を選択
アドレスに
smb://サーバ名/共有名
と入力
sambauserでログインする

X.参考
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/334sharemacx.html


速度測定
1.ubuntu側
$ dd if=/dev/zero of=/home/sambauser/zero bs=128k count=3276
121MB/sだった
※AdvancedFormat対策をしない場合50MB/sくらいらしい

2.windows側
CrystalDiskMarkで計測
ネットワークドライブに割り当ててから行う
可能なら1000MBで行った方が正確
10MB/sくらいだった
※どうにかしたい・・・

→後日談追記


念のためsdbに/をコピーしておく
$ sudo mkfs.ext4 /dev/sdb2

$ sudo telinit 1 以降、本体操作

リカバリメニューでDrop rootを選択

NAS領域を解除
$ umount /home


/mntにコピー先をマウントしてからコピー
$ mount /dev/sdb2 /mnt
$ cp -axv / /mnt


アンマウントして再起動
$ umount /mnt
$ shutdown -r 0


こんな感じで、NASの構築完了!
初心者に地雷はきつかったです・・・
あとは障害発生時のシミュレートを行いたいと思います

続く


--- 追記(2011/8/14) --- 以前NASへのアクセス速度を計測した際は10MB/sちょいでしたが改善しました。
なんと、ギガビットイーサにもかかわらずLANケーブルのカテゴリがまさかの5でした・・・。
余っていた5eと差し替えたところRead23MB/s Write26MB/sくらいにまで改善やっほーい。
ちなみにローカルHDDだとシーケンシャルなReadWriteが92/87です。

ubuntuのリンク速度表示コマンド
$ sudo ethtool eth0
※ない場合はインストール
$ sudo apt-get install ethtool

0 件のコメント:

コメントを投稿