2012年7月16日月曜日

M2NPV-VM NVIDIA_RAID1 から P8H61-M LE iSCSI へVista64を移行

・M2NPV-VM
・NVIDIA RAID1(HDD2台)
・Vista64
の環境から、
・P8H61-M LE
・iSCSI
の環境へ、次の手順で移行した。

1
HDDのバックアップをとる。

2
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Msahci\Start
を(3から)0に変更し、SATA-AHCIでの起動を有効にする。

3
HDD1台をP8H61-M LEにSATA(BIOSでAHCIモードに設定)で接続、Vista64を起動する。
この時点で再アクティベーション(3日以内)を求められるが、先送り。

4
全てのドライバを入れ、再起動テストをする。

5
HDDイメージをiscsiターゲット化し、P8H61-M LEでipxe(ipxe.lkrn)を使ってsanbootする。
ブート(ログインユーザ選択まで)に5分もかかり、とても遅いが解決策不明。
(2012-07-17追記:
  普通のundiドライバを使うundi.lkrn(kpxe形式ならundionly.kpxe)に変更すると
  3.5分程度で起動するようになった。それでも遅い。)
ログイン後については、移行前と大差ない感じで使える。

6
3日問題なく動作するか確認し、再アクティベーションした。
OSのアップグレードとかはiSCSIブートじゃ不可かもしれないので、
SATA-AHCIでの起動を有効なままにしてある。


ちなみに、iSCSIターゲットの仕様は以下のとおり
・ubuntu 12.4 LTS
・tgt(stgt), MaxRecvDataSegmentLengthとMaxXmitDataSegmentLengthを256KBに設定
・HDDイメージは通常ファイル(HDD 2台によるRAID1(/dev/md0), ext4)
lio(lio-target)も試したが、設定方法がよくわからないせいか、
転送速度がstgtの半分以下しか出なかった。

iSCSIターゲットに対して正確な値を出せないと思いますが、CrystalDiskMarkの結果はこれ。

4K読み込みが早いのは、iSCSIターゲット内のキャッシュを無効にできていないからだろう。
ただし、通常のHDDはせいぜい128MBのキャッシュしかないが、
このiSCSIターゲットは2GB以上のキャッシュがあり、
しかもRAID1 HDD2台構成なので、4K読み込みは実際そこそこ早い。

2012年7月4日水曜日

home server (その1) ubuntu12.04LTSの初期設定記録(編集中)

OSインストール


mini.iso(AMD64)を使い最小インストール。タイムゾーンは日本、言語は英語(USA)を選んだ。
起動時にraidエラーがあったとき、気にせず起動ではなく、回復コンソール(モードだったかな)
を開始する方を選択した。

パーティション

md0(raid1:sda1+sdb1) /boot 512MB    ext4
md1(raid1:sda2+sdb2) /       残り全部 ext4 スーパーブロック1% inodeの割り当て1MB毎(largefile)

サーバ等の設定

主なパッケージ

  • exim4 dovecot-pop3d
  • ntp
  • openssh-server
  • dnsmasq
  • iptables-persistent
  • qemu-kvm bridge-utils uml-utilities
  • netcat-openbsd dtach

メールの設定

raidのエラーが発生した時mdadmが送るメールを見逃さないことが最大の目的。
人気のあるパッケージを使いつつ、設定が簡素な方法を選んだつもり。

設定概要
  • root宛のメールはmy-admin宛に転送
  • my-adminのメールボックスをPOP3Sで外部ホストから読めるようにする
  • POP3Sのパスワードはloginパスワードとは別に設定
  • 外部ホストへのメール配送・送信は不可(不要なので)
  • my-admin以外のメールボックスを外部ホストから読むことは不可(不要なので)
まずはexim4の設定。 exim4の細かい設定は、自分には難しそうなので、dpkg-reconfigureで可能な設定だけ行った。local配送のみを選択、 root宛のメールはmy-admin宛に転送、メールボックスはMaildir形式を選択した。
$ sudo dpkg-reconfigure exim4-config
次にdovecot の設定。まずはPOP3S用に100年間有効のオレオレ証明書を作成
$ cd /tmp
$ umask 077
$ openssl req -newkey rsa:1024 -keyout private-dovecot.pem -nodes -x509 -days 36500 -out certs-dovecot.pem
$ sudo sh -c "cat  certs-dovecot.pem > /etc/ssl/certs/dovecot.pem"
$ sudo sh -c "cat  private-dovecot.pem > /etc/ssl/private/dovecot.pem"
$ rm  certs-dovecot.pem private-dovecot.pem
認証で平文不可(ただしSSL接続なら可、つまりPOP3Sは平文可),  ユーザとパスワードはauth-static.conf.extで設定
$ cd /etc/dovecot/conf.d
$ sudo cp -p  10-auth.conf 10-auth.conf--dist
$ sudo vi 10-auth.conf
$ diff 10-auth.conf*
10d9
< disable_plaintext_auth = yes
122c121
< #!include auth-system.conf.ext
---
> !include auth-system.conf.ext
128c127
< !include auth-static.conf.ext
---
> #!include auth-static.conf.ext
ユーザは任意(メールボックスはユーザ名に関係なくmy-adminを対象とする。このホストにmy-adminというユーザが存在することをMUAに教えなくて済む)、パスワードはmy-pass
$ sudo cp -p auth-static.conf.ext auth-static.conf.ext--dist
$ sudo vi auth-static.conf.ext
$ cat auth-static.conf.ext
passdb {
  driver = static
  args = user=my-admin password=my-pass
}
userdb {
  driver = static
  args = uid=my-admin gid=my-admin home=/home/%u
}
メールボックスはMaildir形式を選択
$ sudo cp -p 10-mail.conf 10-mail.conf--dist
$ sudo vi 10-mail.conf
$ diff 10-mail.conf*
31d30
< mail_location = maildir:~/Maildir
設定内容の表示コマンドで最終確認
$ doveconf -n
# 2.0.19: /etc/dovecot/dovecot.conf
# OS: Linux 3.2.0-23-generic x86_64 Ubuntu 12.04 LTS
mail_location = maildir:~/Maildir
passdb {
  args = user=my-admin password=my-pass
  driver = static
}
protocols = " pop3"
ssl_cert = </etc/ssl/certs/dovecot.pem
ssl_key = </etc/ssl/private/dovecot.pem
userdb {
  args = uid=my-admin gid=my-admin home=/home/%u
  driver = static
}
dovecot リスタート
$ sudo service dovecot restart
mdadmでメールの送信テスト
$ sudo mdadm --monitor --scan --test -1

NTPの設定

ntpdateをcronで呼び出す方が単純そうだが、時計を一気に1秒以上ずらすと、
いろいろ問題が生じそうなので、大きくずれても徐々にずらしてくれそうなntpdを使う事にした。
$ cd /etc
$ sudo cp -p ntp.conf ntp.conf--dist
$ sudo vi ntp.con
$ diff ntp.conf*
19,26c19,22
< #server 0.ubuntu.pool.ntp.org
< #server 1.ubuntu.pool.ntp.org
< #server 2.ubuntu.pool.ntp.org
< #server 3.ubuntu.pool.ntp.org
< server ntp1.jst.mfeed.ad.jp
< server ntp2.jst.mfeed.ad.jp
< server ntp3.jst.mfeed.ad.jp
<
---
> server 0.ubuntu.pool.ntp.org
> server 1.ubuntu.pool.ntp.org
> server 2.ubuntu.pool.ntp.org
> server 3.ubuntu.pool.ntp.org
27a24,25
> # Use Ubuntu's ntp server as a fallback.
> server ntp.ubuntu.com

その他の設定

 /etc/default/* をいじってからdpkg-reconfigureしたパッケージ
  •  grub-pc (bootセレクターを表示させる,)
  •  console-setup (コンソールでcapslockをctrl化)

※つづく・・・