Chinaunix首页 | 论坛 | 博客
  • 博客访问: 361944
  • 博文数量: 42
  • 博客积分: 13223
  • 博客等级: 上将
  • 技术积分: 515
  • 用 户 组: 普通用户
  • 注册时间: 2004-10-09 09:31
文章分类

全部博文(42)

文章存档

2011年(1)

2010年(41)

分类:

2010-08-13 16:35:45

    由于目前人民银行的第二代支付系统仍然还没有上线,而且实际的上线日期恐怕也不确定,所以许多商业银行不得不继续使用第一代的支付系统平台。出于对成本的考虑,许多商业银行仍然选择了SCO UnixWare 7的PC平台,而不是IBM小机的AIX平台。

    SCO由于种种原因,目前已经处于破产保护状态,所以其操作系统软件已经停止了更新。而服务器等硬件却是基本每年都要更新换代,从而导致SCO的系统已经基本无法直接安装在物理服务器上了。

    由于笔者所在的公司,银行是主要的客户,尤其是针对现代化支付系统这部分,所以公司通过和各个合作伙伴的合作,提供了一套能在实际的物理机器上安装现代化支付系统的方案,也基本是目前唯一的一套能用物理服务器实施SCO平台的支付系统的方案。但随着该HP的该型号服务器也即将停产,而且很多客户可能不愿意采用HP的服务器等情况的出现,以及虚拟化技术的发展,未来采用虚拟化技术来使得SCO等类似的系统继续保留在生产线上,可能是唯一的解决方案了。而且笔者也有客户可能在虚拟化平台上部署第一代支付系统,于是笔者做了以下测试。

    一、测试环境

    1)服务器:IBM 3550M2; 2CPU(4核,E5504,2Ghz主频);32G内存;本地1块146GB SAS硬盘;2块千兆网卡

    2)软件:ESX 4.0 (Build 164009);UnixWare 7.1.3;GDS 4.0

    二、安装

    一)首先在IBM 3550M2服务器上安装ESX 4.0,具体安装过程在此就不详细阐述了,和Linux的安装类似,可以参考VMware的官方文档或者网上的其它文档。(笔者有空也许也会自己写一个,呵呵)

二)然后配置虚拟机。第一个虚拟机命名为713a,分配1G内存,20G硬盘,1个vCPU。第二个虚拟机命名为713b,同样分配1G内存,1个vCPU,10G硬盘。由于考虑到硬盘空间,所以第二个虚拟机的硬盘只划分了10G空间。不过用于测试unixware 7.1.3空间已经足够了。

三)安装第一个guest OS UnixWare 7.1.3。安装UnixWare 7.1.3时,有如下注意事项:

1)              注意,在创建虚拟机的时候,如果选择了虚拟机的类型为SCO Unixware 7,那么创建时ESX默认分配的SCSI磁盘控制器是Buslogic并行。但如果用此磁盘控制器,安装UnixWare 7.1.3的时候,系统是找不到硬盘的。需要单独加载驱动程序。不过Buslogic的驱动是啥,笔者没有仔细去研究,笔者在创建713的虚拟机时,选择的是LSI Logic并行的SCSI磁盘控制器。按理UnixWare 7.1.3是应该支持Buslogic并行和LSI Logic并行的SCSI控制器才对的,不过在笔者的测试中,如果不单独加载驱动,UnixWare 7.1.3是无法识别到硬盘的。

2)    安装驱动用到的软盘,可以是实际的软盘,也可以是软件镜像文件。在将虚拟机的软驱连接到软盘镜像文件时,vsphere client仅支持.flp后缀命的软盘镜像文件。而通常下载的SCO的软盘镜像文件命的后缀为.dd或者.image的文件。只需要将这些文件的后缀命修改为.flp即可。当然,前提是你下载的确实是软盘镜像文件。

其它的安装步骤和在物理机上的安装没啥区别。安装完成后,请安装UnixWare 7.1.3的mp5补丁包。如果仅仅是简单测试是否能正常安装UnixWare,也可以不安装补丁,建议最好安装。

四)安装第二个guest OS UnixWare 7.1.3。

由于笔者的测试环境中没有安装vCenter,所以无法采用模版和克隆的方法来部署第二个guest OS。如果安装了vCenter Server,将此ESX主机由vCenter Server来管理,则可以通过模版或者克隆的方法来快速部署相同类型的虚拟机,会非常方便,并节省大量的安装OS和补丁等的时间和减少许多无聊的重复劳动。

三、配置共享硬盘。

既然要进行双机热备HA的测试,则必然要用到共享硬盘。在只有一台ESX主机的情况下,可以通过如下方法来设置共享硬盘,以供同一台ESX主机上的2台虚拟机共享。

1)配制度第一台虚拟机。首先停止虚拟机。将713a的VM关闭,然后选中此虚拟机,点击编辑虚拟机设置,点击添加,选择硬盘,点击下一步,选择创建新的硬盘,再点击下一步,然后设定硬盘的大小,例如20GB,勾选磁盘设置中的“支持集群功能,如容错”,在位置设置中,选中指定存储位置,点击浏览,选择共享虚拟磁盘存放的位置,点击确定,再点击下一步;在虚拟设备节点中,设定为SCSI(2:0),这样指定此硬盘挂载在一块独立的SCSI卡上;然后点击下一步,点击完成。接着在此713a虚拟机的属性中,选中刚刚创建的SCSI卡,SCSI卡类型更改为LSI Logic 并行,选择SCSI总线共享设置为虚拟,点击确定退出对虚拟机的设置。

2)配制度第二台虚拟机。首先停止虚拟机。然后选中此虚拟机,点击编辑虚拟机设置,点击添加,选择硬盘,点击下一步,选择创建使用现有虚拟磁盘,再点击下一步,在“磁盘文件路径”中,点击浏览按钮,选择在713a虚拟机中增加的磁盘存放的数据存储,然后找到为其配置的第二块硬盘的vmdk文件,例如Storage1数据存储下的713a文件夹下的713a_1.vmdk文件,选择此文件,点击确定;高级选项的在虚拟设备节点中,同样设定为SCSI(2:0),这样指定此硬盘挂载在一块独立的SCSI卡上;(注意,第二台虚拟机的虚拟设备节点最好是和第一台虚拟机的虚拟设备节点一致);然后点击下一步,点击完成。接着在此713b虚拟机的属性中,选中刚刚创建的SCSI卡,SCSI卡类型更改为LSI Logic 并行,选择SCSI总线共享设置为虚拟,点击确定退出对虚拟机的设置。

3)在第一台虚拟机中配置第二块硬盘。

启动虚拟机713a,系统启动时,可以看到系统增加了一块SCSI卡,并且在该卡下面有一块磁盘。用root用户登陆系统后,可以用sdiconfig l 命令确认UnixWare 7.1.3已经找到了新增加的SCSI卡和硬盘。然后用diskadd命令增加此硬盘。如果要做完全的测试,可以对此硬盘划分裸设备,并安装sybase数据库,并将数据库创建在此硬盘上。笔者测试时为了简单,只对此硬盘创建了一个文件系统,并将其mount到/test目录。

4)在第二台虚拟机中识别此第二块硬盘。

如果是在物理环境中,两台物理服务器中间连接的是SCSI、SAS或者FC的共享存储,第一台UnixWare 7.1.3配置完毕共享存储之后,第二台UnixWare 7.1.3启动之后就能找到共享磁盘的。那么在虚拟机中是否也是同样如此呢?

启动第二台UnixWare 7.1.3的虚拟机713b,注意观察OS的启动过程,此时713b确实找到了第二块SCSI卡,但第二块SCSI卡下却没有磁盘!!用root用户登陆,用sdiconfig l 命令查看,确实只有SCSI卡,但没有第二块硬盘的。

怎么回事呢?难道配置有问题吗?查看虚拟机的配置,都是正确的。是否是第一台虚拟机713a锁定了共享磁盘呢?于是先关闭713a的guest OS,再重启动713b的guest OS。但是仍然没有找到磁盘!!问题出在什么地方?难道ESX主机都要重启动才行??

再想想,对了,713a的虚拟机,只是guest OS关闭了,但是此虚拟机并没有断电。于是先将713a和713b的虚拟机都关闭,并且关闭电源。然后再打开713b的虚拟机,启动713,仔细观察启动过程,这次虚拟机终于正常的识别到了第二块SCSI卡和第二块共享的硬盘了。

系统启动之后,root用户登陆,用sdiconfig l 命令查看,确实能看到第二块硬盘了。用mount命令也能加载在713a这台虚拟机上创建的文件系统,并能对文件系统进行正常的读写了。

5)共享磁盘的共享测试

第二台虚拟机识别到了共享磁盘了,会不会此时第一台虚拟机反而识别不到了呢?启动第一台虚拟机713a,注意观察启动过程,还好,笔者担心的事情并没有发生,713a的虚拟机同样正常识别到了共享磁盘的。

进一步测试。713a启动后,root用户登陆,用sdiconfig l 命令确认,OS确实找到了第二块SCSI卡和共享磁盘。此时共享磁盘中的文件系统是mount在713b的虚拟机上的。如果此时在713a中执行mount命令去加载共享文件系统,系统会提升此文件系统已经损坏。在713b中,umount文件系统之后,在713a中就能正常的mount此共享硬盘上的文件系统了。随后在713a的虚拟机上,向共享磁盘的文件系统编辑一个文件,umount此文件系统;然后在713b的虚拟机上mount共享文件系统,能正确读取此文件的内容。然后再增加文件内容,umount文件系统,在713a虚拟机上mount文件系统,读取数据正常。由此基本可以判断在同一台ESX主机上,两台虚拟机共享磁盘配置和实验成功。下面进行双机热备测试。

6)双机热备测试

分别在两台713的虚拟机上安装GDS 4.0。可以安装网卡心跳版本,也可以安装串口心跳版本。如果要安装网卡版本心跳的GDS,需要再为每台虚拟机再分配一块网卡,并为新增加的网卡配置IP地址。这里笔者用了串口版本的GDS用于测试。为每台虚拟机增加串口设备,选择使用主机物理端口。聪明如你(读者),肯定马上想到了两台虚拟机都在同一个物理主机上,都去使用主机的物理的串口设备岂不是有冲突了?笔者在两台713的虚拟机上用GDS自带的串口测试程序进行测试,一台报串口设备bad。这其实应该还是同时启动两台713的虚拟机,而先启动的虚拟机先抢占了串口设备,对其进行了配置,而后启动的虚拟机其实根本没有识别到串口设备导致的。正如我们前面在设置共享硬盘时遇到的情况一样。

其实这样的情况也并不影响我们测试GDS双机软件,只是GDS双机软件运行时会报串口通讯错误而已。配置GDS只mount共享磁盘的文件系统,和启动虚拟IP地址,然后进行测试。测试过程一切正常,切换IP、文件系统等都ok!

五、可以进行的进一步测试

通过上述测试,基本可以说明在单台ESX主机下架构UnixWare 7.1.3的双机热备架构是完全没问题的,虽然本次测试没有安装sybase数据库。

有环境和机会还可以继续进行如下测试:

1.测试同一台ESX主机下,是否能够两台UnixWare 7.1.3同时使用主机的物理串口进行心跳通讯。如果不行,则在真正的生产环境下,就只能采用网卡版本的GDS双机热备软件了。

2.完全安装sybase数据库和支付系统软件,进行双机热备GDS的测试

3.安装网卡版本的GDS进行双机热备测试

4.配置两台物理的ESX服务器和一台共享存储,进行两台UnixWare 7.1.3的guest OS运行在不同的ESX服务器下的双机热备测试。

阅读(7022) | 评论(3) | 转发(1) |
给主人留下些什么吧!~~

saintdragon2011-10-16 21:56:58

beilycao: 哥们这个技术贴解决我大问题,呵呵.....
有用就好。一年多不玩sco了

beilycao2011-10-14 17:27:16

哥们这个技术贴解决我大问题,呵呵

sclswh2010-08-15 17:53:30

努力学习!