Systems administrators who manage servers and labs that are used by programmers/developers
have very different jobs from their peers who deal with just regular users.
Developers usually do not need as much hand holding as typical users, but when
they do need help, they can present very difficult problems and scenarios. Also,
developers in technical markets have strict deadlines, an ever-increasing appetite
for compute power, and the need for regular data backups. The special breed
of systems administrators who serve developers can use all the help they can
get in alleviating maintenance troubles and headaches. In many developer-based
groups, the Sun Ray desktop appliance is a great fit, and can be just the right
answer for both the systems administrator and the developer. In environments
with hundreds of developers and only a handful of systems administrators, the
Sun Ray model of computing can also be a lifesaver.
The Sun Ray appliance is a zero-administration and zero-maintenance device, which can be used to replace the traditional desktop workstation. It is a 100% noise-free device with no fans or disk drives, and it delivers crisp 24-bit color. The basic ingredients of a Sun Ray setup are:
Sun Ray appliances
Over the long term, one of the benefits of using Sun Ray appliances is the
upgrade path. As developers' needs increase, the systems administrator does
not need to deploy newer and faster desktop units to every developer, but
can instead simply upgrade the Sun Ray server, or the compute/application
servers that are housed in a lab environment. This saves time for the administrator,
and allows developers to work in an environment with very little interruption
and downtime. In this article, I will describe the concept of Sun Ray appliances,
and discuss how to plan for them and maintain them in technical environments.
I will also point out the advantages and disadvantages of Sun Ray appliances,
where to use them, and where not to use them.
How Sun Rays Differ from Traditional X Terminals
The major difference between Sun Ray appliances and X terminals is in how
the user's display session is managed. On an X terminal, a display session
is sent directly to the X terminal and is managed by that X terminal. On a
Sun Ray appliance, the display session is housed on the Sun Ray server and
forwarded to the appropriate Sun Ray appliance. For example, the display setting
for a typical X terminal in a UNIX environment would be:
x415sun01:0.0.
This shows that the primary display on the X terminal named "x415sun01" will
be used for displaying X information, and all display traffic will be sent
directly to the X terminal itself. On the other hand, a Sun Ray appliances
display setting is as follows:
sunraysrv:70.0.
The "sunraysrv" machine is not actually the name of the Sun Ray appliance,
but of the Sun Ray server, where the display session is hosted. The number
after the server name denotes which Sun Ray display session is in use. Instead
of having the display session managed on the desktop appliance, the session
is stored, maintained, and managed on the Sun Ray server in a virtual frame
buffer.
This difference in display methodology gives the Sun Ray appliance a distinct
advantage over traditional X terminals mobility. A Sun Ray user with
an active display session in her office can pull out her Smart Card from the
device, walk to the sys admin's office, insert the Smart Card into the admin's
Sun Ray device, and instantly have her active session transferred. The user's
full desktop, including any customized window manager features, is displayed
on the new Sun Ray appliance. If the user was playing an audio file at her
original location, the audio will also be heard on the Sun Ray appliance to
which she moved. This unique feature, which is a part of the Hot Desk Architecture,
allows developers to easily share their desktop environment with others, in
a one-on-one environment, or even in a large meeting of many developers.
Another major difference between Sun Ray appliances and X terminals is the
network interconnect used. While X terminals were usually deployed on the
same network as other servers and workstations, Sun Rays are deployed with
a separate and dedicated network interconnect. The Sun Ray server is required
to have at least two network interfaces one for the public network,
and one for the Sun Ray interconnect. This allows for much greater efficiency,
as extraneous traffic is not sent over the Sun Ray network. The Sun Ray network
interconnect does not carry X11-based traffic, and uses its own display protocol
that is much more efficient.
Sizing up Your Sun Ray Environment
A key part of a successful Sun Ray deployment is the design. The recommended
server configuration for an average office with 50 active Sun Ray appliances
is a Sun E250 with dual processors, 1 Gig of RAM, dual 100-Mbps Fast Ethernet
controllers, and two disks to spread the swap space onto. This configuration
is very well suited for normal users, but it may not work as well for developers
who are known for taxing servers and workstations with their projects.
Many developers are accustomed to using workstations with 128 MB of RAM;
for those users, it is beneficial to have a minimum of 100 MB of RAM per user
on the Sun Ray server. Systems administrators and developers both need to
understand that the Sun Ray server should be used only for session display
purposes, and not compute-intensive tasks. Developers will need to use separate
application server machines for compiling, testing, and debugging. These application
server machines should not be connected to the Sun Ray network interconnect,
but to the public network, which is accessed by the public network interface
on the Sun Ray server.
A good solution for a moderate-sized workgroup of 50 developers is to use
a Sun E450 server with two processors, which can be upgraded later to four
processors. Gigabit Ethernet cards are highly recommended if developers will
be connecting via X11 to compute/application servers. Each development group
is different, and while some medium-to-large groups use moderate CPU power,
some small groups of developers may use an enormous amount of resources. In
each case, the systems administrator must figure out what kind of load is
expected. A tool such as perfmeter can help administrators determine
the average CPU and network utilization over a period of time. Another Solaris
utility that can greatly assist administrators is the /usr/proc/bin/pmap
program. pmap allows administrators to measure the memory footprint of an
application and plan server configurations accordingly.
Where to Compute?
Compute- and application-specific servers are of great benefit to developers
working in a Sun Ray environment. The load is kept off the Sun Ray server
and placed on machines meant to handle compute-intensive load. For developers
who require a dedicated machine for development, 1U rack servers are a great
solution. 1U rack servers such as the Netra X1 are inexpensive enough that
individual developers can be assigned a server to work on. Other developers
may require different types of operating systems and architectures, such as
Linux on x86 hardware. Sun Ray users can log directly into any compute/application
servers with X11 via the CDE remote session option. The major disadvantage
to doing so is the adverse effect on the Hot Desk Architecture. Because the
user is logged into an application server, the Sun Ray server is not able
to properly map audio and USB devices. If the user tries to move to another
Sun Ray appliance, the session from the application server will transfer over,
but the aduio and USB mappings will not.
Shared Compilers
One way to entice developers to use Sun Ray appliances for development is
to install all of the different compilers they use in a centralized location.
For example, I have installed Sun C/C++/Pascal/Fortran compilers ranging from
Sun Workshop 3.0, to Sun Forte Developer 6.2, on a centralized file server,
which is available via NFS. I've also placed many different versions of GNU
compilers and tools at the same NFS location. This alleviates the task from
the developers, and they do not have to worry about installing and maintaining
the various software packages that they need for daily work.
Tips and Tricks
Unlike regular users, developers generally open many terminal windows. When
a large number of developers open 10-15 pseudo-terminals each, the Solaris
pty resource may be overrun, and the maximum amount of pseudo-terminals will
be reached. The solution to this problem is to edit the /etc/system
file on the Sun Ray server and set the pt_cnt value to a higher
number. This solution is only needed on Solaris 2.6 and 7. In Solaris 8, the
pt_cnt variable is increased dynamically. One formula to figure
out a good value for pt_cnt on your Sun Ray server is:
(number of users) * (average number of windows/user) = number of ptys
For example, if you have 50 developers who open an average of 10 terminal
windows each, you would figure:
(50) * (10) = 500
Hence, the line to edit or add in the /etc/system file would be:
set pt_cnt= 500
Users with knowledge of the Solaris Resource Manager (SRM) software package
may be tempted to use it on a Sun Ray server to control resource usage by
end users. Because of the way the current implementation works, SRM is not
a good fit for Sun Ray server usage. SRM was designed to manage a small number
of resource-intensive tasks on a single server. SRM is unable to manage a
large amount of Sun Ray sessions with many processes and will actually slow
down the Sun Ray server.
A better way to control and limit resources used by individual Sun Ray users
is to use the Solaris limit, ulimit, and quota
commands. The following example script from "Sun Ray Server Software 1.2 Product
Notes" can be used to limit the resources used by each Sun Ray user. The script
limits the value of the stack, virtual memory, core file size, and soft file
size on the Sun Ray server:
#!/bin/ksh
# Set default limits
#
# Data/stack size in KB (1GB/200)
#
ulimit -d 1000000
ulimit -S -d 500000
ulimit -H -s 1000000
#
# VM
#
ulimit -S -v 1000000
#
# Core file size in blocks
#
ulimit -c 500000
ulimit -S -c 200000
#
# Soft file-size limit 500MB
#
ulimit -S -f 1000000
To put this script into effect, it should be copied to the /etc/dt/config/Xsession.d/
directory and made executable.
Where to Find More Information
A plethora of information is available from Sun Microsystems about configuring
and managing Sun Ray appliances. Here are some of the URLs that will help
administrators in deploying a successful Sun Ray installation: