SunRay/Sun VDI 和 JavaOne

在今年的 JavaOne 大会上,Sun 为7000多个参会者部署了 SunRay 瘦客户端,每个参会者可以通过150台 SunRay 登录 OpenSolaris 2009.06/Ubuntu 8.10/Windows 7 RC 三种不同的操作系统,Sun 通过 Sun VDI 和 VirtualBox 为用户提供了约21000个虚拟桌面。参会者在注册的时候会领到一张 Smart Card,通过这张卡可以在任意一台 SunRay 上登录自己的桌面系统。

sunray users

VDI 架构

这次 JavaOne 提供了150个 SunRay,设计目标是让400-500个桌面同时运行。大会使用了以下一些服务器和架构:

  • 4台 VDI 服务器,每台配置为 Sun Fire X4450/4 CPUs/64GB RAM;
  • 5台 VirtualBox 服务器,每台配置为 Sun Fire X4450/4 CPUs/6 cores per CPU/64 GB RAM,每台服务器可以应付100个虚拟桌面;
  • 3台存储服务器,每台配置为 Sun Storage 7210 Unified Storage System/2 Opteron CPUs/4 cores per CPU/64GB RAM/48X250GB 3.5 SATA HDD,每台服务器其实可以应付1000个虚拟桌面,但是考虑到很多参会用户来了就启动一个虚拟操作系统查查 Email,然后就关闭虚拟系统走人,这种频繁启动/关闭系统的行为会造成大量 IO,所以用了3台存储服务器来分担负载。

sun vdi architecture

只有2个管理员

21000个虚拟桌面系统 + 12台服务器 + 150台 SunRay,只有2个系统管理员!VPSee 深有体会,现在我们部署了60台 SunRay + 2台服务器后实际只有0.1个系统管理员在管理(相当于一个星期只用半天),比起 PC + Windows 的方案要省钱省力绿色得多。

only 2 system administrators

SunRay 在 GDM 里直接启动 VirtualBox

virtualbox

最近一直在折腾的 SunRay 已经测试和部署完毕,第一批40台 SunRay 客户端已经从 Solaris 服务器切换到 Linux,用户运行正常,服务器负载也较低,性能还不错,按照部署 Sun Ray 服务器的硬件配置要求,只用了一台 SunFire X2200 M2 就搞定了,配置是 AMD Opteron Quad Core 2.7GHz,8GB RAM,等前段时间订购的内存到了以后就升到 16GB.

如果 SunRay 用户想用 Windows 怎么办?有两种方法,一种是进入 Linux 桌面后用 RDP 远程访问 Windows Terminal Server 服务器;还有一种就是做个 Windows 虚拟机,SunRay 用户登录后进入自己的 Windows 虚拟机,这就是接下来要做的 VDI(Virtual Desktop Infrastructure)服务,只要 SunRay 用户打开 SunRay 瘦客户端后,就出现一个操作系统选择界面,选定一个操作系统后就可以登录进自己的想要的虚拟机。现在的问题是 Sun VDI 只支持 Solaris,而且不是免费的,其他支持 SunRay 的 VDI 产品还有 VMware VDI,VMware 虽然开源了客户端 VMware View Client,但是 VMware View(include VMware VDI)不免费。既然没有免费可用的 VDI,VPSee 就决定用其他的方法来模拟 VDI 的效果,无非就是登录 GDM 的时候提供一个可选的操作系统菜单、选择相应的虚拟系统登录嘛。

1、在 GDM 的 Select Session 上增加一个登录选项,注意 /usr/bin/startxp 脚本现在还没有,需要在后面创建。

# vi /usr/share/xsessions/xp.desktop

[Desktop Entry]
Encoding=UTF-8
Name=Windows XP
Comment=My Virtual Windows XP
Exec=/usr/bin/startxp
Icon=
Type=Application

2、下载和安装 VirtualBox,并设置哪个用户可以运行 VirtualBox.

# yum groupinstall "Development Tools"
# yum install kernel-devel

# rpm -ivh VirtualBox-3.0.8_53138_rhel5-1.x86_64.rpm
# /usr/sbin/usermod -a -G vboxusers yourusername

3、在 VirtualBox 上创建一个叫做 myxp 的虚拟机并安装 Windows XP.

4、创建 /usr/bin/startxp 脚本

# vi /usr/bin/startxp

#!/bin/bash
VirtualBox -startvm myxp

$ chmod 755 startxp

5、在 SunRay 上 Log out 后重新登录,在 Select Session 选项里选择 Windows XP 后就登录到虚拟机上了,shutdown 虚拟机后就又回到 GDM 登录界面。按照同样的方法,可以创建 Ubuntu/OpenSolaris 等多个其他操作系统,只要 VirtualBox 支持就行。

select windows xp session

也可以用这种方法在启动 GDM 的时候用 RDP/VNC/NX 等工具连接到远程虚拟机或者远程桌面,比如:

# vi /usr/bin/startrdp

#!/bin/bash
rdesktop 172.16.39.1

$ chmod 755 startrdp

如果想用 VMware 的话,也可以把 VirtualBox 换成 VMware Player,当然 Windows XP 要重新安装在 VMware 上。

vmplayer -X "/home/vpsee/.vmware/Windows XP/Windows XP.vmx"

用 SDAC 测试 SunRay 服务器的负载

上周在 Linux 上配置和简单测试了一下 Sun Ray Server Software (SRSS 4.2) ,并摸清了一些 Sun Ray 服务器的硬件配置要求后,这周开始把 Sun Ray Server 引入生产环境,在用户生产应用以前 VPSee 觉得还是需要再测一下,模拟大量用户终端登录,看看服务器、客户端的效果以及 Linux 下的 SRSS 会不会出问题。

如何模拟多个用户登录呢?在 Windows 上可以使用 Sun Desktop Access Client (SDAC) 软件来连接 SunRay Server,SDAC 实际上是 SunRay 瘦客户端的软件实现,其功能和 SunRay 瘦客户端基本一样。现在的问题就是如何在一个 Windows 上建立50-100个 SDAC 连接以便模拟出50-100个瘦客户端用户。

配置 SunRay 服务器软件

1、首先需要配置 policy,否则的话 SunRay 客户端软件(SDAC)会报错,错误号:47 Access for Sun Desktop Access Clients is disabled by default:

# /opt/SUNWut/sbin/utpolicy -a -g -z both -u pseudo
# /opt/SUNWut/sbin/utrestart

配置 SunRay 客户端软件

2、下载和安装 SDAC,SDAC 目前只有 Windows 版本,登录服务器后界面如下:

sun desktop access client on windows

3、在 Windows 上(这里用的是 Vista)修改 C:\Users\VPSee\AppData\Roaming\Sun\SDAC\default,删除以 DSAKey= 开头的一行,如:DSAKey=zFWoaDJPBLeCBXspye05KH5x0W,保存文件。

4、运行 cmd.exe,进入 C:\Users\VPSee\AppData\Roaming\Sun\SDAC 目录后拷贝50个文件:

FOR /L %i in (0,1,50) DO copy default SDAC%i.txt

测试

5、使用刚才创建的50个配置文件启动 SDAC 并连接 SunRay Server,需要注意的是每个 SDAC 连接大约消耗 15MB 左右的内存,2GB 内存的机器可以尝试创建100个配置文件、建立100个连接。进入 C:\Program Files\Sun\Sun Desktop Access Client 目录后运行:

FOR /L %i in (0,1,50) DO SDAC.exe --profile SDAC%i.txt 172.16.38.1

6、手动一个个登录,每个终端都启动几个应用程序看一下,并查看服务器状况。

可以在服务器上看看有多少客户端连进来:

# /opt/SUNWut/bin/utwho -Hac

utdesktop

由 SunRay 耗电量想到的

sunray2

最近一直在忙 SunRay 的事情,在学校部署 SunRay 服务器、虚拟化环境和 SunRay 瘦客户机解决方案。VPSee 渐渐体会到这种 ”瘦客户端+服务器“ 方案的巨大优势,感觉这种传统的 ”服务器中心“ 的计算模式又回来了,省心、省钱、省力。SunRay 瘦客户机方案已经问世多年,现在 SunRay 配上 Sun VDI 把虚拟技术带到了瘦客户端,SunRay 发现在这种虚拟化的环境下有更多的优势。国外企业很善于抓住这些能降低成本的技术和机会,相反国内企业还是 PC + Windows 天下,真正的虚拟技术、绿色节能计算、瘦客户端等的应用还是很少,总是跟不上技术的潮流。今天看了一下 SunRay 的参数,惊讶的发现 SunRay 耗电只有 4W,比一台 PC 节能多了,马上想到的就是每年能节省多少电费。除了节能,SunRay 还有什么优点呢?

零维护

