SRCDS Steam group


[Linux/Unix]: How to set up and run srcds under Solaris 10
#1
TUTORIAL: How to set up and run srcds under Solaris 10

Summary: Here is a quick list of every external link in this article.

Desktop Environments: http://hub.opensolaris.org/bin/view/Community+Group+desktop/communities
ZFS: http://www.opensolaris.org/os/community/zfs/
Fault Management: http://www.opensolaris.org/os/community/fm/
xVM Xen Hypervisor: http://hub.opensolaris.org/bin/view/Community+Group+xen/
Virtual Box: http://www.virtualbox.org/
Intro to Zones: http://www.opensolaris.org/os/community/zones/
Intro to BrandZ: http://www.opensolaris.org/os/community/brandz/

Solaris HCL: http://www.sun.com/bigadmin/hcl/
Solaris Network Drivers: http://homepage2.nifty.com/mrym3/taiyodo/eng/
More on Solaris Network Drivers: http://sigtar.com/2009/02/12/opensolaris-rtl81118168b-issues/#comment-88

Get Solaris: http://www.opensolaris.org/os/downloads/ or http://www.sun.com/software/solaris/get.jsp#download
Install Solaris and other How-Tos: http://www.sun.com/software/solaris/howto_guides.jsp


Get a CentOS tarball image: http://opensolaris.org/os/community/brandz/downloads
Install an lx Branded Zone: http://www.opensolaris.org/os/community/brandz/install/
“Slash” notation for defining subnet mask: http://www.zytrax.com/tech/protocols/ip-classes.html#slash

Install and run srcds: http://www.srcds.com/db/engine.php?subaction=showfull&id=1098643920&archive=

More help with Brandz: http://www.opensolaris.org/jive/forum.jspa?forumID=83
More help with srcds: http://forums.srcds.com/viewcat/6

Try the Ace of Spades server: 76.92.218.236:27015
Report problems with the Ace of Spades server: http://www.aceofspades27.proboards52.com/


1) Introduction

What is Solaris?

Solaris is a mature UNIX Operating System, derived from Sun and AT&T’s partnership in 1988 that created UNIX Sytem V, Release 4. The first official release of Solaris in 1992 incorporated SVR4 plus many features from Sun’s previous BSD-Based SunOS, such as the Network File System and a number of BSD libraries for compatibility. 1992’s release was officially called Solaris 2. Sun’s old BSD-based SunOS (which at the time was up to SunOS v4) was retro-named Solaris 1 and phased out.

Sun began to open-source Solaris in 2004, and today the entire operating system (now Solars 10) and its components are open source and maintained by the separate, independent OpenSolaris community.

[Solaris history from http://www.softpanorama.org/Solaris/solaris_history.shtml, which also cites wikipedia, and my memory]

2) Why use Solaris?

There are several reasons to choose Solaris over other open-source UNIX variants.

-- You may already use and know it: This was my reason. I’ve been using Solaris since the SunOS days. I don’t want to set up a separate Linux box just for one application. I just list the remaining reasons so I don’t look too biased. They are cool, but I don’t really know if Linux can do any of the stuff that follows or not.

-- Desktops Galore: All of the popular window manager/desktop choices are available on Solaris. In addition to CDE, KDE, etc., OpenSolaris has customized the GNOME desktop into a very simple and easy to use version called the Open Solaris Desktop (formerly the Java Desktop System). The default on the live CD for boot & install is GNOME. See if your favorite is here: http://hub.opensolaris.org/bin/view/Community+Group+desktop/communities

-- The ZFS filesystem. OpenSolaris’ ZFS filesystem is as bulletproof as a Unix filesystem gets. The latest release features “Timeslider” backups that are as easy to manage as the name implies. If you’re running a server that needs to run dependably, ZFS has numerous advantages: http://www.opensolaris.org/os/community/zfs/

-- Fault Management. Another consideration if you want to run an industrial-strength high-availability server is fault management. When running on AMD or Intel Xenon hardware, Solaris can monitor CPU, Memory, Northbridge chipset, and other hardware. While these features are mainly designed for multiple-blade server farms, they’ll run on any AMD hardware: http://www.opensolaris.org/os/community/fm/

