2008年06月21日

OpenSimサーバ構築記録その4(Gridmode移行編)

● そのまえに

(http://opensimulator.org/svn/opensim/tags/)

OpenSim 0.5.8-releaseが出たので、緊張しながらアップデートしてみました。
MySQLデータベースとか移行できるかドキドキでしたが、ただコンパイルして、
default.xmlをコピーしただけで動いてしましました。 ヨカッタ。。。



● ポート TCP/8002の開放

Grid modeでは、SLビューワの接続先UserServerのポート番号は、TCP/8002なので、ファイアウォール起動シェル
に追加しました。

(/etc/init.d/myfirewall.sh)

/sbin/iptables -A INPUT -i $WANPORT -p tcp -m state --state NEW -s $TRUSTWAN --dport 9000 -j ACCEPT
/sbin/iptables -A INPUT -i $WANPORT -p udp -s $TRUSTWAN --dport 9000 -j ACCEPT
/sbin/iptables -A INPUT -i $WANPORT -p tcp -m state --state NEW -s $TRUSTWAN --dport 8002 -j ACCEPT


(補足)
myfirewall.sh は、私が組んだ自家製のFW起動用シェルスクリプトです。



● OpenSim.ini の修正

(http://opensimulator.org/wiki/OpenSim_Configuration)

とにかく、英語のサイトと格闘しながら、OpenSim.iniを、Grid mode用に変更しました。
あってるのかなぁ? まあ、とりあえず動いたし。 ^^;

(/usr/local/opensim/0.5.8/bin/OpenSim.ini)

5: gridmode = true
35: ; storage_plugin = "OpenSim.Data.Null.dll"  <--コメントにした
39: ;storage_connection_string="URI=file:OpenSim.db,version=3";  <--コメントにした
43: storage_plugin="OpenSim.Data.MySQL.dll"
44: storage_connection_string="Data Source=localhost;Database=opensim;User ID=root;Password=********;";
64: ;asset_database = "local"  <--コメントにした
65: asset_database = "grid"




● XEngine サポート

(http://opensimulator.org/wiki/XEngine)

OpenSim 0.5.8-releaseから、スクリプトエンジン(XEngine)がサポートされたので、追加してみました。
OpenSim.iniの[Startup]セクションに記述します。

(/usr/local/opensim/0.5.8/bin/OpenSim.ini)

116: ;Experimental remote ScriptServer plugin (does not currently work):
117: ;script_engine = OpenSim.Region.ScriptEngine.RemoteServer.dll  <--コメントにした
118: script_engine = OpenSim.Region.ScriptEngine.XEngine.dll  <--追加した


(補足)
知ったように書いてますが、何がどう良くなったのか、ぜんぜん調べてません。。。><



● サーバ起動の順番

Grid modeでは、次の順番で起動します。
正常に起動すると、コマンド入力待ち状態になり、コンソールをつかんでしまいますので注意です。

1.OpenSim.Grid.UserServer.exe
2.OpenSim.Grid.GridServer.exe
3.OpenSim.Grid.AssetServer.exe
4.OpenSim.Grid.InventoryServer.exe
5.OpenSim.exe



● 1.UserServerの起動

コンソールから、monoコマンドでUserServerを起動します。
途中の質問はとりあえず全てデフォルトですが、「Connection String for Databas」
には、MySQLへの接続コマンドを打ってみました。
ここを省略すると、./Regions/default.xmlを見に行きます。
どっちの方法がいいんだろう?

root@sv:/usr/local/opensim/0.5.8/bin# mono OpenSim.Grid.UserServer.exe

USER SERVER: Default Startup Message [Welcome to OGS]:
USER SERVER: Default Grid Server URI [http://127.0.0.1:8001/]:
USER SERVER: Key to send to grid server [null]:
USER SERVER: Key to expect from grid server [null]:
USER SERVER: Default Inventory Server URI [http://127.0.0.1:8004/]:
USER SERVER: DLL for database provider [OpenSim.Data.MySQL.dll]:

USER SERVER: Connection String for Database []:  <-- 省略しない
Data Source=localhost;Database=opensim;User ID=root;Password=********;

USER SERVER: Http Listener port [8002]:
USER SERVER: Use SSL? true/false [False]:
USER SERVER: Known good region X [1000]:
USER SERVER: Known good region Y [1000]:

20:40:12 - [REGION]: Establishing data connection
20:40:12 - [USERSTORAGE]: Attempting to load OpenSim.Data.MySQL.dll
20:40:12 - [USERSTORAGE]: Found 7 interfaces.
20:40:12 - Using obsoletely mysql_connection.ini, try using user_source connect string instead
20:40:12 - [MYSQL]: Connection established
20:40:12 - MIGRATION: Match: 001
20:40:12 - Resource 'UserStore' was not found
20:40:12 - [USERSTORAGE]: Added IUserData Interface
20:40:12 - [LIBRARY INVENTORY]: Loading library inventory
20:40:12 - [LIBRARY INVENTORY]: Loading libraries control file ./inventory/Libraries.xml
20:40:13 - [REGION]: Starting HTTP process
20:40:13 - [HTTPD]: Starting up HTTP Server
20:40:13 - [HTTPD]: Spawned main thread OK
20:40:13 - [SERVER]: Userserver 0.5 - Startup complete
Enter help for a list of commands

User# :  <-- コマンド入力待ちになったら(たぶん)OK.




● UserServerの初起動により、以下のファイルが作成されます。

./bin/UserServer_Config.xml
./bin/OpenSim.Grid.UserServer.log



● 起動途中の質問項目は、UserServer_Config.xmlファイルに記録されてました。

(/usr/local/opensim/0.5.8/bin/UserServer_Config.xml)

<Config default_startup_message="Welcome to OGS" default_grid_server="http://127.0.0.1:8001/"
grid_send_key="null" grid_recv_key="null" default_inventory_server="http://127.0.0.1:8004/"
database_provider="OpenSim.Data.MySQL.dll"
database_connect="Data Source=localhost;Database=opensim;User ID=root;Password=********;"
http_port="8002" http_ssl="False" default_X="1000" default_Y="1000" />




● 2.GridServerの起動

root@sv:/usr/local/opensim/0.5.8/bin# mono OpenSim.Grid.GridServer.exe

GRID SERVER: OGS Grid Owner [OGS development team]:
GRID SERVER: Default Asset Server URI [http://127.0.0.1:8003/]:
GRID SERVER: Key to send to asset server [null]:
GRID SERVER: Key to expect from asset server [null]:
GRID SERVER: Default User Server URI [http://127.0.0.1:8002/]:
GRID SERVER: Key to send to user server [null]:
GRID SERVER: Key to expect from user server [null]:
GRID SERVER: Key to send to a simulator [null]:
GRID SERVER: Key to expect from a simulator [null]:
GRID SERVER: DLL for database provider [OpenSim.Data.MySQL.dll]:

GRID SERVER: Database connect string []:  <-- 省略しない
Data Source=localhost;Database=opensim;User ID=root;Password=********;

GRID SERVER: Http Listener port [8001]:




● GridServerの初起動により、以下のファイルが作成されます。

./bin/OpenSim.Grid.GridServer.log
./bin/GridServer_Config.xml



● 3.AssetServerの起動

root@sv:/usr/local/opensim/0.5.8/bin# mono OpenSim.Grid.AssetServer.exe

ASSET SERVER: Default Startup Message [Welcome to OGS]:
ASSET SERVER: DLL for database provider [OpenSim.Data.MySQL.dll]:

ASSET SERVER: Database connection string []:  <-- 省略しない
Data Source=localhost;Database=opensim;User ID=root;Password=********;

ASSET SERVER: Http Listener port [8003]:



● AssetServerの初起動により、以下のファイルが作成されます。

./bin/AssetServer_Config.xml
./bin/OpenSim.Grid.AssetServer.log



● 4.InventoryServerの起動

なぜか、データベースのデフォルトが「SQLite」になってます。
よくわからないのですが、やっぱり、「MySQL」を指定した方がいいのかな?

root@sv:/usr/local/opensim/0.5.8/bin# mono OpenSim.Grid.InventoryServer.exe

INVENTORY: Default Startup Message [Welcome to OGS]:
INVENTORY: Default User Server URI [http://127.0.0.1:8002]:
INVENTORY: Key to send to user server [null]:
INVENTORY: Key to expect from user server [null]:

INVENTORY: DLL for database provider [OpenSim.Data.SQLite.dll]:
OpenSim.Data.MySQL.dll

INVENTORY: Database Connect String []:
Data Source=localhost;Database=opensim;User ID=root;Password=********;

INVENTORY: Http Listener port [8004]:




● InventoryServerの初起動により、以下のファイルが作成されます。

./bin/InventoryServer_Config.xml
./bin/OpenSim.Grid.InventoryServer.log



● 5.OpenSimの起動

これは、いつものとおり。

root@sv:/usr/local/opensim/0.5.8/bin# mono OpenSim.exe

23:20:01 - =========================================================
23:20:01 - ============== STARTING OPENSIM =========================
23:20:01 - =========================================================
23:20:01 - [OPENSIM MAIN]: Running in grid mode




● ログファイルを監視しましょう~

Linux(Unix)には、テキストファイルの末尾を表示するtailコマンドがありますが
「-f」オプションをつけると、ファイルの末尾に追加されるテキストデータを
リアルタイムに表示してくれるので、ログファイルの監視にとっても便利です。

OpenSim.Grid.UserServer.log
OpenSim.Grid.GridServer.log
OpenSim.Grid.AssetServer.log
OpenSim.Grid.InventoryServer.log
OpenSim.log

これら5つのログファイルを、まとめて監視してしまいます。
OpenSim.exe起動時や、ビューワログイン時に、UGAIサーバと連携する様子がコンソールに
出力されるので、参考になります。

root@sv:/usr/local/opensim/0.5.8/bin# tail -f *.log



● ビューワのポート変更を忘れずに

Grid mode は、TCP/8002、でしたね。

SecondLife.exe -set SystemLanguage ja -multiple -loginuri http://サーバ名:8002/



● つぎは

前回のMySQL移行に比べたら、今回はずいぶん簡単でした。(もちろんドキュメントはちゃんと読みましたけど)
つぎは、やっぱり、複数のSIMやRegion作りと接続ですね~。
VMWareの仮想ネットワークも準備できたし、いろいろ実験できそうです。
でも、夏に向けて熱暴走とか心配、それになんかエコによくない趣味だなぁ。。。。




【資料4.1】
OpenSim.iniファイル V0.5.7 -> V0.5.8差分

XEngine 定義が追加

447 [XEngine]
448: ; How many threads to keep alive even if nothing is happening
449: MinThreads = 2
450: ; How many threads to start at maximum load
451: MaxThreads = 100
452: ; Time a thread must be idle (in seconds) before it dies
453: IdleTimeout = 60
454: ; Thread priority ("Lowest", "BelowNormal", "Normal", "AboveNormal", "Highest")
455: Priority = "BelowNormal"
456: ; Maximum number of events to queue for a script (excluding timers)
457: MaxScriptEventQueue = 300
458: ; Stack size per thread created
459: ThreadStackSize = 262144
460: ; Rate to poll for asynchronous command replies (ms)
461: AsyncLLCommandLoopms = 50
462: ; Save the source of all compiled scripts
463: WriteScriptSourceToDebugFile = false
464: ; Default language for scripts
465: DefaultCompileLanguage = lsl
466: ; List of allowed languages (lsl,vb,js,cs)
467: AllowedCompilers = lsl
468: ; Compile debug info (line numbers) into the script assemblies
469: CompileWithDebugInformation = true
470: ; Allow the use of os* functions (some are dangerous)
471: AllowOSFunctions = false
472: ; Interval (s) between background save of script states
473: SaveInterval = 120
474: ; Interval (s) between maintenance runs (0 = disable)
475: MaintenanceInterval = 10
476: ; Time a script can spend in an event handler before it is interrupted
477: EventLimit = 30
478: ; If a script overruns it's event limit, kill the script?
479: KillTimedOutScripts = false
480: ; Allow OS console command functionality (VERY DANGEROUS!!)
481: AllowosConsoleCommand = false




【資料4.2】

Grid modeに移行したことで、データベース内のテープルが、15個になりました。



・テーブル名:land


・テーブル名:landaccesslist


・テーブル名:migrations


・テーブル名:primitems


・テーブル名:prims


・テーブル名:primshapes


・テーブル名:regions


・テーブル名:terrain




同じカテゴリー(OpenSim)の記事
 再掲:OpenSim構築手順 (Linux版&OSGrid) (2009-04-18 19:33)
 OpenSimサーバ構築記録10/OSX版MySQLで動かす (2008-12-07 18:25)
 OpenSimサーバ構築記録9(MacOSXコンパイル編) (2008-11-30 16:10)
 OpenSimサーバ構築記録8 (手作りファイアウォール編) (2008-09-07 11:14)
 OpenSimサーバ構築記録その7(暗号化しなくちゃ編) (2008-08-03 11:52)
 OpenSimサーバ構築記録その6(ブレンダーで土地作り編) (2008-07-19 00:07)

Posted by ぱすてる at 16:53│Comments(10)OpenSim
この記事へのコメント
こんばんわぁ〜

ブログのテンプ シンプルでかっこいいですね。

なんだかーー難しい取り組みしてますねー

俺には・・・難しい(>< 分野で (^^;

頑張って取り組んでください!
Posted by 漱石漱石 at 2008年06月21日 23:20
むむ・・・
すっかりお仕事モード^^;
Posted by Moo at 2008年06月22日 16:51
(^^) 総積算、、誤変換(爆) そーせきさん、どもども。

この手の記事には投稿しないと、思ってましたよ。^^;

>ブログのテンプ シンプルでかっこいいですね。

ありがとうです。Blenderの「本来」の使い方をしただけなのですけど
なぜか新鮮に感じます^^;
漱石さんはShadeですよね? なにかCG作ったら見せてください。

>なんだかーー難しい取り組みしてますねー

いろいろやってみたい事が多くて。。
インにお店を持っているわけではないので、いろいろ自由に試してます。
少々、リアルの仕事のネタ探しにもなってます。
スカルプ作りだけでは、この先食べていけませんから。。(^^ゞ


(^^) モーさん

>すっかりお仕事モード^^;

通勤中に、モデリングするモーさんにはかないません。ーー;
Posted by ぱすてるぱすてる at 2008年06月22日 19:54
こんばんは^^

ぱすてるさんのプログみてて、OpenSIM試したくなって
Ubuntuでやってみました^^
CRTのモニタでUbuntuの解像度変えるのに苦労しましたけど
(おひさしぶりにXwindowのconfigさわってみました^^)
OpenSIMとmySQLはぱすてるさんのブログのとおりやって
無事動きました。一人じゃ寂しいので2人アバターで仲良く
お友達(裏で1人2役)できました。
さて、なにに応用しようか 思案中です^^

Blenderのほうは 中断していますが、色を彩色した
オブジェクトをUVマップに出す方法がわからなくって
いま、その課題に取り組んでいます。
なにか、ヒントありましたら 教えていただけませんでしょうか
具体的には、Textureタブ、Map inputタブ、Map Toタブの設定方法なんですけど^^;
お時間ありましたら お願いします^^

いろんなブログ内容で読むのを楽しみにしてます^^
かんばってくださいね !!

 
Posted by rikachann at 2008年08月05日 23:14
(^^) リカチャンさん、ど~も

>OpenSIM試したくなってUbuntuでやってみました

あれ、Ubuntuですか?
FedoraCoreでのOpenSim構築手順を期待してるんですけど。。 ^^)b


>色を彩色したオブジェクトをUVマップに出す方法がわからなくって

「色を彩色したオブジェクト」、だけでは意味がよくわからないのですけど
マテリアル・テクスチャの事でしょうか?

それでしたら、BAKEする時に、「Full Render」ボタン、「Texture」ボタン等
を有効にすれば、UVマップにBAKEできますけど、いかがでしょう?

参考サイト「Blenderで3DCG制作日記 操作メモ - レンダーベイキング」
http://bmania.blog70.fc2.com/blog-entry-316.html#more

また、以下のサイトのチュートリアルムービーも参考になります。

Creating Surface textures for sculpties with blender
http://blog.machinimatrix.org/2008/05/12/blender-surface-textures/#more-12

三面図用のUVマップに絵を描いて、スカルプ用のUVマップ上に変換する手順です。
英語ですけど、ムービーのとおりにすればできます。
Posted by ぱすてるぱすてる at 2008年08月08日 21:05
こんばんは^^

>あれ、Ubuntuですか?
>FedoraCoreでのOpenSim構築手順を期待してるんですけど。。 ^^)b

FedoraCore9でOpenSim動くことを確認することできました^^
KDEデスクトップと開発環境をインストール時に追加してnVIDIAのドライバー
いれたら、ビュアは難なく動きました(前回苦労したのにQtがらみかな)
ぱすてるさんの手順どおりでライブラリーなどは「ソフトウエアの追加と
削除」でmono関係のものをインストールしてコンパイルすると
動きました。^^
mono関係のどれが必衰なのかはわからないんですけど(無責任)
無事動いたということで^^

blendaerはこれから確認してみます。
サイト等教えていただきいろいろありがとうございます。
参考にいたします^^
ブログのなかでリンクいただいてもいいでしょうか^^
Posted by rikachann at 2008年08月12日 20:11
>FedoraCore9でOpenSim動くことを確認することできました^^
おー、それは素晴らしい。
手順書のアップ、待ってま~す。  *^^V

>ブログのなかでリンクいただいてもいいでしょうか^^
どぞどぞ。
Posted by ぱすてるぱすてる at 2008年08月13日 19:36
こんばんは^^

Fedora9での手順書アップしました。^^;
手順書の中で、1部ぱすてるさんのプログを
そのまま無断で引用してしまいました。
(OpenSimの設定のLogです。)
ごめんなさい。お許しください^^;

OpenSimも面白そうなのでいろいろ
触ってみたいと思います。
これからが楽しみです^^
Posted by rikachann at 2008年08月14日 21:50
(^^) rikachann さん、どもども。

>Fedora9での手順書アップしました。^^;

おー。さっそく試させてもらおう~。
VMWareにFC8入れたしね。

>ログをそのまま無断で引用してしまいました。

オープンソースは、情報の公開・共有が基本ですから、ぜんぜんOK~。
Posted by ぱすてるぱすてる at 2008年08月18日 00:06
うちの車もリコール対象や
Posted by Coach Factory Online at 2011年12月11日 21:16
上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。