memcached – man page 翻訳してメモしておく

今さらながら memcached を使ってみたので、そのときに訳したメモをここにメモ。
誤訳に十分御注意ください。御指摘いただけたら幸いです。

MEMCACHED(1)                                                      MEMCACHED(1)
NAME
memcached - 高性能メモリーオブジェクトキャッシュシステム
SYNOPSIS
memcached [options]
DESCRIPTION
このマニュアルページは 簡単な memcached メモリオブジェクトキャッシングデーモ
ンのドキュメントです。
memcached はメモリ内に格納しているオブジェクトによって動的なウェブアプリ
ケーションのデータベースの負荷を軽減するように設計されたオブジェクトキャッシ
ングシステムです。
それは、必要であるどんなサイズにも比例するように libevent に基づいていて、
スワップするのを避けて、いつもnon-blocking I/O を使用するために明確に最適化
されます。
OPTIONS
これらのプログラムは普通の GNU コマンドラインシンタックスをフォローします。
オプションの概要は以下に含まれています。
-l <ip_addr>
<ip_addr> をリッスンします;デフォルトは INDRR_ANY です。
これはセキュアにインストールする唯一の方法として重要なオプションだと
思います。
内部やファイアーウォール内のネットワークインターフェースに付くことが
示されます。
-d     Rmemcached をデーモンとして起動します。
-u <username>
<usename> の識別子のフリをします(ルートで動かすときのみ)。
-m <num>
オブジェクトの格納のために最大で <num> MB メモリを使います;デフォル
トは 64 MB です。
-c <num>
同時コネクションを最大で <num> にします;デフォルトは 1024 です。
-k     全ての呼び出されたメモリをロックダウンします。これは大きなキャッシュ
の場合はいくらか危険なオプションですので、
設定の提案のために、README と memcached ホームページに相談してください。
-p <num>
<num> 番の TCP ポートをリッスンします、デフォルトは 11211 です。
-U <num>
<num> 番の UDP ポートをリッスンします、デフォルトは 11211 です。
-M     メモリ外のときにキャッシュからアイテムを自動的に取り除くことを無効に
します。適切なスペースが開けられるまで、追加は可能にならないでしょう。
-r     コアファイルサイズの許可できる最大まで限界を上げます。
-f <factor>
アイテムがストアされるメモリチャンクサイズを計算するための乗数として
<factor> を使います。低い値ははメモリの利用可能な総量と項目サイズの分
配による、それほど無駄でないメモリ消費になるかもしれません。デフォル
トは 1.25 です。
-s <size>
アイテムキー、値、フラグに最低 <size> byte 割り当てます。デフォルトは
48 です。もしたくさんの小さなキーと値を持つなら、少ない値で有効な効き
目を得ることができます。もし (-f オプション) の結果で大きなチャンクを
使うなら、他方では、(最も小さい)チャンクをパックした、最も密にフィッ
トするアイテムのより大きなパーセンテージに許可するためにサイズを増加
したいかもしれません。
-h     memcached のバージョンとオプションのサマリを表示します。
-v     イベントを繰り返す間、冗長モードになります;エラーと警告を出力します。
-vv    さらに冗長モードになります; -v と同じですが、クライアントのコマンド
とレスポンスも出力します。
-i     memcahced と libevent のライセンスを出力します。
-P <filename>
-d オプションを使っているときのみ、 <filename> に pidfile を出力します。
-t <threads>
入ってくるリクエストのプロセスに使われるスレッド数。
もし memcached がスレッドサポート有効にしてコンパイルされているなら、
このオプションは有意義です。
それは memcached サーバの CPU のコアの数より高くこれを設定するのため
に役立ちません。
-D <char>
キーのプレフィックスと ID の間のデリミタとして <char> を使います。
これは per-prefix stats レポートに使われます。デフォルトは ":"(コロ
ン) です。もしオプションが特定されたら、stats コレクションは自動的に
つきます;もしそうでなければ、そのとき、サーバに "stats detail on"
コマンドを送信することでつくでしょう。
LICENSE
memcached デーモンは Danga Interactive の著作権 とBSD ライセンスのもとに配布
されます。daemon clients は別々に認可されることに注意してください。
SEE ALSO
The README file that comes with memcached
http://www.danga.com/memcached
AUTHOR
The memcached daemon was written by Anatoly Vorobey <mellon@pobox.com> and
Brad Fitzpatrick <brad@danga.com> and the rest of the crew of Danga Inter-
active http://www.danga.com
April 11, 2005                    MEMCACHED(1)
2008年 4月 7日 | Filed under Linux
タグ:

Sendmail と Postfix での .forward でプログラムに渡すときの動作の違い

Sendmail と Postfix での .forward でプログラムに渡すときの動作の違いについて今更気づいたメモ。

.forward で受信メールをこんな風に Perl とかに渡して、

|"/path/to/execute_receiving.pl"

受信したアカウント名を取り出して、あれこれと処理をするとき。
Sendmail では、プログラムからカレントディレクトリを pwd コマンドで取得すると、
以下のように、受信したアカウントの .forward がある ディレクトリ (ホームディレクトリとか)

/home/wanatabe

になるので、ここから名前 “wanatabe” が取れます。

しかし、Postfix だと、Sendmail のように受信したアカウントの .forward のある ディレクトリではなくて、
main.cf 内の queue_directory がカレントディレクトリになる。

queue_directory = /path/to/spool_dir

自分の環境ではデフォルトで /var/spool/postfix になっていた。

queue_directory = /var/spool/postfix

なので、この環境で pwd すると、

/var/spool/postfix

となってしまう。

ずっと Sendmail 使っていたので、気づかずちょっとはまった。
To: から取るなどすればよさそうなものを、なんでこういう取り方していたのか忘れたけれども。

2008年 3月 12日 | Filed under Movie
タグ:

X40 マシンに PXE ブートで Ubuntu をインストールする

VMware fusion に WindowsXP を入れたので 今まで使っていた X40 には Ubuntu を入れてみました。
X40 に CDROM ドライブ等が無かったので、どうやるかいろいろ考えた結果、VMware fusion 上の Ubuntu で tftp サーバをたてて、PXEブートさせてインストールすることにしました。

ネットワーク

VMware 上の Ubuntu を Bridge に設定して、固定 IP を振りました。

必要なソフトウェアのインストール

tftp と dhcp をインストールします。

ubuntu$ sudo apt-get install tftpd-hpa dhcp3-server

tftp の設定

/etc/inetd.conf を以下のようにして inetd 経由で起動するように設定します。(xinetd でもいいです。どちらでもいいです。)

tftp           dgram   udp     wait    root  /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot

/etc/default/tftpd-hpa を編集します。

#Defaults for tftpd-hpa
RUN_DAEMON="yes"
OPTIONS="-l -s /var/lib/tftpboot"

dhcp サーバの設定

/etc/dhcp3/dhcpd.conf を編集します。(勘違いで /etc/dhcpd.conf を一生懸命編集してしまった思い出が残っています。)

