Configuration

From OpenSimulator

(Difference between revisions)
Jump to: navigation, search
(Running OpenSim in Grid mode)
(dotnet runtime configuration (version 0.9.3.0 and above))
 
(248 intermediate revisions by 31 users not shown)
Line 1: Line 1:
{{Template:Quicklinks}}
+
{{Quicklinks|Configuration}}
{{Languages}}
+
 
<br />
 
<br />
==OpenSim simulator configuration file==
+
== OpenSimulator simulator configuration file ==
The region simulator configuration is managed using a file called [[OpenSim.ini]]. This file is used regardless of whether the sim is running in standalone or grid mode. This file references some additional configuration information from the config-include/ directory. Information about the various settings is contained in the OpenSim.ini file itself (or OpenSim.ini.example for reference).
+
The region simulator configuration is managed using a file called OpenSim.ini. This file is used regardless of whether the sim is running in standalone or grid mode. This file references some additional configuration information from the config-include/ directory. Information about the various settings is contained in the [[Configuration/files/OpenSim/OpenSim.ini|OpenSim.ini]] file itself (or OpenSim.ini.example for reference).
  
Please note, that the name OpenSim.ini can be changed via [[OpenSim.exe Command Line Options|command line arguments]].
+
Please note, that the name [[Configuration/files/OpenSim/OpenSim.ini|OpenSim.ini]] can be changed via [[OpenSim.exe Command Line Options|command line arguments]].
  
It is also possible to distribute the inifile settings over two files. This is useful if you want to run several OpenSim processes where most of your settings are identical except for a few. The master file is read first, then the inifile is read. Settings given in the inifile overrule settings given in the master file. The master file has the same format and the same keywords as the inifile, so the same documentation applies.
+
It is also possible to distribute the inifile settings over two files. This is useful if you want to run several OpenSimulator processes where most of your settings are identical except for a few. The master file is read first, then the inifile is read. Settings given in the inifile overrule settings given in the master file. The master file has the same format and the same keywords as the inifile, so the same documentation applies.
  
==Database==
+
== Database ==
Opensim's supports the following database-engines. Information about setting these up can be found in the OpenSim.ini.example file and the other various example files in bin/config-include.
+
Opensimulator supports the following database engines. Information about setting these up can be found in the OpenSim.ini.example file and the other various example files in bin/config-include.  '''If you do not want to use the default SQLite configuration then you will need to setup your database before proceeding further'''.  SQLite does not require further configuration.  See [[Database Settings]] for the detailed settings.
  
* SQLite (default - a lightweight database that comes bundled with OpenSim and can be used without requiring any extra configuration. It is mostly intended to get you up and running quickly, not for production use. A few features here (such as attachment persistence) have not yet been fully implemented.
+
* '''SQLite''' (default) - a lightweight database that comes bundled with OpenSimulator and can be used without requiring any extra configuration. It is mostly intended to get you up and running quickly, not for production use. It is significantly slower than MySQL. A few features here (such as attachment persistence) have not yet been fully implemented.  
* MySQL (fully supported).  This is the recommended database for any use beyond experimentation or small standalone applications.
+
* MSSQL (partially supported - some recent OpenSim features may not yet be implemented).  See [[MSSQL-config]] for configuration information.
+
  
==Standalone vs. Grid==
+
* '''MySQL''' (fully supported) - This is the recommended database for any use beyond experimentation or small standalone applications. The minimum MySQL version is 5.1.
We recommend that you first get OpenSim running in standalone mode before you attempt to connect it to a grid or run your own grid. OpenSim will start up in standalone mode out-of-the-box.
+
* '''MariaDB''' (fully supported) - A compatible alternative to MySQL. You need to make sure the selected charset is utf8mb3 (ie 3 bytes). Some instalations default to uft8mb4 (4 bytes) and that will fail
  
An OpenSim configuration consists of regions (run by region simulators) and backend data services (such as user, assets and inventory management).
+
* '''MSSQL''' (fairly supported) - persistence support for some recent OpenSimulator features may not yet be implemented though the vast majority of them are supported.
  
A system running in '''standalone mode''' runs both the region simulator and all the data services in a single process when you run OpenSim.exe.  In this mode you can run as many regions as you like but only on a single machine.
+
== Standalone vs. Grid ==
 +
We recommend that you first get OpenSimulator running in standalone mode before you attempt to connect it to a grid or run your own grid. OpenSimulator will start up in standalone mode out-of-the-box on the binary distributions.
  
[[image:Opensim-standalone.png|frame|center|OpenSim running in standalone mode.  Both simulator and services run in the same process (OpenSim.exe).]]
+
An OpenSimulator configuration consists of regions (run by region simulators) and backend data services (such as user, assets and inventory management).
  
In '''grid mode''', the data services are not part of the region server process.  Instead, they are run in a separate executable called Robust.exe. A Robust shell can run all the services or they can be split amongst any number of Robust instances.  This allows them to be run on entirely separate machines if necessary.  In this mode, the OpenSim.exe acts solely as the region server, serving one or more regions that communicate with the separate data services.  At this point you can run multiple OpenSim.exe region simulators on different machines.
+
A system running in '''standalone mode''' runs both the region simulator and all the data services in a single process when you run OpenSim.exe. In this mode you can run as many regions as you like but only on a single machine.
  
[[image:Opensim-grid-simple.png|frame|center|OpenSim running in grid mode. In this case, all the services are being run within a Robust.exe process.  Multiple copies of OpenSim.exe (usually running on different machines) all use the same set of common services.]]
+
[[Image:Opensim-standalone.png|frame|center|OpenSimulator running in standalone mode. Both simulator and services run in the same process (OpenSim.exe).]]
  
Running in grid mode is more complicated than running in standalone mode.  It requires an understanding of UUID, X,Y location, server handshake passwords, estates and estate owners, and a couple of other settings. These require more care and patience to set up. We strongly recommend that you don't attempt this unless you are extremely patient and very technically proficient.
+
In '''grid mode''', the data services are not part of the region server process. Instead, they are run in a separate executable called Robust.exe. A Robust shell can run all the services or they can be split amongst any number of Robust instances. This allows them to be run on entirely separate machines if necessary. In this mode, the OpenSim.exe acts solely as the region server, serving one or more regions that communicate with the separate data services. At this point you can run multiple OpenSim.exe region simulators on different machines.
  
= Running OpenSim in Standalone mode =
+
[[Image:Opensim-grid-simple.png|frame|center|OpenSimulator running in grid mode. In this case, all the services are being run within a Robust.exe process. Multiple copies of OpenSim.exe (usually running on different machines) all use the same set of common services.]]
If you download a binary distribution of OpenSim then running in standalone mode is relatively straightforward since it's configured this way by default. If you build OpenSim from the source distribution or from the git repository then you will need to
+
  
# Copy the bin/OpenSim.ini.example file to bin/OpenSim.ini
+
Running in grid mode is more complicated than running in standalone mode. It requires an understanding of UUID, X,Y location, server handshake passwords, estates and estate owners, and a couple of other settings. These require more care and patience to set up. We strongly recommend that you don't attempt this unless you are extremely patient and very technically proficient.
# Copy the bin/config-include/StandaloneCommon.ini.example file to bin/config-include/StandaloneCommon.ini
+
  
Running OpenSim is a matter of launching OpenSim.exe.
+
= Running OpenSimulator in Standalone mode =
  
On a Windows command prompt, at OpenSim's bin directory execute
+
Binary distributions of OpenSimulator are by default configured to run in standalone mode. For versions up to 0.9.2.1 you need also to edit bin/OpenSim.ini to change PublicPort = 8002 to PublicPort = 9000.
 +
 
 +
However, if you build OpenSimulator from the source distribution or from the git repository then you will need to:
 +
 
 +
# Change into the '''''bin''''' folder
 +
# Copy the file '''''OpenSim.ini.example''''' to '''''[[Configuration/files/OpenSim/OpenSim.ini|OpenSim.ini]]'''''. This configures the 3D simulator itself.
 +
# Check the '''[Const]''' section PublicPort. It should be set to 9000 by default for a standalone.
 +
# In the '''[Architecture]''' section of '''''[[Configuration/files/OpenSim/OpenSim.ini|OpenSim.ini]]''''', near the bottom of the file, uncomment the ''Standalone.ini'' line. To uncomment a line of code, remove the semi-colon (;) comment symbol preceding the line.
 +
# Change into the '''''bin/config-include''''' folder
 +
# Copy the file '''''StandaloneCommon.ini.example''''' to '''''StandaloneCommon.ini'''''. This configures the in-process data services used by the standalone configuration.
 +
# Copy the file '''''FlotsamCache.ini.example''''' to '''''FlotsamCache.ini'''''. This configures the cache services used by the standalone configuration.
 +
 
 +
Running OpenSimulator is then a matter of launching OpenSim.exe. However, you need to have installed all dependencies before that. See [[Dependencies]] for details. After that, open a command prompt (for Windows users, Start menu > Run > cmd) and navigate to the Opensim /bin directory.
 +
 
 +
Under '''Windows''', run:
 
  OpenSim.exe
 
  OpenSim.exe
Or if using the default ODE physics plugin under 64 bit Windows
+
On '''Linux''' run:
OpenSim.32BitLaunch.exe
+
This is necessary because ODE cannot yet be compiled for 64 bit mode under Windows.
+
If you're using Linux then run
+
 
  mono OpenSim.exe
 
  mono OpenSim.exe
This can be done under both 32 and 64 bit modes with the ODE physics engine.
 
  
== Running OpenSim for the first time ==
+
== Running for the first time ==
  
If you're running OpenSim for the first time then when you start it up it will ask you several questions at the console.  These will set up a single region for you. The configuration will be placed at bin/Regions/Regions.ini which you can then go and edit later on.
+
If you're running OpenSimulator for the first time, it will ask you several questions at the console that will set up a single region for you. The configuration options you enter will be written to the bin/Regions/Regions.ini file, which you can then edit at a later date if you need to make changes.
  
Many of the questions have defaults. Here are some explanations of the questions asked.
+
Many of the questions have defaults. Here are some explanations of the questions asked:
  
* '''New region name''' - the name for your region. Don't leave this blank!
+
* '''New region name'''
* '''Region UUID''' - the unique ID of your region. In pretty much all cases you will want to accept the randomly generated default in the square brackets. The only time when you wouldn't is if you were trying to set up a configuration to point to pre-existing region data. But in this case you are probably better off editing the Regions.ini file directly anyway
+
::The name for your region. Don't leave this blank!
* '''Region Location''' - this is the location of the region on the grid. In standalone mode you can safely leave these as the default (1000,1000). If you were to set up additional regions later on in Regions.ini then they would need different grid co-ordinates (e.g. 1000,1001). OpenSim regions can be placed anywhere on a 65536 by 65536 grid.
+
* '''Region UUID'''
* '''Internal IP address''' - This should always be 0.0.0.0 (0.0.0.0 means "listen for connections on any interface", basically a wildcard) if you want to access this server from the internet or another server on your internal network, this should be the IP&nbsp;address assigned to the OpenSim Server. You should also set up the server to Use a Static IP address, and not DHCP
+
::The unique ID of your region. In pretty much all cases you will want to accept the randomly generated default in the square brackets. The only time when you wouldn't is if you were trying to set up a configuration to point to pre-existing region data. But in this case you are probably better off editing the Regions.ini file directly anyway
* '''Internal port''' - This is the IP port for all incoming client connections. The name is a bit misleading since it will be used externally (by a Second Life viewer, for instance) as well as internally. You can make this any port you want, but it is safe to leave at the default 9000. Each region on your server must have a unique port.
+
* '''Region Location'''
* '''Allow alternate ports''' - This is currently experimental. Please leave it at the default of False.
+
::This is the location of the region on the grid. In standalone mode you can safely leave these as the default (1000,1000). If you were to set up additional regions later on in Regions.ini then they would need different grid co-ordinates (e.g. 1000,1001). OpenSimulator regions can be placed anywhere on a 65536 by 65536 grid, but [[Hypergrid]] enabled regions may need special consideration for region location. See [[Installing and Running Hypergrid#The 4096 Regions Limit]] for more information.
* '''External host name''' - If you leave this at the default 'SYSTEMIP' then this will become the LAN network address of the machine (e.g. 192.168.1.2). This is fine if you are connecting only from within your LAN. If you want to connect to it from a client on the internet, this should be the External IP Address of your router. Fully Qualified Domain Names (FQDNs) should also work.
+
* '''Internal IP address'''
 +
::In virtually all cases this can be left as 0.0.0.0 (this is a wildcard that allows OpenSimulator to listen for UDP connections on any of the server's network interfaces). If you want to restrict UDP connections to only one network interface then you can specify an explicit IP address. This address is only used internally - the '''External host name''' is the one that is actually passed to the viewer (and hence is the important one).
 +
* '''Internal port'''
 +
::This is the IP port for all incoming client connections. The name is a bit misleading since it will be used externally (by a Second Life viewer, for instance) as well as internally. You can make this any port you want, but it is safe to leave at the default 9000. Each region on your server must have a unique port.
 +
* '''Allow alternate ports'''
 +
::This is currently experimental. Please leave it at the default of False.
 +
* '''External host name'''
 +
::If you leave this at the default 'SYSTEMIP' then this will become the LAN network address of the machine (e.g. 192.168.1.2). This is fine if you are connecting only from within your LAN. If you want to connect to it from a client on the internet, this should be the External IP Address of your router. Fully Qualified Domain Names (FQDNs) can also be used though they will be converted to a numeric IP address before being sent to the viewer.
  
The following details are also asked in OpenSim 0.6.9 and earlier.
+
OpenSimulator will ask you to assign each region to an estate during the setup process. If an estate needs to be created then it will also ask you to assign an estate manager. In standalone mode, an estate manager can also be created during the setup process.
  
* '''Master Avatar UUID''' - This is a legacy OpenSim feature and can be left at the default of 00000000-0000-0000-0000-000000000000.  Later on, you may want to change this to your own avatar's UUID in Regions.ini if you have problems editing terrain.
+
Don't forget the account details you use to set up the master avatar (in 0.6.9) or the estate manager (in 0.7 and later). Only this user will initially be able to configure the in-world settings for your region. This is also a user account that you can use to perform your initial login test.
* '''Master Avatar first name''' - This is an alternative way of specifying the master avatar by avatar name rather than UUID. If you press enter here then both this field and the last name field will be left blank.  Accepting the blank default is fine - this can always be changed later in Regions.ini
+
* '''Master Avatar last name''' - The last name of the master avatar.
+
* '''Master Avatar sandbox password''' - The password of the master avatar.
+
  
In OpenSim 0.7 and later, OpenSim asks you questions to set up an estate and an estate manager instead of a region master avatar.  The questions are similar but you will not be asked for a UUID.
+
See [[Configuring Regions]] for more information about the Regions.ini file that these questions generate.
  
Don't forget the account details you use to set up the master avatar (in 0.6.9) or the estate manager (in 0.7 and later).  Only this user will initially be able to configure the in-world settings for your region.
+
If you want to create a user other than the estate manager, then in the server console type:
  
See [[Configuring_Regions]] for more information about the Regions.ini file that these questions generate.
+
create user
  
If you want to create a user other than the estate manager, then type
+
This will ask you a series of questions for creating a user (such as first name, last name and password).
  
create user
+
== Network access for the standalone installation ==
 +
In standalone mode, a viewer connecting to your installation needs the following network access to your installation machine.
  
in the server console.  This will ask you a series of questions for creating a user (such as first name, last name and password).
+
1. TCP over the http_listener_port as used in your simulator.  This is set in the [Network] section of your [[Configuration/files/OpenSim/OpenSim.ini|OpenSim.ini]].
  
== Connecting to OpenSim ==
+
<source lang="ini">
 +
[Network]
 +
http_listener_port = 9000
 +
</source>
  
To connect to your new sim with your user, start up a Second Life viewer with the following command line switches:
+
This will be the default of 9000 if you have not explicitly changed it.
 +
 
 +
Set PublicPort to same port in section [Const]
 +
 
 +
<source lang="ini">
 +
[Const]
 +
PublicPort = 9000
 +
</source>
 +
 
 +
2. UDP over each region's InternalPort as configured in your region files (such as Regions.ini).  For instance, if you have configured
 +
 
 +
<source lang="ini">
 +
[test]
 +
RegionUUID = dd5b77f8-bf88-45ac-aace-35bd76426c81
 +
Location = 1000,1000
 +
SizeX = 256
 +
SizeY = 256
 +
SizeZ = 256
 +
InternalAddress = 0.0.0.0
 +
InternalPort = 9000
 +
AllowAlternatePorts = False
 +
ExternalHostName = mygrid.com
 +
 
 +
[test2]
 +
RegionUUID = dd5b77f8-bf88-45ac-aace-35bd76426c82
 +
Location = 1000,1001
 +
SizeX = 256
 +
SizeY = 256
 +
SizeZ = 256
 +
InternalAddress = 0.0.0.0
 +
InternalPort = 9001
 +
AllowAlternatePorts = False
 +
ExternalHostName = mygrid.com
 +
</source>
 +
 
 +
then you will need to open ports 9000 and 9001 to UDP traffic.
 +
 
 +
3. The network address of the machine hosting the OpenSimulator installation must be accessible to connecting viewers.  In the example above, the installation machine is reachable from the Internet via the domain name "mygrid.com".  If the same installation needs to be accessed by viewers on the same network, it must be possible for them to also successfully resolve that domain name (not all routers, especially home routers, have this "loopback capability").
 +
 
 +
If the installation only needed to be accessed on the same LAN, then one could you the local IP address of the server (e.g. 192.168.1.2).
 +
 
 +
== Connecting to a standalone installation ==
 +
 
 +
To connect to your new sim with your user, start up a viewer with the following command line switches:
  
 
'''Client on same machine as OpenSim:'''
 
'''Client on same machine as OpenSim:'''
  -loginuri http://127.0.0.1:9000/ -loginpage http://127.0.0.1:9000/?method=login
+
  -loginuri http://127.0.0.1:9000
  
 
'''Client on same LAN as OpenSim:'''
 
'''Client on same LAN as OpenSim:'''
  -loginuri http://lan_ip:9000/ -loginpage http://lan_ip:9000/?method=login
+
  -loginuri http://lan_ip:9000
  
 
'''Client on different machine or internet:'''
 
'''Client on different machine or internet:'''
  -loginuri http://external_ip:9000/ -loginpage http://external_ip:9000/?method=login
+
  -loginuri http://external_ip:9000
  
 
Then enter the user name and password you set up in the previous step and your new user should login.
 
Then enter the user name and password you set up in the previous step and your new user should login.
  
Be aware of [http://osgrid.org/forums/viewtopic.php?f=5&t=400&start=0&st=0&sk=t&sd=a loopback] problems when Running viewer &amp; server(s) on the same machine (LAN) by using the "external" configuration. (<u>'''You might notice endless waiting for region handshake'''</u>.) See also [[Troubleshooting|troubleshoot hints]]. If you're having Connectivity problems. [[Network_Settings|Be sure to read the Network Configuration Page]]. This is important if you see Region handshake issues
+
Be aware of [http://osgrid.org/forums/viewtopic.php?f=5&t=400&start=0&st=0&sk=t&sd=a loopback] problems when Running viewer &amp; server(s) on the same machine (LAN) by using the "external" configuration. (<u>'''You might notice endless waiting for region handshake'''</u>.) See also [[Troubleshooting|troubleshoot hints]]. If you're having Connectivity problems, [[Network Settings|be sure to read the Network Configuration Page]]. This is important if you see Region handshake issue.
  
= Running OpenSim in Grid mode =
+
[[Image:Exclamation.png|left]]
  
Running OpenSim in grid mode is considerably more complicated.  Instead of running everything in the same process, backend data services (asset, inventory, etc.) are run in a process separate from OpenSim.exeThis allows multiple instances of OpenSim.exe to use the same asset and inventory data.
+
== IMPORTANT NOTE, DIVA DISTRO - 4 Apr. 2012 - ==
  
== Step 1: Set up a ROBUST service instance ==
+
'''If you download the latest version of diva-r18611.tar.bz''', it is necessary to first launch the setup program ''configure.exe''
 +
*In Linux or MacOSX : open a terminal and enter "mono /diva-r18611/bin/Configure.exe" (assuming that you have placed the Diva distro in /diva-r18611)
 +
*In Windows, assuming they extracted Diva in My Documents, one would open "Run => cmd" and enter '''cd "%USERPROFILE%\My Documents\diva-r18611\"'', followed by "Configure.exe".
 +
After issuing the command, you can set your sim's domain name, and carefully answer the program's questions, then start the program as instructed in above paragraphs.
  
1.  In the bin directory, copy Robust.ini.example to Robust.ini.  Robust.ini.example is configured to run all the services in a single ROBUST instance.
+
The program will install the optimum configuration for OpenSim, example: '''<nowiki>http://<your_IP>:9000</nowiki>''' and WiFi '''<nowiki>http:<your_IP>:9000/wifi</nowiki>'''
 +
In the standalone version, four regions will be set up. You can optionally add other regions later on, so make sure to use the same first name with the addition of a number
 +
(ex: "region 5", "region 6", "region 7", etc. otherwise you can't enter the region and you'd be placed in the nearest free location.
  
2. Configure Robust.ini to use a MySQL database. Only MySQL is supported for running grid services. In Robust.ini find the [DatabaseService] section and change the ConnectionString so that it connects to your database.
+
  If you wish to enter a different region name, make sure that the "distance" between the island created by the Wifi configuration program and the next,
 +
  will be at least 40 positions away from the first installed region)
 +
  (command console: create region Johnnyland RegionConfigure.ini)
  
3.  Start up Robust.exe.  If you don't see any errors (in red) on the console then you should be good to go.
+
= Running OpenSimulator in Grid mode =
 +
 
 +
Running OpenSimulator in grid mode is considerably more complicated than running a standalone instance. Instead of running everything in the same process, backend data services (asset, inventory, etc.) run in one or more separate processes, often on a different machine. This allows multiple OpenSim.exe simulator instances to use the same asset and inventory data.
 +
 
 +
== Step 1: Set up a ROBUST services instance ==
 +
 
 +
1. In the bin directory, copy Robust.ini.example to Robust.ini. The example file is configured to run all the services in a single ROBUST instance.
 +
 
 +
2. Configure the [[Database Settings]] in Robust.ini to use your MySQL database. Only MySQL is supported for running grid services.   
 +
 
 +
3. Start up Robust.exe.  
 +
 
 +
  mono Robust.exe (Linux, BSD, Mac OS X)
 +
 
 +
or
 +
 
 +
Robust.exe (Windows)
 +
 
 +
If you don't see any errors (in red) on the console then you can move on to the next step.
 +
 
 +
4. Every region must belong to an estate, and every estate must have an owner which is a valid user account in OpenSim's user account service. Create a user on the ROBUST command console with the following command.
 +
 
 +
create user
  
== Step 2: Configure an OpenSim.exe to use the ROBUST services == 
+
This will ask you for the user's name, password and an optional e-mail. Remember this name since you will need it when you start up the simulator for the first time.
  
In standalone mode, both bin/OpenSim.ini and bin/config-include/StandaloneCommon.ini needed to be configured.  The first file (OpenSim.ini) configures the region simulator itself.  The second file (StandaloneCommon.ini) configures the data services.  In standalone mode, all these are run in the same process on the same machine - hence it is common to use the same database for both region simulator data and the service data.
+
== Step 2: Configure an OpenSim.exe to use the ROBUST services ==
  
In grid mode, you still need to configure OpenSim.ini in order to control the region simulator (OpenSim.exe).  Chiefly, you still need a database in order to store local simulator data (size and shape of objects on the region, information about items in objects, etc.).
+
In grid mode, as in standalone mode, you need to configure [[Configuration/files/OpenSim/OpenSim.ini|OpenSim.ini]] which controls the 3D simulator itself.
  
However, since the services are now being run in a separate ROBUST instance, the region simulator has to be told to use connectors that communicate with remote services at known URLs.
+
However, instead of using and configuring the file config-include/StandaloneCommon.ini, a simulator connecting to a grid needs to use and configure the config-include/GridCommon.ini file, in order to connect to the ROBUST hosted remote data services rather than in-process local ones.
  
 
The steps for both these operations are as follows.
 
The steps for both these operations are as follows.
  
1. Copy bin/OpenSim.ini.example to OpenSim.ini
+
1. Copy bin/OpenSim.ini.example to [[Configuration/files/OpenSim/OpenSim.ini|OpenSim.ini]]
  
2. Find the "storage_plugin" settings under the [Startup] section and enter your database connection details.  As with standalone, you can run regions using local SQLite database or local MySQL databases.
+
2. Find the [Const] section near top of the file and set the parameters match the grid services ports, in case of a simple grid configuration
  
3.  Find the [Architecture] section in OpenSim.ini.  Make sure that the "Include-Grid" setting is the only one that is active (all the others need to be commented out with a semi-colon).
+
<source lang="ini">
 +
[Const]
 +
BaseHostname = "MyNiceGrid.org"
 +
PublicPort = "8002"
 +
PrivatePort = "8003"
 +
</source>
  
4. Go to bin/config-include and copy GridCommon.ini.example to GridCommon.ini.
+
3. Find the [Architecture] section at the very bottom of OpenSim.ini. Make sure that one of the following lines is uncommented:
  
5. Open GridCommon.ini in a text editor. You will see lots of URL entries, each of which have dummy defaults of http://myassetserver.com:8003, http://myinventoryserver.com:8003, etc.  You will need to change each of these to point towards the address of your ROBUST instance.  For instance, if you're running ROBUST on a machine with a local IP address of 192.168.1.2, you will need to change AssetServerURI to the setting
+
  Include-Architecture = "config-include/Grid.ini" (in OpenSimulator 0.7.1 and later)
  
AssetServerURI = "http://192.168.1.2:8003"
+
or
  
By default, the ROBUST services configured in Robust.ini will be listening on port 8003, so you don't need to change these numbers.
+
Include-Grid        = "config-include/Grid.ini" (in OpenSimulator 0.7.0.2 and earlier)
  
6.  Run OpenSim.exe.  If everything is set up correctly, when starting up OpenSim.exe you shouldn't see any errors.  You should also see the ROBUST console display log lines saying that the region has registered with the grid service.
+
The others should remain commented.
  
7. Login with a client.
+
3. Go to bin/config-include and copy GridCommon.ini.example to GridCommon.ini.
  
==Legacy instructions for configuring the grid services in OpenSim 0.6.9 ==
+
4. Open GridCommon.ini in a text editor. You will see lots of URL entries, each of which have defaults of ${Const|BaseURL}:${Const|PublicPort} or ${Const|BaseURL}:${Const|PrivatePort}, or, on older versions, just dummy urls like http://myinventoryserver.com:8003, etc. You may will need to change some of these to point towards the address of the respective grid service url. For instance, grid may run assets server on a machine with a  address of MyGridAssets.org:10002, you will need to change AssetServerURI to the setting
{|
+
| style="background:LavenderBlush; color:black" |
+
[[Image:Exclamation.png|left]]
+
NOTE: As of July 2009, the grid servers are in the process of being redesigned.
+
Some services are now run in a common 'ROBUST' (Basic Universal Server Technology) server shell
+
while others are still run as separate legacy servers.
+
  
<u>'''More Details on ROBUST are Here --&gt;'''</u>[[ROBUST|<u>'''ROBUST'''</u>]]<u>'''&nbsp;&lt;--&nbsp; including Conversion From UGAIM To UGRM (0.6.6 -> 0.6.7) and UGRM to URM (0.6.7 -> 0.6.8)'''</u>
+
AssetServerURI = "http://MyGridAssets.org:10002"
|}
+
  
{|
+
5. Run OpenSim.exe. If you're running OpenSim.exe for the first time you will get the same questions about setting up the region that occur on a first-run in standalone mode. Please see the standalone section for instructions on how to answer these, or read more information about the Regions.ini file on the [[Configuring Regions]] page.
| style="background:LavenderBlush; color:black" |
+
[[Image:Exclamation.png|left]]
+
NOTE: 0.7 is the first OpenSim release that fully migrates all services to the ROBUST server shell. More detailed instructions for this will follow soon, though for the simplest case (where all services are run in the same ROBUST instance), it should now just be a matter of starting up Robust.exe (previously called OpenSim.Server.exe prior to the 0.7 release).  OpenSim.Grid.UserServer.exe and MessageServer.exe are no longer necessary.  Of course, you will still need to configure your region simulators to talk to these services rather than the standalone ones.
+
  
Please also see the [[0.7_Release|0.7 release notes]] if you are migration from an earlier 0.6.x version of OpenSim.
+
If everything is set up correctly, when starting up OpenSim.exe you shouldn't see any errors. You should also see the ROBUST console display log lines saying that the region has registered with the grid service. For example,
|}
+
  
<br>
+
21:43:45 - [GRID SERVICE]: Region t1 (176cc95e-f693-4b02-8e08-af86e2372faa) registered successfully at 256000-256000
...
+
21:43:47 - [GRID SERVICE]: region t1 has 0 neighbours
  
Some services are now run in a common 'ROBUST' (Basic Universal Server Technology) server shell
+
== Network access for a grid installation ==
while others are still run as separate legacy servers.
+
In standalone mode, a viewer connecting to your installation needs to access
  
As of OpenSim 0.6.8, R.O.B.U.S.T. has connectors for the asset (A), grid (G) and inventory (I) functionality. The legacy servers are still required for user (U) and messaging (M) functionality. The steps below will get you up and running.  We'll assume that your current directory is bin/ within the OpenSim distribution.
+
# The login service over TCP and other configured public services (e.g. grid info, map).
 +
# The http_server_port of each configured simulator over TCP.
 +
# The InternalPort and ExternalHostName of each configured region.
  
<ol>
+
The last two requirements are the same as for standalone installations, except that they apply to each server that hosts a simulatorPlease see the standalone section above for more details.
<li>'''Configure the user server'''</li>
+
<ul>
+
<li>Start OpenSim.Grid.UserServer.exe</li>
+
<li>You will be asked a number of configuration questions. If the grid servers are all on one machine, most defaults are safe to useThe configuration is stored in the UserServer_Config.xml file which can be changed afterwards if necessary.</li>
+
<li>The user server will then load and display its prompt:</li>
+
User#
+
</ul>
+
  
<li>'''Configure R.O.B.U.S.T.'''</li>
+
The login service is a little differentWhereas in standalone this uses the same http_server_port as the simulator itself, in grid mode it's running in a separate ROBUST service.
<ul>
+
<li>Copy OpenSim.Server.ini.example to OpenSim.Server.iniDon't forget to change ConnectionString for your database settings.  (on version 0.6.6 copy OpenSim.Services.ini.example to OpenSim.Services.ini - then use OpenSim.Services instead OpenSim.Server)
+
</li>
+
Linux
+
bin$ cp OpenSim.Server.ini.example OpenSim.Server.ini
+
Windows
+
C:\OpenSim\bin> copy OpenSim.Server.ini.example OpenSim.Server.ini
+
<li>Start OpenSim.Server.exe</li>
+
<li>The server will start up it's asset, inventory and grid components and display the R.O.B.U.S.T prompt:</li>
+
R.O.B.U.S.T.#
+
<li>For more information on the R.O.B.U.S.T. configuration file and more information if you are migrating from an earlier release of OpenSim, refer to [[R.O.B.U.S.T.]]</li>
+
</ul>
+
  
<li>'''Configure the messaging server'''</li>
+
The default port for the login service is 8002. You can see this used in the [ServiceList] section of Robust.ini.example.
<ul>
+
<li>Start OpenSim.Grid.MessagingServer.exe</li>
+
<li>Answer the configuration questions. Again, if all servers are run on the same machine, it's safe to press enter for all questions. The configuration is stored in MessagingServer_Config.xml.</li>
+
<li>The server will start and present you with its prompt:</li>
+
Messaging#
+
</ul>
+
  
</ol>  
+
<source lang="ini">
 +
[ServiceList]
 +
AssetServiceConnector = "8003/OpenSim.Server.Handlers.dll:AssetServiceConnector"
 +
InventoryInConnector = "8003/OpenSim.Server.Handlers.dll:XInventoryInConnector"
 +
GridServiceConnector = "8003/OpenSim.Server.Handlers.dll:GridServiceConnector"
 +
GridInfoServerInConnector = "8002/OpenSim.Server.Handlers.dll:GridInfoServerInConnector"
 +
AuthenticationServiceConnector = "8003/OpenSim.Server.Handlers.dll:AuthenticationServiceConnector"
 +
OpenIdServerConnector = "8002/OpenSim.Server.Handlers.dll:OpenIdServerConnector"
 +
AvatarServiceConnector = "8003/OpenSim.Server.Handlers.dll:AvatarServiceConnector"
 +
LLLoginServiceInConnector = "8002/OpenSim.Server.Handlers.dll:LLLoginServiceInConnector"
 +
PresenceServiceConnector = "8003/OpenSim.Server.Handlers.dll:PresenceServiceConnector"
 +
UserAccountServiceConnector = "8003/OpenSim.Server.Handlers.dll:UserAccountServiceConnector"
 +
GridUserServiceConnector = "8003/OpenSim.Server.Handlers.dll:GridUserServiceConnector"
 +
FriendsServiceConnector = "8003/OpenSim.Server.Handlers.dll:FriendsServiceConnector"
 +
MapAddServiceConnector = "8003/OpenSim.Server.Handlers.dll:MapAddServiceConnector"
 +
MapGetServiceConnector = "8002/OpenSim.Server.Handlers.dll:MapGetServiceConnector"
 +
</source>
  
For information on running the legacy servers, particularly if you're using an older version of before 0.6.7 that doesn't contain the ROBUST framework, see [[LegacyServers]]
+
Here all the public services (those where the viewer connects directly to the service) are served on port 8002, with internal services on 8003. So you need to make sure that the viewer can access port 8002 over TCP but you do not want to expose port 8003.  Only simulators need to be able to connect to port 8003.
  
=== Summary of commands for running grid service executables ===
+
== Connecting to a grid installation ==
  
'''<u>Windows</u>'''
+
Your client startup line will look something like
cd bin
+
OpenSim.Grid.UserServer.exe
+
OpenSim.Server.exe
+
OpenSim.Grid.MessagingServer.exe
+
  
'''<u>Linux / Mac OS X</u>'''
+
-loginuri http://mygrid.com:8002
cd bin
+
mono OpenSim.Grid.UserServer.exe
+
mono OpenSim.Server.exe
+
mono OpenSim.Grid.MessagingServer.exe
+
  
==Configuring regions==
+
The loginuri needs to be the address to the login service. In standalone mode, this was the same address as the region simulator and the port was 9000 by default. However, in grid mode it will be the address to login service hosted on the ROBUST instance. In this case, the address will be 192.168.1.2. The port number of 8002 is the traditional one for the grid login service and is the default in Robust.ini.example.
  
When first run, a new OpenSim installation will ask you a series of questions to set up one region.  If you want to change these settings or set up multiple regions, please see [[Configuring_Regions]]
+
If the login is successful, you will see log lines on the ROBUST console (for the login itself) and then log lines on the region simulator console (as the login process tells the simulator to expect the avatar, tells the viewer the address of the region simulator and then when the viewer starts talking to the simulator directly).
  
==Configuring and Starting the region simulator==
+
= Running multiple ROBUST service instances =
<ol>
+
<b>WARNING:<br>
<li>Find the [Architecture] section, comment out the line that says</li>
+
This is a tricky issue and contrary to past allegations, opensim is not well prepared for this kind of microservices concepts.<br>
Include-Standalone    = "config-include/Standalone.ini"
+
You can split some services by different machines, if they have no interdependencies. For example current XBakes can run anywhere<br>
and uncomment the line saying
+
Running several instances of same service is a invite to fail.<br>
Include-Grid        = "config-include/Grid.ini
+
Some services do assume they are the only instance, like current PresenceService, GriduserService, etc, and
 +
even do own caching to reduce load on the database engine, and that cache cannot be syncronized across instances<br>
 +
Most will only service http in paralell, placing the same, and most of the load, on the same database engine. So unless that database service is a distributed system, doing proper local caching and synchronization with a master database, the gains of having multiple instances is not that large, if any if if not a total fail<br>
  
<li>save OpenSim.ini, and go into the config-include directory.</li>
+
Another important thing to note is that currently several services need to read data  from the configuration of other services. For example Gridservice needs to read data from its section, GridService, and sections LoginService, Hypergrid and GridInfoService. So the ini file for the robust instance running it needs to have those sections, and of course updated.  
<li>copy the following files</li>
+
</b><br>
GridCommon.ini.example to GridCommon.ini
+
CenomeCache.ini.example to CenomeCache.ini
+
FlotsamCache.ini.example to FlotsamCache.ini
+
  
<li>Open all these files (Grid.ini, GridCommon.ini, CenomeCache.ini and FlotsamCache.ini) and edit to suit your needs</li>
 
  
<li>You should now be ready to start up your sim. The mode that OpenSim.exe starts in is normally controlled by a setting in your OpenSim.ini.  It defaults to standalone mode if that setting is not specified or the file is not foundIf you wish, you can force opensim to start in gridmode on the command line as follows:</li>
+
If you are operating a grid, then you can run different services (e.g. asset, inventory) in different ROBUST instances, in order to spread the loadTo do this, you will need to edit the ServiceConnectors parameter in the [Startup] section of Robust.ini (or [[Configuration/files/Robust/Robust.HG.ini|Robust.HG.ini]] if you're running Hypergrid)The default ServiceConnectors parameter looks something like this
OpenSim.exe -gridmode=true
+
or if using the ODE physics plugin under 64 bit Windows
+
OpenSim.32BitLaunch.exe
+
or:
+
mono OpenSim.exe -gridmode=true
+
if you're using Mono under Linux or Mac OSX.   
+
  
With any luck, everything will come up without fatal errors.
+
<source lang="ini">
 +
[ServiceList]
 +
AssetServiceConnector = "8003/OpenSim.Server.Handlers.dll:AssetServiceConnector"
 +
InventoryInConnector = "8003/OpenSim.Server.Handlers.dll:XInventoryInConnector"
 +
GridServiceConnector = "8003/OpenSim.Server.Handlers.dll:GridServiceConnector"
 +
GridInfoServerInConnector = "8002/OpenSim.Server.Handlers.dll:GridInfoServerInConnector"
 +
AuthenticationServiceConnector = "8003/OpenSim.Server.Handlers.dll:AuthenticationServiceConnector"
 +
OpenIdServerConnector = "8002/OpenSim.Server.Handlers.dll:OpenIdServerConnector"
 +
AvatarServiceConnector = "8003/OpenSim.Server.Handlers.dll:AvatarServiceConnector"
 +
LLLoginServiceInConnector = "8002/OpenSim.Server.Handlers.dll:LLLoginServiceInConnector"
 +
PresenceServiceConnector = "8003/OpenSim.Server.Handlers.dll:PresenceServiceConnector"
 +
UserAccountServiceConnector = "8003/OpenSim.Server.Handlers.dll:UserAccountServiceConnector"
 +
GridUserServiceConnector = "8003/OpenSim.Server.Handlers.dll:GridUserServiceConnector"
 +
FriendsServiceConnector = "8003/OpenSim.Server.Handlers.dll:FriendsServiceConnector"
 +
MapAddServiceConnector = "8003/OpenSim.Server.Handlers.dll:MapAddServiceConnector"
 +
MapGetServiceConnector = "8002/OpenSim.Server.Handlers.dll:MapGetServiceConnector"
 +
</source>
  
If you have problems using the OpenDynamicsEngine on *nix, try setting your stack reserve level higher than the default with the following command;
+
Each entry has the form
<tt>ulimit -s 262144</tt> Or, run the opensim-ode.sh to start up OpenSimulator.
+
  
<li>Go to the UserServer console, and type 'create user' to create a new avatar. It will prompt you for the name and password, and the X and Y of the sim that should be his home location. Use 1000 and 1000, or wherever you told your sim to live when you brought it up in standalone mode. At the console of any of these servers, you should be able to type 'help' to get a list of commands.</li>
+
<port-number>/<dll>:<connector-class-name>
  
<li>You should now be able to connect to your new grid with your secondlife client. You need to tell your client to point at the UserServer rather than directly at the sim, though:</li>
+
For instance, the first entry above
secondlife -loginuri http://127.0.0.1:8002/
+
8002 is the default port for the UserServer, and that IP address should be changed to the server you are running the UserServer on, if they are not all on the same box.  Happy OpenSimming!<br>
+
''Note: if you are using Windows Vista, remember to start servers as Admin. If not it will prompt you an error in console like "Error - Access denied"''
+
</ol>
+
  
==Attaching your sim to someone else's grid==
+
8003/OpenSim.Server.Handlers.dll:AssetServiceConnector
To set up the region server (i.e., <tt>OpenSim.exe</tt>) to connect to an external grid, you should edit the <tt>OpenSim.ini</tt> file in the <tt>bin</tt> directory. In that file, there is a <tt>[Network]</tt> section with URLs for the grid, user, and asset servers, as well as send and receive keys (for a basic level of security).  The addresses and send/receive keys will vary depending on the grid you are connecting to, and the grid operator should tell you what values to use.
+
  
The other file you may have to change is in your <tt>bin/Regions</tt> directory. This is where your individual region config files are. If you only have one region, it will by default be called <tt>Regions.ini</tt> in OpenSim 0.6.7 and later and <tt>regions.xml</tt> in OpenSim 0.6.6 and earlier.
+
says to start an AssetServiceConnector (and hence an asset service) from the OpenSim.Server.Handlers.dll and to server that from port 8003.
  
This can be edited with any text editor. The grid owner may tell you what X and Y location you can place your sim at (you can't have multiple sims at the same location on the grid). If so, the fields you will need to change in this file are <tt>sim_location_x</tt> and <tt>sim_location_y</tt>.  And the <tt>external_host_name</tt> should be set to the hostname or IP address of your simulation server (i.e., the machine that is running <tt>OpenSim.exe</tt>).
+
By default, Robust.exe loads a configuration file with the same name but with .ini appended instead of .exe.  So Robust.exe will look for an inifile called Robust.ini.  You can change this by giving the parameter on the commandline. For instance, to start Robust with HG parameters, one would use
A list of public grids that you can attach your sim to is at [[OpenSim: Grids]]
+
  
=Further notes=
+
Robust.exe -inifile=Robust.HG.ini
  
==Running OpenSim 0.6.7 and onwards in 64 bit Windows==
+
So if you wanted to run every connector apart from assets in one instance of ROBUST and the asset connector in another instance, you would have two ini filesOne could remain Robust.ini and have
[[Image:Exclamation.png|left]]
+
As of OpenSim 0.6.7, the default physics engine for OpenSim was changed to the ODE engine.  This is because ODE is by far the most advanced physics engine plugin currently in OpenSimUnfortunately, it has the drawback in that it's library is not compilable under 64bit in Windows. Therefore, 64 bit Windows users may need to run
+
  
OpenSim.32BitLaunch.exe
+
<source lang="ini">
 +
[ServiceList]
 +
InventoryInConnector = "8003/OpenSim.Server.Handlers.dll:XInventoryInConnector"
 +
GridServiceConnector = "8003/OpenSim.Server.Handlers.dll:GridServiceConnector"
 +
GridInfoServerInConnector = "8002/OpenSim.Server.Handlers.dll:GridInfoServerInConnector"
 +
AuthenticationServiceConnector = "8003/OpenSim.Server.Handlers.dll:AuthenticationServiceConnector"
 +
OpenIdServerConnector = "8002/OpenSim.Server.Handlers.dll:OpenIdServerConnector"
 +
AvatarServiceConnector = "8003/OpenSim.Server.Handlers.dll:AvatarServiceConnector"
 +
LLLoginServiceInConnector = "8002/OpenSim.Server.Handlers.dll:LLLoginServiceInConnector"
 +
PresenceServiceConnector = "8003/OpenSim.Server.Handlers.dll:PresenceServiceConnector"
 +
UserAccountServiceConnector = "8003/OpenSim.Server.Handlers.dll:UserAccountServiceConnector"
 +
GridUserServiceConnector = "8003/OpenSim.Server.Handlers.dll:GridUserServiceConnector"
 +
FriendsServiceConnector = "8003/OpenSim.Server.Handlers.dll:FriendsServiceConnector"
 +
MapAddServiceConnector = "8003/OpenSim.Server.Handlers.dll:MapAddServiceConnector"
 +
MapGetServiceConnector = "8002/OpenSim.Server.Handlers.dll:MapGetServiceConnector"
 +
</source>
  
instead of
+
The other could be called Robust.Assets.ini and have
  
  OpenSim.exe
+
<source lang="ini">
 +
[ServiceList]
 +
AssetServiceConnector = "8004/OpenSim.Server.Handlers.dll:AssetServiceConnector"
 +
</source>
 +
 
 +
Note that this is using port 8004 instead of port 8003. This is necessary since only one executable can use each port at a time.  You will need to make sure your simulator configuration files use port 8004 for the asset service as well.
 +
 
 +
You will also need to change the default network port to 8004 for this second copy of Robust.exe
 +
 
 +
<pre>
 +
[Network]
 +
  port = 8004
 +
</pre>
 +
 
 +
Once you've created the two ROBUST configuration files (Robust.ini containing all services apart from asset and Robust.Assets.ini containing only the asset service), then you could start the first Robust.exe as usual.
 +
 
 +
Robust.exe
 +
 
 +
This will load Robust.ini, as we haven't specified a Robust.ini.  Also, the logfile it will use will be Robust.log as we haven't manually specified one.
 +
 
 +
The second ROBUST instance we would start with
 +
 
 +
Robust.exe -inifile=Robust.Assets.ini -logfile=Robust.Assets.log
 +
 
 +
The -inifile switch tells the second Robust instance to load it's configuration from Robust.Assets.ini rather than Robust.ini.  The -logfile switch tells Robust.exe to use Robust.Assets.log as its logfile rather than the default Robust.log.  If you don't specify this switch then you may see errors on the console about a locked log file.
 +
 
 +
At this point you should have two running Robust.exe instances.
 +
 
 +
If you put the ROBUST instances on different machines then don't forget to change the relevant service URIs in each simulator to match.
 +
 
 +
Since OpenSimulator services are stateless (e.g. every request is unconnected with other requests as long as they affect the same persistent data where necessary), you can also load balance by starting more than one ROBUST instance with a copy of the same service (e.g. multiple asset services using the same database).  Requests would be round-robined between the service copies using an HTTP reverse proxy implementation (e.g. nginx).  See [[Performance#Services]] for more details.
 +
 
 +
== Notes ==
 +
[http://opensimulator.org/pipermail/opensim-users/2012-October/011099.html Useful discussion about separating Robust instances]
 +
 
 +
= Attaching your sim to someone else's grid =
 +
* Make sure you understand, agree and will enforce that grid Terms of Service
 +
* Follow the instructions of that grid owner!
 +
 
 +
To set up the region server (i.e., <tt>OpenSim.exe</tt>) to connect to an external grid, follow the [[Configuration#Step 2: Configure an OpenSim.exe to use the ROBUST services]] instructions above.
 +
 
 +
The grid will have already provided with the required services. In step 2 you will need to use the provided URLs for their services.
 +
 
 +
In your bin/Regions.ini file (or other region config file) you will also need to set the grid co-ordinates to your regions provided from the grid operator. See [[Configuring Regions]] for more information.
 +
 
 +
= Running an OpenSimulator standalone or grid installation with Hypergrid enabled =
 +
[[Hypergrid]] is an emerging architecture supported by OpenSimulator that allows a user with an account on one standalone or grid to visit other Hypergrid-enabled standalones or grids, and for users from those grids to visit the home grid. This does not require the two installations to share a central set of data services (assets, inventory, etc.). Please see [[Installing and Running Hypergrid]] for more details.
 +
 
 +
= Further notes =
 +
 
 +
== Troubleshooting ==
 +
 
 +
See [[Troubleshooting]]
 +
 
 +
== Running OpenSimulator in 32 bit in Windows 64bit==
 +
 
 +
<b>This is no longer possible since version 0.9.3.0 because the newer versions of dotnet do not support 32Bit on windows.</b>
 +
 
 +
 
 +
Windows 64Bit can run several instances of OpenSim in 32Bit mode, allowing each to use up to about 2GB of total physical ram.
 +
 
 +
This is almost the total memory available on 32Bit versions of Windows, for all the programs (around 3GB)
 +
 
 +
In 32Bit mode, the simulator uses less memory and may be a bit faster, so unless you have regions with a lot of content, you can run it in 32Bit mode, just run:
 +
 
 +
OpenSim32.exe instead of OpenSim.exe
 +
 
 +
You can also run Robust in 32Bit mode:
 +
 
 +
Robust32.exe in place of Robust.exe
 +
 
 +
 
 +
Linux 64Bit only runs the simulator in 64Bit mode
 +
 
 +
== Increasing the stack reserve level when using OpenDynamicsEngine (old ODE and ubODE) on Linux or other Unix variants ==
 +
 
 +
Increase your stack reserve level with the following command;
 +
<tt>ulimit -s 262144</tt> Or, run the opensim.sh to start up OpenSimulator.
 +
 
 +
== dotnet runtime configuration (version 0.9.3.0 and above) ==
 +
 
 +
Files Robust.runtimeconfig.json,  OpenSim.runtimeconfig.json and other *.runtimeconfig.json on folder bin/ define several settings the the dotnet runtime will use for the respective application.<br>
 +
You should not change those files, unless you do understand the impact of such changes.<br>
 +
<b>Note that changes to this files maybe lost on compile!</b><br>
 +
 
 +
one case you should review is the line
 +
    "System.GC.HighMemoryPercent": 50,
 +
 
 +
dotnet runtime assumes that a application runs alone on the machine, so it can use all its memory. Even in workstation mode ( server is a lot worse), GC will only try really harder to release memory if it is using more than 90% of total machine physical memory, on that application alone.
 +
 
 +
The line above changes that to 50%.
 +
On regions with moderate size of content, specially if running several, you may want to reduce it even more, for example:
  
To launch their region simulator.
+
    "System.GC.HighMemoryPercent": 5,
  
An alternative is to use the basicphysics engine instead or one of the other alternative physics engines bundled with OpenSim, though all these are far less functional than the ODE plugin.
+
will change it to try to free memory harder above 5% of total memory use, i.e. at approximately 1.6GB  on a 32GB machine, etc.<br>
 +
the value should be between 1 and 90 (dotnet default). If the line is removed the dotnet default is used<br>
 +
If you set the value too low, the CPU load (and so lag) will increase.<br>
  
==Note About Mono==
 
If you're using mono, you should increase the value of the mono environment variable MONO_THREADS_PER_CPU from its default of 5 to some number that works for your sim. The exact number depends on many factors including: the number of CPUs in your machine, what else you use that machine for, how many regions you have in your sim, how many of them are adjacent, how many scripts you have, and how many avatars you expect to serve at the same time. As a reference, Wright Plaza in OSGrid, which is running as a single region on a sim and routinely hosts meetings with 20 avatars, uses the value 125.
 
  
If this number is too low, the operation of your sim will start to break in all sorts of different ways. A common symptom is the freezing of all activity upon login of a new avatar. Other symptoms are a lot more subtle.
+
Region and robust console command "show stats" now lists this threshold as GCHMthreshold
  
For example: $ export MONO_THREADS_PER_CPU=125
+
== Firewalls ==
 +
Some operation systems or distributions run their own firewall by default. If you can't access to OpenSimulator from remote client, you'll need to check their settings. See [[Firewall Settings]] for details.
  
 
== Legacy Configuration Information ==
 
== Legacy Configuration Information ==
Line 291: Line 462:
  
  
== Additional Configuration Tasks (for advanced users) ==
+
== Additional Optional Configuration Tasks ==
  
===OpenSim.exe command line options===
+
=== Further configure OpenSimulator ===
OpenSim.exe has command line options which allow you to perform actions such as reading configuratio nfiles from a different directory. See [[OpenSim.exe Command Line Options]] for more details.
+
If you've looked through OpenSim.ini.example or any other of the config files, you'll see that there's a very large number of configurable parameters spread across multiple files. See [[Configuring Simulator Parameters]] for more details about the configuration infrastructure and how settings in identically named sections (e.g. [XEngine]) are merged by OpenSimulator on loading.
  
===Script engine===
+
=== Set up a second region to run on the same simulator ===
OpenSim supports multiple script engines. See [[ScriptEngines]] for details.  If you don't know what this means then the default script engine will be fine.
+
See [[Configuring Regions]].
  
===Permissions Configuration===
+
=== Run Multiple Standalone Instances of OpenSimulator on the Same Server ===
OpenSim has a quite elaborate set of permissions. See [[OpenSim:Permissions(Server)]] for details. By default, permissions are not active on region simulators.
+
For each subsequent instance of OpenSim, change the 'http_listener_port' in [[Configuration/files/OpenSim/OpenSim.ini|OpenSim.ini]] to the value excluding 9000, and 'InternalPort' in Regions.ini to the value excluding 9000. Also, make sure your regions are using different ports, as explained in [[Configuring Regions]].
 +
 
 +
=== Load region content ===
 +
You can load content onto regions by using the [[OpenSim Archives|load oar command]]. To load individual OAR files into each region, use the 'change region [regionname]' command and then 'load oar [oar-location]'.
 +
 
 +
=== OpenSim.exe command line options ===
 +
OpenSim.exe has command line options which allow you to perform actions such as reading configuration files from a different directory. See [[OpenSim.exe Command Line Options]] for more details.
 +
 
 +
=== Script engine ===
 +
OpenSimulator supports multiple script engines. See [[ScriptEngines]] for details. If you don't know what this means then the default script engine will be fine. In fact, recent versions of OpenSimulator only ship with one script engine, the XEngine.
 +
 
 +
=== Permissions Configuration ===
 +
OpenSimulator has a quite elaborate set of permissions. See [[Permissions (Server)]] for details. By default, permissions are active on region simulators.
  
 
=== Logging ===
 
=== Logging ===
By default, OpenSim logs information to a file called OpenSim.log in the bin directory. See [[Logging]] for details on how to further configure this if required.
+
By default, OpenSimulator logs information to a file called OpenSim.log in the bin directory. See [[Logging]] for details on how to further configure this if required.
  
=== Configuration of region modules ===
+
=== FSAsset Service ===
 +
By default the OpenSimulator asset service will store assets in the robust database. If you expect your asset data to grow larger than 50Gb you should consider changing to the [[FSAssets Service]]. (FSAssets is a new service and is currently only available in the latest development branch)
 +
 
 +
=== Set up other optional modules ===
 
* [[IRCBridgeModule]]
 
* [[IRCBridgeModule]]
* [[Freeswitch_Module]]
+
* [[Freeswitch Module]]
 
* [[Offline Messaging]]
 
* [[Offline Messaging]]
 +
* [[Enabling Groups]]
 +
* See also [[User_Documentation#Setup]]
  
=== Configuration of Metaverse Exchange Protocol (MXP) ===
+
=== Configuration of Web Server and Pages ===
* [[Metaverse Exchange Protocol]]
+
OpenSimulator contains a web server that can serve up a variety of pages. Some which come from external files and some are generated internally.
 
+
=== Configuration of Web Server and Pages===
+
OpenSim contains a web server that can serve up a variety of pages. Some which come from external files and some are generated internally.
+
 
* [[External Files]]
 
* [[External Files]]
 
* [[Internally Generated]]
 
* [[Internally Generated]]
 +
 +
= Where to go from here =
 +
 +
* [[NAT Loopback Routers]] Router and Nat Loopback Information
 +
 +
* [[Upgrading]] from an old OpenSimulator version to a newer one.
 +
 +
* [[Configuring_Simulator_Parameters]] cascading configuration structure, environment variables
 +
 +
* [[Server Commands]] for creating users and controlling the system.
 +
 +
= References =
 +
 +
* [http://dist.opensimulator.org/wiki/opensim-standalone.odg OpenOffice draw file for OpenSimulator standalone diagram]
 +
* [http://dist.opensimulator.org/wiki/opensim-grid-simple.odg OpenOffice draw file for OpenSimulator grid diagram]
  
 
[[Category:Configuration]]
 
[[Category:Configuration]]

Latest revision as of 15:01, 4 April 2024


Contents

[edit] OpenSimulator simulator configuration file

The region simulator configuration is managed using a file called OpenSim.ini. This file is used regardless of whether the sim is running in standalone or grid mode. This file references some additional configuration information from the config-include/ directory. Information about the various settings is contained in the OpenSim.ini file itself (or OpenSim.ini.example for reference).

Please note, that the name OpenSim.ini can be changed via command line arguments.

It is also possible to distribute the inifile settings over two files. This is useful if you want to run several OpenSimulator processes where most of your settings are identical except for a few. The master file is read first, then the inifile is read. Settings given in the inifile overrule settings given in the master file. The master file has the same format and the same keywords as the inifile, so the same documentation applies.

[edit] Database

Opensimulator supports the following database engines. Information about setting these up can be found in the OpenSim.ini.example file and the other various example files in bin/config-include. If you do not want to use the default SQLite configuration then you will need to setup your database before proceeding further. SQLite does not require further configuration. See Database Settings for the detailed settings.

  • SQLite (default) - a lightweight database that comes bundled with OpenSimulator and can be used without requiring any extra configuration. It is mostly intended to get you up and running quickly, not for production use. It is significantly slower than MySQL. A few features here (such as attachment persistence) have not yet been fully implemented.
  • MySQL (fully supported) - This is the recommended database for any use beyond experimentation or small standalone applications. The minimum MySQL version is 5.1.
  • MariaDB (fully supported) - A compatible alternative to MySQL. You need to make sure the selected charset is utf8mb3 (ie 3 bytes). Some instalations default to uft8mb4 (4 bytes) and that will fail
  • MSSQL (fairly supported) - persistence support for some recent OpenSimulator features may not yet be implemented though the vast majority of them are supported.

[edit] Standalone vs. Grid

We recommend that you first get OpenSimulator running in standalone mode before you attempt to connect it to a grid or run your own grid. OpenSimulator will start up in standalone mode out-of-the-box on the binary distributions.

An OpenSimulator configuration consists of regions (run by region simulators) and backend data services (such as user, assets and inventory management).

A system running in standalone mode runs both the region simulator and all the data services in a single process when you run OpenSim.exe. In this mode you can run as many regions as you like but only on a single machine.

OpenSimulator running in standalone mode. Both simulator and services run in the same process (OpenSim.exe).

In grid mode, the data services are not part of the region server process. Instead, they are run in a separate executable called Robust.exe. A Robust shell can run all the services or they can be split amongst any number of Robust instances. This allows them to be run on entirely separate machines if necessary. In this mode, the OpenSim.exe acts solely as the region server, serving one or more regions that communicate with the separate data services. At this point you can run multiple OpenSim.exe region simulators on different machines.

OpenSimulator running in grid mode. In this case, all the services are being run within a Robust.exe process. Multiple copies of OpenSim.exe (usually running on different machines) all use the same set of common services.

Running in grid mode is more complicated than running in standalone mode. It requires an understanding of UUID, X,Y location, server handshake passwords, estates and estate owners, and a couple of other settings. These require more care and patience to set up. We strongly recommend that you don't attempt this unless you are extremely patient and very technically proficient.

[edit] Running OpenSimulator in Standalone mode

Binary distributions of OpenSimulator are by default configured to run in standalone mode. For versions up to 0.9.2.1 you need also to edit bin/OpenSim.ini to change PublicPort = 8002 to PublicPort = 9000.

However, if you build OpenSimulator from the source distribution or from the git repository then you will need to:

  1. Change into the bin folder
  2. Copy the file OpenSim.ini.example to OpenSim.ini. This configures the 3D simulator itself.
  3. Check the [Const] section PublicPort. It should be set to 9000 by default for a standalone.
  4. In the [Architecture] section of OpenSim.ini, near the bottom of the file, uncomment the Standalone.ini line. To uncomment a line of code, remove the semi-colon (;) comment symbol preceding the line.
  5. Change into the bin/config-include folder
  6. Copy the file StandaloneCommon.ini.example to StandaloneCommon.ini. This configures the in-process data services used by the standalone configuration.
  7. Copy the file FlotsamCache.ini.example to FlotsamCache.ini. This configures the cache services used by the standalone configuration.

Running OpenSimulator is then a matter of launching OpenSim.exe. However, you need to have installed all dependencies before that. See Dependencies for details. After that, open a command prompt (for Windows users, Start menu > Run > cmd) and navigate to the Opensim /bin directory.

Under Windows, run:

OpenSim.exe

On Linux run:

mono OpenSim.exe

[edit] Running for the first time

If you're running OpenSimulator for the first time, it will ask you several questions at the console that will set up a single region for you. The configuration options you enter will be written to the bin/Regions/Regions.ini file, which you can then edit at a later date if you need to make changes.

Many of the questions have defaults. Here are some explanations of the questions asked:

  • New region name
The name for your region. Don't leave this blank!
  • Region UUID
The unique ID of your region. In pretty much all cases you will want to accept the randomly generated default in the square brackets. The only time when you wouldn't is if you were trying to set up a configuration to point to pre-existing region data. But in this case you are probably better off editing the Regions.ini file directly anyway
  • Region Location
This is the location of the region on the grid. In standalone mode you can safely leave these as the default (1000,1000). If you were to set up additional regions later on in Regions.ini then they would need different grid co-ordinates (e.g. 1000,1001). OpenSimulator regions can be placed anywhere on a 65536 by 65536 grid, but Hypergrid enabled regions may need special consideration for region location. See Installing and Running Hypergrid#The 4096 Regions Limit for more information.
  • Internal IP address
In virtually all cases this can be left as 0.0.0.0 (this is a wildcard that allows OpenSimulator to listen for UDP connections on any of the server's network interfaces). If you want to restrict UDP connections to only one network interface then you can specify an explicit IP address. This address is only used internally - the External host name is the one that is actually passed to the viewer (and hence is the important one).
  • Internal port
This is the IP port for all incoming client connections. The name is a bit misleading since it will be used externally (by a Second Life viewer, for instance) as well as internally. You can make this any port you want, but it is safe to leave at the default 9000. Each region on your server must have a unique port.
  • Allow alternate ports
This is currently experimental. Please leave it at the default of False.
  • External host name
If you leave this at the default 'SYSTEMIP' then this will become the LAN network address of the machine (e.g. 192.168.1.2). This is fine if you are connecting only from within your LAN. If you want to connect to it from a client on the internet, this should be the External IP Address of your router. Fully Qualified Domain Names (FQDNs) can also be used though they will be converted to a numeric IP address before being sent to the viewer.

OpenSimulator will ask you to assign each region to an estate during the setup process. If an estate needs to be created then it will also ask you to assign an estate manager. In standalone mode, an estate manager can also be created during the setup process.

Don't forget the account details you use to set up the master avatar (in 0.6.9) or the estate manager (in 0.7 and later). Only this user will initially be able to configure the in-world settings for your region. This is also a user account that you can use to perform your initial login test.

See Configuring Regions for more information about the Regions.ini file that these questions generate.

If you want to create a user other than the estate manager, then in the server console type:

create user

This will ask you a series of questions for creating a user (such as first name, last name and password).

[edit] Network access for the standalone installation

In standalone mode, a viewer connecting to your installation needs the following network access to your installation machine.

1. TCP over the http_listener_port as used in your simulator. This is set in the [Network] section of your OpenSim.ini.

[Network]
http_listener_port = 9000

This will be the default of 9000 if you have not explicitly changed it.

Set PublicPort to same port in section [Const]

[Const]
PublicPort = 9000

2. UDP over each region's InternalPort as configured in your region files (such as Regions.ini). For instance, if you have configured

[test]
RegionUUID = dd5b77f8-bf88-45ac-aace-35bd76426c81
Location = 1000,1000
SizeX = 256
SizeY = 256
SizeZ = 256
InternalAddress = 0.0.0.0
InternalPort = 9000
AllowAlternatePorts = False
ExternalHostName = mygrid.com
 
[test2]
RegionUUID = dd5b77f8-bf88-45ac-aace-35bd76426c82
Location = 1000,1001
SizeX = 256
SizeY = 256
SizeZ = 256
InternalAddress = 0.0.0.0
InternalPort = 9001
AllowAlternatePorts = False
ExternalHostName = mygrid.com

then you will need to open ports 9000 and 9001 to UDP traffic.

3. The network address of the machine hosting the OpenSimulator installation must be accessible to connecting viewers. In the example above, the installation machine is reachable from the Internet via the domain name "mygrid.com". If the same installation needs to be accessed by viewers on the same network, it must be possible for them to also successfully resolve that domain name (not all routers, especially home routers, have this "loopback capability").

If the installation only needed to be accessed on the same LAN, then one could you the local IP address of the server (e.g. 192.168.1.2).

[edit] Connecting to a standalone installation

To connect to your new sim with your user, start up a viewer with the following command line switches:

Client on same machine as OpenSim:

-loginuri http://127.0.0.1:9000

Client on same LAN as OpenSim:

-loginuri http://lan_ip:9000

Client on different machine or internet:

-loginuri http://external_ip:9000

Then enter the user name and password you set up in the previous step and your new user should login.

Be aware of loopback problems when Running viewer & server(s) on the same machine (LAN) by using the "external" configuration. (You might notice endless waiting for region handshake.) See also troubleshoot hints. If you're having Connectivity problems, be sure to read the Network Configuration Page. This is important if you see Region handshake issue.

Exclamation.png

[edit] IMPORTANT NOTE, DIVA DISTRO - 4 Apr. 2012 -

If you download the latest version of diva-r18611.tar.bz, it is necessary to first launch the setup program configure.exe

  • In Linux or MacOSX : open a terminal and enter "mono /diva-r18611/bin/Configure.exe" (assuming that you have placed the Diva distro in /diva-r18611)
  • In Windows, assuming they extracted Diva in My Documents, one would open "Run => cmd" and enter 'cd "%USERPROFILE%\My Documents\diva-r18611\", followed by "Configure.exe".

After issuing the command, you can set your sim's domain name, and carefully answer the program's questions, then start the program as instructed in above paragraphs.

The program will install the optimum configuration for OpenSim, example: http://<your_IP>:9000 and WiFi http:<your_IP>:9000/wifi In the standalone version, four regions will be set up. You can optionally add other regions later on, so make sure to use the same first name with the addition of a number (ex: "region 5", "region 6", "region 7", etc. otherwise you can't enter the region and you'd be placed in the nearest free location.

If you wish to enter a different region name, make sure that the "distance" between the island created by the Wifi configuration program and the next, 
will be at least 40 positions away from the first installed region)
(command console: create region Johnnyland RegionConfigure.ini)

[edit] Running OpenSimulator in Grid mode

Running OpenSimulator in grid mode is considerably more complicated than running a standalone instance. Instead of running everything in the same process, backend data services (asset, inventory, etc.) run in one or more separate processes, often on a different machine. This allows multiple OpenSim.exe simulator instances to use the same asset and inventory data.

[edit] Step 1: Set up a ROBUST services instance

1. In the bin directory, copy Robust.ini.example to Robust.ini. The example file is configured to run all the services in a single ROBUST instance.

2. Configure the Database Settings in Robust.ini to use your MySQL database. Only MySQL is supported for running grid services.

3. Start up Robust.exe.

mono Robust.exe (Linux, BSD, Mac OS X)

or

Robust.exe (Windows)

If you don't see any errors (in red) on the console then you can move on to the next step.

4. Every region must belong to an estate, and every estate must have an owner which is a valid user account in OpenSim's user account service. Create a user on the ROBUST command console with the following command.

create user

This will ask you for the user's name, password and an optional e-mail. Remember this name since you will need it when you start up the simulator for the first time.

[edit] Step 2: Configure an OpenSim.exe to use the ROBUST services

In grid mode, as in standalone mode, you need to configure OpenSim.ini which controls the 3D simulator itself.

However, instead of using and configuring the file config-include/StandaloneCommon.ini, a simulator connecting to a grid needs to use and configure the config-include/GridCommon.ini file, in order to connect to the ROBUST hosted remote data services rather than in-process local ones.

The steps for both these operations are as follows.

1. Copy bin/OpenSim.ini.example to OpenSim.ini

2. Find the [Const] section near top of the file and set the parameters match the grid services ports, in case of a simple grid configuration

[Const]
BaseHostname = "MyNiceGrid.org"
PublicPort = "8002"
PrivatePort = "8003"

3. Find the [Architecture] section at the very bottom of OpenSim.ini. Make sure that one of the following lines is uncommented:

Include-Architecture = "config-include/Grid.ini" (in OpenSimulator 0.7.1 and later)

or

Include-Grid         = "config-include/Grid.ini" (in OpenSimulator 0.7.0.2 and earlier)

The others should remain commented.

3. Go to bin/config-include and copy GridCommon.ini.example to GridCommon.ini.

4. Open GridCommon.ini in a text editor. You will see lots of URL entries, each of which have defaults of ${Const|BaseURL}:${Const|PublicPort} or ${Const|BaseURL}:${Const|PrivatePort}, or, on older versions, just dummy urls like http://myinventoryserver.com:8003, etc. You may will need to change some of these to point towards the address of the respective grid service url. For instance, grid may run assets server on a machine with a address of MyGridAssets.org:10002, you will need to change AssetServerURI to the setting

AssetServerURI = "http://MyGridAssets.org:10002"

5. Run OpenSim.exe. If you're running OpenSim.exe for the first time you will get the same questions about setting up the region that occur on a first-run in standalone mode. Please see the standalone section for instructions on how to answer these, or read more information about the Regions.ini file on the Configuring Regions page.

If everything is set up correctly, when starting up OpenSim.exe you shouldn't see any errors. You should also see the ROBUST console display log lines saying that the region has registered with the grid service. For example,

21:43:45 - [GRID SERVICE]: Region t1 (176cc95e-f693-4b02-8e08-af86e2372faa) registered successfully at 256000-256000
21:43:47 - [GRID SERVICE]: region t1 has 0 neighbours

[edit] Network access for a grid installation

In standalone mode, a viewer connecting to your installation needs to access

  1. The login service over TCP and other configured public services (e.g. grid info, map).
  2. The http_server_port of each configured simulator over TCP.
  3. The InternalPort and ExternalHostName of each configured region.

The last two requirements are the same as for standalone installations, except that they apply to each server that hosts a simulator. Please see the standalone section above for more details.

The login service is a little different. Whereas in standalone this uses the same http_server_port as the simulator itself, in grid mode it's running in a separate ROBUST service.

The default port for the login service is 8002. You can see this used in the [ServiceList] section of Robust.ini.example.

[ServiceList]
AssetServiceConnector = "8003/OpenSim.Server.Handlers.dll:AssetServiceConnector"
InventoryInConnector = "8003/OpenSim.Server.Handlers.dll:XInventoryInConnector"
GridServiceConnector = "8003/OpenSim.Server.Handlers.dll:GridServiceConnector"
GridInfoServerInConnector = "8002/OpenSim.Server.Handlers.dll:GridInfoServerInConnector"
AuthenticationServiceConnector = "8003/OpenSim.Server.Handlers.dll:AuthenticationServiceConnector"
OpenIdServerConnector = "8002/OpenSim.Server.Handlers.dll:OpenIdServerConnector"
AvatarServiceConnector = "8003/OpenSim.Server.Handlers.dll:AvatarServiceConnector"
LLLoginServiceInConnector = "8002/OpenSim.Server.Handlers.dll:LLLoginServiceInConnector"
PresenceServiceConnector = "8003/OpenSim.Server.Handlers.dll:PresenceServiceConnector"
UserAccountServiceConnector = "8003/OpenSim.Server.Handlers.dll:UserAccountServiceConnector"
GridUserServiceConnector = "8003/OpenSim.Server.Handlers.dll:GridUserServiceConnector"
FriendsServiceConnector = "8003/OpenSim.Server.Handlers.dll:FriendsServiceConnector"
MapAddServiceConnector = "8003/OpenSim.Server.Handlers.dll:MapAddServiceConnector"
MapGetServiceConnector = "8002/OpenSim.Server.Handlers.dll:MapGetServiceConnector"

Here all the public services (those where the viewer connects directly to the service) are served on port 8002, with internal services on 8003. So you need to make sure that the viewer can access port 8002 over TCP but you do not want to expose port 8003. Only simulators need to be able to connect to port 8003.

[edit] Connecting to a grid installation

Your client startup line will look something like

-loginuri http://mygrid.com:8002

The loginuri needs to be the address to the login service. In standalone mode, this was the same address as the region simulator and the port was 9000 by default. However, in grid mode it will be the address to login service hosted on the ROBUST instance. In this case, the address will be 192.168.1.2. The port number of 8002 is the traditional one for the grid login service and is the default in Robust.ini.example.

If the login is successful, you will see log lines on the ROBUST console (for the login itself) and then log lines on the region simulator console (as the login process tells the simulator to expect the avatar, tells the viewer the address of the region simulator and then when the viewer starts talking to the simulator directly).

[edit] Running multiple ROBUST service instances

WARNING:
This is a tricky issue and contrary to past allegations, opensim is not well prepared for this kind of microservices concepts.
You can split some services by different machines, if they have no interdependencies. For example current XBakes can run anywhere
Running several instances of same service is a invite to fail.
Some services do assume they are the only instance, like current PresenceService, GriduserService, etc, and even do own caching to reduce load on the database engine, and that cache cannot be syncronized across instances
Most will only service http in paralell, placing the same, and most of the load, on the same database engine. So unless that database service is a distributed system, doing proper local caching and synchronization with a master database, the gains of having multiple instances is not that large, if any if if not a total fail

Another important thing to note is that currently several services need to read data from the configuration of other services. For example Gridservice needs to read data from its section, GridService, and sections LoginService, Hypergrid and GridInfoService. So the ini file for the robust instance running it needs to have those sections, and of course updated.


If you are operating a grid, then you can run different services (e.g. asset, inventory) in different ROBUST instances, in order to spread the load. To do this, you will need to edit the ServiceConnectors parameter in the [Startup] section of Robust.ini (or Robust.HG.ini if you're running Hypergrid). The default ServiceConnectors parameter looks something like this

[ServiceList]
AssetServiceConnector = "8003/OpenSim.Server.Handlers.dll:AssetServiceConnector"
InventoryInConnector = "8003/OpenSim.Server.Handlers.dll:XInventoryInConnector"
GridServiceConnector = "8003/OpenSim.Server.Handlers.dll:GridServiceConnector"
GridInfoServerInConnector = "8002/OpenSim.Server.Handlers.dll:GridInfoServerInConnector"
AuthenticationServiceConnector = "8003/OpenSim.Server.Handlers.dll:AuthenticationServiceConnector"
OpenIdServerConnector = "8002/OpenSim.Server.Handlers.dll:OpenIdServerConnector"
AvatarServiceConnector = "8003/OpenSim.Server.Handlers.dll:AvatarServiceConnector"
LLLoginServiceInConnector = "8002/OpenSim.Server.Handlers.dll:LLLoginServiceInConnector"
PresenceServiceConnector = "8003/OpenSim.Server.Handlers.dll:PresenceServiceConnector"
UserAccountServiceConnector = "8003/OpenSim.Server.Handlers.dll:UserAccountServiceConnector"
GridUserServiceConnector = "8003/OpenSim.Server.Handlers.dll:GridUserServiceConnector"
FriendsServiceConnector = "8003/OpenSim.Server.Handlers.dll:FriendsServiceConnector"
MapAddServiceConnector = "8003/OpenSim.Server.Handlers.dll:MapAddServiceConnector"
MapGetServiceConnector = "8002/OpenSim.Server.Handlers.dll:MapGetServiceConnector"

Each entry has the form

<port-number>/<dll>:<connector-class-name>

For instance, the first entry above

8003/OpenSim.Server.Handlers.dll:AssetServiceConnector

says to start an AssetServiceConnector (and hence an asset service) from the OpenSim.Server.Handlers.dll and to server that from port 8003.

By default, Robust.exe loads a configuration file with the same name but with .ini appended instead of .exe. So Robust.exe will look for an inifile called Robust.ini. You can change this by giving the parameter on the commandline. For instance, to start Robust with HG parameters, one would use

Robust.exe -inifile=Robust.HG.ini

So if you wanted to run every connector apart from assets in one instance of ROBUST and the asset connector in another instance, you would have two ini files. One could remain Robust.ini and have

[ServiceList]
InventoryInConnector = "8003/OpenSim.Server.Handlers.dll:XInventoryInConnector"
GridServiceConnector = "8003/OpenSim.Server.Handlers.dll:GridServiceConnector"
GridInfoServerInConnector = "8002/OpenSim.Server.Handlers.dll:GridInfoServerInConnector"
AuthenticationServiceConnector = "8003/OpenSim.Server.Handlers.dll:AuthenticationServiceConnector"
OpenIdServerConnector = "8002/OpenSim.Server.Handlers.dll:OpenIdServerConnector"
AvatarServiceConnector = "8003/OpenSim.Server.Handlers.dll:AvatarServiceConnector"
LLLoginServiceInConnector = "8002/OpenSim.Server.Handlers.dll:LLLoginServiceInConnector"
PresenceServiceConnector = "8003/OpenSim.Server.Handlers.dll:PresenceServiceConnector"
UserAccountServiceConnector = "8003/OpenSim.Server.Handlers.dll:UserAccountServiceConnector"
GridUserServiceConnector = "8003/OpenSim.Server.Handlers.dll:GridUserServiceConnector"
FriendsServiceConnector = "8003/OpenSim.Server.Handlers.dll:FriendsServiceConnector"
MapAddServiceConnector = "8003/OpenSim.Server.Handlers.dll:MapAddServiceConnector"
MapGetServiceConnector = "8002/OpenSim.Server.Handlers.dll:MapGetServiceConnector"

The other could be called Robust.Assets.ini and have

[ServiceList]
AssetServiceConnector = "8004/OpenSim.Server.Handlers.dll:AssetServiceConnector"

Note that this is using port 8004 instead of port 8003. This is necessary since only one executable can use each port at a time. You will need to make sure your simulator configuration files use port 8004 for the asset service as well.

You will also need to change the default network port to 8004 for this second copy of Robust.exe

[Network]
   port = 8004

Once you've created the two ROBUST configuration files (Robust.ini containing all services apart from asset and Robust.Assets.ini containing only the asset service), then you could start the first Robust.exe as usual.

Robust.exe

This will load Robust.ini, as we haven't specified a Robust.ini. Also, the logfile it will use will be Robust.log as we haven't manually specified one.

The second ROBUST instance we would start with

Robust.exe -inifile=Robust.Assets.ini -logfile=Robust.Assets.log

The -inifile switch tells the second Robust instance to load it's configuration from Robust.Assets.ini rather than Robust.ini. The -logfile switch tells Robust.exe to use Robust.Assets.log as its logfile rather than the default Robust.log. If you don't specify this switch then you may see errors on the console about a locked log file.

At this point you should have two running Robust.exe instances.

If you put the ROBUST instances on different machines then don't forget to change the relevant service URIs in each simulator to match.

Since OpenSimulator services are stateless (e.g. every request is unconnected with other requests as long as they affect the same persistent data where necessary), you can also load balance by starting more than one ROBUST instance with a copy of the same service (e.g. multiple asset services using the same database). Requests would be round-robined between the service copies using an HTTP reverse proxy implementation (e.g. nginx). See Performance#Services for more details.

[edit] Notes

Useful discussion about separating Robust instances

[edit] Attaching your sim to someone else's grid

  • Make sure you understand, agree and will enforce that grid Terms of Service
  • Follow the instructions of that grid owner!

To set up the region server (i.e., OpenSim.exe) to connect to an external grid, follow the Configuration#Step 2: Configure an OpenSim.exe to use the ROBUST services instructions above.

The grid will have already provided with the required services. In step 2 you will need to use the provided URLs for their services.

In your bin/Regions.ini file (or other region config file) you will also need to set the grid co-ordinates to your regions provided from the grid operator. See Configuring Regions for more information.

[edit] Running an OpenSimulator standalone or grid installation with Hypergrid enabled

Hypergrid is an emerging architecture supported by OpenSimulator that allows a user with an account on one standalone or grid to visit other Hypergrid-enabled standalones or grids, and for users from those grids to visit the home grid. This does not require the two installations to share a central set of data services (assets, inventory, etc.). Please see Installing and Running Hypergrid for more details.

[edit] Further notes

[edit] Troubleshooting

See Troubleshooting

[edit] Running OpenSimulator in 32 bit in Windows 64bit

This is no longer possible since version 0.9.3.0 because the newer versions of dotnet do not support 32Bit on windows.


Windows 64Bit can run several instances of OpenSim in 32Bit mode, allowing each to use up to about 2GB of total physical ram.

This is almost the total memory available on 32Bit versions of Windows, for all the programs (around 3GB)

In 32Bit mode, the simulator uses less memory and may be a bit faster, so unless you have regions with a lot of content, you can run it in 32Bit mode, just run:

OpenSim32.exe instead of OpenSim.exe

You can also run Robust in 32Bit mode:

Robust32.exe in place of Robust.exe


Linux 64Bit only runs the simulator in 64Bit mode

[edit] Increasing the stack reserve level when using OpenDynamicsEngine (old ODE and ubODE) on Linux or other Unix variants

Increase your stack reserve level with the following command; ulimit -s 262144 Or, run the opensim.sh to start up OpenSimulator.

[edit] dotnet runtime configuration (version 0.9.3.0 and above)

Files Robust.runtimeconfig.json, OpenSim.runtimeconfig.json and other *.runtimeconfig.json on folder bin/ define several settings the the dotnet runtime will use for the respective application.
You should not change those files, unless you do understand the impact of such changes.
Note that changes to this files maybe lost on compile!

one case you should review is the line

   "System.GC.HighMemoryPercent": 50,

dotnet runtime assumes that a application runs alone on the machine, so it can use all its memory. Even in workstation mode ( server is a lot worse), GC will only try really harder to release memory if it is using more than 90% of total machine physical memory, on that application alone.

The line above changes that to 50%. On regions with moderate size of content, specially if running several, you may want to reduce it even more, for example:

   "System.GC.HighMemoryPercent": 5,

will change it to try to free memory harder above 5% of total memory use, i.e. at approximately 1.6GB on a 32GB machine, etc.
the value should be between 1 and 90 (dotnet default). If the line is removed the dotnet default is used
If you set the value too low, the CPU load (and so lag) will increase.


Region and robust console command "show stats" now lists this threshold as GCHMthreshold

[edit] Firewalls

Some operation systems or distributions run their own firewall by default. If you can't access to OpenSimulator from remote client, you'll need to check their settings. See Firewall Settings for details.

[edit] Legacy Configuration Information

These are some pages containing some legacy configuration information of unknown accuracy.

OpenSim 0.6.6 legacy configuration information


[edit] Additional Optional Configuration Tasks

[edit] Further configure OpenSimulator

If you've looked through OpenSim.ini.example or any other of the config files, you'll see that there's a very large number of configurable parameters spread across multiple files. See Configuring Simulator Parameters for more details about the configuration infrastructure and how settings in identically named sections (e.g. [XEngine]) are merged by OpenSimulator on loading.

[edit] Set up a second region to run on the same simulator

See Configuring Regions.

[edit] Run Multiple Standalone Instances of OpenSimulator on the Same Server

For each subsequent instance of OpenSim, change the 'http_listener_port' in OpenSim.ini to the value excluding 9000, and 'InternalPort' in Regions.ini to the value excluding 9000. Also, make sure your regions are using different ports, as explained in Configuring Regions.

[edit] Load region content

You can load content onto regions by using the load oar command. To load individual OAR files into each region, use the 'change region [regionname]' command and then 'load oar [oar-location]'.

[edit] OpenSim.exe command line options

OpenSim.exe has command line options which allow you to perform actions such as reading configuration files from a different directory. See OpenSim.exe Command Line Options for more details.

[edit] Script engine

OpenSimulator supports multiple script engines. See ScriptEngines for details. If you don't know what this means then the default script engine will be fine. In fact, recent versions of OpenSimulator only ship with one script engine, the XEngine.

[edit] Permissions Configuration

OpenSimulator has a quite elaborate set of permissions. See Permissions (Server) for details. By default, permissions are active on region simulators.

[edit] Logging

By default, OpenSimulator logs information to a file called OpenSim.log in the bin directory. See Logging for details on how to further configure this if required.

[edit] FSAsset Service

By default the OpenSimulator asset service will store assets in the robust database. If you expect your asset data to grow larger than 50Gb you should consider changing to the FSAssets Service. (FSAssets is a new service and is currently only available in the latest development branch)

[edit] Set up other optional modules

[edit] Configuration of Web Server and Pages

OpenSimulator contains a web server that can serve up a variety of pages. Some which come from external files and some are generated internally.

[edit] Where to go from here

  • Upgrading from an old OpenSimulator version to a newer one.

[edit] References

Personal tools
General
About This Wiki