CN109634532B - 多VxWorks主机共享访问存储介质的方法 - Google Patents

多VxWorks主机共享访问存储介质的方法 Download PDF

Info

Publication number
CN109634532B
CN109634532B CN201811556116.8A CN201811556116A CN109634532B CN 109634532 B CN109634532 B CN 109634532B CN 201811556116 A CN201811556116 A CN 201811556116A CN 109634532 B CN109634532 B CN 109634532B
Authority
CN
China
Prior art keywords
host
hosts
read
sharing
storage medium
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
Application number
CN201811556116.8A
Other languages
English (en)
Other versions
CN109634532A (zh
Inventor
赵丹
蒋湘涛
邵逢仙
尹江明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hunan Runcore Innovation Technology Co ltd
Original Assignee
Hunan Runcore Innovation Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hunan Runcore Innovation Technology Co ltd filed Critical Hunan Runcore Innovation Technology Co ltd
Priority to CN201811556116.8A priority Critical patent/CN109634532B/zh
Publication of CN109634532A publication Critical patent/CN109634532A/zh
Application granted granted Critical
Publication of CN109634532B publication Critical patent/CN109634532B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Abstract

本发明公开了一种多VxWorks主机共享访问存储介质的方法,包括单主机文件系统操作的队列化,多主机共享访问的队列线程仲裁和文件共享层处理。本发明提供的这种多VxWorks主机共享访问存储介质的方法,通过设置单主机文件系统操作的队列化、多主机共享访问的队列线程仲裁和文件共享层处理,解决了多主机多任务共享访问硬盘中出现的读写冲突、文件损坏、分区表损坏等问题,而且使得单主机对硬盘的操作,其他主机能够及时获取文件信息,从而做到多主机信息的同s步。

Description

多VxWorks主机共享访问存储介质的方法
技术领域
本发明具体涉及一种多VxWorks主机共享访问存储介质的方法。
背景技术
随着经济技术的发展,VxWorks文件系统已经得到了越来越广泛的应用。
目前,市面上常用的VxWorks文件系统主要是基于VxWorks平台自带的 Dosfs、hrfs以及开源的exFat等文件系统。但是,这类文件系统一般都只能实现单主机情况下的文件系统操作;一旦执行多主机共享访问存储介质,由于每个主机的文件系统相互独立,因此该共享访问将有极大的概率造成存储介质数据的损坏或文件读写的失败。同时,在共享访问时,由于共享访问的文件系统相互独立,因此系统单主机在进行硬盘的操作读写时,其他主机无法获取到相关的文件信息,从而造成后续的读写异常等问题。
发明内容
本发明的目的在于提供一种能够实现多主机共享访问存储介质,而且方法简单、可靠和科学的多VxWorks主机共享访问存储介质的方法。
本发明提供的这种多VxWorks主机共享访问存储介质的方法,包括如下步骤:
单主机文件系统操作的队列化,用于将单主机文件系统的操作按照队列的形式进行排队操作;
多主机共享访问的队列线程仲裁,通过采用多主机通信的方式对多主机的队列线程进行仲裁;
文件共享层处理,通过在用户操作库和内核驱动层之间增加共享层,无需改变系统标准操作接口即可对存储介质进行共享访问,该共享机制对上层应用软件完全透明。
所述的单主机文件系统操作的队列化,具体为通过VxWorks系统内部的 msgQ消息机制和信号量机制将每个读写操作通过消息发送到读写操作队列线程,队列线程按照先进先出的原则处理接收到的文件系统操作。
所述的多主机共享访问的队列线程仲裁,具体为多主机之间设计通信协议,采用SRIO接口的Doorbell进行通信,利用Doorbell携带的主机状态、操作命令等信息实现多主机之间对于存储介质操作状态的实时交互,从而保证任何时刻均只有单主机在对存储介质进行访问操作。
在单主机获取读写权限后需要进行分区表更新,确保目前获取的文件系统信息是最新的;同时,其他主机放弃读写权限后也需要对分区表更新,确保对文件系统的操作能够同步到对方主机处。
当单次读写数据块大于事先设定的第一阈值时,将读写数据块的大小拆分为事先设定的大小为第二阈值的块并进行多次读写,从而避免单主机读写大文件导致其他主机长时间不能获取读写权限,使多主机操作时各方速度均衡。
所述的文件共享层处理,具体为在标准操作函数库与内核驱动层之间增加共享操作层,在其中实现本方法所需要的额外操作,使得用户仅采用习惯的操作函数即可利用本方法实现的功能。
本发明提供的这种多VxWorks主机共享访问存储介质的方法,通过设置单主机文件系统操作的队列化、多主机共享访问的队列线程仲裁和文件共享层处理,解决了多主机多任务共享访问硬盘中出现的读写冲突、文件损坏、分区表损坏等问题,而且使得任意主机对硬盘的操作,其他主机能够及时获取文件更改信息,从而实现多主机对共享存储介质上的文件操作信息的同步。
附图说明
图1为本发明方法的方法流程示意图。
图2为本发明的文件系统结构图。
图3为本发明的多主机仲裁结构图。
具体实施方式
如图1所示为本发明方法的方法流程示意图:本发明提供的这种多VxWorks 主机共享访问存储介质的方法,包括如下步骤:
单主机文件系统操作的队列化,用于将单主机文件系统的操作按照队列的形式进行排队操作;具体为通过VxWorks系统内部的msgQ消息机制和信号量机制将每个读写操作通过消息发送到建立在各主机上的读写操作队列线程,队列线程按照先进先出的原则处理接收到的文件系统操作;
多主机共享访问的队列线程仲裁,通过采用多主机通信的方式对多主机的队列线程进行仲裁;具体为多主机之间设计通信协议,采用SRIO接口的Doorbell 进行通信,利用Doorbell携带的主机状态、操作命令等信息实现多主机之间对于存储介质操作状态的实时交互,从而保证任何时刻均只有单主机在对存储介质进行访问操作;其他主机重新获取读写权限后需要进行分区表更新,确保目前获取的文件系统信息是最新的;同时,其他主机任意主机放弃读写权限后也需要对分区表更新,确保对文件系统的操作能够同步到其他主机处;当单次读写数据块大于事先设定的第一阈值时,将读写数据块的大小拆分为事先设定的大小为第二阈值的块并进行多次读写,从而避免单主机读写大文件导致其他主机长时间不能获取读写权限,使多主机操作时各方速度均衡。
在具体实施时,对多个主机的队列线程进行仲裁,需要多个主机间有必要的通信方式,本系统中多主机之间有Doorbell进行通信,Doorbell除了可以发送中断外,还可以携带2个字节的信息,可以通过设置这2个字节的不同数据来实现多个主机之间的申请读写权限、放弃读写权限、报告己方状态、反馈申请读写权限、反馈放弃读写权限等命令交互。通过Doorbell命令交互,可以确保任何时刻都只有单主机在对硬盘进行访问。单主机获取读写权限后需要进行分区表更新(分区表下载),确保目前获取的文件系统信息是最新的;同样,其他主机放弃读写权限后也需要对分区表更新(分区表上传),确保对文件系统的操作能够同步到其他主机处。此外为避免单主机读取大文件导致其他主机长时间不能获取读写权限,当读写buffer较大时候,将其拆分成16M大小的buffer操作,确保其他主机能够及时获取读写权限,实现多主机共享操作;
所述的文件共享层处理,具体为在标准操作函数库与内核驱动层之间增加共享操作层,在其中实现本方法所需要的额外操作,使得用户仅采用习惯的操作函数即可利用本方法实现的功能;
在具体实施时,需要增加如下共享层操作:userfs_Creat、userfs_Delete、userfs_Open、userfs_Close、userfs_Read、userfs_Write、userfs_Ioctl,这些操作除了执行原有文件系统操作外,还要执行单主机文件系统操作队列化操作和多主机仲裁操作。在共享层中为底层共享存储介质创建块设备盘符定义为“/usrfs”,当用户创建块设备时,比如“/vxfs”,共享层将所有对“/vxfs”的操作都映射到对“/usrfs”操作上。用户端只需要执行针对“/vxfs”盘符的Creat、Delete、Open、 Close、Read、Write、Ioctl等操作即可操作针对“/usrfs”盘符的userfs_Creat、userfs_Delete、userfs_Open、userfs_Close、userfs_Read、userfs_Write、userfs_Ioctl 功能。
如图2所示为本发明的文件系统结构图:如图左右两边可以认为是两台 VxWorks主机,其访问流程为标准文件接口->共享操作层接口->文件系统处理队列->共享存储介质。其中文件系统处理队列部分需要两台主机之间进行必要的通信来实现握手、主从仲裁以及分区表同步操作。
如图3所示为本发明的多主机仲裁结构图:
其中,单主机操作队列化具体实施过程:
(1)用户执行文件系统操作,打开信号量,然后将本次操作的参数通过 msgQ消息发送到队列线程中,等待队列线程将读写结果反馈;
(2)队列线程收到文件系统操作后,通过多主机仲裁机制,按照队列先进先出的策略执行文件系统操作,并将每次操作结果通过msgQ消息反馈给用户操作函数;
(3)用户操作函数收到队列线程发送的反馈结果后,释放信号量,将文件系统操作结果反馈给上级后,继续接受下次函数响应。
多主机仲裁方式的具体实施过程(以AB两个主机举例说明):
1)A主机需要读写文件,向B主机发送“申请读写权限”命令,若收到B主机“反馈申请读写权限”表示B主机已收到A主机信息,则申请成功,从盘内同步文件分区表信息,开始读写操作;若1s后仍未收到B主机反馈,判断B主机断线,进入单主机模式操作;
2)A主机做完一次读写操作后,若B主机申请读写权限,则A主机发送“放弃读写权限”,若收到B主机“反馈放弃读写权限”表示B主机已收到A主机信息,则放弃读写权限成功,将A主机的文件分区表信息下发到盘内,A主机进入等待状态,B主机进入读写操作状态;若1s后仍未收到B主机反馈,判断B 主机断线,进入单主机模式操作;
3)A主机检查读写队列中是否还有读写操作,若有,则申请读写权限,完成第1步操作;否则进入空闲等待状态;
4)若B主机一直没有申请读写权限,A主机每隔一段时间将分区信息下发给硬盘,并通知B主机及时获取最新文件分区表信息。

