2008年7月29日星期二

使用虚拟机在单机模拟多ArcGIS Server服务器(Windows/Linux)环境

【概述】叙述如何在Window及其虚拟机虚拟的Linux上搭建ArcGIS Server服务器,并使之如同在同一局域网中的多台独立的服务器协同工作。

【环境】Windows XP SP2,VMware 5.5(SUSE Linux Enterprise Server 10), ArcGIS Server 9.3


先决条件

ArcGIS Server 9.3 for Unix版本支持在Linux和Solaris上搭建GIS Server。但是,Linux只支持RedHat Enterprise Linux AS/ES 4.0(以下简称RHEL)和SUSE Linux Enterprise Server 10(以下简称SLES)两种发行版。其中,SLES还需要安装compat-g77包,这是一个Fortran的编译器,是ArcGIS Server 9.3安装的依赖项。

在虚拟机上安装Linux

虚拟软件采用VMware,安装同一般的操作系统安装,虚拟机的网络连接方式选择桥接(Bridged)。SLES的Compat-g77包可以从这里下载: http://rpm.pbone.net/index.php3/stat/4/idpl/3858615/com/compat-g77-3.3.5-42.1.i586.rpm.html

虚 拟Linux的网络,选择手动指定IP,因为Linux在Windows的网络中不能通过主机名(hostname)来访问,因此要想在Windows中 可以进行访问和管理,就需要使用IP来指定服务器地址。不过,不知道是否可以通过Samba或其它工具实现更简单的访问方式,有兴趣的可以进一步尝试。

在Linux上安装ArcGIS Server for Unix

1. 在虚拟机中加载ArcGIS Server for Unix的光盘镜像,进入终端,以root权限运行安装脚本:

su –
cd /media/ESRI/linux(cd /media/cdrom/linux)
./Setup

开始可能会有错误提示,有关/etc/hosts文件检验不能通过。需要以root权限修改此文件,加入真实IP和主机名的映射,比如:“192.168.200.223 hostname.domain hostname”。

2. 按提示安装完成后,在/arcgis/scripts下(假设安装目录为/arcgis)的脚本提供对GIS Server服务器的一些管理功能,比如关闭服务器(./stopserver)、启动服务器(./startserver)等。

3. 开放端口访问权限

Linux 如果有防火墙运行,要在其它机器访问就需要开放相关的端口访问权限。ArcGIS Server中使用到了135、8099、8399等一系列端口,具体开放哪些端口视不同情况而定,具体请按照下一部分关于ArcGIS Server Manager的内容,登录到ArcGIS Server Manager后,在GIS Server/Ports菜单中有详细的列表。

值得注意的是,ArcGIS Server的DCOM使用的是随机端口,在配置防火墙是会带来不便,关于如何设置固定的DCOM端口,可参考这篇文章:http://support.esri.com/index.cfm?fa=knowledgebase.techarticles.articleShow&d=32829

在Linux上发布GIS服务

1. 在浏览器中登录ArcGIS Server Manager:

进入http://192.168.200.223:8099/ (其中192.168.200.223是SLES虚拟机的IP),我们可以看到如下的界面。

刚安装的ArcGIS Server有一个默认管理员帐号admin/admin,首先使用这个帐号登录,当然,为了服务器安全,在登录后的第一件事就是修改密码:在左侧的工具条中选择GIS Server/Local GIS Users后在右侧进行修改。

最后,还需要把当前登录的Windows帐号添加为agsadmin组的用户,这样才可以在Windows主机中使用ArcCatalog等工具进行管理。

2. 使用ArcGIS Server Manager发布服务

在Services/Add New Service菜单中,我们可以选择本机的数据源或者虚拟机上的数据源进行服务的发布,发布的过程与Windows上的服务发布基本相同,但是由于虚拟机只能用IP来标识,因此在此之前还有一件事情要做。

进 入GIS Server/Server Directories菜单,原来Output Directories的Virtual Directory设置可能是这个形式的:http://wuyf-linux:8399/arcgis/server/arcgisoutput ,其中wuyf-linux是SLES的主机名,需要将其修改为IP形式的地址,如:http://192.168.200.223:8399 /arcgis/server/arcgisoutput ,否则会因为无法访问输出目录而获取不到图像。Cache Directories和Job Directories的修改类似。

3. 使用ArcCatalog连接管理

在ArcCatalog中,新建一个ArcGIS Server,URL地址输入上面刚刚发布的服务即可对服务器进行连接管理,如:http://192.168.200.223:8399/arcgis/services

这一切都完成以后,打开ArcMap测试一下:新建一个地图,加入刚刚在虚拟机上发布的服务。

多个Linux构建分布式GIS Server

1. 多个Linux虚拟机互连

首先在虚拟机中架设多个Linux主机,比如我使用了2个虚拟机互连,一个是SLES,一个是RHEL,其中SLES包含SOM和SOC,RHEL仅包含SOC,两者构成一个分布式的GIS Server。

要让两个主机可以互相访问,需要设置各自的/etc/hosts文件,该文件包含了主机名(hostname)和IP的对应关系,每个主机中的/etc/hosts文件都必须包含所有互连主机的主机名和IP对应关系。

比如,笔者两台Linux主机的/etc/hosts文件均如下设置:

127.0.0.1 localhost
192.168.200.223 wuyf-suse.domain wuyf-suse
192.168.200.224 wuyf-redhat.domain wuyf-redhat

分别在两个主机上ping对方的主机名,如果可以ping通,表示互相访问成功。

2. 配置仅包含SOC的主机

SOM 和SOC是1对多的关系,也就是一个SOC只能被一个SOM包括。在这个例子中,我们在SLES上安装了SOM和SOC,因此需要在RHEL上安装 SOC,并指定SLES的SOM来管理这个RHEL的SOC。听起来有点拗口,但其实配置很简单,在RHEL上安装ArcGIS Server for Unix时只选择安装SOC,并在后续操作需要指定SOM的时候填入SLES的完整的主机名和域名(wuyf-suse.domain),如果安装程序没 有报错,表明设置成功。

提醒:为了方便起见,上述所有的安装都在同样的用户名密码下进行的,如果其它SOC主机的登录用户名不同,则需要在SOM的GIS Server/Local GIS Users中进行添加。

3. 在SOM中添加SOC

进入SOM主机(以下简称SOM)的ArcGIS Server manager,在GIS Server/Host Machines中点击Add Host Machine,填入SOC的主机名即可,如图所示。

没有评论: