CN109634532B - 多VxWorks主机共享访问存储介质的方法 - Google Patents
多VxWorks主机共享访问存储介质的方法 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Abstract
本发明公开了一种多VxWorks主机共享访问存储介质的方法,包括单主机文件系统操作的队列化,多主机共享访问的队列线程仲裁和文件共享层处理。本发明提供的这种多VxWorks主机共享访问存储介质的方法,通过设置单主机文件系统操作的队列化、多主机共享访问的队列线程仲裁和文件共享层处理,解决了多主机多任务共享访问硬盘中出现的读写冲突、文件损坏、分区表损坏等问题,而且使得单主机对硬盘的操作,其他主机能够及时获取文件信息,从而做到多主机信息的同s步。
Description
技术领域
本发明具体涉及一种多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主机共享访问存储介质。
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)
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)
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)
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平台多任务软件框架实现方法 |
-
2018
- 2018-12-19 CN CN201811556116.8A patent/CN109634532B/zh active Active
Patent Citations (4)
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)
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 |