8月 25
AyasCentOS, Linux centos, kyototycoon, memcached, php
yum -y install zlib-devel.x86_64
yum -y –enablerepo=remi install libmemcached.x86_64 libmemcached-devel.x86_64
pecl install memcached
vi /etc/php.d/memcached.ini
; Enable memcached extension module
extension=memcached.so
vi /etc/php.ini
; session.save_handler = files
session.save_handler = memcached
; session.save_path = “/var/lib/php/session”
session.save_path = “ktserver.localdomain:11211″
今回は Kyoto Tycoon を memcached 互換で動かしてそれに投げた。
libmemcached は remi リポジトリにあったのでそれを利用した。
session_start(); すると、ktserver.localdomain にセッションの値が保持される。
有効期限等の設定が別途必要。
サーバー名がktなのは実はKyotoTycoonだから。
8月 22
AyasCentOS, Linux centos, kyototycoon, replication
CENTOS 5.6 に KYOTOTYCOON をSRPMからインストールの続き
マスター側の/etc/init.d/ktservctlを変更
#ulogdir=”$basedir/ulog”
ulogdir=”/var/log/ktserver/ulog”
#sid=1
sid=1
#ulim=1g
ulim=1g
起動スクリプト中でulimが必須になっているので、指定したくないならいじる。
sidは必須、無いと起動しない。
スレーブ側の/etc/init.d/ktservctlを変更
#mhost=”anotherhost.localdomain”
mhost=”masterkt.localdomain”
#mport=”1978″
mport=”1978″
#rtsfile=”$basedir/rts”
rtsfile=”$basedir/rts”
#sid=1
sid=2
#cmd=”$cmd -ulog $ulogdir -ulim $ulim -sid $sid”
cmd=”$cmd -ulog $ulogdir -sid $sid”
sidは他のサーバーと別の数字に変える。
マルチマスタにする場合、上記マスター側スレーブ側双方の設定を、アクティブマスター・スタンバイマスター双方に行う。
マルチマスターにしない場合は、スレーブ側だけ以下の用に変更
# if [ -n "$ulogdir" ] ; then
# cmd=”$cmd -ulog $ulogdir -ulim $ulim -sid $sid”
# fi
if [ -n "$ulogdir" ] ; then
cmd=”$cmd -ulog $ulogdir -ulim $ulim”
fi
if [ -n "$sid" ] ; then
cmd=”$cmd -sid $sid”
fi
元のスクリプトではulogdirを指定しないとsidが反映されない。
参考Kyoto Tycoonによる高可用性DBサーバの構築
8月 21
AyasCentOS, Linux centos, kyototycoon
yum install rpm-build
wget –no-check-certificate https://github.com/kyohsuke/srpms/tarball/master
tar xfvz kyohsuke-srpms-c4e4fb1.tar.gz
cd kyohsuke-srpms-c4e4fb1
rpm -ivh kyototycoon-0.9.42-1.src.rpm
rpm -ivh kyotocabinet-1.2.58-1.src.rpm
cd /usr/src/redhat/SPECS
#yum remove gcc
yum install pkgconfig zlib-devel
yum install gcc44 gcc44-c++ boost-devel
yum install kernel-devel
ln -s /usr/bin/gcc44 /usr/bin/gcc
ln -s /usr/bin/g++44 /usr/bin/g++
rpmbuild -ba kyotocabinet.spec
rpm -ivh ../RPMS/x86_64/kyotocabinet-*
rpmbuild -ba kyototycoon.spec
rpm -ivh ../RPMS/x86_64/kyototycoon-*
vi /etc/init.d/ktservctl
#cmd=”ktserver”
cmd=”ktserver -plsv /usr/libexec/ktplugservmemc.so”
#logfile=”$basedir/log”
logfile=”/var/log/ktserver”
#dbname=”$basedir/casket.kch#bnum=2000000#msiz=128m#dfunit=8″
dbname=” *#bnum=2000#capsiz=128m#opts=f”
-plsv /usr/libexec/ktplugservmemc.so”
は、memcached互換で動かしたかったので。
* LRUにしたかったので、キャッシュDBを使用する。
bnum 2000バケット
capsiz メモリサイズ上限
opts flags対応オプション
参考
こなふぃ: Kyoto Cabint 1.2.50 と Kyoto Tycoon 0.9.38 の srpm
おっぱいミサイル(kyoto tycoonタグ)
途中で出たエラー
error trying to exec ‘cc1plus’: execvp: No such file or directory
C++ preprocessor “/lib/cpp” fails sanity check
シンボリックリンク張ってごまかした(手順途中にあるgcc44,g++44へのシンボリックリンク)
そこまでする理由は、このバージョンのgccが必要だから。
上記理由により、古いgccがあるとエラー出たりするので、最初にyum remove gcc
最近のコメント