-- Isolation. It’s a good idea to run srcds in a sandbox. This keeps srcds failures or hacks from damaging your system. Solaris’ Zones are an ideal environment, providing isolation from the host in a simple package that is integrated into the host OS and supported by the OS vendor. There are alternatives to Zones, which I discuss below.

-- Full 64-bit support and cool tools. This isn’t important for running srcds, in fact the Linux Zone only supports 32-bit Linux binaries. However, if there’s other development or hosting you want to do on the same machine outside the Linux sandbox, Solaris is a full 64-bit implementation of Unix with really nice developer tools. Sun Studio, for example, is completely free and better than any paid-for developer suite. I don’t see how developers get along without DTrace.

NOTE: This tutorial only applies only to Solaris running on Intel or AMD x86 32- or 64-bit hardware. srcds is an x86-only binary, and it won’t run on SPARC or PPC hardware. The Linux Zone and other virtualization tools aren’t Intel emulators. Also, Fault Management support varies depending on the hardware.

3) How to run Linux applications on a Solaris machine

There are four tools available to run Linux binaries on Solaris: lxrun, Xen, Virtual Box and BrandZ.

lxrun is an obsolete solution. It’s a user-space application that executes Linux binaries but has limitations such as read-only access to the filesystem. It’s available but not actively supported anymore.

xVM is the Solaris implementation of the Xen “Hypervisor.” It’s more complicated, but allows you to run any complete OS of your choice. xVM actually runs the entire operating system on top of a Hypervisor. Solaris can (but doesn’t have to) be the “root” domain OS, with other OSes running in parallel.
http://hub.opensolaris.org/bin/view/Community+Group+xen/

Virtual Box is an open-source virtual machine project that works like VMWare or Parallels Desktop. It’s a completely isolated user-space application that can run just about any OS as a guest. http://www.virtualbox.org/

Zones allow you to set up a partitioned user space that’s completely abstracted from the OS APIs and from other processes on the host:
http://www.opensolaris.org/os/community/zones/

A Branded Zone (or BrandZ) is a particular kind of Zone that has all of the abstraction features of a Zone with the added ability to run non-native OS APIs: http://www.opensolaris.org/os/community/brandz/

Specifically, the lx Branded Zone allows you to run binaries that make Linux API calls.

Support for the lx BrandZ is currently limited to RedHat or CentOS (the “community” version of RedHat). Any OS that uses the Linux 2.4.21 kernel should work but all of the documentation and support are around RedHat/CentOS. Red Hat did an odd thing in that their kernel is not a complete implementation of the Linux 2.6 kernel but it’s not stuck at 2.4 either. Many of the 2.6 features, with the big exception of 64-bit support, are in RedHat/CentOS.

Of the above options, I chose to go with BrandZ. At the time (4/2007) I started this it was the clear way to go. lxrun was already obsolete, Xen was only in beta and just too much work, and Virtual Box wasn’t around yet.

Virtual Box would be a great choice and would probably be less work. I am going to try setting something up in Virtual Box so I can make legit comparisons, then I’ll come back to this tutorial with my opinions.

Zones give more monitoring and admin choices and less runtime overhead. I can get to the file space of my Zone from Solaris, for example. If an app in a Virtual Box crashes, it’s just another hung application in user space and there’s nothing on the host you can do to monitor it or remotely administer it. There’s a scale between complete isolation and low-level control. Xen, Virtual Box and BrandZ will all work depending on where you as admin are on that scale.

The one big variable that would change the equation is 64-bit support. srcds works just fine under the CentOS kernel, but if Valve ever uses any of the APIs that aren’t supported this solution won’t work anymore. We’d have to switch to Xen or Virtual Box, unless Sun ups the version of the Linux kernel supported by the lx Brand. There does seem to be user demand for this, though, so we’ll see what happens in the future. The lx Branded Zone will run on either 64- or 32-bit Solaris hosts, so that’s not a problem.


4) How to Install Solaris and a Linux Branded Zone

Check Your Hardware

Before you do anything, check Sun’s Hardware Compatibility List:

http://www.sun.com/bigadmin/hcl/

Solaris seems geared for big iron. The real push to support commodity PCs has only happened with the recent open-sourcing of the OS. It’s the only area I’ve seen where Ubuntu, Knoppix, and the other boot-and-go Linuxes beat Solaris.

In particular, Solaris does not support as many Ethernet chipsets out-of-the-box as Linux does. If your Ethernet chipset isn’t on the official HCL, don’t panic. There are more drivers here:

http://homepage2.nifty.com/mrym3/taiyodo/eng/

There are also known issues with some RealTek built-in Ethernet chipsets. Here’s a discussion with more information:

http://sigtar.com/2009/02/12/opensolaris-rtl81118168b-issues/#comment-88

I wouldn’t worry about the rest of the HCL since you won’t need sound or even graphics support to run srcds. The latest & greatest version of OpenSolaris (see below) seems to support more hardware than the HCL says anyway.

If you find a driver for a non-official NIC, just make sure you download your driver and put it on a thumbdrive or something before installing Solaris. Then install the correct Ethernet drivers after the install but before you do anything else.

Even easier: Ethernet cards are ten bucks. I just went out and bought one that works when I ran into RealTek issues. You do need to remember to disable your built-in Ethernet in BIOS if you use another card.

You’ll know if your Ethernet card works early in the install process (see below).

Get The Latest OpenSolaris

Things get a little confusing here, because there are many releases of OpenSolaris depending on which branch of the build tree you’re looking at. The OpenSolaris community’s latest and greatest official version is sometimes a version or more ahead of what Sun Corporate supports. Both are free. More confusing is the fact that Sun’s website is the repository for all of the ISO images, whether you get the corporate version from Sun or the Community version from OpenSolaris.org.

The latest & greatest OpenSolaris release is always called OpenSolaris 20XX.MM where XX.MM are the year and month of the stable release (2009.06 as of this writing). The tested and supported from Sun version is now called Solaris 10/YY, where YY is the year. When the links for both take you to the same place, they’re in sync and Sun’s supporting what OpenSolaris is giving away.

If you’re really ambitious you can get a developer’s release (2010.02) from the source code tree and compile it yourself. Double all coffee suggestions given below if you’re going to do that.

The latest version of OpenSolaris from OpenSolaris.org:

http://www.opensolaris.org/os/downloads/

The commercial but still free version from Sun:

http://www.sun.com/software/solaris/get.jsp#download

In the past you had to be careful to get the latest OpenSolaris instead of the commercial version, but lx BrandZ are now supported in both.

Confused? Good, because there’s one more domain where you can get OpenSolaris: opensolaris.com. The .org domain is the community portal and wiki for all the developers actually working on the project. The .com domain is more like a slicker end-user store for news and downloads. You can get the latest from both.

Once you choose a release all download links take you to Sun’s repository, where they ask for sign-up information but then take you to the download page. Remember this sign-up information for later. All the Sun documentation and support material requires a login. At least it’s a single sign-on for everything Sun offers.

You can also get free DVDs in the mail from OpenSolaris.org or Sun


Install Solaris

Sun used to have training videos on how to install Solaris, but the links are gone. That’s probably because the install process has changed so much for the better. The latest install tutorials are here:

http://www.sun.com/software/solaris/howto_guides.jsp

If you’re not going to dual-boot you can skip most of what’s in the tutorials, pop in the DVD & boot. It’s now a LiveCD like Ubuntu. You boot to Solaris with Gnome desktop and can start trying it out. When you’re ready to install, there’s a menu option off the main desktop. Answer all of the installation questions. Go get some coffee. Go get more coffee. Solaris takes longer to install than Ubuntu, but not as long as Vista, so that should tell you how much you need to brew.

If Solaris recognizes your network card, you’ll know because some of the setup questions will be about your network setup. If you’re watching, you’ll know early in the boot process, because one of the startup messages will look like this:

NOTICE: rge0 link up 100Mbps

rge0 is the notorious RealTek network chipset that may or may not work. Even if you think it’s working, it may fail later or work intermittently (see the discussion link above).

For a home PC behind a cable modem/router, you can just skip all the questions about installing NIS, where your DHCP server is, etc, and it’ll find all that automatically just like Windows or Linux installs do.

Watch out for partitions: Solaris actually assumes you know a thing or two about your disk drive and asks you how big to make each partition. It doesn’t do the math for you, so if you’re a byte or two off you’ll have to do it again. The defaults are fine, but see the warning below when it’s time to install CentOS.

After Solaris installs and reboots (be sure to wait for the GUI login to start) and you log in for the first time, you’ll have your choice of desktop, then you’ll be asked to register. Use the login and password you created at sun.com when you downloaded the ISO image (or skip). This will also tell you if your network hardware is supported, btw. Registering sets up the automatic package management, which is nice but not Ubuntu-nice.

If your network hardware wasn’t detected and installed the first time, now’s the time to unzip and install your driver from above, then reboot. If you’re not sure choose “Network” from the Start menu (where it is and what the start menu is called depend on what desktop you chose). If you only see the network adapter lo0 that’s the loopback adapter—Solaris didn’t see your hardware.

Make sure your box can see the outside world before proceeding. Ping something, visit a website, or actually register Solaris to check.

If the installer did recognize your network card but you’re still not seeing the outside world, you may need to make some configuration changes. From the Start menu, choose “Administrative Functions” and then “Network” (these may be different depending on the desktop you’re using). You may have to make sure you have DHCP turned on. That should trigger your machine to get an IP address from your router. It should also trigger the population of the “DNS Server” field with the root address of your router. If not you may have to add it. The same tool applies if you’ve divided your network into subnets, etc.

Get Linux and Install a Linux Branded Zone

You should download the CentOS tarball first, validate that it’s all there (tar –tvv), and then proceed with the following instructions. The CentOS tarball is not on the Solaris DVD even though the packages to support Linux are all installed from the DVD by default. Some people have reported trouble with tarball at the link below:

http://opensolaris.org/os/community/brandz/downloads

You can also use an ISO image or CD of RedHat 3 or the corresponding CentOS release, but the tarball is the easiest way to go.

Pop open a terminal window, become superuser, and follow these instructions:

http://www.opensolaris.org/os/community/brandz/install/

Now is a good time to refill the coffee you got above.

5) Considerations Before Moving Forward

IP Address & configuration inside the Zone

The IP address you assign to your lx Zone will be more or less permanent. Make sure it’s in the same range as the ones your router assigns, but high enough that your router will never auto-assign it to another PC on your LAN. You also have to use the “slash” notation when you assign your zone’s IP address: 192.111.0.155/24, where the /24 refers to the number of bits in the netmask. Here’s a definition of slash notation:

http://www.zytrax.com/tech/protocols/ip-classes.html#slash

If you are on a subnet administered by someone else, you’ll have to ask how the subnet mask for your network is configured and use that in the slash notation. For a home PC behind an off-the-shelf router, you’re not likely configured into different subnets so it doesn’t actually matter what you use. /24 works.

Configure your router for the IP address of the ZONE, not the host

Put the IP address you assigned to your lx Zone in your router and then forward srcds’ port (27015 by default) to it, not the IP address of the host Solaris box. This is a nifty feature because no matter how often you reboot your Solaris host, and no matter how often your router assigns a new IP to it, your Linux zone will always have the same IP address and it’ll match the one in your router.

If you’re behind a home router, put the address of your router in BOTH /etc/sysconfig/network (as a “GATEWAY” entry) and /etc/resolv.conf (as a “nameserver”) files inside the zone, like this:

$ cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=linux
GATEWAY=192.168.0 .1

$ cat /etc/resolv.conf
nameserver 192.168.0.1

Otherwise, your lx zone will see the outside world by ip addresses but won’t be able to resolve domain names. The alternative is to enter a line-item for every server you want to talk to in /etc/hosts, which gets old.

Test the net connection of the Zone

Ping something from inside your zone to make sure it works. You can even directly ssh into it from outside if everything works. No need to ssh into the host Solaris Zone first once the lx Zone is up and running.


Disk Space -- watch out where you create lxroot

The example in the BrandZ install page shows creating the root directory for your new zone in /export/my-zone_root. However, the default Solaris installation only partitions enough space in / to hold the Solaris install and not much else. If you put your Linux root here you’ll run out of space while extracting the tarball. Be sure to put it in your biggest partition; by default that’s not /export but /export/home. It took me about 12 hours to figure this out, and I left quite a welt when I finally figured it out and instinctively slapped my forehead.

Create a user in the lx Zone, or you'll be running srcds as root

The srcds experts frown on running srcds as root. You can, but if someone ever hacks in via port 27015, finds a way to buffer-overflow srcds, etc. they’re in your box as root. It’s not as big a deal here since the zone is completely isolated. At the very least set a root password for your zone before you go any further.

6) Get and Install srcds inside the lx Zone

Log in to zone as described above, and then follow the instructions below:

http://www.srcds.com/db/engine.php?subaction=showfull&id=1098643920&archive=

Refresh your coffee as directed.

There’s no modifications needed to the excellent install instructions from srcds.com. It all just works.

I have run HL2DM, CS:S and TF2 servers under the lx Zone. They all work as advertised. I haven’t tried any of the other source servers (DOD comes to mind) or mods like Zombie mod or Surf mod.

Congratulations, you’re now running srcds from inside Solaris 10.

7) More things you can do inside the lx Zone

Automatically start & monitor srcds

Any Linux tool you can use to watch your processes should work in your lx Zone. There are a number of discussions here in the forums on how to do this. When I come up with my favorite, I’ll update this tutorial.

Install Plugins

They all work. Mani, SourceMetaMod and MetaMod source all work. As for which one is better, there are several threads in the forums here on that topic. I like Mani but everyone now seems to think it’s a bug-ridden security hole so I should probably get with the times here.

8) More things you can do on the host Solaris box

Automatically start & monitor the lx Zone

You can auto-start your Linux Zone when your Solaris box boots. When I get my configuration perfected I’ll update this section.

Automatically monitor host hardware

As mentioned above, Solaris has fault-monitoring tools that currently supports AMD and Intel Xenon hardware. I’ll update this tutorial as soon as something fails (or I make something fail) and I’m sure it all works the way I think it should. Really, in two plus years nothing’s failed yet so I don’t have anything to report.

9) How to get more help

More help with BrandZ:

http://www.opensolaris.org/jive/forum.jspa?forumID=83

More help with srcds on Linux:

http://forums.srcds.com/viewcat/6

How to brew coffee:

http://www.howtobrewcoffee.com/

(I didn’t put that link in the summary because I want to see how many of you actually read this far)

Everything described above also works by installing Solaris in a VMWare image. It makes no long-term sense to run a virtual machine (lx BrandZ) inside a host (Solaris) inside another virtual machine (VMWare) on a Windows box. I only did this first to play around with Solaris and make sure it all works before wiping out my physical hardware for Solaris. It does all work, and it’s a good way to try all this out before committing it to hardware. This is also a good backup solution: I run a copy of my physical box in a VMWare image when I’m performing maintenance on the primary server.

10) See srcds on Solaris in action

Play on a Solaris-hosted srcds server

The Ace of Spades HL2DM server is at 76.92.218.236:27015

Report any problems with the Ace of Spades server to our Forum:

http://www.aceofspades27.proboards52.com/

Go to the “Server Information/Rules” Forum.

11) ACK

Many thanks to the folks on the Linux forums here and especially at the OpenSolaris.org BrandZ discussion forums for all of their help in setting up and running my server.

Thanks to {(.:A.o.S:.)}Byte, {(.:A.o.S:.)}FNDR.Dogmeat, and ±(€-Ø)± UltimaRage for beta-testing the srcds-on-Solaris HL2DM server.

Thanks to Horton for the link to the rge0 discussion.

As I modify and improve my server setup, I’ll modify this tutorial. If there are any bugs, crashes, or showstoppers I’ll report them in the srcds Linux forum and update the tutorial.

--DFA

REVISION HISTORY:

4/26 Forgot to cite my source for Solaris history
5/3 Added more network configuration information
5/22 Minor VMWare updates.
01/06/2010 Restored from a backup after forum server bug
01/08 Updated with Solaris 2009.06 and lots of changes to the Solaris install procedures
{(.:A.o.S:.)}FNDR.Death From Above
Ace of Spades Clan
http://www.aceofspades27.proboards52.com

[Image: b_560x95.png]
Reply
#2
Great job AoS.DeathFromAbove, this is greatly appreciated.
I'm sure a lot of people find it very usefull.

thanks for the hard work!
Join the Source Dedicated Server Support Group on Steam Community!
Source Dedicated Server (SRCDS)
Free to join, Live support! (When available)

http://forums.srcds.com/viewtopic/5114
Reply
#3
Hey, just to update everybody, the Solaris box is still going strong.

To celebrate, we're having a contest and giving away a free T-shirt to this month's top scorer!  Visit our website for details:

http://aceofspades27.proboards52.com/index.cgi?board=cssserver&action=display&thread=1181051278

Thanks for all the help everyone here at srcds.com has given me in getting this set up.

--DFA
{(.:A.o.S:.)}FNDR.Death From Above
Ace of Spades Clan
http://www.aceofspades27.proboards52.com

[Image: b_560x95.png]
Reply
#4
thanks for this Smile
my collegue told as I don't have any linux experience, i should try solaris, cuz its the thing.
but i dont have solaris, using ubuntu and i'll try to set it up there, and maybe then i'll switch back to solaris.

thanks mate!
Reply
#5
Wrecked Wrote:thanks for this Smile
my collegue told as I don't have any linux experience, i should try solaris, cuz its the thing.
but i dont have solaris, using ubuntu and i'll try to set it up there, and maybe then i'll switch back to solaris.

thanks mate!

Thanks.

There's a new version of Solaris out now, Solaris 2008.5.

I have scrds running under Solaris 2008.5 now. Everything's pretty much the same as I documented above. I just edited the tutorial with the latest info on this release.

--DFA
{(.:A.o.S:.)}FNDR.Death From Above
Ace of Spades Clan
http://www.aceofspades27.proboards52.com

[Image: b_560x95.png]
Reply
#6
Drocona, HELP!!!!!

I went in to edit the tutorial with some updates. I did a "Quick Edit" instead of a "Full Edit," and when I saved it only saved the first dozen lines or so.

Does this server have backups? If so, can we restore this thread to yesterday? Or any state before 10:56 AM today?

Thanks for your help,

--DFA
{(.:A.o.S:.)}FNDR.Death From Above
Ace of Spades Clan
http://www.aceofspades27.proboards52.com

[Image: b_560x95.png]
Reply
#7
It's a bug. I've done it SEVERAL times with my guides. Don't you have a backup?
Reply
#8
Yes, I have my own copy saved locally. It's not in sync with the one posted here, though. It's a few revisions back.

I'll wait for word from the moderator; if they can't restore it I'll start with my copy and start over again.

--DFA
{(.:A.o.S:.)}FNDR.Death From Above
Ace of Spades Clan
http://www.aceofspades27.proboards52.com

[Image: b_560x95.png]
Reply
#9
I've already asked Drocona. It's not possible, I think he said Toungue
Reply
#10
Yeah, that's correct, posts are as they are, there's no backup system in place.
Join the Source Dedicated Server Support Group on Steam Community!
Source Dedicated Server (SRCDS)
Free to join, Live support! (When available)

http://forums.srcds.com/viewtopic/5114
Reply
#11
I have not tried running srcds in Solaris but I am planning to give it a try. Wish me luck.

Pret immobilier
Reply
#12
Good luck!
Reply
#13
Sorry for the delays; I got busy with other projects. I'm going to try to restore the tutorial this week and update it for the latest version of Solaris. Our server's still running strong!

--DFA
{(.:A.o.S:.)}FNDR.Death From Above
Ace of Spades Clan
http://www.aceofspades27.proboards52.com

[Image: b_560x95.png]
Reply
#14
I'm more familiar with Solaris than any other OS and would love to use it for srcds, so I'm really looking forward to your update Smile
Reply
#15
Semi-good news: I found a backup copy of the tutorial. I'll restore it tonight. It's not the latest version, though. It's about a year and a half out of date. I'll try to bring it up to date with the latest version of Solaris by the weekend.

Here's a quick run-down of what's out-of-date in this older version of the tutorial:

--The stuff about other ways of running and isolating Linux under Solaris have changed. VirtualBox is now available under Solaris. Xen is also up to date and is a viable option.
--The install process for Solaris is a lot easier. The DVD is now a live image that boots directly to Solaris and lets you try-before-you-buy, just like Ubuntu.
--All the version information is obsolete, although the bit about Sun's official release being behind the OpenSolaris community release will always be true.

--DFA
{(.:A.o.S:.)}FNDR.Death From Above
Ace of Spades Clan
http://www.aceofspades27.proboards52.com

[Image: b_560x95.png]
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)