4) 重新加入集群
一个系统停机并且被排除出集群之后,一般经过修复或替换,然后重新加入集群。重新加入的过程类似于系统崩溃之后的转换过程,但它是以事先计划好的有序的方式进行的。现有的系统采用安全的方式结束应用程序,保证没有任何不完全写的情况发生。存储子系统的路径由现有系统转向新加入的系统。集群中的所有系统必须调整心跳序列和分时以容纳新加入的系统。新加入的系统开始运行应用程序,而不必先进行数据完整性检查及回退不完全写的数据。
5) 在集群中添加新系统
新系统可以以同样的方式加入集群。从理论上来说,这允许集群随着工作量的增加而扩大规模。集群的规模大小取决于一些参数,如系统的通信量、负载可以在系统之间的分布程度等。几年来,主要的数据库开发商已经在提供支持集群的数据库系统。总的来说,在这一领域文件系统开发商是落后的,但是,有一些公司,如Ve r i t a s 、微软和N o v e l l,正在进行开发可伸缩(3 ~8个系统或者更多)的文件系统。
6) 共享数据
在共享的文件系统中,上面讨论的转换过程有一点不同。这种情况下,心跳机制识别出了故障系统,然后其他系统开始响应。然而一个数据共享的文件系统,不是假定需要改变故障系统的存储子系统的路径,而是假定转换系统已经有一条到该存储的路径。
这导致了一系列问题,尤其是集群中的系统如何避免访问故障系统的不完全写的数据。答案蕴涵于事务控制的方法及数据库或文件系统使用的日志机制中。对于数据库和文件系统的写操作的细致跟踪,如用于产生数据库系统日志文件的跟踪,保证了所有的内部及I / O处理在识别出写操作完成之前结束。数据库集群中已经做到了这一点,但在分布式的文件系统中还没有实现。