如果一家企业有500台左右 PC,对于 IT 人员来说,“防范病毒、确保安全性、打补丁、升级、重装系统、安装软件、换硬件、开机箱、选购硬件、订货、维修”,这些工作十分耗费精力,而且枯燥乏味;对于企业来说,管理这些 PC 不仅十分昂贵,而且还耗费时间、人力,极大增加了企业的运营成本;对用户来说,病毒感染、数据丢失最可怕,把数据存在服务器上由 IT 人员管理备份更省心省力。相反,维护500个 SunRay 就容易多了,IT 人员只需要坐在那里管理好几台服务器就可以了,不用跑到用户那里解决电脑故障,而且服务器是 Solaris/Linux 系统,麻烦更少。有人做过统计,维护每个 Sun Ray 平均每年只需30分钟,而维护每台 PC 却需要12小时。

低成本

算一下初始成本,假设 500 PC VS 500 SunRay,每台 SunRay 200美元(包括 License)、每台服务器4000美元(Solaris/Linux 操作系统免费),每台 PC 450美元(Windows 操作系统算50美元)。SunRay 和 PC 都需要相同的显示器、鼠标、键盘等外设,所以这些价格不计算在内。

500 × 200 + 4000 × 6 = 124000美元
500 × 450 = 225000美元

上面只是初始化硬件设备支出,考虑到 IT 人员的人力成本,维护6台 SunRay 服务器只需要1个系统管理员,维护500台 PC至少需要5个管理员。

静音

静音对于有的企业、学校实验室、图书馆、呼叫中心等很重要。100台 PC 的实验室,风扇、硬盘噪音加在一起,恐怕老师讲话都听不见,SunRay 没有声音。

节能

SunRay 的耗电量仅有 4W,这意味着什么?意味着企业每年可以节省更多的费用。用下面的公式来算算电费,

(每小时耗电量瓦特 x 使用的小时数 / 1000) x 每小时每千瓦费用 = 总费用

假设 500 PC VS 500 SunRay,每个 SunRay 每小时耗费 4W,每台 PC 耗电 100W(平均,采用普通模式,不考虑高负荷运算,不考虑不同处理器节能能力,不考虑睡眠、屏保节能状态等),每天按使用10小时计算(很多人下班后不关电脑),每年按270天计算(除去节假日,有时候还需要加班)每度企业用电按0.76RMB 计算(不同地区不同时期费用不同):

500 × 4 × 10 × 270 / 1000 × 0.76 = 4104 RMB
500 × 100 × 10 × 270 / 1000 × 0.76 = 102600 RMB

对于拥有几万台电脑的大型企业、学校、政府机构来说这是一笔巨大的支出,这也是为什么现在 IT 巨头纷纷投资开发绿色节能计算的原因,他们可不是为了地球更美好,以前可是一个劲推更高更快更强大的处理器,丝毫没提到节能。Google 也在为它的几百万台服务器开发太阳能数据中心。

安全

SunRay 用一张 Smart 卡就可以完全实现客户在任何终端随时登录,随时随地无缝集成,数据不必拷来拷去,安全可靠,对电信、银行、呼叫中心、宾馆、医院、学校等多终端的环境极其适用

部署 Sun Ray 服务器的硬件配置要求

上个星期在 Linux 上配置和测试了 Sun Ray Server Software (SRSS 4.2) 的运行情况,这个星期准备开始部署 Sun Ray,周围对 Sun Ray 有经验的人不多,打电话给 SUN 的技术支持,SUN 的回答让 VPSee 考虑是不是要重新购买服务器。VPSee 的理念是最小化资源最大化性能,追求最高的性价比,标准的 performance guru,不能忍受巨型服务器只跑几个简单应用这种杀鸡用牛刀的做法:)VPSee 决定慢慢试,先用一台服务器部署20-40台 Sun Ray 瘦客户端,测试性能和 SRSS 对服务器硬件的要求,再逐步调整服务器硬件和增加服务器数量,慢慢扩大到能支撑100台左右 Sun Ray 瘦客户端同时访问。

在 sun-ray.org 的 wiki 上有一篇 Sizing,介绍了3个 Sun Ray 服务器部署的实际例子,其中有个使用的是 AMD Opteron/SUN X4100,和 VPSee 现在手头上的硬件类似,可以参考一下:

Number of Sun Rays: 150 (3 sites and 1 remote office)
Number of Sun Ray Servers: 8
Type of Servers: Dual core Opterons. x4100 (4 core)
Average Concurrency: 16 users per server
Average live sessions per CPU: 4 per core
Average memory per CPU core: 4GB
Applications: JDS, Mozilla, Firefox, Evolution, OpenOffice, Gaim, Gimp, Sun Ray Connector, Java based applications, browser based apps.

Rob’s Memory Based Sizing Guide 介绍了一种根据内存来确定服务器硬件配置的方法,在一个典型的桌面环境里,每个用户大约需要 256MB 内存,每 3GB 内存需要1颗 CPU Core. 所以,1个拥有 2 Dual Core (4 cores) 和 12GB 内存的 Sun X4100 可以应付约48个用户;1个 Dual CPU Quad Core (8 cores) 和 24GB 内存的服务器可以应付约96个用户。

根据 SUN 发布的 Sun Ray Technology Server Sizing Recommendations,对付 75-100 Unix Desktop 用户的服务器推荐配置如下:

Users CPU CPU Quantity CPU Cores CPU Frequency Memory
75-100 x86/x64 4-8 2 2.6-2.8GHz 16-32GB

将要部署的 Sun Ray 服务器主要为100个用户提供完整的桌面服务,用户登录后将能使用 GNOME 桌面环境、Firefox、运行 Java 程序、编译小程序、Email、OpenOffice、和其他桌面程序等,有了这个目标后再来看看对服务器设备的要求。综合上面的参考建议,每 4GB 内存分享1颗 CPU Core,每 256MB 内存分配给1个用户,操作系统本身和 Sun Ray Server/JDK 还需要至少 1GB 内存(相当于4个用户),所以首期部署的服务器配置有如下几个选择:

Users CPU CPU Quantity CPU Cores CPU Frequency Memory
12 x86/x64 1 1 2.6-2.8GHz 4GB
28 x86/x64 1 2 2.6-2.8GHz 8GB
60 x86/x64 1 4 2.6-2.8GHz 16GB

在 CentOS 上安装和配置 Sun Ray Server Software

sunray2

几年前 Sun Microsystems 给我们捐了一个实验室,大概100多台 SunRay 瘦客户端/显示器 + 几台 SUN 服务器、鼠标、键盘,全套 Sun 的设备,上面一直跑的是 Solaris. SunRay 瘦客户端无 CPU 无 RAM,开机自动找 SunRay Server 然后进入服务器的登录界面,标准的 ”网络就是计算机“。VPSee 最近计划把 Solaris 改成 CentOS,正在做测试。

首先确认安装了 GNOME:

# yum groupinstall "X Window System" "GNOME Desktop Environment"

必要软件

解压 srss_4.2_linux.zip 后,必要的 jre,tomcat 和 pdksh 软件包都在 srss_4.2/Supplemental 下,所以不必单独去下载:

srss_4.2/Supplemental/Java_Runtime_Environment/Linux/jre-6u13-linux-i586.bin
srss_4.2/Supplemental/Apache_Tomcat/apache-tomcat-5.5.20.tar.gz
srss_4.2/Supplemental/RHEL/i386/pdksh-5.2.14-30.3.i386.rpm
srss_4.2/GDM_2.16.7/Linux/Packages/gdm-2.16.7-2.1_01.sunray.i386.rpm

安装一些必要包

# yum install glib dhcp openldap-clients openldap tftp-server libXp \
openmotif22 openssl compat-libstdc++-33 libusb-devel compat-openldap
# yum groupinstall "Development Tools"
# yum install kernel-devel

除了上面必要包以外,SUN Ray 需要用到 pdksh(替代 ksh)以及特别版本的 gdm:

# rpm -ivh --force --nodeps pdksh-5.2.14-30.3.i386.rpm
# rpm -ivh --force --nodeps gdm-2.16.7-2.1_01.sunray.i386.rpm

安装 Java

Sun Ray Software 需要 SUN 版本的 JDK,所以如果是其他版本的 JDK,比如:OpenJDK,IBM JDK 等什么的需要先删除后再安装 SUN JDK,其实 Java 运行环境安装 JRE 就可以了,不一定需要 JDK:

# chmod +x jre-6u13-linux-i586.bin
# ./jre-6u13-linux-i586.bin
# mkdir /usr/java
# mv jre1.6.0_13 /usr/java/
# ln -sf /usr/java/jre1.6.0_13/bin/java /usr/bin/java

安装 Tomcat

不要用 yum install tomcat5 安装 Tomcat,会安装一堆不必要的包。用 srss_4.2_linux.zip 里面那个,省得再去单独下载:

# tar xvzf apache-tomcat-5.5.20.tar.gz
# mv apache-tomcat-5.5.20 /opt; cd /opt
# ln -sf apache-tomcat-5.5.20 apache-tomcat

在 /etc/init.d/ 增加新建一个 Tomcat 启动配置文件:

# vi /etc/init.d/tomcat

#!/bin/bash
#
# Tomcat Server
#
# chkconfig: 345 96 30
# description: Java servlet container

JAVA_HOME=/usr/java/jre1.6.0_13/
PATH=${JAVA_HOME}/bin:${PATH}
TOMCAT_START=/opt/apache-tomcat/bin/startup.sh
TOMCAT_STOP=/opt/apache-tomcat/bin/shutdown.sh
export JAVA_HOME PATH

start() {
    if [ -x ${TOMCAT_START} ]; then
        echo "Starting tomcat server..."
        ${TOMCAT_START} &
    else
        echo "Cannot start tomcat server"
    fi
}

stop() {
    if [ -x ${TOMCAT_STOP} ]; then
        echo "Stopping tomcat server..."
        ${TOMCAT_STOP} &
    else
        echo "Cannot stop tomcat server"
    fi
}

restart() {
    stop
    sleep 10
    start
}

status() {
    echo "No status available for tomcat server"
}

case "$1" in
    'start')
        start
        ;;
    'stop')
        stop
        ;;
    'restart')
        restart
        ;;
    'status')
        status
        ;;
*)
echo "Please supply an argument [start|stop|restart]"
esac

启动 Tomcat:

# chmod +x /etc/init.d/tomcat
# /sbin/chkconfig tomcat on
# /sbin/service tomcat start

安装 Sun Ray Software

# unzip srss_4.2_linux.zip
# cd srss_4.2
# ./utinstall
# /sbin/shutdown -r now

也可以不用 Sun Ray 硬件设备,下载一个 Sun Desktop Access Client 1.0 可以在 Windows 上连接 Sun Ray 服务器。

配置 Sun Ray Server

运行 utconfig 报错:

# cd /opt/SUNWut/sbin
# ./utconfig
...
Enter Sun Ray admin password: 
Re-enter Sun Ray admin password: 
/opt/SUNWut/sbin/utpw: error while loading shared libraries: libldap.so.199: cannot open shared object file: No such file or directory

解决办法:

# ln -sf /usr/lib/libexpat.so /usr/lib/libexpat.so.1
# ln -sf /usr/lib/libldap-2.3.so.0.2.31 /usr/lib/libldap.so.199
# ln -sf /usr/lib/libgdbm.so.2.0.0 /usr/lib/libgdbm.so.3
# ln -sf /usr/lib/liblber-2.3.so.0.2.31 /usr/lib/liblber.so.199

配置 GDM

修改 GDM 配置文件后,启动 GDM:

# vi /etc/X11/gdm/custom.conf

[daemon]
# These are for the SunRay Services
DefaultPath=/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/opt/SUNWut/bin
PostLoginScriptDir=/etc/X11/gdm/SunRayPostLogin/
PreSessionScriptDir=/etc/X11/gdm/SunRayPreSession/
PostSessionScriptDir=/etc/X11/gdm/SunRayPostSession/
DisplayInitDir=/etc/X11/gdm/SunRayInit
#Allow the SRSS to Dynamicly Allcoate XServers
VTAllocation=false
DynamicXServers=true

# Do not allow users to Reboot/Halt/Suspend System
RebootCommand=
HaltCommand=
SuspendCommand=
HibernateCommand=
Greeter=/usr/libexec/gdmgreeter

[security]

[xdmcp]

[gui]

[greeter]

[chooser]

[debug]

[servers]

# /usr/sbin/gdm-binary

配置 DHCP 服务器

安装完 Sun Ray Server 软件后,会增加1个文件 SunRay-interface-eth1 文件,重启 dhcpd 服务的时候会报错,说 SunRay-interface-eth1 这个配置文件格式不对,用以下格式替换:

# vi /etc/opt/SUNWut/net/dhcp/SunRay-interface-eth1

#Sun Ray
option space SunRay;
option SunRay.AuthSrvr  code 21 = ip-address;
option SunRay.AuthSrvr  192.168.128.1;
option SunRay.FWSrvr    code 31 = ip-address;
option SunRay.FWSrvr    192.168.128.1;
option SunRay.NewTVer   code 23 = text;
option SunRay.NewTVer   "4.1_50,REV=2008.09.25.12.37";
option SunRay.Intf      code 33 = text;
option SunRay.Intf      "eth1";
option SunRay.LogHost   code 24 = ip-address;
option SunRay.LogHost   192.168.128.1;
option SunRay.LogKern   code 25 = integer 8;
option SunRay.LogKern   6;
option SunRay.LogNet    code 26 = integer 8;
option SunRay.LogNet    6;
option SunRay.LogUSB    code 27 = integer 8;
option SunRay.LogUSB    6;
option SunRay.LogVid    code 28 = integer 8;
option SunRay.LogVid    6;
option SunRay.LogAppl   code 29 = integer 8;
option SunRay.LogAppl   6;

group
{
        vendor-option-space SunRay;
        subnet 192.168.128.0 netmask 255.255.255.0 {
                default-lease-time 720000;
                max-lease-time 1440000;
                authoritative;
                option routers 192.168.128.1;
                range 192.168.128.100 192.168.128.199;
        }
}

# /etc/init.d/dhcpd restart

关闭防火墙和 SELinux

# /usr/bin/system-config-securitylevel

运行

重启系统后,Sun Ray 就应该自动运行了,需要一些配置才能让 Sun Ray 瘦客户端连上 CentOS 上的 Sun Ray 服务器。Sun Ray 支持两种常见的网络配置方式:dedicated interconnect 和 directly-connected shared subnet,如图所示:

sun ray network topolog

dedicated interconnect 是建立一个私有内部网络,Sun Ray Server 的一个网络接口连着外部局域网,另一个网络接口连着由众多 Sun Ray 瘦客户端组成的私有网络。这时需要在服务器上配置 DHCP Server 来给每个瘦客户端分配 IP 地址。(假设 eth0 连着外部网,eth1 连着内部网)

# /opt/SUNWut/sbin/utadm -a eth1
# /opt/SUNWut/sbin/utrestart

directly-connected shared subnet 是直接连在外部网上,Sun Ray Server 和 Sun Ray 瘦客户端都在同一个子网络上,由第三方 DHCP 服务器提供 IP 地址。

# /opt/SUNWut/sbin/utadm -L on
# /opt/SUNWut/sbin/utrestart

这种方式通常会使用第三方的 DHCP 服务,Sun Ray Server 和 Client 都从第三方得到 IP 地址,这里就会有一个问题,第三方 DHCP Server 没有专门对 Sun Ray 设置必要的参数,导致 Sun Ray 瘦客户端得不到足够多的信息连接上 Sun Ray Server,这时需要把 Sun Ray 瘦客户端用 dedicated interconnect 的方式连上 Sun Ray Server,从服务器那里下载并更新 firmware 后才能正确在 directly-connected shared subnet 的网络上运行,一旦更新 firmware 后就可以脱离 dedicated interconnect 在 directly-connected shared subnet 上运行。

如果不使用第三方 DHCP 服务,由 Sun Ray Server 自己提供 DHCP 服务的话,可以用以下命令把 172.16.38.0 网段加入到 Sun Ray Server 管理:

# /opt/SUNWut/sbin/utadm -A 172.16.38.0
# /opt/SUNWut/sbin/utrestart

Trouble Shooting

经过几天的战斗终于让 Sun Ray Server 运行在了 Linux 上,期间遇到很多问题,很多都和没有正确 link 对应的库有关,做几个连接就好了。主要问题还是在 gdm,如果 Sun Ray 瘦客户端的屏幕上出现 26D/27D 的错误多半和 gdm 有关,要确定装了 GNOME 桌面系统和正确启动了 gdm,记下几个命令以便以后排错:

# /opt/SUNWut/sbin/utrestart
# /opt/SUNWut/sbin/utdesktop -l
# /opt/SUNWut/sbin/utdesktop -lc
# /opt/SUNWut/sbin/utsession -p
# /opt/SUNWut/lib/Xnewt
# /usr/sbin/gdm-binary
# /usr/libexec/gdmgreeter 
# /usr/sbin/dhcpd

如果有任何错误,检查一下有没有需要安装的包没有安装,我的这个系统缺少 glitz:

# rpm -ivh glitz-0.5.6-5.i386.rpm
# rpm -ivh glitz-devel-0.5.6-5.i386.rpm