host pxeinstall {
hardware ethernet 00:0C:29:D1:D3:A0;
fixed-address 192.168.0.10;
next-server 192.168.0.8;
filename "pxelinux.0";
}
subnet 192.168.0.0 netmask 255.255.255.0 {
range dynamic-bootp         192.168.0.10 192.168.0.20;
filename                    "pxelinux.0";

tftp サーバと dhcp サーバのスタート

tftp サーバは inetd 経由で起動するように設定したので、 inetd デーモンをスタートします。

ubuntu# sudo /etc/init.d/inetd start
ubuntu# sudo /etc/init.d/dhcp3-server start

ブートイメージを設置します。

いろいろ方法はありますが、今回はネットからダウンロードしました。

ubuntu# lftp -c "open http://archive.ubuntu.com/ubuntu/dists/dapper/main/installer-i386/current/images/; mirror netboot/"
ubuntu# cp -R netboot/* /var/lib/tftpboot

これで同一セグメントに設置した X40 をネットブートするとインストーラが起動します。ステキです。

2008年 3月 5日 | Filed under Linux
タグ:

Mac に VMware Fusion と Windows を入れて幸せになる

こんな風に MacBook に VMware Fusion と WindowsXP を入れてみました。

特に普段は、Windows 上でやりたいことは無いんだけれど、なんとなく、作った Web サイトを IE で確認してみたくなったときや、リモートデスクトップを使ってみたいときがあるので、そんなときに非常に便利になりました。
なんといっても、Mac 上でシームレス(笑)に Windows アプリケーションを実行できるので、使いたいときにストレスなくサッと使えるわけです。Full-Virtulization はここまでできるんですね。すばらしい。

仮想化ついでですが、前の記事で DRBD と Heartbeat を組み合わせることについて書きましたが、
Linux マシンで Xen (Para-Virtualization) を稼働させているときに、
これをこの Xen 上でやる場合は、(CentOS 5 の場合) kmod-drbd-xen というパッケージがあるので、これを使うと同じ手順でできます。
同じハードウェア上でやってもメリット少なそうですが、例えば、
Xen マシン1上の Linux ホスト A と、Xen マシン2上の Linux ホスト C で HA クラスタを組むような場合に力を発揮してくれそうです。

ただ、運用するのにかなりややこしくなりそう。実際の運用まで考えると、ちゃんとストレージ買って FC とか iSCSI とか使った方がややこしくなくていいですかね。このへん、もっと楽にできないもんかな。

[追記]
Mac OS X用リモートデスクトップクライアント「CoRD」 なるものがあったのですね。興味深いです。

2008年 3月 2日 | Filed under Mac
タグ:

iSCSI Enterprise Target

これ (iSCSI Target – Solaris Express) をみたので Linux (Fedora Core 6) でやってみました。

設定にあたってこの辺を参考にしました。3つめのページには Microsoft iSCSI Software Initiator についても書かれています。

iSCSI enterprise target project Wiki
A Quick Guide to iSCSI on Linux
Going Enterprise – setup your FC4 iSCSI target in 5 minutes

準備

利用するにあたって以下のものが必要です。

  • kernel-development パッケージ
  • kernel コンフィグの “Cryptographic options” の “Cryptographic API” が有効になっていること
  • OpenSSL ライブラリ

ソースを checkout します。

# mkdir /usr/local/src/iscsitarget
# cd /usr/local/src/iscsitarget
# svn co svn://svn.berlios.de/iscsitarget/trunk .
# cd  iscsitarget
# make && make install

/etc/ietd.conf を編集します(無ければ iscsitarget/etc/ietd.conf を /etc 以下にコピーします)。
Target を定義します。最初の一行目はターゲット名を指定します。
ietd.conf の man page には、

iqn.<yyyy-mm>.<tld.domain.some.host>[:<identifier>]

とありますので、<tld.domain.some.host> の部分を com.wanatabe にしました。
IncomingUser と OutcomingUser は initiator との認証(CHAP secrets)のための指定をしますが、認証なしで接続する場合は引数をつけません。
Lun には、割り当てるデバイスを指定します。Type には fileio(default)、blockio が指定できるようです。
最後の Alias には target のエイリアスを指定します。

結果として以下のようにしました。

Target iqn.2001-04.com.wanatabe:storage.lvm
# Leave them alone if you don't want to use authentication.
IncomingUser
OutgoingUser
Lun 0 Path=/dev/VolGroup00/oheya,Type=fileio
Alias OHEYA

他にもいくつかオプションがあります。current version ではまだ使用されていないものもあるようです。

デバイスの設定

新しい LogicalVolume に割り当てる容量がなかったので、500MB だけ確保しました。

# lvreduce -L-500M /dev/VolGroup00/LogVol00

oheya という Volume を 500MB で作成します。

# lvcreate -n oheya -L 500M VolGroup00

念のため確認します。

# lvdisplay /dev/VolGroup00/oheya
--- Logical volume ---
LV Name                /dev/VolGroup00/oheya
VG Name                VolGroup00
LV UUID                FerqfA-aHCu-ZYZs-Lpis-7pq7-p6zv-BAt3vh
LV Write Access        read/write
LV Status              available
# open                 0
LV Size                512.00 MB
Current LE             16
Segments               2
Allocation             inherit
Read ahead sectors     0
Block device           253:2

起動

iscsi-target スクリプトで ietd daemon を起動します。

# service iscsi-target start

起動した後に /proc/net/iet/volume で確認できます。

# cat /proc/net/iet/volume
tid:1 name:iqn.2001-04.com.wanatabe:storage.lvm
lun:0 state:0 iotype:fileio iomode:wt path:/dev/VolGroup00/oheya

initiator のセッションは /proc/net/iet/session で確認できます(Microsoft iSCSI Software Initiator からログインしています)。

# cat /proc/net/iet/session
tid:1 name:iqn.2001-04.com.wanatabe:storage.lvm
sid:281475899523136 initiator:iqn.1991-05.com.microsoft:wanatabe-b01b342bc
cid:1 ip:192.168.0.3 state:active hd:none dd:none

ietadm コマンド

target は ietadm コマンドでも設定できます。
でも /etc/ietd.conf に反映する手段がまだなさそうです。

これで target を作成します。

# ietadm --op new --tid=1 --params Name=iqn.2001-04.com.wanatabe:storage.lvm

作成した tid を指定して、lun を設定します。

# ietadm --op new --tid=1 --lun=0 --params Path=/dev/VolGroup00/oheya

認証の設定は以下のようにします。RFC 3720 によると、CHAP secrets は 96 bit(12文字) 以上 128 bit(16文字) 以内にしなさい、とのことです。

# ietadm --op new --tid=1 --user --params=IncomingUser=hogehoge,Password=hogegepassword
2008年 2月 7日 | Filed under Linux
タグ: