在 CentOS 上安装和配置 Sun Ray Server Software
2009年09月25日 | 标签: centos, sunray | 作者:vpsee
几年前 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,如图所示:
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
请问能用wyse的thin客户端替代sun ray的客户端么?
不能,wyse 和 sunray 可算同类产品(不完全是),他们的想法都是一样,但是技术都不同啊。
我们部门有几个wyse的客户端和一些闲散的服务器,想做一下VDI的实验。
现在有不产生授权费用的VDI解决方案么?
现在主要的的几个 VDI 解决方案(Citrix, VMware, Sun)都不是免费的。
很明显sun的server可以用其他的server代替
那么这里的sun ray可以用lenove的pc来模拟代替么?
嗯,这篇文章里已经提到了:
这块我看到,但是这个方式有点为了模拟而模拟,或者说有点浪费软件的嫌疑(两套windows授权)
可不可以像我上次请教的用PC来模拟,但是采用先沟通再进系统,而不是采用SDAC1.0先进系统再沟通呢?
@aufemercury
Sun Ray Server Software 不是开源的系统,所以无法知晓客户端和服务器是如何通信和协议的,所以也没办法自己实现类似的 PC 模拟系统。
博主请教一下,sunray现在已经能跑在linux上,包括oracle的 VDI,但好像VDI一定要跑在sun的存储上?另外,sunray,一定需要结合oracle的 VDI运行么?
@jplele
不清楚现在 sunray 发展成什么样了,当时必须结合 sun/oracle 的 VDI 才能用,是商业软件。
@jplele Sun Ray有RDP Connector和VMWare View Connector,所以也可以用微软或者VMWare的VDI