CN108509435B - 实例系统挂载远程文件的方法和装置 - Google Patents
实例系统挂载远程文件的方法和装置 Download PDFInfo
- Publication number
- CN108509435B CN108509435B CN201710101579.4A CN201710101579A CN108509435B CN 108509435 B CN108509435 B CN 108509435B CN 201710101579 A CN201710101579 A CN 201710101579A CN 108509435 B CN108509435 B CN 108509435B
- Authority
- CN
- China
- Prior art keywords
- directory
- sdcard
- file
- android system
- remote file
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供的实例系统挂载远程文件的方法和装置,包括如果安卓系统开启fuse功能,则将安卓系统未开启fuse功能时应挂载到/sdcard目录的远程文件挂载到安卓系统启动sdcard daemon的命令对应父目录的特定子目录,有效解决了安卓系统开启fuse功能后挂载到本地/sdcard目录的远程文件不能被应用识别和使用的问题,在安卓系统免安装运行应用等诸多技术方案中都具有重要价值。
Description
技术领域
本发明涉及实例系统挂载远程文件的方法和装置。
背景技术
某种操作系统加上运行该操作系统所需的必要硬件(例如处理器、存储器等),可以视为一个实例系统,实例系统中可以运行各种应用(应用指能够在实例系统的操作系统中运行的软件或程序)。将若干个实例系统按照一定的架构方式(例如分布式)集中管理,可以形成云系统。通常云系统由运营商负责日常运营,为用户提供服务。如果实例系统的硬件配置较低,存储器的存储空间较小,则往往在云系统中设置专用的存储服务器,在存储服务器上存储大量应用运行时需要使用的文件。实例系统和存储服务器可以通过网络文件系统(Network File System,简称NFS)共享文件。
开源的安卓(Android)系统具有很多优点,常被选取为实例系统的操作系统。如果某个应用运行时需要使用的文件位于安卓系统的/sdcard目录,可以利用安卓系统的mount命令通过NFS将位于远程存储服务器的文件挂载到本地的/sdcard目录(这些文件并没有实际存储在本地的/sdcard目录),应用可以正常识别并使用这些文件。
安卓系统的内核提供了fuse模块,fuse模块的功能是使安卓系统的/data目录和/sdcard目录共享userdata分区。由于标准安卓系统中没有根(root)权限的应用有权使用的目录为/data目录和/sdcard目录,开启fuse功能能够有效避免应用占用目录不合理导致/data目录和/sdcard目录一个有空间而另一个被占满影响安卓系统运行的问题,因此安卓系统为了流畅运行往往会开启fuse功能。但开启fuse功能会导致新的问题,即应用无法识别和使用挂载到本地/sdcard目录的位于远程存储服务器的文件。如何解决这一问题,尚未见报道。
在说明书“背景技术”部分公开的内容,有助于本领域技术人员理解本发明的技术方案,但不应据此认为这些内容一定属于现有技术或公知常识。
发明内容
为了克服“背景技术”部分所反映的缺陷,本发明提供实例系统挂载远程文件的方法和装置。
实例系统挂载远程文件的方法,所述的实例系统的操作系统为安卓系统,所述的方法包括:如果安卓系统开启fuse功能,则将安卓系统未开启fuse功能时应挂载到/sdcard目录的远程文件挂载到安卓系统启动sdcard daemon的命令对应父目录的特定子目录。
进一步的,所述的安卓系统启动sdcard daemon的命令在安卓系统的init.rc文件中。
进一步的,所述的父目录为/data/media目录,所述的特定子目录为/data/media/0目录。
进一步的,所述的实例系统远程读取挂载的文件,在本地执行对挂载的文件的写操作。
实例系统挂载远程文件的装置,用于实施实例系统挂载远程文件的方法。
本发明技术方案中,“包括”、“用于”等词语应按照开放式表达方式理解。本领域技术人员通过阅读本说明书并结合现有技术或公知常识能够获知的内容,本说明书中不再赘述。
本发明提供的实例系统挂载远程文件的方法和装置,有效解决了安卓系统开启fuse功能后挂载到本地/sdcard目录的远程文件不能被应用识别和使用的问题,在安卓系统免安装运行应用等诸多技术方案中都具有重要价值。
附图说明
图1为具体实施方式中云系统架构的简化示意图。
具体实施方式
下面对本发明的实施方式进行进一步的具体说明。但应注意,本发明的范围并不局限于所描述的具体技术方案。任何对所描述的具体技术方案中的技术要素进行相同或等同替换获得的技术方案或本领域技术人员在所描述的具体技术方案的基础上不经过创造性劳动就可以获得的技术方案,都应当视为落入本发明的保护范围。
某种操作系统加上运行该操作系统所需的必要硬件(例如处理器、存储器等),可以构成一个实例系统,实例系统中可以运行各种应用(应用指能够在实例系统的操作系统中运行的软件或程序)。将若干个实例系统按照一定的架构方式集中管理,可以形成云系统。通常,云系统中设置有控制节点、实例系统和存储服务器三个部件,图1为云系统架构的简化示意图。实例系统和存储服务器彼此独立,都由控制节点控制和管理,图1中的实线双向箭头表示控制和管理关系,虚线双向箭头表示通信关系。控制节点可以选用具有X86架构的控制服务器,而存储服务器为独立的高性能存储服务器,具有较高的配置(例如8核处理器、64G大内存等)。运营商对存储服务器采取严格的物理隔离和技术保护措施,确保存储服务器上存储的数据是安全的。实际的云系统中控制节点、实例系统和存储服务器的数量远不止一个,为了简单显示,图1中控制节点、实例系统和存储服务器各只画了一个。实例系统和存储服务器可以通过NFS共享文件,这样应用运行时需要的很多文件可以不存储在实例系统本地而是存储在远程的存储服务器上,实例系统免安装运行应用等诸多技术方案也以此为基础(可以参考申请号为201610801208.2、公布号为CN 106371878A的中华人民共和国发明专利申请)。
开源的安卓(Android)系统具有很多优点,常被选取为实例系统的操作系统。安卓系统的内核提供的fuse模块,fuse模块的功能是使/data目录和/sdcard目录共享userdata分区,应用对/sdcard目录的文件操作被fuse模块转发到用户态的sdcard deamon(源代码位于/system/core/sdcard/sdcard.c)中。如果安卓系统开启了fuse功能,将导致应用无法识别和使用挂载到本地/sdcard目录的远程文件,造成实例系统免安装运行应用等技术方案无法实现。
为解决上述问题,本发明提供实例系统挂载远程文件的方法。该方法的核心,如果安卓系统开启fuse功能,则将安卓系统未开启fuse功能时应挂载到/sdcard目录的远程文件挂载到安卓系统启动sdcard daemon的命令对应父目录的特定子目录。
具体的,init.rc文件是安卓系统的初始化脚本,安卓系统启动sdcard daemon的命令在init.rc文件中。如果安卓系统开启fuse功能,则会执行启动sdcard daemon的命令。上述命令会对应一个父目录,该父目录是sdcard deamon在userdata分区存储被fuse模块转发的文件的真正目录的父目录,该父目录的特定子目录即为sdcard deamon在userdata分区存储被fuse模块转发的文件的真正目录。
例如,对于标准安卓系统,init.rc文件中启动sdcard daemon的命令为“servicesdcard/system/bin/sdcard-u 1023-g 1023-l/data/media/mnt/shell/emulated”,该命令的对应父目录为/data/media目录,该父目录的特定子目录为/data/media/0目录。
下面通过一个示例进一步说明。应用为一款名为《阴阳师》的游戏,该游戏运行时需要的文件应当位于安卓系统的/sdcard/Android/data/com.netease.onmyoji.baidu目录下,远程的存储服务器完全模拟安卓系统的目录结构存储文件。安卓系统开启fuse功能后,如果将位于存储服务器的远程文件挂载到实例系统本地,先使用命令“busybox mount–t nfs4–o ro 172.16.50.212:/var/nfs/sdcard/com.netease.onmyoji.baidu-small/data/media/0/Android/data/lower”再使用命令“busybox mount–t overlayfsoverlayfs–o lowerdir=lower/,upperdir=upper//data/media/0/Android/data/com.netease.onmyoji.baidu”。这样可以实现即使安卓系统开启fuse功能,游戏在本地运行时仍能识别并使用位于存储服务器上的/sdcard/Android/data/com.netease.onmyoji.baidu目录下的远程文件。
上述方法还存在缺陷。仅仅通过NFS共享文件,实例系统对于挂载的存储服务器上的文件是可读可写的,如果多个实例系统同时写存储服务器上的同一个文件,会引起数据不一致;同时存储服务器写文件的性能一般,某个实例系统写文件的操作会影响其他实例系统对该文件的读取。如果限定实例系统远程读取挂载的文件,在本地执行对挂载的文件的写操作(即远程文件对实例系统而言是只读不可写的,写操作形成的数据存储在本地),则能够克服上述缺陷。层次文件系统(Overlay FS)和网络文件系统NFS相结合的方式可以实现上述限定,但应注意该方式需要小幅度修改标准Overlay FS的代码,Overlay FS代码的具体修改方法已经在互联网公开(可以参考https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1039402以及http://people.canonical.com/~apw/lp1038075-quantal/0002-ovl-copy_up_xattr-may-fail-when-the-lower-fs-does-no.patch,该修改只适用于Overlay FS与NFS4相结合的情形)。
在实例系统的操作系统中编写相应的程序,可以实施上述实例系统挂载远程文件的方法,该程序可以视为实例系统挂载远程文件的装置。实例系统挂载远程文件的装置的实质为计算机软件,其实现方式是按照实例系统挂载远程文件的方法的描述建立与描述相对应的功能模块,形成基于计算机程序的功能模块构架。实例系统挂载远程文件的装置不是主要通过硬件方式实现的实体装置。
实例系统挂载远程文件的方法和装置,有效解决了安卓系统开启fuse功能后挂载到本地/sdcard目录的远程文件不能被应用识别和使用的问题,在安卓系统免安装运行应用等诸多技术方案中都具有重要价值,可以保证无论安卓系统是否开启fuse功能免安装运行应用等技术方案都能够实现。
本领域技术人员在以上所描述的具体技术方案的基础上,完全可以构造出其他方案。在此不一一列举。
Claims (5)
1.实例系统挂载远程文件的方法,所述的实例系统的操作系统为安卓系统,其特征在于,所述的方法包括:
如果安卓系统开启fuse功能,则将安卓系统未开启fuse功能时应挂载到/sdcard目录的远程文件挂载到安卓系统启动sdcard daemon的命令对应父目录的特定子目录;所述父目录是sdcard deamon在userdata分区存储被fuse模块转发的文件的真正目录的父目录,所述父目录的特定子目录为sdcard deamon在userdata分区存储被fuse模块转发的文件的真正目录。
2.根据权利要求1所述的方法,其特征在于,所述的安卓系统启动sdcard daemon的命令在安卓系统的init.rc文件中。
3.根据权利要求1所述的方法,其特征在于,所述的父目录为/data/media目录,所述的特定子目录为/data/media/0目录。
4.根据权利要求1所述的方法,其特征在于,所述的实例系统远程读取挂载的文件,在本地执行对挂载的文件的写操作。
5.实例系统挂载远程文件的装置,其特征在于,所述的装置用于实施权利要求1-4任一项所述的实例系统挂载远程文件的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710101579.4A CN108509435B (zh) | 2017-02-24 | 2017-02-24 | 实例系统挂载远程文件的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710101579.4A CN108509435B (zh) | 2017-02-24 | 2017-02-24 | 实例系统挂载远程文件的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108509435A CN108509435A (zh) | 2018-09-07 |
CN108509435B true CN108509435B (zh) | 2021-03-23 |
Family
ID=63373690
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710101579.4A Active CN108509435B (zh) | 2017-02-24 | 2017-02-24 | 实例系统挂载远程文件的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108509435B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114461290A (zh) * | 2020-10-22 | 2022-05-10 | 华为云计算技术有限公司 | 数据处理的方法、实例以及系统 |
WO2023102801A1 (en) * | 2021-12-09 | 2023-06-15 | Intel Corporation | Apparatus, method and computer program for accessing an application software by a plurality of users |
CN113986858B (zh) * | 2021-12-24 | 2022-06-03 | 北京鲸鲮信息系统技术有限公司 | Linux兼容安卓系统的共享文件操作方法和装置 |
CN114416292B (zh) * | 2021-12-31 | 2024-05-28 | 北京字节跳动网络技术有限公司 | 定位设备串口的虚拟化方法、设备、装置、介质及产品 |
CN114185851B (zh) * | 2022-02-14 | 2022-07-05 | 麒麟软件有限公司 | 安卓访问Linux本地目录和文件的方法与系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101853254A (zh) * | 2009-03-31 | 2010-10-06 | 国际商业机器公司 | 挂载文件或目录到本地或远程主机的方法和装置 |
CN105207830A (zh) * | 2014-06-11 | 2015-12-30 | 腾讯科技(深圳)有限公司 | 一种终端信息的检测方法、装置及终端 |
EP3009989A1 (en) * | 2014-10-16 | 2016-04-20 | Wipro Limited | System and method for distributed augmented reality |
CN105808269A (zh) * | 2014-12-30 | 2016-07-27 | Tcl集团股份有限公司 | 一种将应用安装到虚拟sd卡的方法及装置 |
-
2017
- 2017-02-24 CN CN201710101579.4A patent/CN108509435B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101853254A (zh) * | 2009-03-31 | 2010-10-06 | 国际商业机器公司 | 挂载文件或目录到本地或远程主机的方法和装置 |
CN105207830A (zh) * | 2014-06-11 | 2015-12-30 | 腾讯科技(深圳)有限公司 | 一种终端信息的检测方法、装置及终端 |
EP3009989A1 (en) * | 2014-10-16 | 2016-04-20 | Wipro Limited | System and method for distributed augmented reality |
CN105808269A (zh) * | 2014-12-30 | 2016-07-27 | Tcl集团股份有限公司 | 一种将应用安装到虚拟sd卡的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108509435A (zh) | 2018-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108509435B (zh) | 实例系统挂载远程文件的方法和装置 | |
US11314560B1 (en) | System and method for hierarchical interception with isolated environments | |
US11329885B2 (en) | Cluster creation using self-aware, self-joining cluster nodes | |
US10379836B2 (en) | Optimized creation of distributed storage and distributed processing clusters on demand | |
US11146620B2 (en) | Systems and methods for instantiating services on top of services | |
US9274824B2 (en) | Network technology standard operating environment | |
US8539488B1 (en) | System and method for application isolation with live migration | |
Zhang et al. | 4VP: A novel meta OS approach for streaming programs in ubiquitous computing | |
US10303458B2 (en) | Multi-platform installer | |
US20100325624A1 (en) | Method and System for Application Portability | |
US20150095597A1 (en) | High performance intelligent virtual desktop infrastructure using volatile memory arrays | |
US9612924B1 (en) | Fault tolerance in a distributed file system | |
CN106201527B (zh) | 一种基于逻辑分区的应用程序容器系统 | |
US9959157B1 (en) | Computing instance migration | |
US11593103B1 (en) | Anti-pattern detection in extraction and deployment of a microservice | |
US11327750B1 (en) | Domain-driven application breakout | |
US20230229481A1 (en) | Provisioning dpu management operating systems | |
CN117193936B (zh) | 超融合架构下的虚拟机管理方法、装置及设备 | |
CN113407257A (zh) | Mysql集群部署方法、装置、电子设备及存储介质 | |
US10394619B2 (en) | Signature-based service manager with dependency checking | |
US11295018B1 (en) | File system modification | |
CN111459619A (zh) | 一种基于云平台实现服务的方法和装置 | |
Frampton et al. | Apache mesos | |
US20230229480A1 (en) | Provisioning dpu management operating systems using firmware capsules | |
Vyas et al. | Core Kubernetes |
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 |