virt-installでubuntu10.04LTSに仮想化環境をいれてみよう

どうもポポです。

今日はvirt-installubuntuをいれてみました
今回、ubuntuにいれたバージョンは10.04LTSです。
最初、ubuntuの10.10にいれてみたんですが、どうもlibvirt-pythonのパッケージがなくなっているらしく
別のパッケージをいれないといけないんですが、うまく動かなかったのでubuntu10.04にしました。

パッケージのインストール、ネットワークのブリッジ設定などはここを見ればおkです。

virt-installをします。

sudo virt-install -n (名前) -r 4096 -f /var/kvm/images/xxx.img -s 20 --vcpus=2 --os-type linux --os-variant=virtio26 --network bridge=br0 --nographics --location='http://jp.archive.ubuntu.com/ubuntu/dists/maverick/main/installer-amd64/' --extra-args='console=tty0 console=ttyS0,115200n8' 

これでおそらくubuntu10.10が仮想化環境にインストールされることと思います。
あとは流れるままにインストールすればおkなんじゃないでしょうか?

unboundをcentosにインストール

どうも 書き始めるとやめられないとまらない。ポポです。

さて、今回はunboundをいれてみたいとおもいます。
unboundはDNSのキャッシュサーバみたいなものです。
内向きのみですが、結構便利なのでつかってみます。

さて、最初になにか入れないといけないみたいなんですが、いろいろ試したので
ちょっと覚えてないです。

yum -y install openssl-devel*

はたぶん必須だとおもうので入れましょう。
次に最新版のunboundを入れたいと思ったのですが、なぜかエラーがでる。
errorが出る箇所は ./configureの部分でopensslのバージョンを1.0.0以上にしないといけないらしいです。

configure: error: OpenSSL 1.0.0 is needed for GOST support

なので1.4.6のバージョンをいれてみたいとおもいます。

wget http://www.unbound.net/downloads/unbound-1.4.6.tar.gz
tar zxvf unbound-1.4.6.tar.gz
cd unbound-1.4.6
./configure
make
make install
cp contrib/unbound.init /etc/init.d/unbound
ln -s /usr/local/etc/unbound /var/unbound
/usr/sbin/groupadd -r unbound
/usr/sbin/useradd -r -g unbound -d /var/unbound -s /sbin/nologin unbound
chown -R unbound:unbound /var/unbound
chmod a+x /etc/init.d/unbound
chkconfig --add unbound

これで完成です。簡単でしたね。
最後に設定をします。
/var/unbound/unbound.conf

以上っす

PHPでTokyoTyrantを実行

さて、前回TokyoTyrantのインストールをしたので、
早速実行してみたいとおもいます。
と、そのまえに前回実行したときに
ttserver -port 1978 -dmn -pid /var/ttserver/pid /var/ttserver/casket.tch#bnum=1000000
tchの部分をtctに直します。
/usr/local/sbin/ttservctlをいじります
DATABASE="$basedir/casket.tch#bnum=1000000"
から
DATABASE="$basedir/casket.tct#bnum=1000000"
となおします。これで再起動して
ttserver -port 1978 -dmn -pid /var/ttserver/pid /var/ttserver/casket.tct#bnum=1000000
とします。
さて、phpを実行してみましょう

$tt = new TokyoTyrantTable('localhost', 1978);
$d = array("s1" => "sm001", "s2" => "hm002", "s3" => "hm003");                                                                                                                                          
$index = $tt->put("id001", $d);  
var_dump($tt->get($index)); 

これでちゃんとでてくればおkです

TokyoTyrantをCentos5.4にインストール

さて、しばらくぶりに書いてみますか。
いやぁ修士論文とかの愚痴を書きたいんですが、愚痴よりもやっぱり
こういうのを書くべきでしょw

TokyoTyrantはKVSの一種で、memcacheのように超高速に処理ができ、memcacheとは違って
永続性付きっていうすばらしいツールです。

さて、じゃあ早速インストールしてみましょうか

$yum install gcc make zlib-devel bzip2-devel
$wget http://1978th.net/tokyocabinet/tokyocabinet-1.4.46.tar.gz
$tar xvfz tokyocabinet-1.4.46.tar.gz
$cd tokyocabinet-1.4.46
$./configure
$make
$make install
$wget http://1978th.net/tokyotyrant/tokyotyrant-1.1.41.tar.gz
$tar zxvf tokyotyrant-1.1.41.tar.gz
$cd tokyotyrant-1.1.41
$./configure
$make
$make install

これでインストール完了です。
さてさて、これで動かそうとするんですが、ttserverの動かし方があるみたいですね。
自分は

$ln -s /usr/local/sbin/ttservctl /etc/rc.d/init.d/
$/etc/rc.d/init.d/ttservctl start
Starting the server of Tokyo Tyrant
Executing: ttserver -port 1978 -dmn -pid /var/ttserver/pid
Done

これで一応動きます。
しかーし。これで満足しちゃーいけません。PHPから快適に使えるようにしなきゃいけません。
よってphp-tokyo_tyrantを導入します。

$pecl install tokyo_tyrant-0.4.0
pecl/tokyo_tyrant requires PHP (version >= 5.2.0), installed version is 5.1.6
No valid packages found
install failed

あれ?まさか5.1.6のままのサーバにインストールしていたのか!?
ってことでphpのバージョンをアップさせよう - ポポの日記
mysqlphpのバージョンをあげてもう一回実行

You should add "extension=tokyo_tyrant.so" to php.ini

とあるので/etc/php.iniに加えて、さてもう実行可能だろとおもったら

PHP Warning:  PHP Startup: OAuth: Unable to initialize module
Module compiled with module API=20050922
PHP    compiled with module API=20090626
These options need to match
 in Unknown on line 0

え?なにこれ?あぁPHPのバージョンあげたからなんか不具合でてるのか。
ということでOAuthをインストールし直す

$pecl uninstall OAuth
$pecl install OAuth-beta

これで警告はでなくなった。

MySQL Casual Talks vol.1にいってきました

どうもポポです。
今日はMySQL Casual Talks vol.1に行ってきたのでそのレポートをしたいと思います!
http://atnd.org/events/9803


19時に日本オラクルに到着。さっそく迷いかけていたら発表する先輩と出会う。
そのままついていき、会場へ

1.挨拶show innodb status @myfinder
perl casual のコンセプトで
Advent Calendar 2010もやっている
12日以降の寄稿者求む
ラクル提供すごい++

Mysql casual blogの人
InnoDBの話
「いのでーびー」と「いんのでーびー」読み方はどっち?
商用のいんのDB

・キーワード
データを取得した日付
セマフォの話
Mutex spin
RW-shared /RW-excl
OSまちを見る理由
トランザクション
Purge done for

File/IO
見るべき行はわずか
insert buffer
Adaptive hash index
レコードを含んだインデックス
buffer pool

2.xtrabackupとかtcpdumpとか@riywo
DeNAの人
tcpdump xtrabackup

tcpdumpSQLをみる
日本語文字化けする
mk-query-difest
インストール方法
mk-query-digest slow.log
tcpdumpも食える
memcachedも食える
DBに記録
継続的に記録する
シェルでがりっと
抽出
MyQueryShowグラフ
QPSのグラフとかの説明
https://github.com/riywo/MyQueryShow
WAF
Amon2
デモ
問題点が結構ある
xtrabackup
Hotbackup
スピード早いww

3. MySQL::SandboxとかといいつつVP & Spider@kamipo
pixivの人
VP&spider
運用法
VPの使い方
Spiderの使い方
DBを止めずに移行する方法

4.MySQL 初めてのチューニング@craftworks
チューニングの話
バッファの話
各グローバルバッファの説明
スレッドバッファ
メモリ以外の設定
グローバルバッファ+(すれどバッファx最大接続数)=搭載メモリの8−9割
メモリの計算
mymemcheck
keyread = 150以上になるように調整
まとめ

5.はてなでのMySQL運用@marqs
はてなの人
日頃の説明
Mysql 5.1.52 + InnoDB plugin
DBのrole毎にChefで自動設定
server-idとbufferpool sizeの設定
DBのバックアップ
rrd tools グラフ化
innotop→hatetop
mk-query-digest

Mysql SSD
cpu:X3430
ssd:X25-M
10万円くらい
2009年以降のサービスはほぼSSD
alter tableはHDDで6時間が20分に
SSDのいいところ
ほぼ壊れない
RAID0で気軽に構築
ロードバランサでの投入が楽
InnoDB再起動が早い
alter tableが早い

6.たのしいMySQLデータ分割入門@xaicron
DeNAの人
perl
sharding
user_idで分割

メモリに乗り切らなかったデータがのるようになる
Joinができなくなる
シーケンスを外だしする必要がある
物理サーバが必要
pertitionだと一瞬できえる

7.online schema change@n_hayashi
dena
online schema changes
テーブルのスキーマの変更はテーブルロックがかかる
整合性の確認が必要なので大変

サービスをとめたくない
エラーをだしたくない
データの整合性を

条件付きで正常に動作できる
primary key InnoDB
結論;VP & spiderのがいいんじゃないかと

8.MySQL5.5 最新動向@RKajiyama
ラクルの中の人
有名な会社17/20社をMysqlを使っている
こみにてぃ版と商用版
監視ツールなどがあるのが商用
InnnoDB
GPLなど
ラクルになっても開発のスタンスは変わっていない。
5.5になり、InnoDBがデフォルトのストレージエンジンに
スケーラビリティの向上
2010年中にリリース?
準同期レプリケーションに変更
コミットした瞬間、ほかのサーバにも書く
次のバージョンは速い(速度的に
MySQL5.5ベンチマーク
InnoDBを作ったのは昔からのオラク
改善・改良がやばいらしい
商用サーバの説明。部屋を貸してくれているので当然ですよね!
12月の16日に重要なお知らせが!?
これからもオープンソース

【まとめ】
非常に面白かった。ただ、もうちょっと詳しく聞きたい(時間が短い)のと質問の時間が欲しかったかなと思った。
そしてこの短い発表でメモしながら聞くのは無理ですね!次回からはちょっと考えてメモしよう

memcached導入

どうもポポです。
最近寒いですねー。心も体も。
誰か暖めてください。


さて、前回phpmysqlを最新版にアップデートしたわけですが、
それもすべてはmemcachedを使うため。

ということで今回はmemcachedをインストールしてみましたよ。

$yum -y install memcached

ちなみにmemcacheとmemcachedは全然違うものみたいなのでご注意を

sample.php
<?php
$mem = new Memcached();
$mem->addServer('localhost', 11211);
$mem->set('key','value');
print $mem->get('key');
?>


$php sample.php
value

とまぁこんな感じでKVSが実現できるわけですが、ちょっと不安なのはやっぱり
揮発性でしょうか。つまり、サーバが落ちたらそのデータがふっとぶのがやっぱり不安ですね。

一番はオンメモリで動作させつつ、同時にバックアップもできる環境が一番いいのですが。

そうなるとやっぱりTokyo Tyrantでしょうかねー。じゃあ使ってみますか!

ちなみにこんなブログの書き込みもありました
http://d.hatena.ne.jp/tullio/20101031/1288549892

分かることは,
1.memcachedがやはり一番高速
2.Tokyo Tyrantは,メモリでもディスクでも余り速度は変わらない(=永続化に良い性能)

早さ=正義!!