アーカイブ

Archive for the ‘サーバ’ Category

Time Machine用にProLiant MicroServerを導入

家族で共用のTime Machineを使ったバックアップ先に、QNAPのTurboNAS 410というNASを使っています。
これは非常に使い勝手の良い製品なのですが、ARMをCPUに使ったソフトウェアRAIDなので、I/O性能があまり高くありません。
Time Machineで使用する場合バックアップ時は問題ありませんが、過去のファイルをブラウズする操作が実用にならない程遅いです。
RAID5でなければ実用的な性能が出るのかもしれませんが、目的に沿わないので試していません。

そこでx86を使った高速な製品を物色していて、ReadyNAS Ultra4TurboNAS 469Lあたりを考えていたのですが、良いお値段なのでなかなか踏ん切りがつきませんでした。
そんな折に、HPのProLiant MicroServerが2万円以下という事を知り、FreeNASあたりを使えば手間も商用のNASと大差無いと判断して導入してみました。

性能は十分です

期待通りの性能が出ました。
Time Machineでの過去のファイルのブラウズも軽快で、十分必要なファイルを探しまわれます。

大変五月蝿いです

静音サーバという事になっていますが、NASとは比較になりません。
電源FANとケースFANが分離しており、双方ともに音量があります。
低負荷時にCPUのクロックを下げたり、HDDをスピンダウンしたりさせてみましたがも焼け石に水です。
静粛を求めるのであれば、大人しくNASを買うべきです。

楽ではありません

FreeNASはNASと言うよりも、商用LinuxディストリビューションのGUI設定ツールのような物です。
UNIXのユーザ管理や、Samba、Netatlkの知識が必要です。

僕はNASのユーザ管理やファイル共有設定には、次のような物が求められると考えています。

  • 複数のユーザを作成して共有領域を読み書きした時に、パーミッションに起因する問題が起きない
  • WindowsとMacのクライアントが混在する時に、文字化けが起きたり管理ファイルが見えたりしない

QNAPなどは上記を実現する為に、UNIXやSambaやNetatalkを上手に隠蔽して独自の設定をユーザに見せています。
結局、Linuxで自宅サーバを構築していた頃と大差無い手間が必要でした。

細かい話をすると、WebDAVのサポートが無いのでiOSなどからのアクセスが辛いです。

ファイル共有でユーザが相互に読み書きするコツ

複数ユーザで共有領域を利用する場合、ユーザ作成時にプライマリグループを「staff」あたりにしておくと楽です。
新規ファイルにグループ書き込みパーミッションさえ付けば、ユーザ間の読み書きが問題になる事が無いので。

CIFSの共有に設定については、「高度な設定」の「補助パラメータ」にアクセスを許すユーザを列記する必要があります。

valid users = "ユーザ1,ユーザ2"
write list = "ユーザ1,ユーザ2"

特にパーミッションは心配無いです。

AFPの共有設定については、「許可リスト」と「読み込み/書き込み可能アクセス」にアクセスを許すユーザを列記する必要があります。
またパーミッションは、「Default file permission」と「Default directory permission」のGropのWriteにチェックを入れる必要があります。

Macから接続する時にCIFSを使うとロクでも無いパーミッションが設定されるので、避ける事をお勧めします。

広告
カテゴリー:サーバ, ハードウェア

フレッツ・スクエア ネクスト対応ルータとBIND 9を協調させる

最近のフレッツ光対応ルータには、フレッツ・スクエア ネクストに対応した物があります。
フレッツ・スクエアは専用のPPPセッションを張る必要あり、フレッツ・スクエアv6はクライアントPCに専用ツールを入れる必要があったのですが、フレッツ・スクエア ネクストは特に何もしなくても接続できるという、大変気持ち悪い^h^h^h^h^h便利な代物です。

試しにウチからアクセスしてみたところ、初回のアクセスにかなり時間が経過した後に繋がり、その後なぜかLAN内のサーバに繋がらなくなるという面白展開になりました。
この時は、LANのプライマリDNSサーバへのflets-east.jpの問い合わせがタイムアウトして、セカンダリDNSになっていたフレッツ光対応ルータが応答して繋がり、その後ローカルマシンはプライマリDNSが死んだと誤解して、LAN内のホスト名を引けなくなっている、という顛末でした。

少し実験してみた所、フレッツ・スクエア ネクストは下記のような流れで接続している事が判りました。

  1. フレッツ光対応ルータに、flets-east.jpを問い合わせる
  2. IPv6のアドレスが返る
  3. クライアントがIPv6で接続しようとする
  4. フレッツ光対応ルータがIPv6ブリッジになってフレッツ・スクエア ネクストに接続する

つまりLANにDNSサーバがある場合、flets-east.jpの問い合わせがあった時に、フレッツ光対応ルータへフォワードすれば良いのです。
あと、僕らのような人種にありがちなミスは、ローカルマシンやブラウザでIPv6を無効に設定してしまう事です(^_^;;

ウチはDebian lennyでBIND 9を動かしていますが、以下のような設定を入れたらフレッツ・スクエア ネクストに問題なく繋がるようになりました。

vi /etc/bind/named.conf.local
+zone "flets-east.jp" {
+   type forward;
+   forward only;
+   forwarders {
+      <フレッツ光対応ルータのIPアドレス>
+   };
+};
カテゴリー:サーバ

続・Darwin Calendar Serverの構築

2009年9月27日 6件のコメント

前回のエントリで紹介したDebian lennyにおいてのDarwin Calendar Serverの構築ですが、iCalのアカウントの委任タブの編集ボタンから他のユーザにカレンダーを公開しようとしても、ユーザ名が見つからないという残念な制限がありました。
が、この設定を行えるクライアント向けツールに気がつきました。今頃(^_^;;
CalDAVClientLibraryです。

インストール

ツールはスクリプトでSubversionリポジトリで公開されています。
ターミナルを開いて、下記のコマンドで取得します。

svn checkout http://svn.macosforge.org/repository/calendarserver/CalDAVClientLibrary/trunk CalDAVClientLibrary

委任設定

cd CalDAVClientLibrary
./runshell.py --server=http://<サーバのホスト名>:8008 --user=<公開する側のユーザID>
Password:<公開する側のユーザのパスワード>
/ > proxies -i
Proxy > add -r
New principal [q - quit]: /principals/users/<公開する相手のユーザID>
Proxy > quit
/ > quit

シェルモードにはヘルプもあるので、先に読むと良いです。

CalDAVClientLibraryにはrunadmin.pyというコマンドもあって、こちらはサーバー上でaccounts.xmlの編集に使えます。
ドキュメント不足で手書き設定が判りにくいので、このツールで編集した方が良いと思います。
コマンドの使い方はヘルプですぐ判りますし、値の指定は対話形式なので問題ないと思います。

カテゴリー:サーバ

Darwin Calendar Serverの構築

連休前に会社のリポジトリサーバをDebian lennyで組むというミッションがあったのですが、Debianの出来の良さが気に入ったので自宅のサーバも換装してみました。
怪しげなリポジトリの追加やコンパイル作業無しで必要なサービスが揃ったのは初めてで、Debianのパッケージの充実に感動している所です。

せっかくなので、今まで先送りしていて欲しかったCalDAVサーバを構築してみる事にしました。
lennyのリポジトリを確認した所、Darwin Calendar Serverが見つかりました。
DAViCalの方は、squeeze以降にしか無いようです。

先に使用感について書いておきますが、概ね良好です。
MacのiCalとiPhoneから、問題なく読み書きできています。
自宅サーバを持っている人で、MobileMeやGoogle Calendarにスケジュールを預けたくないけど、OTA同期したい人にはお勧めできます。
一点だけ問題があり、iCalからカレンダーを他のユーザに委任する事ができません。
Calendar Serverのメーリングリストを追ったところ、アカウントをLDAPで管理するように構成しなければ、この機能が動作しないという事でした。
自宅サーバに家族のアカウントを収容していて、相互にカレンダーの公開を考えている場合は面倒かもしれません。
僕は、LDAPは構成しませんでした。面倒すぎ(^_^;;

インストール

aptitude install calendarserver

ディスクの拡張属性を有効化

Calendar Serverは、情報の一部のファイルの拡張属性に収容します。
/var/spool/caldavを含むディスクを、user_xattr付でマウントするようにしてください(ext3の場合)。
下記は僕の所の例ですが、ファイルシステムでオプションが違うと思うので、調べてください。

vi /etc/fstab
-/dev/md0        /               ext3    errors=remount-ro 0       1
+/dev/md0        /               ext3    errors=remount-ro,user_xattr 0       1

ルートディスクの場合はアンマウントできないので、再起動かもしれません。

設定ファイルを用意

インストール直後は設定ファイル不足で起動しないようになっています。
サンプルをコピーしてから始めると楽です。

cp /usr/share/doc/calendarserver/examples/accounts.xml /etc/caldavd
cp /usr/share/doc/calendarserver/examples/sudoers.plist /etc/caldavd

ネットワーク設定

デフォルトだとlocalhostにバインドされているので、すべてのIPアドレスに応答するように設定します。
またSSLを有効にする場合は、証明書も指定します。

vi /etc/caldavd/caldavd.plist
-  <!--
   <key>SSLPort</key>
   <integer>8443</integer>
-  -->

   <key>BindAddresses</key>
-  <array><string>localhost</string></array>
+  <array><string></string></array>

   <key>SSLCertificate</key>
-  <string>/etc/ssl/certs/ssl-cert-snakeoil.pem</string>
+  <string>/etc/ssl/certs/<証明書></string>

   <key>SSLPrivateKey</key>
-  <string>/etc/ssl/private/ssl-cert-snakeoil.key</string>
+  <string>/etc/ssl/private/<秘密鍵></string>

ユーザを追加

ユーザ情報はXMLファイルに書き込みます。
パスワードも生ですし、PAMを使ってLinuxのアカウントで認証する事もできません。
LDAPを使って構成すると幸せになれるみたいですが……

vi /etc/caldavd/accounts.xml
+  <user>
+    <uid>user1</uid>
+    <password>pass1</password>
+    <name>User 1</name>
+    <cuaddr>user1@foo.com</cuaddr>
+  </user>
+  <user>
+    <uid>user2</uid>
+    <password>pass2</password>
+    <name>User 2</name>
+    <cuaddr>user2@bar.com</cuaddr>
+  </user>

試していませんが、会議室予約のような共有カレンダーはLDAP無しでも設定可能であるようです。
accounts.xmlの下の方にそれっぽいサンプルがあるので、お試しください。

自動起動を設定

デフォルトで起動が禁止されています。

vi /etc/default/calendarserver
-#start_calendarserver=yes
+start_calendarserver=yes

後は起動するだけです。

/etc/init.d/apache2 calendarserver

クライアントからの接続

iCalやiPhoneからの接続は簡単です。
ホスト名とユーザ名とパスワードを入れれば、SSLの有無やカレンダーのパスを自動的に検出してくれます。
Windowsからの接続は試していませんが、Mozilla Sunbirdなら繋がると思います。たぶん(^_^;;

カテゴリー:サーバ

openSUSE 10.3でPostgrey

iPhoneのメールはIMAPに対応していて、自宅サーバのメールボックスに出先からアクセスできるようになりました。使い勝手は良好で、ブラウザ経由のSquirrelMailは使わなくなりました。

若干の問題は自宅のメールボックスに届くスパムメールで、OS Xのメールの迷惑メールフィルタで除去しています。しかし、OS X側より先にiPhoneでメールを確認すると、除去前のスパムメールが沢山表示されてしまいます。

考えられる対処は、メールサーバでスパムを除去する事です。以前CentOS 5.0を使っていた時にPostgreyを導入していたので、今回もPostgreyを利用する事にしました。

まず、YaSTで以下の依存パッケージをインストールします。

perl-BerkeleyDB
perl-IO-Multiplex
perl-Net-Server

openSUSE 10.3にはPostgreyのパッケージがありません。開発版のソースパッケージをビルドします。

wget http://download.opensuse.org/distribution/SL-OSS-factory/inst-source/suse/src/postgrey-1.31-30.src.rpm
rpmbuild --rebuild postgrey-1.31-30.src.rpm
rpm -ivh /usr/src/packages/RPMS/i586/postgrey-1.31-30.i586.rpm

次にPostfix側の設定を行います。/etc/postfix/main.cfのsmtpd_recipient_restrictionsの最後に、check_policy_service unix:/var/spool/postfix/postgrey/socketを追加します。この設定はYaSTでメール関係の設定を行うと、失われるかもしれません。随時確認するようにしてください。

後はPostgreyを起動して、Postfixを再起動します。Postgreyの自動起動も、YaSTで設定しておくと良いでしょう。

カテゴリー:サーバ

SambaでTime Machine

iSCSIを使ったネットワーク越しのTime Machineが安定しなかったので、次はSambaで共有しているネットワークドライブにTime Machineでバックアップを試す事にしました。

まずTime Machineの設定を弄って、未サポートドライブにバックアップできるようにします。

defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1

この状態で共有しているサーバのボリュームにバックアップを行った所、イメージファイルの作成に失敗してバックアップが始まりませんでした。

そこでディスクユーティリティを使い、あらかじめイメージファイルを作ってやるとうまくきました。
この時、イメージフォーマットはスパースバンドル・ディスクイメージを選びます。
またボリュームサイズは、適当に大きめのサイズを指定しました。
注意が必要なのはイメージファイル名で、[ホスト名]_[有線のMACアドレスから記号を抜いて小文字化].sparsebundleとする必要があります。

カテゴリー:サーバ, デスクトップ

openSUSE 10.3でiSCSI Target

デスクトップマシンをLeopardに更新したので、ネットワーク経由でTime Machineを使えるようにiSCSI Targetを用意してみました。
openSUSE 10.3は、YaST2に設定モジュールがあったので楽勝かと思いましたが、iscsitargetが起動しないトラブルに遭いました。
原因はiscsi_trgt.koの欠落でした。

ここにモジュールがありますが、ビルド済み物は対応カーネルが古いです。
既にアップデートしていた場合は、自分でビルドする必要があります。

wget http://download.opensuse.org/repositories/home:/jeff_mahoney/openSUSE_10.3/src/iscsitarget-0.4.15-84.1.src.rpm
rpmbuild --rebuild iscsitarget-0.4.15-84.1.src.rpm
rpm -ivh /usr/src/packages/RPMS/i586/iscsitarget-0.4.15-84.1.i586.rpm /usr/src/packages/RPMS/i586/iscsitarget-kmp-default-0.4.15_2.6.22.17_0.1-84.1.i586.rpm

ここまでは良かったんですが、Time Machineで使うのは諦めました。
バックアップが途中で止まってしまいます。
しかも止まった時は、Leopard側がシャットダウンできなくなります。
Tigerのsmbクライアントに似たようなトラブルが多くて、Leopardになってから安定したので、追々安定するかもしれません。

無線LANを使っているのが、安定性を落としているんでしょうね。

カテゴリー:サーバ