Claims (1)

1.一种多VxWorks主机共享访问存储介质的方法,包括如下步骤:
单主机文件系统操作的队列化,用于将单主机文件系统的操作按照队列的形式进行排队操作;具体为通过VxWorks系统内部的msgQ消息机制和信号量机制将每个读写操作通过消息发送到读写操作队列线程,队列线程按照先进先出的原则处理接收到的文件系统操作;
多主机共享访问的队列线程仲裁,通过采用多主机通信的方式对多主机的队列线程进行仲裁;具体为多主机之间设计通信协议,采用SRIO接口的Doorbell进行通信,利用Doorbell携带的主机状态、操作命令实现多主机之间对于存储介质操作状态的实时交互,从而保证任何时刻均只有单主机在对存储介质进行访问操作;单主机获取读写权限后需要进行分区表更新,确保目前获取的文件系统信息是最新的;同时,其他主机放弃读写权限后也需要对分区表更新,确保对文件系统的操作能够同步到对方主机处;单次读写数据块大于事先设定的第一阈值时,将读写数据块的大小拆分为事先设定的大小为第二阈值的块并进行多次读写,从而避免单主机读写大文件导致其他主机长时间不能获取读写权限,使多主机操作时各方速度均衡;
文件共享层处理,通过在用户操作库和内核驱动层之间增加共享层,无需改变系统标准操作接口即可对存储介质进行共享访问,该共享机制对上层应用软件完全透明;具体为在标准操作函数库与内核驱动层之间增加共享操作层,在其中实现所需要的额外操作,使得用户仅采用习惯的操作函数即可实现所述的多VxWorks主机共享访问存储介质。
CN201811556116.8A 2018-12-19 2018-12-19 多VxWorks主机共享访问存储介质的方法 Active CN109634532B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811556116.8A CN109634532B (zh) 2018-12-19 2018-12-19 多VxWorks主机共享访问存储介质的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811556116.8A CN109634532B (zh) 2018-12-19 2018-12-19 多VxWorks主机共享访问存储介质的方法

