きぬろぐ
OpenLDAP2.4に対して同時接続数を増やすテストを行っていたところ、以下のエラーがログに出力されました。
「Unable to allocate memory for transaction detail」
何だ?これ。と思ってしらべていたら、Oracleのサイトに以下の情報が。
Berkeley DB occasionally returns the error: "Unable to allocate memory for transaction detail". What does that mean?This error means the maximum number of active transactions configured for Berkeley DB has been reached. The Berkeley DB environment should be configured to support more active transactions. When all of the memory available in the database environment for transactions is in use, calls to being a transaction will fail until some active transactions complete. By default, the database environment is configured to support at least 20 active transactions. For more information see the "<a href="http://www.oracle.com/technology/documentation/berkeley-db/db/programmer_reference/txn_config.html">Configuring transactions</a>" section of the Berkeley DB Reference Guide.
BerkeleyDBに対して設定されたActiveトランザクション数の最大値に達したとのこと。参照の試験しかしていないのにおかしいな・・・
とりあえずDB_CONFIGファイルのset_lg_regionmax, set_lg_bsizeを倍にしたら回避できた。
#set_lg_regionmax 262144 #set_lg_bsize 2097152 set_lg_regionmax 524288 set_lg_bsize 4194304
参照だけでもトランザクションを使うのでしょうかね。
OpenLDAP 2.4のチューニングについて調査していたら、日本LDAPユーザ会にいい資料がありました。
これは、便利。早速参考にさせて頂きます。
ところで、LDAPの負荷をかけるツールには私の知る限り二種類あります。
- SLAMD
- Apache JMeter の LDAP Extended Request/LDAPリクエスト
どっちがいいんですかね。SLAMD使ったこと無いからよくわからんな・・・またいつか調べましょう。
久々にWikiページを更新しました。
今回のねたはまぁまぁ大作です。
Soaris関係
Solaris10で以下の導入メモをまとめました。特にApacheとredmineの連携はSolaris10の環境だとはまりどころが多いようなので、参考になるかと思います。
FreeBSD関係
MySQL関係
TIPSを更新しました。MySQLデータベースのアップグレード他を記載しました。
Solaris 10 u8 (10/09)にアップグレード時にエラーが・・
投稿者: kinusati, カテゴリー: solaris
Solaris 10 u8 (10/09)アップグレード時にエラーが出ます
Live Upgradeを利用して、Solaris 10 u7 (5/09) SPARC版から Solaris 10 u8(10/09)にアップグレードしたら、luactivateコマンド実行後の再起動時に以下のエラーが出ました。シングルユーザでログインするためrootパスワードを入れろとのこと。
Configuring devices. ERROR: svc:/system/filesystem/minimal:default failed to mount /var (see 'svcs -x' for details) Oct 17 17:25:50 svc.startd[7]: svc:/system/filesystem/minimal:default: Method "/lib/svc/method/fs-minimal" faled with exit status 95. Oct 17 17:25:50 svc.startd[7]: system/filesystem/minimal:default failed fatally: transitioned to maintenance see 'svcs -xv' for details) Requesting System Maintenance Mode (See /lib/svc/share/README for more information.) Console login service(s) cannot run Root password for system maintenance (control-d to bypass): single-user privilege assigned to /dev/console. Entering System Maintenance Mode
なにやら/varのマウントができない模様。svcs -xコマンドを実行すると以下のエラーが…
bash-3.00# svcs -x svc:/network/iscsi_initiator:default has no "restarter" property group; ignoring. svc:/system/filesystem/minimal:default (minimal file system mounts) State: maintenance since Sat Oct 17 17:25:50 2009 Reason: Start method exited with $SMF_EXIT_ERR_FATAL. See: http://sun.com/msg/SMF-8000-KS See: /etc/svc/volatile/system-filesystem-minimal:default.log Impact: 55 dependent services are not running. (Use -v for list.) svc:/application/print/server:default (LP print server) State: disabled since Sat Oct 17 17:23:42 2009 Reason: Disabled by an administrator. See: http://sun.com/msg/SMF-8000-05 See: lpsched(1M) Impact: 1 dependent service is not running. (Use -v for list.)
/etc/svc/volatile/system-filesystem-minimal:default.logを見ろと記述されているので、見てみると、/varのマウントが失敗しています。
bash-3.00# cat /etc/svc/volatile/system-filesystem-minimal\:default.log
[ Oct 17 17:23:41 Enabled. ]
[ Oct 17 17:25:50 Executing start method ("/lib/svc/method/fs-minimal") ]
ERROR: /sbin/mount -O -F zfs /var failed, err=1
filesystem 'rpool/ROOT/s10s_u8wos_09/var' cannot be mounted using 'mount -F zfs' Use 'zfs set mountpoint=/var instead. If you must use 'mount -F zfs' or /etc/vfstab, use 'zfs set mountpoint=legacy'. See zfs(1M) for mor information.
[ Oct 17 17:25:50 Method "start" exited with status 95 ]
Live Upgradeを利用すると、/etc/vfstabに/と/varを登録するのですが、/varは元々zfsのマウント機能でマウントする設定が有効になっていたので、「/etc/vfstab経由でマウントするならそういうオプション設定してよ」と怒られている模様。
rpool/ROOT/s10s_u8wos_09 - / zfs 1 no - rpool/ROOT/s10s_u8wos_09/var - /var zfs 1 no -
解決策
以下のコマンドを実行して事なきを得ました。珍しいエラーなのかなぁ・・・
zfs set mountpoint=legacy rpool/ROOT/s10s_u8wos_09/var
Solaris 10 10/09がリリースされていますね。日本のサイトではまだアナウンスされていないですが、本家サイトでばっちりダウンロードできるようになっています。
新機能は以下のページに掲載されています。
http://docs.sun.com/app/docs/doc/821-0382/gijtg?a=view
- 2テラバイトディスクでのインストールと起動が可能に。今までは1TBまでしか無理だった
- pcitoolが利用可能に
- JumpstartインストールにZFSが利用可能に
- ユーザ/グループ単位でZFSにQuotaを設定可能に
等々ほかいろいろあるようです。
VirtualBox 3.0.8がリリースしています。
前々からVirtualBox3系 + Solaris環境でkernel panicが発生し、その不安定さに悩まされていたのですが、今回のリリースでは無事安定稼働しています!やったぞ。たぶん、以下修正点のbug #4775というものが該当するのだろう。我が家はNATではなくbridge利用だったので、可能性があると思う。
- Solaris hosts: fixed a bug which would hang the host sporadically as interrupts were not re-enabled everytime
- Solaris hosts: fixed a kernel panic with bridged and host-only networking (bug #4775)
- Solaris hosts: fixed incorrectly persistent CD/DVD-ROMs when changing them (bug #5077)
これで安心してSolarisホストOS下でのVirtualBox3系を利用できます。一安心。
我が家ではSolaris10(amd64)上でVirtualBOX 2.2.4を動かし、その上でWindowsを起動させていたのですが、このたび古い機材を集めてVMware vSphere 4 ESXi用のPCを組み立てました。
で、VirtualBOX上のVMをESXiに移行する方法です。具体的にはVMware vCenter Converterを利用しますが、そこに持って行くまでに何段かトラップがあります。手順の通りに実行しましょう!
VirtualBox 2.2.4からのエクスポート手順
1. VirtualBOX 2.2.4上でVMを停止して、エクスポートします。仮想アプライアンス エクスポート ウィザードでエクスポート対象を選択します。今回のケースでは「XP1」というVMを選択します。
2. 仮想アプライアンスのエクスポート設定で各種パラメータを設定します。なお今回は未設定で進めています。
3. ファイル名(*.ovf)形式で出力します。なおこの際「Write legacy OVF 0.9」を選択してください。これを選択しないとVMware Converterから読み込めません。
4. エクスポート完了を待ちます。
5. エクスポートしたVMファイル(ovfとvmdkファイル)をApacheのDocumentRoot直下に設置します。このときにパーミッションもApache起動ユーザで読み込めるように変更しましょう!
なぜこんなことをするかって?VMware vCenter Converterで読めないからです。本当は読む方法あるかもしれないけどさ・・・
VMware vCnter ConveterでVMware vSphere 4 ESXiにインポート
インポート作業にはVMware vCnter Conveterを利用します。以下手順です。
1. Womdows上でVMware vCenter Converterを起動してローカルサーバに接続します。なおWindows7 RTM(x64)でやってみましたが、普通に動きましたよ。
2. VirtualBoxでエクスポートしたVMをESXi 4.0に変換するので「Convert Machine」を選択します。
3. 「Select source type」で「Virtual Appliance」を選択し、URLに先ほどエクスポートしたVMのダウンロードURLを記述します。
4. 内容を確認します。
5. インポート先のESXiの情報を入力します。「Select destination type」に「VMware Infrastructure virtual machine」を選択し、ESXiのIP・ユーザ名・パスワードを入力します。
6. インポート後の仮想マシン名とインポート先のストレージを選択します。
7. 内容を確認します。
8. 同じく内容を確認します。
9. さぁ、インポート開始です。
10. 以上で無事にインポート完了。長かった・・・
ちなみにWikiページにも上記をまとめておきました。
freeradius-server-2.1.7インストール
投稿者: kinusati, カテゴリー: solaris
Solaris10(amd64)にfreeradius-server-2.1.7をインストールしてみました。
いっつも思うんだけど、何でSolarisにソフトウェアをインストールするのはこんなに大変なんだろう。./configure, make , make installでまったく通らないですよ!
例えば、–without-rlm_eapが無いと以下のエラーが・・・
Making all in libeap... gmake[7]: Entering directory `/var/tmp/work/freeradius-server-2.1.7/src/modules/rlm_eap/libeap' /var/tmp/work/freeradius-server-2.1.7/libtool --mode=link gcc -release 2.1.7 \ -export-dynamic -o libfreeradius-eap.la -rpath /usr/local/lib eapcommon.lo eapcrypto.lo eapsimlib.lo fips186prf.lo cb.lo eap_tls.lo mppe_keys.lo tls.lo \ /var/tmp/work/freeradius-server-2.1.7/src/lib/libfreeradius-radius.la -lnsl -lresolv -lsocket -lposix4 -lpthread libtool: link: `eapcrypto.lo' is not a valid libtool object gmake[7]: *** [libfreeradius-eap.la] Error 1
–without-rlm_perlが無いと以下のエラーが・・・
*** Warning: Linking the shared library rlm_perl.la against the
*** static library /usr/perl5/5.8.4/lib/i86pc-solaris-64int/auto/DynaLoader/DynaLoader.a is not portable!
gcc -shared -Wl,-h -Wl,rlm_perl-2.1.7.so -o .libs/rlm_perl-2.1.7.so .libs/rlm_perl.o -R/var/tmp/work/freeradius-server-2.1.7/src/lib/.libs -R/usr/local/lib -R/usr/perl5/5.8.4/lib/i86pc-solaris-64int/CORE /var/tmp/work/freeradius-server-2.1.7/src/lib/.libs/libfreeradius-radius.so /usr/perl5/5.8.4/lib/i86pc-solaris-64int/auto/DynaLoader/DynaLoader.a -L/usr/perl5/5.8.4/lib/i86pc-solaris-64int/CORE -lperl -ldl -lm -lc -lnsl -lresolv -lsocket -lposix4 -lpthread -lc
Text relocation remains referenced
against symbol offset in file
.rodata1 0x6 /usr/perl5/5.8.4/lib/i86pc-solaris-64int/auto/DynaLoader/DynaLoader.a(DynaLoader.o)
my_cxt 0x13 /usr/perl5/5.8.4/lib/i86pc-solaris-64int/auto/DynaLoader/DynaLoader.a(DynaLoader.o)
でも–without-rlm_eapを設定するとradeapclientファイルが生成されなくなるので、make installで失敗するからここも手動対応・・
gmake[9]: Leaving directory `/var/tmp/work/freeradius-server-2.1.7/src/modules/rlm_eap/libeap' gmake[8]: Leaving directory `/var/tmp/work/freeradius-server-2.1.7/src/modules/rlm_eap' /var/tmp/work/freeradius-server-2.1.7/libtool --mode=install /var/tmp/work/freeradius-server-2.1.7/install-sh -c -m 755 radeapclient /usr/local/bin /var/tmp/work/freeradius-server-2.1.7/install-sh -c -m 755 radeapclient /usr/local/bin/radeapclient install: radeapclient does not exist gmake[7]: *** [install-subdirs] Error 1
ま、Makefileを手動で編集すればいいですけどね。src/modules/rlm_eap/Makefileの41行目をコメントアウト。
# vi src/modules/rlm_eap/Makefile 39 install-subdirs: 40 @$(MAKE) $(MFLAGS) WHAT_TO_MAKE=install common 41 #$(LIBTOOL) --mode=install $(INSTALL) -m 755 $(INSTALLSTRIP) radeapclient$(EXEEXT) $(R)$(bindir)
Wikiにまとめておきました。
squidをバージョンアップ
投稿者: kinusati, カテゴリー: solaris
IPv4/IPv6両方をしゃべれるプロキシサーバとしてsquid-3.1(beta)を利用していた。
従来はsquid-3.1.0.4を利用していたが、Solaris10(amd64)環境下ではCPUが100%に張り付くことがたびたびあった。そこで、バージョンアップを試みたがsquid-3.1.0.13では以下のエラーが出て、コンパイルができなかった。
-bash-3.00# gmake
Making all in compat
gmake[1]: Entering directory `/var/tmp/work/squid-3.1.0.13/compat'
/bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I.. -I../include -I../src -I../include -I/usr/include/libxml2 -Werror -Wall -Wpointer-arith -Wwrite-strings -Wmissing-prototypes -Wmissing-declarations -Wcomments -D_REENTRANT -pthreads -Usparc -Uunix -Ui386 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -g -MT GnuRegex.lo -MD -MP -MF .deps/GnuRegex.Tpo -c -o GnuRegex.lo GnuRegex.c
gcc -DHAVE_CONFIG_H -I.. -I../include -I../src -I../include -I/usr/include/libxml2 -Werror -Wall -Wpointer-arith -Wwrite-strings -Wmissing-prototypes -Wmissing-declarations -Wcomments -D_REENTRANT -pthreads -Usparc -Uunix -Ui386 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -g -MT GnuRegex.lo -MD -MP -MF .deps/GnuRegex.Tpo -c GnuRegex.c -fPIC -DPIC -o .libs/GnuRegex.o
In file included from ../compat/compat.h:63,
from ../include/config.h:58,
from GnuRegex.c:35:
../compat/os/solaris.h:33: warning: "struct rusage" declared inside parameter list
../compat/os/solaris.h:33: warning: its scope is only this definition or declaration, which is probably not what you want
gmake[1]: *** [GnuRegex.lo] Error 1
gmake[1]: Leaving directory `/var/tmp/work/squid-3.1.0.13/compat'
gmake: *** [all-recursive] Error 1
思い切って、daily build版のsquid-3.1.0.13-20090914を利用してみたら、コンパイルもとおって、ばっちりインストールができたので、今日はこれで満足することとしよう。
RRDtool-1.3.8をSolaris10(x86/x64)にインストールするのが難しい
投稿者: kinusati, カテゴリー: solaris
RRDtool-1.3.8をSolaris10にインストールするWikiページを書いているが、Solaris10(x86/x64)にインストールできないことが発覚・・・
以下のエラーが出ます・・・
gmake[3]: Entering directory `/var/tmp/work/rrdtool/fontconfig-2.4.2/src' /bin/bash ../libtool --tag=CC --mode=link gcc -O3 -fPIC -o libfontconfig.la -rpath /usr/local/rrdtool/lib -version-info 3:0:2 -no-undefined fcatomic.lo fcblanks.lo fccache.lo fccfg.lo fccharset.lo fcdbg.lo fcdefault.lo fcdir.lo fcfreetype.lo fcfs.lo fcinit.lo fclang.lo fclist.lo fcmatch.lo fcmatrix.lo fcname.lo fcpat.lo fcserialize.lo fcstr.lo fcxml.lo ftglue.lo -L/usr/local/rrdtool/lib -R/usr/local/rrdtool/lib -lfreetype -lz -L/usr/local/rrdtool/lib -lxml2 gcc -shared -Wl,-h -Wl,libfontconfig.so.1 -o .libs/libfontconfig.so.1.2.0 .libs/fcatomic.o .libs/fcblanks.o .libs/fccache.o .libs/fccfg.o .libs/fccharset.o .libs/fcdbg.o .libs/fcdefault.o .libs/fcdir.o .libs/fcfreetype.o .libs/fcfs.o .libs/fcinit.o .libs/fclang.o .libs/fclist.o .libs/fcmatch.o .libs/fcmatrix.o .libs/fcname.o .libs/fcpat.o .libs/fcserialize.o .libs/fcstr.o .libs/fcxml.o .libs/ftglue.o -R/usr/local/rrdtool/lib -R/usr/local/rrdtool/lib -L/usr/local/rrdtool/lib /usr/local/rrdtool/lib/libfreetype.so -lz /usr/local/rrdtool/lib/libxml2.so -lc ld: fatal: relocation error: R_386_GOTOFF: file .libs/fccache.o: symbol FcDebugVal: relocation must bind locally collect2: ld returned 1 exit status gmake[3]: *** [libfontconfig.la] Error 1 gmake[3]: Leaving directory `/var/tmp/work/rrdtool/fontconfig-2.4.2/src' gmake[2]: *** [all] Error 2 gmake[2]: Leaving directory `/var/tmp/work/rrdtool/fontconfig-2.4.2/src' gmake[1]: *** [all-recursive] Error 1 gmake[1]: Leaving directory `/var/tmp/work/rrdtool/fontconfig-2.4.2' gmake: *** [all] Error 2
上記fontconfitg-2.4.2はRRDtoolのパッケージが指定しているバージョンなので変えていいべきかを悩んでいろいろ試行錯誤をしたものの、結局バージョンを変えることで解決した。解決したバージョンはfontconfig-2.7.3。ふー。
取り急ぎWikiページを更新しています。
http://wiki.kinusati.net/index.php/Solaris10:rrdtool-1.3.8%E5%B0%8E%E5%85%A5












