Tokyo Tyrantのインストールと構成


Tokyo Tyrantのインストールと構成
Tokyo Cabinetは日本人が開発したDBMデータベースで、読み書きが非常に速い.Tokyo Tyrantも同じ著者が開発したTokyo Cabinetネットワークインタフェースでmemcachedプロトコルと互換性があり、httpプロトコルによるデータ交換も可能である.
 
Tokyo TyrantにTokyo Cabinetを加えて、高同時性をサポートする分散型永続ストレージシステムを構成し、任意のmemcachedクライアントにとって、Tokyo Tyrantをmemcachedサービスと見なすことができるが、ttsereverデータは永続的に格納される.同時にttserverは互いにプライマリ・セカンダリ・モードをサポートし、フェイルオーバを実現します.
 
インストール
1.zlibをインストールhとbzlib.h依存
yum install -y zlib-devel bzip2-devel

インストールしないと、次のエラーが発生する可能性があります.
configure: error: bzlib.h is required

 
2.Tokyo Cabinetのインストール
cd /tmp
wget http://fallabs.com/tokyocabinet/tokyocabinet-1.4.48.tar.gz
tar zxvf tokyocabinet-1.4.48.tar.gz
cd tokyocabinet-1.4.48
./configure --prefix=/usr/local/ttserver/tokyocabinet
make
make install

注意:32ビットオペレーティングシステムでは、Tokyo Tyrantバックエンドとして格納されているTokyo Cabinetデータベースの単一ファイルは2 Gを超えてはいけませんが、64ビットオペレーティングシステムはこの制限を受けません.
したがって、Tokyo Tyrantを使用する場合は、64ビットCPU、オペレーティングシステムへのインストール運転を推奨します.
Tokyo cabinetをコンパイルするときは、次のコンパイルオプションを使用して2 G制限を突破できます.--enable-off 64
 
3.Tokyo Tyrantのインストール
cd /tmp
wget http://fallabs.com/tokyotyrant/tokyotyrant-1.1.41.tar.gz
tar zxvf tokyotyrant-1.1.41.tar.gz
cd tokyotyrant-1.1.41
./configure --prefix=/usr/local/ttserver/tokyotyrant --with-tc=/usr/local/ttserver/tokyocabinet

--with-tcを指定しないと、次のエラーが発生する可能性があります.
configure: error: tcutil.h is required
make
make install

 
4.パラメータの表示
cd /usr/local/ttserver/
./tokyotyrant/bin/ttserver -h
./tokyotyrant/bin/ttserver: the server of Tokyo Tyrant
usage:
./tokyotyrant/bin/ttserver [-host name] [-port num] [-thnum num] [-tout num] [-dmn] [-pid path] [-kl] [-log path] [-ld|-le] [-ulog path] [-ulim num] [-uas] [-sid num] [-mhost name] [-mport num] [-rts path] [-rcc] [-skel name] [-mul num] [-ext path] [-extpc name period] [-mask expr] [-unmask expr] [dbname]

ttserverパラメータコメント:
-host name :              IP  。             IP  。
-port num :           。      1978
-thnum num :      。   8   .
-tout num :            (    )。      。
-dmn :          。
-pid path :     ID     (       )。
-log path :            (       )。
-ld :          DEBUG    。
-le :              。
-ulog path :             (       )。
-ulim num :              (  128m)。
-uas :     IO      (         IO  ,           ,        ,        ttserver   kill ,         。          )。
-sid num :      ID (        ,  ttserver     ID )
-mhost name :          ,        IP  。
-mport num :          ,        。
-rts path :                。
-rcc :         。
-skel name :   skeleton       。
-mul num :               。
-ext path :              。
-extpc name period :                  。
-mask expr :          。
-unmask expr :           。

 
コンフィギュレーション
1.データファイル格納ディレクトリの作成
mkdir -p /ttserver/data #    
mkdir -p /ttserver/ulog #    
mkdir -p /ttserver/log #    

 
2.ファイル記述子サイズの設定
vim /etc/security/limits.conf

* soft nofile 204800
* hard nofile 204800
または
ulimit -u 204800 -HSn 204800

または/etc/profileに書き込むと、ユーザーがログインするたびにこのファイルが実行されます.
 
3.グローバルパラメータの構成
vi /etc/profile

に加わる
export PATH="$PATH:/usr/local/ttserver/tokyotyrant/bin:/usr/local/ttserver/tokyotyrant/sbin"
. /etc/profile
echo $PATH

 
4.ttserverの起動
データベースタイプは接尾辞で決まります.key-valueの機能しか必要ないので、機能が簡単で、速度の速いhash databaseを採用します.
Hash Database :.tch
B+ tree database :.tcb
fixed-length database :.tcf
table database :.tct
メモリHashデータベース:*
メモリB+tree database:+
1)スタンドアロンモード
ttserver -host 192.168.11.51 -port 11211 -thnum 8 -dmn -pid /ttserver/ttserver.pid -log /ttserver/log/ttserver.log -le -ulog /ttserver/ulog -ulim 128m -sid 1 -rts /ttserver/ttserver.rts /ttserver/data/database.tch

 
2)相互主従
192.168.11.51で実行します.
ttserver -host 192.168.11.51 -port 11211 -thnum 8 -dmn -pid /ttserver/ttserver.pid -log /ttserver/log/ttserver.log -le -ulog /ttserver/ulog/ -ulim 128m -sid 110 -mhost 192.168.11.52 -mport 11211 -rts /ttserver/ttserver.rts /ttserver/data/casket.tch

192.168.11.52で実行します.
ttserver -host 192.168.11.52 -port 11211 -thnum 8 -dmn -pid /ttserver/ttserver.pid -log /ttserver/log/ttserver.log -le -ulog /ttserver/ulog/ -ulim 128m -sid 111 -mhost 192.168.11.51 -mport 11211 -rts /ttserver/ttserver.rts /ttserver/data/casket.tch

 
3)スクリプトまたはサービス方式
スクリプトまたはサービス方式が起動し、シングルマシンに構成したり、プライマリ・セカンダリに構成したりできます.
起動スクリプトの編集:/usr/local/ttserver/tokyotyrant/sbin/ttservctl、関連パラメータの設定:
(スタンドアロンモード構成を例に)
#! /bin/sh
#---------------------------------------------------------------- # Startup script for the server of Tokyo Tyrant
#----------------------------------------------------------------
# configuration variables
prog="ttservctl"
cmd="ttserver"
basedir="/ttserver/"    #     
port="1978"     #ttserver  
pidfile="$basedir/pid"  #    ID /ttserver/pid  
logfile="$basedir/log/ttserver.log"  #       /ttserver/log/ttserver.log  
ulogdir="$basedir/ulog/"   #            
ulimsiz="256m"     #   ulog    ,         
sid=110  #server id mysql,      
#mhost="192.168.11.52"   #         ,        IP  。#mport="11211"   #         ,        。
rtsfile="$basedir/rts"    #replication       
dbname="$basedir/data/casket.tch#bnum=1000000" #xmsiz=      ”
maxcon="65535"
retval=0

ttserverサーバの起動:ttservctl start
ttserverサーバを閉じる:ttservctl stop
ttserverサーバの再起動:ttservctl restart
ttserverサーバログローテーション:ttservctl hup
または/etc/initにスクリプトを配置します.d/ディレクトリ、サービスとして起動します.
 
5.検証起動成功
ps aux | grep ttserver
telnet 192.168.11.51 1978
Trying 192.168.11.51...
Connected to 192.168.11.51.
Escape character is '^]'.
stats
STAT pid 20553
STAT uptime 67
STAT time 1430991715
STAT version 1.1.41
STAT pointer_size 64
STAT rusage_user 0.011998
STAT rusage_system 0.018997
STAT cmd_set 0
STAT cmd_set_hits 0
STAT cmd_set_misses 0
STAT cmd_delete 0
STAT cmd_delete_hits 0
STAT cmd_delete_misses 0
STAT cmd_get 0
STAT cmd_get_hits 0
STAT cmd_get_misses 0
STAT cmd_flush 0
STAT curr_items 0
STAT total_items 0
STAT bytes 4198720
STAT threads 8
END
quit
Connection closed by foreign host.