基于网络文件共享服务的双机数据同步方法

前几年我开发过一个软件系统,为使用者提供7×24小时不间断的服务。为了确保服务质量,采用了双机热备的形式。双机系统能够正常工作的关键技术之一,就是主备机之间的数据同步。下面介绍的数据同步方法是以网络文件共享服务为基础实现的,简单易行,安全可靠,在当时时间紧、任务重、投资有限的情况下,应用效果比较理想。

Windows网络文件共享服务

在Windows系统环境中,一台计算机可以作为服务器向局域网中的其它计算机(客户机)提供“文件共享服务”。通过这项服务,客户机用户能够像访问本地文件一样通过网络对服务器上的共享文件进行一系列操作。
当用户通过客户机连接到服务器的共享位置时,他们可以:

  • 打开文件
  • 保存文件
  • 删除文件
  • 创建、修改和删除文件夹
  • 执行其他任务

客户机访问服务器上共享文件位置的方法有多种,如网上邻居、映射网络驱动器等。这里我们采用适合软件编程实现的“UNC路径访问法”。

UNC (Universal Naming Convention) “通用命名约定”,用于确定保存在网络服务器上的文件位置。UNC符合“\\servername\sharename”格式,其中 servername 是服务器名,sharename 是共享资源的名称。目录或文件的 UNC 名称可以包括共享资源名称下的目录路径,格式为:\\servername\sharename\directory\filename,其中directory是目录名,filename是共享文件名。

本数据同步方法的设计思路是:当双机间需要进行数据同步时,主机作为客户机,利用“UNC路径访问法”打开备机(服务器)的数据文件(共享文件),将最新的运行数据写入数据文件中。这样就能够确保主、备机之间数据的一致性。

由于网络文件共享服务是Windows操作系统提供的基于TCP/IP协议的标准服务,而且服务器在提供服务前需要客户机提供有效的访问凭据(如域的名称、用户名称和密码),用户能够进行的操作也取决于被授予的权限,因此利用网络文件共享服务,结合文件操作、Ping等通用技术,可以实现免数据库、安全、便捷、易维护的双机热备系统数据同步机制。

服务配置过程

由于网络文件共享服务不是Windows操作系统提供的缺省服务,因此需要通过以下步骤进行配置:

图1.服务配置步骤

第一步,在双机中安装Windows操作系统。通常,Windows 2000或更高版本的操作系统都能够提供网络文件共享服务。

第二步,在双机的操作系统中建立同样的用户,使用同样的密码,并确保该用户对各自的共享文件和目录具有创建、读、写、修改和删除权限。如此设置,能够保证客户机顺利通过服务器的安全验证,并访问服务器的共享资源。

第三步,在操作系统中安装TCP/IP协议,并确保处于同一局域网中的双机能够进行正常通信。

第四步,在操作系统中安装“Microsoft网络客户端”和“Microsoft网络的文件和打印机共享”两个网络组件。这些组件是操作系统对外提供文件共享服务的基础配置。

此时配置完成,双机已经具备了互为服务器和客户机的条件。

数据同步的实现

具体的双机间数据同步操作是由运行于操作系统中的应用软件执行的。数据同步操作通常由主机中的应用软件发起,因此它的执行流程是:

图2. 主机数据同步流程

在上述流程中,主机应用软件首先“将数据写入本地数据文件”,其目的是保证应用软件在遇到强制关闭等情况后不丢失运行数据,待重新启动后能够从本地数据文件中获得数据,继续以正常方式运行。

“向备机执行Ping操作”目的是查看当时主备机之间的网络是否通畅,为后续的数据文件操作提供保障。Ping(Packet Internet Groper,因特网包探测器)操作是通过向目标IP地址发送ICMP(Internet Control Messages Protocol,因特网控制报文协议)回声请求消息,并依据对方是否应答来判断网络的通断状况。在这里,可以将备机的IP地址写在应用软件的配置文件中,应用软件在启动阶段读取该IP地址,并作为UNC路径访问和Ping操作的参数使用。

执行“通过UNC路径访问备机的数据文件”操作的C++代码如下:

 1     CFile NetLogFile;
 2     CString strFileName;
 3     strFileName.Format("\\\\%s\\c$\\StaTerm\\LOG.tmp",m_strBackUpIP);
 4
 5     //打开备机数据文件LOG.tmp
 6     try
 7     {
 8         if (!NetLogFile.Open(strFileName, CFile::modeCreate | CFile::modeWrite ))
 9         {
10             TRACE0("\n无法打开备机数据文件LOG.tmp\n");
11             return;
12         }
13     }
14     catch ( CException* pe1 )
15     {
16         TRACE0("\n系统打开备机数据文件LOG.tmp时出错!\n");
17         pe1->Delete();
18         return;
19     }

上述第3行代码就是采用UNC路径访问法确定备机数据文件位置。这样就保证了可以在第8行使用本地文件打开函数(CFile::Open)打开备机上的网络共享数据文件,从而降低了软件开发的难度和复杂度。

在执行“将数据写入备机数据文件”操作时,主机应用软件可以有两种方法完成向备机的数据同步:

  • 打开备机数据文件,将主机的数据直接写入,关闭文件;
  • 将主机的最新数据文件直接复制到备机的数据文件目录中,覆盖备机原有数据文件。

对于备机中运行的应用软件,一般情况下不对其本机的数据文件进行读写操作,避免对主机执行同步操作的影响。只有在接到双机主备裁决模块发来的升为主机状态的命令时,该应用软件才会从本机数据文件中读取数据,并进入正常执行逻辑。由于此时的数据文件通过前一次同步过程得到了更新,已与原主机的最新数据保持一致,因此就实现了在主备切换时双机间数据同步的功能。

- [email protected]博客园 -

基于网络文件共享服务的双机数据同步方法,布布扣,bubuko.com

时间: 2024-08-02 15:10:09

基于网络文件共享服务的双机数据同步方法的相关文章

Samba网络文件共享服务介绍

Samba网络文件共享服务 一.samba简介 Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,而SMB是Server Message Block的缩写,即为服务器消息块,SMB主要是作为Microsoft的网络通讯协议,后来Samba将SMB通信协议应用到了Linux系统上,就形成了现在的Samba软件.后来微软又把 SMB 改名为 CIFS(Common Internet File System),即公共 Internet 文件系统,并且加入了许多新的功能,这样一

第十章 网络文件共享服务之ftp

10.1 ftp介绍 网络文件共享服务主流的主要有三种,分别是ftp.nfs.samba.在上一章中我们已经了解了nfs,本章我们将来说说ftp. FTP是File Transfer Protocol(文件传输协议)的简称,用于internet上的控制文件的双向传输. FTP也是一个应用程序,基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件. 在FTP的使用当中,用户经常遇到两种概念:下载和上传 下载(Download)文件就是从远程主机拷贝文件至自己的计算

linux网络文件共享服务的实现

LINUX网络文件共享服务 linux网络文件共享服务的实现: 应用层:ftp 内核:nfs (Sun) 跨平台:samba 一.vsftp实现文件共享 1,  概念: vsftpd :very secure FTP daemon,高安全性的 FTP 服务器. ftp: File Transfer Protocol文件传输协议:属于应用层协议,使用TCP端口: 21/tcp. FTP会话时包含了两个通道,一个叫控制通道,一个叫数据通道. 控制通道:控制通道是和FTP服务器进行沟通的通道,连接FT

2-7.访问网络文件共享服务

##访问网络文件共享服务## ##学习目标 挂载网络共享 自动挂载网络共享 1.1##挂载网络文件系统 网络文件系统是由网络附加存储服务器通过网络向多个主机提供的一种文件系统,而不是由块设备(例如硬盘驱动器)提供的.客户端通过特殊的文件系统协议和格式访问远程存储 Linux 中有两种主要协议可用访问网络文件系统 : NFS 和CIFS . NFS ( Network File System ) 可看作是 Linux .UNIX 及其它类似操作系统的标准文件系统. CIFS( Comon Inte

第二章--(第七单元)--访问网络文件共享服务

一.什么是网络文件共享服务 网络文件系统是由网络附加存储服务器通过网络向多个主机提供的一种文件系统,而不是由快设备提供的.客户端通过特殊的文件系统协议和格式访问远程存储 二.通用网络文件系统 (适合跨系统使用) 1.安装samba服务 yum install samba-client -y 2.登录172.25.254.250服务器 smbclient -L //172.25.254.250 3.进入172.25.254.250服务器的westos1目录 smbclient //172.25.2

企业级NFS网络文件共享服务

虚拟实验: 操作系统:CentOS release 6.8 (Final) 虚拟机:VMware 任务:NFS网络文件共享服务 默认是没有安装NFS软件包,NFS主要功能是通过网络让不同的主机系统之间可以共享文件或目录.NFS网络文件系统很像Windows系统的网络共享.安全功能.网络驱动映射,而互联网中小型网站集群架构后端常用NFS进行数据共享. NFS服务器IP: 192.168.222.130 NFS客户端IP1: 192.168.222.138 NFS客户端IP2:192.168.222

网络文件共享服务

DAS.NAS.SAN DAS:直接附加存储,磁盘和服务器直接通过数据线或光纤连接(磁盘和服务器都在一台机器上),速度快 NAS:网络附加存储,服务器和存储通过交换机连接,在存储上事先准备好磁盘,分好区,格式化文件系统,挂载,然后通过协议,把分区挂载的目录共享到网络 SAN:存储区域网络,服务器和存储离的特别远,中间还需要交换机来相连,需要走一些协议(iscsi协议),一一旦连接成功,就会在服务器上出现一个新的硬盘,而服务器就感觉这个硬盘就像在本机一样,但是这个存储空间是在远程,然后服务器就可以

搭建NFS网络文件共享服务(干货)

先上干货: 以下是配置全过程(客户端和服务端对比)查看NFS软件包[[email protected] ~]# rpm -aq nfs-utils portmap rpcbind#这个命令比(yum grouplist)的更有效率 安装法一:[[email protected] ~]#yum groupinstall "NFS file server"也可以使用法二:[[email protected] ~]# yum install nfs-utils rpcbind -y来安装 客

Linux网络文件共享服务之smaba

一.SAMBA服务简介 samba是1991年由Andrew Tridgel开发实现,主要用于Windows和unix文件共享.samba实现了共享文件和打印,实现在线编辑,登录SAMBA用户的身份认证,可以进行NetBIOS名称解析和外围设备共享.相关的软件包有samba,这个包主要提供smb服务.smb是Server Message Block的缩写意思是服务器消息块,IBM发布,最早是DOS网络文件共享协议.samba-client这个软件包是客户端软件,samba-common通用软件包