转载

一个树莓派集群 (VAX)

一个树莓派集群 (VAX)

在上个月的一篇博客文章里,我着眼于如何用树莓派仿真强大的ibm大型机,在本文中我来描述如何用一对树莓派来仿真可被配置用来组建VMScluster群集的VAX计算机。

这次被用来仿真的MicroVAX设备是比较现代的,而且比IBM 4381处理器要更小一些,然而VAX体系结构和OpenVMS操作系统毫不逊色,在1989年的简介中,一个入门级别的microvax3900 会花费你至少120,000美元,而且,就像ibm的VM操作系统一样,你会误以为openVMS已经不复存在了,而实际上OpenVMS目前仍可运行诸多至关重要的繁重工作。

SimH是一个相当出色的软件,通过它可以对VAX硬件仿真进行。 在这个软件上运行OpenVMS,需要相应的执照,而幸运的是,能够使用OpenVMS Hobbyist程序免费实现。

SimH软件是配置用来仿真一个,64Mb内存,1.5Gb硬盘和一个CD-ROM光驱的MicroVAX 3900。另外将需要一个包含OpenVMS安装媒体的ISO镜像文件,加载到虚拟光驱来启动仿真器。该软件的安装相当简单 ,下图展示出了部分安装过程。


一个树莓派集群 (VAX)

为了更真实起见,上图展示了真正的DEC VT420串口终端通过3.3v的RS232串口转换器连接到1号树莓派的通用异步接收发送接口(UART)。不过,为了能够清晰的说明,下面的屏幕截图则是Linux笔记本截取的,这台笔记本是通过USB串口转换器,即"FTDI连接线",连接到2号树莓派的。

一个树莓派集群 (VAX)

在上面的屏幕截图中,我们可以看到OpenVMS启动了,而且还显示了许多操作者发送的信息,即"OPCOM"信息。系统一旦启动完成,我们就可以登录了,然后就可以运行"show system"命令查看信息,显示的信息与Linux上运行"ps -aef"的相同。注意:OpenVMS命令是大小写不敏感的,而且还可以对命令缩写。

一个树莓派集群 (VAX) 在有一个系统启动并运转的前提下,我们至少一个还需要另外一个树莓派来搭建一个集群。 这里我们通过网络交叉线缆连接另一个树莓派,并且每一个都配置静态ip地址。 尽管在实际应用中我们根本不会用到TCP/IP协议,但是将其配置好是有助于测试以太网连接和拷贝数据的。

一个树莓派集群 (VAX)

一旦我们对网络连接测试完成,我们就可以按照完全相同的方式配置第二个SimH,不过仿真出来的以太网卡配置的MAC地址要与第一个不同。当然,安装OpenVMS的时候,我们给系统指定了另一个节点名,安装网络通信软件的时候,我们会配置另一个 DECnet 地址。我们的总的配置如下:

机器       地址
1号树莓派    192.168.1.1
2号树莓派    192.168.1.2
VAX1(运行在1号树莓派上)    1.1(DECnet地址)
VAX2(运行在2号树莓派上)    1.2(DECnet地址)

现在两块板子已经启动好Linux,同时配置好的仿真软件已经启动好OpenVMC了,那么我们就可以从一个仿真的VAX通过"set host"(DECnet上与telnet等同的命令)连接到另一台VAX了。

一个树莓派集群 (VAX)

注意:像前面所说明的那样,2号树莓派已经连接到笔记本了。那么上面所截屏幕则显示的从VAX2登录到VAX1。

现在我们可以看到,仿真的VAXen(VAX的复数形式)彼此间可以通过网络互相访问,下一步是将它们配置到群集中。配置过程非常简单,只需要在每个VAX上运行 cluster_config脚本 ,回答一些基本的问题,包括当节点请求加入到群集中时所需要的密码。

一个树莓派集群 (VAX)

第一个配置好的节点启动后,我就可以在第二个节点上配置集群软件,当这个节点重启时,第一个节点将显示消息,指示它请求加入到群集,这样VAX2就配置好了,VAX1也是如此。

一个树莓派集群 (VAX)

现在,我们已经拥有了一个具有两个节点的集群了,我们可以运行命令"show cluster"查看各个节点的状态。

一个树莓派集群 (VAX)

VMScluster 创建于 1983 年,它在那个时代是非常先进的,与最近的同类产品相比较,它都是值得点赞的。例如,它允许在多个集群间和多个节点间透明地实现磁盘共享,从而在同一时刻(在记录级加锁的情况下)向多个集群和多个节点写入同一个文件,同时它还实现了负载均衡和分布式队列。

我们可以使用"show devices d"命令查看集群里所有硬盘的使用情况,每个硬盘的信息显示的前面是其所在的节点名和分隔符"$".每个节点上的DUA0:硬盘是系统硬盘,而DUA1:-DUA3:硬盘是其它未使用的大小为1.5Gb的硬盘。

一个树莓派集群 (VAX)

许多OpenVMS命令都能在其后添加"/cluster",这表示该命令是在针对整个集群的。例如: "show users/cluster"。

一个树莓派集群 (VAX)

最后再提醒一下,如果你把集群节点中的任何一台关了机,那么这个节点就会被移出集群。

一个树莓派集群 (VAX)

这种情况下,其余节点就会采取预警处理,即停止正在进行的处理,此时集群节点间通信就会丢失,集群就出现我们通常不希望看到情况:" 脑裂 "。不过两个节点的集群针对这种情况的配置就容易多了,它可配置成:如果其中一个节点丢失或者关机,那么另一节点会像以前一样继续运行。

结论

这次实践实际上是因为喜欢才进行的,不过通过这次实践我们还看到在树莓派硬件板模拟的VAX硬件平台上创建VMScluster是多么简单。同时这次实践还向我们展示怎样把树莓派和开放源代码软件比如SimH结合起来,从而实现计算机保护,以供展览。我们用低廉的树莓派实现了经典的计算机结构。

Andrew Back

顶部图片说明:在 MicroVAX 3500 机器上放置了两块树莓派板,这样模拟出来的 3900 机器就与 MicroVAX 3500 陈列在同一个展柜里。

正文到此结束
Loading...