本发明涉及一种采用UDP协议的双控制器存储设备数据同步方法,属于计算机存储服务器的技术领域。
背景技术:
UDP协议的全称是用户数据报协议,在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,但是UDP具有TCP所望尘莫及的速度优势。虽然TCP协议中植入了各种安全保障功能,但是在实际执行的过程中会占用大量的系统开销,无疑使速度受到严重的影响。反观UDP由于排除了信息可靠传递机制,将安全和排序等功能移交给上层应用来完成,极大降低了执行时间,使速度得到了保证。
现有控制器修改磁盘中数据只会影响到本地的内存,但不通知其他控制器,导致其他控制器中的缓存数据失效。
技术实现要素:
针对现有技术的不足,本发明提供一种采用UDP协议的双控制器存储设备数据同步方法。本发明所述的方法在双控制器环境下能够保证数据缓存的同步:当其中一个控制器宕机时,另一控制器中仍然可以对外正常提供服务,缓存同步机制可以保证不丢失数据,增强了系统的可靠性。
术语解释:
1、UDP协议:全称是用户数据报协议,在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。在OSI模型中,在第四层——传输层,处于IP协议的上一层。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。UDP用来支持那些需要在计算机之间传输数据的网络应用。
与所熟知的TCP(传输控制协议)协议一样,UDP协议直接位于IP(网际协议)协议的顶层。根据OSI(开放系统互连)参考模型,UDP和TCP都属于传输层协议。UDP协议的主要作用是将网络数据流量压缩成数据包的形式。一个典型的数据包就是一个二进制数据的传输单位。每一个数据包的前8个字节用来包含报头信息,剩余字节则用来包含具体的传输数据。
2、ACK(Acknowledgement),即确认字符,是在数据通信中,接收站发给发送站的一种传输类控制字符。表示发来的数据已确认接收无误。
本发明的技术方案如下:
一种采用UDP协议的双控制器存储设备数据同步方法:客户端向控制器A中写入数据时,利用UDP协议将所述控制器A中的数据缓存同步到控制器B的数据缓存中。
根据本发明优选的,所述控制器B监听接收所有由控制器A向控制器B缓存的所有数据,并将接收到的数据保存到一个队列中。此处设计的优点在于,避免因控制器B缓冲区溢出数据导致丢包,大大提高了数据传输和缓存的可靠性。
根据本发明优选的,向控制器B缓存数据的操作为:将数据写入到控制器B的数据缓存中,或将控制器B的数据缓存中的相应数据删除。
根据本发明优选的,当向控制器B缓存数据的操作完毕后,控制器B向控制器A发送ACK,并由控制器A对应返回Success。
本发明的优势在于:
本发明所述一种采用UDP协议的双控制器存储设备数据同步方法,简单可靠,性能优异,可实现双控制器存储设备的高速数据同步。本发明的目的是实现双控制器存储设备中数据缓存的高速传输同步,双控制器中的两控制器之间使用TCP/IP直连,在此种环境下UDP基本不会出现丢包现象,为防止出现丢包的情况,在软件实现中在UDP上层使用确认机制,确保两控制器中缓存数据的一致性。
附图说明
图1是本发明的数据缓存示意图。
具体实施方式
下面结合实施例和说明书附图对本发明做详细的说明,但不限于此。
实施例、
一种采用UDP协议的双控制器存储设备数据同步方法:客户端向控制器A中写入数据时,利用UDP协议将所述控制器A中的数据缓存同步到控制器B的数据缓存中。
所述控制器B监听接收所有由控制器A向控制器B缓存的所有数据,并将接收到的数据保存到一个队列中。
向控制器B缓存数据的操作为:将数据写入到控制器B的数据缓存中,或将控制器B的数据缓存中的相应数据删除。
当向控制器B缓存数据的操作完毕后,控制器B向控制器A发送ACK,并由控制器A对应返回Success。