xref: /openbmc/linux/Documentation/translations/zh_CN/filesystems/virtiofs.rst (revision ead5d1f4d877e92c051e1a1ade623d0d30e71619)
1*6735c208SWang Wenhu.. SPDX-License-Identifier: GPL-2.0
2*6735c208SWang Wenhu
3*6735c208SWang Wenhu.. include:: ../disclaimer-zh_CN.rst
4*6735c208SWang Wenhu
5*6735c208SWang Wenhu:Original: :ref:`Documentation/filesystems/virtiofs.rst <virtiofs_index>`
6*6735c208SWang Wenhu
7*6735c208SWang Wenhu译者
8*6735c208SWang Wenhu::
9*6735c208SWang Wenhu
10*6735c208SWang Wenhu	中文版维护者: 王文虎 Wang Wenhu <wenhu.wang@vivo.com>
11*6735c208SWang Wenhu	中文版翻译者: 王文虎 Wang Wenhu <wenhu.wang@vivo.com>
12*6735c208SWang Wenhu	中文版校译者: 王文虎 Wang Wenhu <wenhu.wang@vivo.com>
13*6735c208SWang Wenhu
14*6735c208SWang Wenhu===========================================
15*6735c208SWang Wenhuvirtiofs: virtio-fs 主机<->客机共享文件系统
16*6735c208SWang Wenhu===========================================
17*6735c208SWang Wenhu
18*6735c208SWang Wenhu- Copyright (C) 2020 Vivo Communication Technology Co. Ltd.
19*6735c208SWang Wenhu
20*6735c208SWang Wenhu介绍
21*6735c208SWang Wenhu====
22*6735c208SWang WenhuLinux的virtiofs文件系统实现了一个半虚拟化VIRTIO类型“virtio-fs”设备的驱动,通过该\
23*6735c208SWang Wenhu类型设备实现客机<->主机文件系统共享。它允许客机挂载一个已经导出到主机的目录。
24*6735c208SWang Wenhu
25*6735c208SWang Wenhu客机通常需要访问主机或者远程系统上的文件。使用场景包括:在新客机安装时让文件对其\
26*6735c208SWang Wenhu可见;从主机上的根文件系统启动;对无状态或临时客机提供持久存储和在客机之间共享目录。
27*6735c208SWang Wenhu
28*6735c208SWang Wenhu尽管在某些任务可能通过使用已有的网络文件系统完成,但是却需要非常难以自动化的配置\
29*6735c208SWang Wenhu步骤,且将存储网络暴露给客机。而virtio-fs设备通过提供不经过网络的文件系统访问文件\
30*6735c208SWang Wenhu的设计方式解决了这些问题。
31*6735c208SWang Wenhu
32*6735c208SWang Wenhu另外,virto-fs设备发挥了主客机共存的优点提高了性能,并且提供了网络文件系统所不具备
33*6735c208SWang Wenhu的一些语义功能。
34*6735c208SWang Wenhu
35*6735c208SWang Wenhu用法
36*6735c208SWang Wenhu====
37*6735c208SWang Wenhu以``myfs``标签将文件系统挂载到``/mnt``:
38*6735c208SWang Wenhu
39*6735c208SWang Wenhu.. code-block:: sh
40*6735c208SWang Wenhu
41*6735c208SWang Wenhu  guest# mount -t virtiofs myfs /mnt
42*6735c208SWang Wenhu
43*6735c208SWang Wenhu请查阅 https://virtio-fs.gitlab.io/ 了解配置QEMU和virtiofsd守护程序的详细信息。
44*6735c208SWang Wenhu
45*6735c208SWang Wenhu内幕
46*6735c208SWang Wenhu====
47*6735c208SWang Wenhu由于virtio-fs设备将FUSE协议用于文件系统请求,因此Linux的virtiofs文件系统与FUSE文\
48*6735c208SWang Wenhu件系统客户端紧密集成在一起。客机充当FUSE客户端而主机充当FUSE服务器,内核与用户空\
49*6735c208SWang Wenhu间之间的/dev/fuse接口由virtio-fs设备接口代替。
50*6735c208SWang Wenhu
51*6735c208SWang WenhuFUSE请求被置于虚拟队列中由主机处理。主机填充缓冲区中的响应部分,而客机处理请求的完成部分。
52*6735c208SWang Wenhu
53*6735c208SWang Wenhu/dev/fuse映射到虚拟队列需要解决/dev/fuse和虚拟队列之间语义上的差异。每次读取\
54*6735c208SWang Wenhu/dev/fuse设备时,FUSE客户端都可以选择要传输的请求,从而可以使某些请求优先于其他\
55*6735c208SWang Wenhu请求。虚拟队列有其队列语义,无法更改已入队请求的顺序。在虚拟队列已满的情况下尤
56*6735c208SWang Wenhu其关键,因为此时不可能加入高优先级的请求。为了解决此差异,virtio-fs设备采用“hiprio”\
57*6735c208SWang Wenhu(高优先级)虚拟队列,专门用于有别于普通请求的高优先级请求。
58*6735c208SWang Wenhu
59