サーバ2台でndb_mgmd, ndbd, mysqlを動かした際のメモ
sv1 sv2
+----------+ +----------+
| ndb_mgmd | | ndb_mgmd |
| ndbd | | ndbd |
| mysql | | mysql |
+----------+ +----------+
*****************************************************
// sv1, sv2共通
# vi /var/lib/mysql-cluster/config.ini
-----------------------------------------------------
# Example Ndbcluster storage engine config file.
#
[ndbd default]
NoOfReplicas= 2
ServerPort = 63132
MaxNoOfConcurrentOperations= 10000
# DataMemory= 1G
# IndexMemory= 64M
TimeBetweenWatchDogCheck= 30000
DataDir= /var/lib/mysql-cluster
MaxNoOfOrderedIndexes= 512
[ndb_mgmd default]
DataDir= /var/lib/mysql-cluster
[ndb_mgmd]
Id = 1
HostName = sv1.kickitout.net
[ndb_mgmd]
Id = 2
HostName = sv2.kickitout.net
[ndbd]
Id = 11
HostName = sv1.kickitout.net
[ndbd]
Id = 12
HostName = sv2.kickitout.net
[mysqld]
Id = 21
HostName = sv1.kickitout.net
[mysqld]
Id = 22
HostName = sv2.kickitout.net
# choose an unused port number
# in this configuration 63132, 63133, and 63134
# will be used
[tcp default]
PortNumber= 63132
-----------------------------------------------------
// sv1 抜粋
# vi /etc/my.cnf
-----------------------------------------------------
[mysql_cluster]
ndb-connectstring = sv1.kickitout.net
[mysqld]
ndbcluster
ndb-connectstring = sv1.kickitout.net
[ndb_mgmd]
config_file=/var/lib/mysql-cluster/config.ini
-----------------------------------------------------
// sv2 抜粋
# vi /etc/my.cnf
-----------------------------------------------------
[mysql_cluster]
ndb-connectstring = sv2.kickitout.net
[mysqld]
ndbcluster
ndb-connectstring = sv2.kickitout.net
[ndb_mgmd]
config_file=/var/lib/mysql-cluster/config.ini
-----------------------------------------------------
*****************************************************
あとはiptablesで該当ポート1186,63132を開けておく
(忘れていてこれにはまった)
起動はndb_mgmd(sv1,sv2) -> ndbd(sv1,sv2) -> mysql(sv1,sv2)で順に行う
2011年12月27日火曜日
2011年12月14日水曜日
jsvcメモ
jsvcを必要とする機会があったのでその際のインストールメモ
//最初にopenjdkを準備
# yum install java-1.6.0-openjdk.x86_64 java-1.6.0-openjdk-devel.x86_64
$ wget http://ftp.riken.jp/net/apache//commons/daemon/source/commons-daemon-1.0.8-src.tar.gz
$ tar xzf commons-daemon-1.0.8-src.tar.gz
$ cd commons-daemon-1.0.8-src/src/native/unix/
//configure作成(既にあるけど)
$ ./support/buildconf.sh
//configure
$ CC=gcc44 CXX=g++44 \
CFLAGS="-march=native -O3 -m64 -pipe -fomit-frame-pointer -mmmx -mfpmath=sse -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2" \
CXXFLAGS="-march=native -O3 -m64 -pipe -fomit-frame-pointer -mmmx -mfpmath=sse -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2" \
./configure \
--host=x86_64-redhat-linux-gnu \
--build=x86_64-redhat-linux-gnu \
--target=x86_64-redhat-linux \
--program-prefix= \
--prefix=/usr \
--exec-prefix=/usr \
--bindir=/usr/bin \
--sbindir=/usr/sbin \
--sysconfdir=/etc \
--datadir=/usr/share \
--includedir=/usr/include \
--libdir=/usr/lib64 \
--libexecdir=/usr/libexec \
--localstatedir=/var \
--sharedstatedir=/usr/com \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
--cache-file=./config.cache \
--with-libdir=lib64 \
--with-java=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/
$ make -j4
//同じ場所にjsvcが作成されるので利用する
//最初にopenjdkを準備
# yum install java-1.6.0-openjdk.x86_64 java-1.6.0-openjdk-devel.x86_64
$ wget http://ftp.riken.jp/net/apache//commons/daemon/source/commons-daemon-1.0.8-src.tar.gz
$ tar xzf commons-daemon-1.0.8-src.tar.gz
$ cd commons-daemon-1.0.8-src/src/native/unix/
//configure作成(既にあるけど)
$ ./support/buildconf.sh
//configure
$ CC=gcc44 CXX=g++44 \
CFLAGS="-march=native -O3 -m64 -pipe -fomit-frame-pointer -mmmx -mfpmath=sse -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2" \
CXXFLAGS="-march=native -O3 -m64 -pipe -fomit-frame-pointer -mmmx -mfpmath=sse -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2" \
./configure \
--host=x86_64-redhat-linux-gnu \
--build=x86_64-redhat-linux-gnu \
--target=x86_64-redhat-linux \
--program-prefix= \
--prefix=/usr \
--exec-prefix=/usr \
--bindir=/usr/bin \
--sbindir=/usr/sbin \
--sysconfdir=/etc \
--datadir=/usr/share \
--includedir=/usr/include \
--libdir=/usr/lib64 \
--libexecdir=/usr/libexec \
--localstatedir=/var \
--sharedstatedir=/usr/com \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
--cache-file=./config.cache \
--with-libdir=lib64 \
--with-java=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/
$ make -j4
//同じ場所にjsvcが作成されるので利用する
2011年11月14日月曜日
D-ITG インストールメモ
訳あってD-ITGを入れる必要があったのでその際のメモ
$ wget http://www.grid.unina.it/software/ITG/codice/D-ITG-2.7.0-Beta2.tgz
$ tar xvf D-ITG-2.7.0-Beta2.tgz
$ CC="gcc" \
GCC="gcc" \
CXX="g++" \
CFLAGS="-march=native -O2 -m64 -pipe -fomit-frame-pointer -mfpmath=sse -msse4 -msse4.1 -msse4.2" \
CXXFLAGS="-march=native -O2 -m64 -pipe -fomit-frame-pointer -mfpmath=sse -msse4 -msse4.1 -msse4.2" \
CPPFLAGS=-I/usr/lib/x86_64-redhat-linux5E/include \
make
//stropts.hが無いといわれたら…
# yum provides */stropts.h
# yum install compat-glibc-headers-2.5-46.2.x86_64
CPPFLAGS=-I/usr/lib/x86_64-redhat-linux5E/include
を追加して再度makeする
$ wget http://www.grid.unina.it/software/ITG/codice/D-ITG-2.7.0-Beta2.tgz
$ tar xvf D-ITG-2.7.0-Beta2.tgz
$ CC="gcc" \
GCC="gcc" \
CXX="g++" \
CFLAGS="-march=native -O2 -m64 -pipe -fomit-frame-pointer -mfpmath=sse -msse4 -msse4.1 -msse4.2" \
CXXFLAGS="-march=native -O2 -m64 -pipe -fomit-frame-pointer -mfpmath=sse -msse4 -msse4.1 -msse4.2" \
CPPFLAGS=-I/usr/lib/x86_64-redhat-linux5E/include \
make
//stropts.hが無いといわれたら…
# yum provides */stropts.h
# yum install compat-glibc-headers-2.5-46.2.x86_64
CPPFLAGS=-I/usr/lib/x86_64-redhat-linux5E/include
を追加して再度makeする
2011年10月12日水曜日
AMFフォーマットからPHPで値を抜き出す方法
AMFファイルから必要な値だけ出す方法がなかなか見つからなかったので調べてみた
Zend FrameworkにはZend_Amfがあり、この中にAMFフォーマットを処理する部分があることを
睨んで調べてみたら簡単にできた
これでUstreamのamfが読めるようになった
$url = "http://cdngw.ustream.tv/Viewer/getStream/1/7811835.amf";
$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
$result = curl_exec( $ch );
curl_close($ch);
$request = new Zend_Amf_Request();
$request->initialize($result);
var_dump($request->getAmfBodies());
後はdump結果から欲しい値のキーを探して取得するだけ
Zend FrameworkにはZend_Amfがあり、この中にAMFフォーマットを処理する部分があることを
睨んで調べてみたら簡単にできた
これでUstreamのamfが読めるようになった
$url = "http://cdngw.ustream.tv/Viewer/getStream/1/7811835.amf";
$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
$result = curl_exec( $ch );
curl_close($ch);
$request = new Zend_Amf_Request();
$request->initialize($result);
var_dump($request->getAmfBodies());
後はdump結果から欲しい値のキーを探して取得するだけ
2011年9月27日火曜日
Ustream Liveの録画メモ
HINATABOCCOを録画した際に、(一部)うまく行ったのをメモ
・CDN(LimeLight)利用時なのでほかは不明
・rtmpdumpを利用
・解析はStreamTransportを利用
(StreamTransport自体はダウンロードできなかった)
・帯域が安定している自宅Linuxサーバより遠隔でダウンロード実施
rtmpdump -v -r "rtmp://ustreamvip.fc.llnwd.net:1935/ustreamvip/ustreamvip_llnw_live_1_76452776" \
-s "http://cdn1.ustream.tv/swf/4/viewer.381.swf" \
-p "http://www.ustream.tv/channel/hinatabocco1" \
-o HINATABOCCO5.flv
これで録画は可能
-rにはStreamのURL(StreamTransportで解析可能)
-sにはPlayerUrl(不要?)
-pには視聴していたchannelURL(不要?)
あとはnohupしておくべきだったと後悔
(この後PCが切断→SSHセッション断→dump失敗に)
----------------------------------------
[チラシの裏]
これうまく使って録画サーバできないかな…
・外出先等でUstLiveが見たくても見れない時に
後から録画
・でも著作権の保護観点から予約した人しか見れない
・同じ番組を予約した人がいたら、一番最初の人が予約した動画を共有
・できれば友人間だけは録画した動画を共有
(URLで共有するとか)
・一週間ほどで削除
・同じチャンネルでも時間によって放送してたり、StreamURLが変わったりする
どうやってそれを監視するか
結構Ustreamのみたい番組が多いのだが、
忘れてたりそもそも見れる環境じゃない(場所or勤務中)だとすごく困る
ソフトを使うにしても自宅のPCじゃないといけないので、
なんとか外出先からも録画できるといいなと思う
・CDN(LimeLight)利用時なのでほかは不明
・rtmpdumpを利用
・解析はStreamTransportを利用
(StreamTransport自体はダウンロードできなかった)
・帯域が安定している自宅Linuxサーバより遠隔でダウンロード実施
rtmpdump -v -r "rtmp://ustreamvip.fc.llnwd.net:1935/ustreamvip/ustreamvip_llnw_live_1_76452776" \
-s "http://cdn1.ustream.tv/swf/4/viewer.381.swf" \
-p "http://www.ustream.tv/channel/hinatabocco1" \
-o HINATABOCCO5.flv
これで録画は可能
-rにはStreamのURL(StreamTransportで解析可能)
-sにはPlayerUrl(不要?)
-pには視聴していたchannelURL(不要?)
あとはnohupしておくべきだったと後悔
(この後PCが切断→SSHセッション断→dump失敗に)
----------------------------------------
[チラシの裏]
これうまく使って録画サーバできないかな…
・外出先等でUstLiveが見たくても見れない時に
後から録画
・でも著作権の保護観点から予約した人しか見れない
・同じ番組を予約した人がいたら、一番最初の人が予約した動画を共有
・できれば友人間だけは録画した動画を共有
(URLで共有するとか)
・一週間ほどで削除
・同じチャンネルでも時間によって放送してたり、StreamURLが変わったりする
どうやってそれを監視するか
結構Ustreamのみたい番組が多いのだが、
忘れてたりそもそも見れる環境じゃない(場所or勤務中)だとすごく困る
ソフトを使うにしても自宅のPCじゃないといけないので、
なんとか外出先からも録画できるといいなと思う
2011年8月11日木曜日
z_X10_audio_stutter_fix
z_X10_audio_stutter_fix.zipを手に入れたのでその時のメモ
> adb shell
$ su -
//ここでandroidでroot権限を許可させる
# mount -o remount,rw /dev/block/mtdblock3 /system
# cd /system/lib/
# cp -p libaudio.so libaudio.so.org
# cp -p libaudioflinger.so libaudioflinger.so.org
# cp -p libaudiopolicy.so libaudiopolicy.so.org
# cp -p libmedia.so libmedia.so.org
# cp /mnt/sdcard/z_X10_audio_stutter_fix/system/lib/libaudio.so /system/lib/
# cp /mnt/sdcard/z_X10_audio_stutter_fix/system/lib/libaudioflinger.so /system/lib/
# cp /mnt/sdcard/z_X10_audio_stutter_fix/system/lib/libaudiopolicy.so /system/lib/
# cp /mnt/sdcard/z_X10_audio_stutter_fix/system/lib/libmedia.so /system/lib/
// mount -o remount,ro /dev/block/mtdblock3 /system
// roに戻せないので再起動
これで音質良くなるのだろうか…
> adb shell
$ su -
//ここでandroidでroot権限を許可させる
# mount -o remount,rw /dev/block/mtdblock3 /system
# cd /system/lib/
# cp -p libaudio.so libaudio.so.org
# cp -p libaudioflinger.so libaudioflinger.so.org
# cp -p libaudiopolicy.so libaudiopolicy.so.org
# cp -p libmedia.so libmedia.so.org
# cp /mnt/sdcard/z_X10_audio_stutter_fix/system/lib/libaudio.so /system/lib/
# cp /mnt/sdcard/z_X10_audio_stutter_fix/system/lib/libaudioflinger.so /system/lib/
# cp /mnt/sdcard/z_X10_audio_stutter_fix/system/lib/libaudiopolicy.so /system/lib/
# cp /mnt/sdcard/z_X10_audio_stutter_fix/system/lib/libmedia.so /system/lib/
// mount -o remount,ro /dev/block/mtdblock3 /system
// roに戻せないので再起動
これで音質良くなるのだろうか…
2011年5月29日日曜日
Muninでnginxを監視するためのメモ
プラグインがあるので導入
/usr/share/munin/plugins
wget http://exchange.munin-monitoring.org/plugins/nginx_status/version/3/download -O nginx_status
wget http://exchange.munin-monitoring.org/plugins/nginx_request/version/2/download -O nginx_request
wget http://exchange.munin-monitoring.org/plugins/nginx_vhost_traffic/version/2/download -O nginx_vhost_traffic
chmod 755 nginx_*
cd /etc/munin/plugins
ln -s /usr/share/munin/plugins/nginx_request .
ln -s /usr/share/munin/plugins/nginx_status .
ln -s /usr/share/munin/plugins/nginx_vhost_traffic .
service munin-node restart
/usr/share/munin/plugins
wget http://exchange.munin-monitoring.org/plugins/nginx_status/version/3/download -O nginx_status
wget http://exchange.munin-monitoring.org/plugins/nginx_request/version/2/download -O nginx_request
wget http://exchange.munin-monitoring.org/plugins/nginx_vhost_traffic/version/2/download -O nginx_vhost_traffic
chmod 755 nginx_*
cd /etc/munin/plugins
ln -s /usr/share/munin/plugins/nginx_request .
ln -s /usr/share/munin/plugins/nginx_status .
ln -s /usr/share/munin/plugins/nginx_vhost_traffic .
service munin-node restart
2011年5月8日日曜日
MySQL + HandlerSocket Pluginのメモ
//HandlerSocket
yum install -y git
cd /usr/local/src
git clone http://github.com/ahiguti/HandlerSocket-Plugin-for-MySQL.git
cd HandlerSocket-Plugin-for-MySQL
./autogen.sh
CC="gcc44" \
GCC="gcc44" \
CXX="g++44" \
CFLAGS="-march=native -O3 -m64 -pipe -fomit-frame-pointer -mfpmath=sse -msse4 -msse4.1 -msse4.2" \
CXXFLAGS="-march=native -O3 -m64 -pipe -fomit-frame-pointer -mfpmath=sse -msse4 -msse4.1 -msse4.2" \
./configure \
--host=x86_64-redhat-linux-gnu \
--build=x86_64-redhat-linux-gnu \
--target=x86_64-redhat-linux \
--program-prefix= \
--prefix=/usr \
--exec-prefix=/usr \
--bindir=/usr/bin \
--sbindir=/usr/sbin \
--sysconfdir=/etc \
--datadir=/usr/share \
--includedir=/usr/include \
--libdir=/usr/lib64 \
--libexecdir=/usr/libexec \
--localstatedir=/var \
--sharedstatedir=/usr/com \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
--with-mysql-source=/usr/local/src/mysql-5.5.8 \
--with-mysql-bindir=/usr/bin \
--with-mysql-plugindir=/usr/lib64/mysql/plugin
make -j4
sudo make install
vi /etc/my.cnfに下記を追記
[mysqld]
handlersocket_port = 9998
# handlersocketが接続を受け付けるポート(参照系リクエスト用)
handlersocket_port_wr = 9999
# handlersocketが接続を受け付けるポート(更新系リクエスト用)
handlersocket_address =
# handlersocketがバインドするアドレス(空のままでOK)
handlersocket_verbose = 0
# デバッグ用
handlersocket_timeout = 300
# 通信タイムアウト(秒)
handlersocket_threads = 16
# handlersocketのワーカースレッド数
thread_concurrency = 128
# handlersocketが幾つかのスレッドを占有するため、大きめの
# 値を指定してください
open_files_limit = 65535
# ソケットを大量に開けるようにするため、大きめの値を指定し
# てください
//プラグインを適用
mysql -uroot -p
mysql> install plugin handlersocket soname 'handlersocket.so';
Query OK, 0 rows affected (0.06 sec)
mysql> show plugins;
// HandlerSocket php
OpenPearにあるのでインストール
# pear channel-discover openpear.org
# pear install openpear/Net_HandlerSocket-alpha
yum install -y git
cd /usr/local/src
git clone http://github.com/ahiguti/HandlerSocket-Plugin-for-MySQL.git
cd HandlerSocket-Plugin-for-MySQL
./autogen.sh
CC="gcc44" \
GCC="gcc44" \
CXX="g++44" \
CFLAGS="-march=native -O3 -m64 -pipe -fomit-frame-pointer -mfpmath=sse -msse4 -msse4.1 -msse4.2" \
CXXFLAGS="-march=native -O3 -m64 -pipe -fomit-frame-pointer -mfpmath=sse -msse4 -msse4.1 -msse4.2" \
./configure \
--host=x86_64-redhat-linux-gnu \
--build=x86_64-redhat-linux-gnu \
--target=x86_64-redhat-linux \
--program-prefix= \
--prefix=/usr \
--exec-prefix=/usr \
--bindir=/usr/bin \
--sbindir=/usr/sbin \
--sysconfdir=/etc \
--datadir=/usr/share \
--includedir=/usr/include \
--libdir=/usr/lib64 \
--libexecdir=/usr/libexec \
--localstatedir=/var \
--sharedstatedir=/usr/com \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
--with-mysql-source=/usr/local/src/mysql-5.5.8 \
--with-mysql-bindir=/usr/bin \
--with-mysql-plugindir=/usr/lib64/mysql/plugin
make -j4
sudo make install
vi /etc/my.cnfに下記を追記
[mysqld]
handlersocket_port = 9998
# handlersocketが接続を受け付けるポート(参照系リクエスト用)
handlersocket_port_wr = 9999
# handlersocketが接続を受け付けるポート(更新系リクエスト用)
handlersocket_address =
# handlersocketがバインドするアドレス(空のままでOK)
handlersocket_verbose = 0
# デバッグ用
handlersocket_timeout = 300
# 通信タイムアウト(秒)
handlersocket_threads = 16
# handlersocketのワーカースレッド数
thread_concurrency = 128
# handlersocketが幾つかのスレッドを占有するため、大きめの
# 値を指定してください
open_files_limit = 65535
# ソケットを大量に開けるようにするため、大きめの値を指定し
# てください
//プラグインを適用
mysql -uroot -p
mysql> install plugin handlersocket soname 'handlersocket.so';
Query OK, 0 rows affected (0.06 sec)
mysql> show plugins;
// HandlerSocket php
OpenPearにあるのでインストール
# pear channel-discover openpear.org
# pear install openpear/Net_HandlerSocket-alpha
2011年4月28日木曜日
NEC IX2000でTokyo6to4を利用する
家ではルータにIX2105を利用しているが、
そこでTokyo6to4を利用してIPv6環境を構築したのでその際の設定をメモする。
(ix2005,ix2015,ix2025なら利用できると想定)
Tokyo6to4
http://www.tokyo6to4.net/
! WAN(6over4) 側
interface Tunnel0.0
tunnel mode 6-over-4
! Tokyo6to4
tunnel destination 192.88.99.1
! source interfaceは環境に合わせて
tunnel source GigaEthernet0.1
no ip address
ipv6 enable
ipv6 tcp adjust-mss auto
! ACL in
! ipv6 filter ipv6_wan-in 100 in
! ACL out
! ipv6 filter ipv6_wan-out 100 out
no shutdown
!
! LAN側
interface GigaEthernet1:1.1
encapsulation dot1q 1 tpid 8100
auto-connect
ipv6 enable
! ルータに対して6over4のIPアドレスを固定で設定
! 64bit以降は環境に合わせて自由に設定できる
ipv6 address 2002:XXXX:XXXX:0:192:168:1:1/64
ipv6 nd ra enable
ipv6 nd ra min-interval 60
ipv6 nd ra managed-config-flag
ipv6 nd ra other-config-flag
no shutdown
!
6to4アドレス例
printf "2002:%02x%02x:%02x%02x::1\n" 192 0 2 1
そこでTokyo6to4を利用してIPv6環境を構築したのでその際の設定をメモする。
(ix2005,ix2015,ix2025なら利用できると想定)
Tokyo6to4
http://www.tokyo6to4.net/
! WAN(6over4) 側
interface Tunnel0.0
tunnel mode 6-over-4
! Tokyo6to4
tunnel destination 192.88.99.1
! source interfaceは環境に合わせて
tunnel source GigaEthernet0.1
no ip address
ipv6 enable
ipv6 tcp adjust-mss auto
! ACL in
! ipv6 filter ipv6_wan-in 100 in
! ACL out
! ipv6 filter ipv6_wan-out 100 out
no shutdown
!
! LAN側
interface GigaEthernet1:1.1
encapsulation dot1q 1 tpid 8100
auto-connect
ipv6 enable
! ルータに対して6over4のIPアドレスを固定で設定
! 64bit以降は環境に合わせて自由に設定できる
ipv6 address 2002:XXXX:XXXX:0:192:168:1:1/64
ipv6 nd ra enable
ipv6 nd ra min-interval 60
ipv6 nd ra managed-config-flag
ipv6 nd ra other-config-flag
no shutdown
!
6to4アドレス例
printf "2002:%02x%02x:%02x%02x::1\n" 192 0 2 1
登録:
投稿
(
Atom
)