CN111552668B - 一种基于zfs文件系统的高性能跨域复制方法 - Google Patents
一种基于zfs文件系统的高性能跨域复制方法 Download PDFInfo
- Publication number
- CN111552668B CN111552668B CN202010655380.8A CN202010655380A CN111552668B CN 111552668 B CN111552668 B CN 111552668B CN 202010655380 A CN202010655380 A CN 202010655380A CN 111552668 B CN111552668 B CN 111552668B
- Authority
- CN
- China
- Prior art keywords
- data
- cross
- domain
- message
- tcp
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于zfs文件系统的高性能跨域复制方法,包括如下步骤:管理平台下发跨域复制任务;启动数据接收端的接收驱动模块用于被动监听tcp端口和udp端口;启用数据发送端的基于网络发送的驱动模块;启用基于块设备驱动程序的监控模块,用于对块设备的读写IO进行捕获;利用数据发送端进行跨域复制发送操作;利用数据接收端进行跨域复制接收操作,完成数据的写入操作。本发明与现有技术相比,提出了一种全新的跨域复制方法,能够大幅提升跨域复制的能力和性能。
Description
技术领域
本发明属于计算机领域,具体涉及一种基于zfs文件系统的高性能跨域复制方法。
背景技术
信息化的飞速发展,海量数据的存储带来更高的风险,数据的二次存储显得极其重要,对于数据存储备份、同步是一套健全的存储系统的必要保障。对于类似zfs这样的文件系统,数据的跨域复制同步本身提供了一套完好的操作方式,但是在性能上却远远不够,其根本原因是因为从磁盘到上层应用程序再转到网卡等诸多操作流程带来的巨大性能损耗。
所以,需要一个新的技术方案来解决这个问题。
发明内容
发明目的:为了克服现有技术中存在的不足,提供一种基于zfs文件系统的高性能跨域复制方法,能够大幅度提高跨域复制备份的效率。
技术方案:为实现上述目的,本发明提供一种基于zfs文件系统的高性能跨域复制方法,包括如下步骤:
S1:管理平台下发跨域复制任务;
S2:启动数据接收端的接收驱动模块用于被动监听tcp端口和udp端口;
启动数据接收端的数据处理模块用于控制报文的拦截功能;
启用数据接收端的内核线程服务,打开/opt/zfs文件描述符,并监听该描述符上的可读可写事件;
启用数据发送端的基于网络发送的驱动模块;
启用基于块设备驱动程序的监控模块,用于对块设备的读写IO进行捕获;
S3:利用数据发送端进行跨域复制发送操作;
S4:利用数据接收端进行跨域复制接收操作,完成数据的写入操作。
进一步的,所述步骤S3中数据发送端进行跨域复制发送操作的具体流程为:
A1:通过udp端口发送协商报文,确认两端主机任务的一致性;
A2:连接tcp端口,从磁盘读取对应的需要跨域复制的数据,块设备驱动写入到存储的bio结构后,触发IO可读事件;
A3:网络发送的驱动程序捕获到IO事件,获取bio结构,解析bio结构并将bio中块设备缓存数据转发到网络套接字上;
A4:任务结束关闭tcp套接字连接。
进一步的,所述步骤S4中数据接收端进行跨域复制接收操作的具体流程为:
B1:接收udp信令报文,验证任务ID的一致性,设置netfilter接口放行tcp对应端口的报文,等待tcp连接;
B2:获取tcp客户端的数据报文,写入数据缓存中,调用块设备的写入接口将缓存数据写入磁盘;
B3:任务结束,设置netfilter接口拦截tcp对应端口的数据报文。
基于上述步骤进行总结,数据发送端的流程如下:首先通过udp端口发送协商报文,确认两端主机任务的一致性;当协商成功后,发送端从磁盘读取对应的需要跨域复制的数据,块设备驱动写入到存储的bio结构后,捕获IO事件,并获取bio的地址,触发/opt/zfs文件描述符可读事件,当前块设备对bio的操作不再往文件缓存提交,由负责网络发送的驱动程序捕获到IO事件,获取bio结构,解析bio并将bio中块设备缓存数据转发到网络套接字上,经协议栈发送到网卡。
基于上述步骤进行总结,数据接收端的流程如下:接收发送端的udp协商请求,对任务ID的一致性进行检查,通过调用netfilter的模块接口设置tcp端口的放行报文,并应答数据发送端的udp报文,等待发送端tcp连接的建立。接收来自数据发送端的数据报文,调用块设备的IO接口将内核的数据报文直接写入磁盘,从而完成数据的写入操作。
基于上述技术方案,本发明的创新理念具体如下:
创新1:通过新的模块设计,使得原本需要多次系统调用的数据处理和流转操作得到大幅减少;减少磁盘缓存到文件系统缓存过程的一次内存拷贝;减少从文件系统到用户程序的一次内存拷贝;减少从用户程序拷贝到协议栈的一次内存拷贝,至少减少每次数据接收、发送过程用户态到内核态报文的两次系统调用。
创新2:通过块设备缓存的bio结构改造,增加数据可写的事件通知机制,通过每个bio事件完成触发注册fd事件,当可写、可读准备好,传送struct bio_vec的地址,并异步通知协议栈服务程序,这样不再要轮询等待,整个异步操作可以在内核中完成,从而大幅提高处理性能。
创新3:不同于传统的将数据放在用户态的标准输入输出,且通过应用层网络模块处理的跨域方式,本发明增加内核态的协议服务程序、主要服务网络数据的传送以及监听本地硬盘bio可读可写事件,使得网络IO可以完全在内核中进行,避免大量的网络系统调用,从而提高性能。
创新4:磁盘和网络数据共享,共享网络读写缓存直接写入磁盘、共享磁盘的bio数据缓存写入网卡,缓存的共享可以减少处理开销从而提高性能。增加跨域复制信令交互报文以及心跳报文,提高安全性。
有益效果:本发明与现有技术相比,具备如下优点:
1、减少了磁盘缓存到文件系统缓存过程的一次内存拷贝;减少了从文件系统到用户程序过程的一次内存拷贝、一次系统调用;减少了从用户程序拷贝到协议栈的一次内存拷贝和系统调用,因此大幅提高了复制效率。
2、块设备缓存的bio结构的异步通知机制,增加数据可写的事件通知机制,通过每个bio事件完成触发注册fd事件,当可写、可读准备好,传送struct bio_vec的地址通知协议栈服务程序;通过多路复用的IO通知机制、异步读写的操作机制,可以不需要轮询的进行读写,可以在有数据可读可写的时候处理大量的IO操作,提高单次处理的数据量同时增加处理命中率,无需浪费cpu的轮询判断,通过传递bio_vec的地址,使得协议栈无需拷贝存储的块缓存数据,可以重复利用这块内存,提高处理性能。
3、增加内核态的协议服务程序、主要服务网络数据的传送以及监听本地硬盘bio可读可写事件,共享网络读写缓存直接写入磁盘、共享磁盘的bio数据缓存写入网卡,并通过增加跨域复制信令交互报文以及心跳报文的方式,增强跨域复制的能力和性能。
附图说明
图1为跨域复制数据发送端的操作流程示意图;
图2为跨域复制数据接收端的操作流程示意图。
具体实施方式
下面结合附图和具体实施例,进一步阐明本发明。
zfs原生的跨域复制通过调用应用程序zfs send、recv命令辅助类似nc这样的网络程序,通过管道的方式进行数据之间的传送。zfs send 经历从磁盘读取数据、写入块设备缓存、写入文件系统缓存、拷贝数据到用户态程序缓存、从用户态拷贝到协议栈缓存、写入网卡。zfs recv经历从网卡读取数据到协议栈缓存、协议栈数据拷贝到进程的用户态空间、用户态缓存拷贝到文件系统缓存、写入块设备缓存、写入磁盘。
基于上述现有的跨域复制方法,本实施例中提供一种基于zfs文件系统的高性能跨域复制方法,包括如下步骤:
S1:管理平台下发跨域复制任务;
S2:启动数据接收端的接收驱动模块用于被动监听tcp端口和udp端口;
启动数据接收端的数据处理模块用于控制报文的拦截功能;
启用数据接收端的内核线程服务,打开/opt/zfs文件描述符,并监听该描述符上的可读可写事件;
S3:启用数据发送端的基于网络发送的驱动模块;
启用基于块设备驱动程序的监控模块,用于对块设备的读写IO进行捕获;
S3:如图1所示,利用数据发送端进行跨域复制发送操作,其具体操作过程如下:
A1:通过udp端口发送协商报文,确认两端主机任务的一致性;
A2:连接tcp端口,从磁盘读取对应的需要跨域复制的数据,块设备驱动写入到存储的bio结构后,触发IO可读事件;
A3:网络发送的驱动程序捕获到IO事件,获取bio结构,解析bio结构并将bio中块设备缓存数据转发到网络套接字上;
A4:任务结束关闭tcp套接字连接。
S4:利用数据接收端进行跨域复制接收操作,如图2所示,其具体操作过程如下:
B1:接收udp信令报文,验证任务ID的一致性,设置netfilter接口放行tcp对应端口的报文,等待tcp连接;
B2:获取tcp客户端的数据报文,写入数据缓存中,调用块设备的写入接口将缓存数据写入磁盘;
B3:任务结束,设置netfilter接口拦截tcp对应端口的数据报文。
本实施例中参照原有方案和本发明提供的方案,本发明方法去掉用户态和内核态的数据拷贝、系统调用的开销、共享块设备缓存和网络协议缓存的数据部分,从而实现了低开销高效率的跨域复制功能。
Claims (1)
1.一种基于zfs文件系统的高性能跨域复制方法,其特征在于,包括如下步骤:
S1:管理平台下发跨域复制任务;
S2:启动数据接收端的接收驱动模块用于被动监听tcp端口和udp端口;
启动数据接收端的数据处理模块用于控制报文的拦截功能;
启用数据接收端的内核线程服务,打开/opt/zfs文件描述符,并监听该描述符上的可读可写事件;
启用数据发送端的基于网络发送的驱动模块;
启用基于块设备驱动程序的监控模块,用于对块设备的读写IO进行捕获;
S3:利用数据发送端进行跨域复制发送操作;
S4:利用数据接收端进行跨域复制接收操作,完成数据的写入操作;
所述步骤S3中数据发送端进行跨域复制发送操作的具体流程为:
A1:通过udp端口发送协商报文,确认两端主机任务的一致性;
A2:连接tcp端口,从磁盘读取对应的需要跨域复制的数据,块设备驱动写入到存储的bio结构后,触发IO可读事件;
A3:网络发送的驱动程序捕获到IO事件,获取bio结构,解析bio结构并将bio中块设备缓存数据转发到网络套接字上;
A4:任务结束关闭tcp套接字连接;
所述步骤S4中数据接收端进行跨域复制接收操作的具体流程为:
B1:接收udp信令报文,验证任务ID的一致性,设置netfilter接口放行tcp对应端口的报文,等待tcp连接;
B2:获取tcp客户端的数据报文,写入数据缓存中,调用块设备的写入接口将缓存数据写入磁盘;
B3:任务结束,设置netfilter接口拦截tcp对应端口的数据报文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010655380.8A CN111552668B (zh) | 2020-07-09 | 2020-07-09 | 一种基于zfs文件系统的高性能跨域复制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010655380.8A CN111552668B (zh) | 2020-07-09 | 2020-07-09 | 一种基于zfs文件系统的高性能跨域复制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111552668A CN111552668A (zh) | 2020-08-18 |
CN111552668B true CN111552668B (zh) | 2020-10-23 |
Family
ID=72005359
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010655380.8A Active CN111552668B (zh) | 2020-07-09 | 2020-07-09 | 一种基于zfs文件系统的高性能跨域复制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111552668B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112069146A (zh) * | 2020-09-08 | 2020-12-11 | 北京同有飞骥科技股份有限公司 | 提高基于zfs文件系统异步远程复制的方法及系统 |
CN116301593B (zh) * | 2023-02-09 | 2024-02-02 | 安超云软件有限公司 | 在云平台下跨集群跨存储拷贝块数据的方法及应用 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103139315A (zh) * | 2013-03-26 | 2013-06-05 | 烽火通信科技股份有限公司 | 一种适用于家庭网关的应用层协议解析方法 |
CN104717205A (zh) * | 2015-02-04 | 2015-06-17 | 上海展湾信息科技有限公司 | 基于报文重构的工控防火墙控制方法 |
CN106339257A (zh) * | 2015-07-10 | 2017-01-18 | 中标软件有限公司 | 使客户机操作系统轻量化的方法及系统和虚拟化操作系统 |
CN106775462A (zh) * | 2016-11-30 | 2017-05-31 | 郑州云海信息技术有限公司 | 一种读写过程中减少内存拷贝的方法和装置 |
-
2020
- 2020-07-09 CN CN202010655380.8A patent/CN111552668B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103139315A (zh) * | 2013-03-26 | 2013-06-05 | 烽火通信科技股份有限公司 | 一种适用于家庭网关的应用层协议解析方法 |
CN104717205A (zh) * | 2015-02-04 | 2015-06-17 | 上海展湾信息科技有限公司 | 基于报文重构的工控防火墙控制方法 |
CN106339257A (zh) * | 2015-07-10 | 2017-01-18 | 中标软件有限公司 | 使客户机操作系统轻量化的方法及系统和虚拟化操作系统 |
CN106775462A (zh) * | 2016-11-30 | 2017-05-31 | 郑州云海信息技术有限公司 | 一种读写过程中减少内存拷贝的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111552668A (zh) | 2020-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112597251B (zh) | 数据库集群日志同步方法、装置、服务器及存储介质 | |
WO2023284699A1 (zh) | 基于Linux系统的协议栈数据传输方法、计算机设备和存储介质 | |
CN111552668B (zh) | 一种基于zfs文件系统的高性能跨域复制方法 | |
CN112116444B (zh) | 银行金融服务系统和金融期货数据交换平台的对接系统 | |
WO2014186940A1 (zh) | 一种硬盘和数据处理方法 | |
CN101299757A (zh) | 一种数据共享方法及通讯系统以及相关设备 | |
CN113553346B (zh) | 大规模实时数据流一体化处理、转发和存储方法及系统 | |
EP4369171A1 (en) | Method and apparatus for processing access request, and storage device and storage medium | |
WO2018157605A1 (zh) | 一种集群文件系统中消息传输的方法及装置 | |
CN101699421B (zh) | 串口共享的方法和服务端 | |
CN110445826B (zh) | 一种会话信息获取方法、装置及服务器 | |
US20240126847A1 (en) | Authentication method and apparatus, and storage system | |
US10318362B2 (en) | Information processing apparatus, information processing method, and non-transitory computer-readable storage medium | |
CN112148206A (zh) | 一种数据读写方法、装置、电子设备及介质 | |
CN114371935A (zh) | 网关处理方法、网关、设备及介质 | |
CN116582365B (zh) | 网络流量的安全控制方法、装置及计算机设备 | |
WO2024041304A1 (zh) | Pos机中双cpu的通信方法、装置、系统及介质 | |
CN113238856A (zh) | 一种基于rdma的内存管理方法及装置 | |
US20220014483A1 (en) | Data processing method and apparatus | |
WO2020119608A1 (zh) | 基于Spark Shuffle的远程直接内存访问系统及方法 | |
WO2021012179A1 (zh) | 存储系统中实现存储业务连续性的方法、前端接口卡和存储系统 | |
WO2023116438A1 (zh) | 一种数据访问方法、装置以及设备 | |
CN107193989B (zh) | 一种nas集群缓存处理方法和系统 | |
WO2014106464A1 (zh) | Sd卡和访问sd卡的设备及方法 | |
JP7117674B2 (ja) | データ転送システム、及びシステムホスト |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |