CN109634532A - 多VxWorks主机共享访问存储介质的方法 - Google Patents
多VxWorks主机共享访问存储介质的方法 Download PDFInfo
- Publication number
- CN109634532A CN109634532A CN201811556116.8A CN201811556116A CN109634532A CN 109634532 A CN109634532 A CN 109634532A CN 201811556116 A CN201811556116 A CN 201811556116A CN 109634532 A CN109634532 A CN 109634532A
- Authority
- CN
- China
- Prior art keywords
- host
- access
- share
- vxworks
- queue
- 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.)
- Granted
Links
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]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
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 (6)
1.一种多VxWorks主机共享访问存储介质的方法,包括如下步骤:
单主机文件***操作的队列化,用于将单主机文件***的操作按照队列的形式进行排队操作;
多主机共享访问的队列线程仲裁,通过采用多主机通信的方式对多主机的队列线程进行仲裁;
文件共享层处理,本方法通过在用户操作库和内核驱动层之间增加共享层,无需改变***标准操作接口即可对存储介质进行共享访问,该共享机制对上层应用软件完全透明。
2.根据权利要求1所述的多VxWorks主机共享访问存储介质的方法,其特征在于所述的单主机文件***操作的队列化,具体为通过VxWorks***内部的msgQ消息机制和信号量机制将每个读写操作通过消息发送到读写操作队列线程,队列线程按照先进先出的原则处理接收到的文件***操作。
3.根据权利要求1所述的多VxWorks主机共享访问存储介质的方法,其特征在于所述的多主机共享访问的队列线程仲裁,具体为多主机之间设计通信协议,采用SRIO接口的Doorbell进行通信,利用Doorbell携带的主机状态、操作命令等信息实现多主机之间对于存储介质操作状态的实时交互,从而保证任何时刻均只有单主机在对存储介质进行访问操作。
4.根据权利要求3所述的多VxWorks主机共享访问存储介质的方法,其特征在于在单主机获取读写权限后需要进行分区表更新,确保目前获取的文件***信息是最新的;同时,其他主机放弃读写权限后也需要对分区表更新,确保对文件***的操作能够同步到对方主机处。
5.根据权利要求4所述的多VxWorks主机共享访问存储介质的方法,其特征在于当单次读写数据块大于事先设定的第一阈值时,将读写数据块的大小拆分为事先设定的大小为第二阈值的块并进行多次读写,从而避免单主机读写大文件导致其他主机长时间不能获取读写权限,使多主机操作时各方速度均衡。
6.根据权利要求1所述的多VxWorks主机共享访问存储介质的方法,其特征在于所述的文件共享层处理,具体为在标准操作函数库与内核驱动层之间增加共享操作层,在其中实现本方法所需要的额外操作,使得用户仅采用习惯的操作函数即可实现所述的多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 true CN109634532A (zh) | 2019-04-16 |
CN109634532B 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) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112558888A (zh) * | 2021-02-25 | 2021-03-26 | 上海飞斯信息科技有限公司 | 一种基于RapidIO总线链路的多主机共享存储设备及其共享方法 |
CN113176850A (zh) * | 2021-03-12 | 2021-07-27 | 湖南艾科诺维科技有限公司 | 基于srio接口的共享存储盘及其存取方法 |
Citations (10)
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 |
CN101206632A (zh) * | 2006-12-19 | 2008-06-25 | 国际商业机器公司 | 用套接字连接和共享存储器在主机***间通信的***和方法 |
CN101419572A (zh) * | 2008-11-20 | 2009-04-29 | 四川长虹电器股份有限公司 | 嵌入式设备中大容量Nandflash存储空间的共享方法 |
CN101872317A (zh) * | 2010-07-16 | 2010-10-27 | 山东中创软件工程股份有限公司 | VxWorks多任务同步与通信方法 |
CN102087637A (zh) * | 2009-12-02 | 2011-06-08 | 奇景光电股份有限公司 | 利用率增强的共享汇流排***及汇流排仲裁方法 |
CN103001843A (zh) * | 2012-11-22 | 2013-03-27 | 南京中德保护控制***有限公司 | 基于嵌入式VxWorks的OPC协议转换器 |
CN103617138A (zh) * | 2013-12-16 | 2014-03-05 | 深圳市兴威帆电子技术有限公司 | 多主机仲裁方法及多主机通信*** |
CN107451076A (zh) * | 2016-05-30 | 2017-12-08 | 龙芯中科技术有限公司 | 基于VxWorks***的串口中断处理方法和装置 |
CN107992370A (zh) * | 2017-11-28 | 2018-05-04 | 上海机电工程研究所 | VxWorks平台多任务软件框架实现方法 |
CN108509257A (zh) * | 2017-02-28 | 2018-09-07 | 苏宁云商集团股份有限公司 | 一种基于多线程的消息处理方法及装置 |
-
2018
- 2018-12-19 CN CN201811556116.8A patent/CN109634532B/zh active Active
Patent Citations (10)
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 |
CN101206632A (zh) * | 2006-12-19 | 2008-06-25 | 国际商业机器公司 | 用套接字连接和共享存储器在主机***间通信的***和方法 |
CN101419572A (zh) * | 2008-11-20 | 2009-04-29 | 四川长虹电器股份有限公司 | 嵌入式设备中大容量Nandflash存储空间的共享方法 |
CN102087637A (zh) * | 2009-12-02 | 2011-06-08 | 奇景光电股份有限公司 | 利用率增强的共享汇流排***及汇流排仲裁方法 |
CN101872317A (zh) * | 2010-07-16 | 2010-10-27 | 山东中创软件工程股份有限公司 | VxWorks多任务同步与通信方法 |
CN103001843A (zh) * | 2012-11-22 | 2013-03-27 | 南京中德保护控制***有限公司 | 基于嵌入式VxWorks的OPC协议转换器 |
CN103617138A (zh) * | 2013-12-16 | 2014-03-05 | 深圳市兴威帆电子技术有限公司 | 多主机仲裁方法及多主机通信*** |
CN107451076A (zh) * | 2016-05-30 | 2017-12-08 | 龙芯中科技术有限公司 | 基于VxWorks***的串口中断处理方法和装置 |
CN108509257A (zh) * | 2017-02-28 | 2018-09-07 | 苏宁云商集团股份有限公司 | 一种基于多线程的消息处理方法及装置 |
CN107992370A (zh) * | 2017-11-28 | 2018-05-04 | 上海机电工程研究所 | VxWorks平台多任务软件框架实现方法 |
Non-Patent Citations (1)
Title |
---|
MICCRETTI: "[VxWorks系列]任务间同步与通信之共享内存", 《HTTPS://BLOG.CSDN.NET/WEIXIN_33798152/ARTICLE/DETAILS/86418245》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112558888A (zh) * | 2021-02-25 | 2021-03-26 | 上海飞斯信息科技有限公司 | 一种基于RapidIO总线链路的多主机共享存储设备及其共享方法 |
CN113176850A (zh) * | 2021-03-12 | 2021-07-27 | 湖南艾科诺维科技有限公司 | 基于srio接口的共享存储盘及其存取方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109634532B (zh) | 2022-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10895993B2 (en) | Shared network-available storage that permits concurrent data access | |
US10326836B2 (en) | Partially replicating a snapshot between storage systems | |
EP2962218B1 (en) | Decoupled content and metadata in a distributed object storage ecosystem | |
US20170102885A1 (en) | System and method for using a memory buffer to stream data from a tape to multiple clients | |
CN112789588A (zh) | 基于同步复制的割接引擎 | |
US9996421B2 (en) | Data storage method, data storage apparatus, and storage device | |
CN112236753A (zh) | 使用基于索引节点编号的依赖图更快地重放元数据和数据操作 | |
US20080072002A1 (en) | Backup method | |
CN106933747B (zh) | 基于多流的数据存储***和数据存储方法 | |
US10021148B2 (en) | Selective copying of track data through peer-to-peer remote copy | |
US20150046394A1 (en) | Storage system, storage control device, and storage medium storing control program | |
US20140289487A1 (en) | System of managing remote resources | |
US20160156696A1 (en) | Transparent deferred spooling store and forward based on standard newtork system and client interface | |
CN109634532A (zh) | 多VxWorks主机共享访问存储介质的方法 | |
US9420033B2 (en) | Managing file transfer commands | |
US9483213B1 (en) | Virtual media changers | |
WO2017096942A1 (zh) | 一种文件存储***、数据调度方法及数据节点 | |
CN107622207B (zh) | 加密***级数据结构 | |
US9460182B2 (en) | Networking-assisted input/output order preservation for data replication | |
WO2018157605A1 (zh) | 一种集群文件***中消息传输的方法及装置 | |
US20200133958A1 (en) | Replication between heterogeneous storage systems | |
US8577934B2 (en) | System and method for a storage system response with data migration | |
US20130325800A1 (en) | File migration in a network file system | |
WO2023035754A1 (zh) | 权限同步方法、装置、电子设备与存储介质 | |
US8850117B2 (en) | Storage apparatus and method maintaining at least an order of writing data |
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 |