Publications (2)

Publication Number Publication Date
CN109634532A CN109634532A (zh) 2019-04-16
CN109634532B true CN109634532B (zh) 2022-06-14

Family

ID=66075394

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811556116.8A Active CN109634532B (zh) 2018-12-19 2018-12-19 多VxWorks主机共享访问存储介质的方法

Country Status (1)

Country Link
CN (1) CN109634532B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112558888A (zh) * 2021-02-25 2021-03-26 上海飞斯信息科技有限公司 一种基于RapidIO总线链路的多主机共享存储设备及其共享方法
CN113176850B (zh) * 2021-03-12 2022-07-12 湖南艾科诺维科技有限公司 基于srio接口的共享存储盘及其存取方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6532509B1 (en) * 1999-12-22 2003-03-11 Intel Corporation Arbitrating command requests in a parallel multi-threaded processing system
CN101419572A (zh) * 2008-11-20 2009-04-29 四川长虹电器股份有限公司 嵌入式设备中大容量Nandflash存储空间的共享方法
CN101872317A (zh) * 2010-07-16 2010-10-27 山东中创软件工程股份有限公司 VxWorks多任务同步与通信方法
CN103001843A (zh) * 2012-11-22 2013-03-27 南京中德保护控制系统有限公司 基于嵌入式VxWorks的OPC协议转换器

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7991839B2 (en) * 2006-12-19 2011-08-02 International Business Machines Corporation Communication between host systems using a socket connection and shared memories
CN102087637B (zh) * 2009-12-02 2012-08-22 奇景光电股份有限公司 利用率增强的共享汇流排系统及汇流排仲裁方法
CN103617138A (zh) * 2013-12-16 2014-03-05 深圳市兴威帆电子技术有限公司 多主机仲裁方法及多主机通信系统
CN107451076A (zh) * 2016-05-30 2017-12-08 龙芯中科技术有限公司 基于VxWorks系统的串口中断处理方法和装置
CN108509257B (zh) * 2017-02-28 2022-07-22 苏宁易购集团股份有限公司 一种基于多线程的消息处理方法及装置
CN107992370B (zh) * 2017-11-28 2021-01-22 上海机电工程研究所 VxWorks平台多任务软件框架实现方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6532509B1 (en) * 1999-12-22 2003-03-11 Intel Corporation Arbitrating command requests in a parallel multi-threaded processing system
CN101419572A (zh) * 2008-11-20 2009-04-29 四川长虹电器股份有限公司 嵌入式设备中大容量Nandflash存储空间的共享方法
CN101872317A (zh) * 2010-07-16 2010-10-27 山东中创软件工程股份有限公司 VxWorks多任务同步与通信方法
CN103001843A (zh) * 2012-11-22 2013-03-27 南京中德保护控制系统有限公司 基于嵌入式VxWorks的OPC协议转换器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
[VxWorks系列]任务间同步与通信之共享内存;miccretti;《https://blog.csdn.net/weixin_33798152/article/details/86418245》;20130712;第1页 *

Also Published As

Publication number Publication date
CN109634532A (zh) 2019-04-16

Similar Documents

Publication Publication Date Title
JP4738413B2 (ja) ソース・データをターゲット・データに移行する方法及びシステム
US8468313B2 (en) Asynchronous replication with write concurrency grouping
US7228399B2 (en) Control method for storage device controller system, and storage device controller system
US9606748B2 (en) Importing pre-existing data of a prior storage solution into a storage pool for use with a new storage solution
CN102272751B (zh) 在数据库环境通过背景同步的数据完整性
US9720621B2 (en) Storage controller, storage system, and non-transitory computer-readable storage medium having stored therein control program
US8818936B1 (en) Methods, systems, and computer program products for processing read requests received during a protected restore operation
EP1934762B1 (en) Apparatus and method for handling dma requests in a virtual memory environment
JP2006031579A5 (zh)
US6105076A (en) Method, system, and program for performing data transfer operations on user data
CN109241015B (zh) 用于在分布式存储系统中写入数据的方法
US20240037060A1 (en) Computing device, virtualization acceleration device, remote control method and storage medium
CN109634532B (zh) 多VxWorks主机共享访问存储介质的方法
US7451285B2 (en) Computer systems, management computers and storage system management method
WO2022095366A1 (zh) 基于Redis的数据读取方法、装置、设备及可读存储介质
CN109347899B (zh) 在分布式存储系统中写入日志数据的方法
JP2005018509A (ja) 記憶システム、バックアップシステム及びバックアップ方法
JP6967010B2 (ja) 異種ストレージシステム間の複製
CN111176566B (zh) 一种支持queue命令的eMMC读写控制方法及存储介质
WO2023035754A1 (zh) 权限同步方法、装置、电子设备与存储介质
CN110531925A (zh) 数据读取方法、装置、电子设备及机器可读存储介质
CN100383757C (zh) 磁盘数据备份系统及其方法
US7895372B2 (en) Universal serial bus mass storage device asynchronous file and file system update while connected to a PC or other device
CN113031863A (zh) Ssd命令相关性管理方法、装置、计算机设备及存储介质
CN114254035A (zh) 数据库系统、数据处理方法及设备

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