Multipass中文文档-提高挂载性能

本文详细介绍了如何在Multipass中提高文件夹挂载性能,包括使用SMB/CIFS、NFS和virtio-fs的方法。在Windows、MacOS和Linux上设置SMB共享,并在Multipass实例中挂载这些共享以提升性能。同时,也涵盖了NFS的设置和挂载过程,以及Linux环境下利用LXD后端的virtio-fs优化挂载性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

总目录

1. 概览

2. 教程

3. 使用指引

    3.1 安装Multipass - 基于Linux / 基于macOS / 基于Windows

    3.2 管理实例 - 创建实例 / 修改实例 / 使用实例 / 使用实例命令别名 / 与实例共享数据 / 移除实例

    3.3 管理Multipass - 设置驱动 / 使用Multipass服务授权代理 / 远程使用Multipass / 提高挂载性能 👈 / 使用Packer打包Multipass镜像 / 设置图像界面 / 使用不同的macOS终端 / 配置Multipass外部储存位置

    3.4 问题排查 - 连接日志 / 网络问题处理


如何提高Multipass挂载性能

也见: 如何与实例共享数据, mount

Multipass默认使用SSHFS在实例上挂载主机文件夹. 这提供了一个在性能, 安全和功能之间比较好的中和方案, 其他方法也可以手动完成这个任务.

我们在很多挂载方法上进行了彻头彻尾的测试. 在这里, 我们将简述如何使用我们找到的高效方法在每个系统上如何创建共享, 如何在Multipass实例中挂载他们

内容:


SMB/CIFS挂载

在我们的测试中, SMB在Multipass所有搭建中都是性能优良的. Windows和MacOS提供了一个系统SMB服务器, Linux上也是很容易安装的(较新核心版本提供了一个系统服务器, 而我们在这描述的也可以针对于老旧Linux版本).

使用SMB共享文件夹

Windows

首先, 这一部分是可选操作, 我们可以启动在Windows中内置的SMB服务器上的RDMA. 在控制面板中, 我们可以找到Windows功能开关. 在这个窗口, 我们需要启用SMB驱动. Windows可能需要启动.

然后, 我们可以用PowerShell共享文件夹. 看下面的命令:

New-SmbShare -Name "share_name" -Path "C:\my_path"

我们会在主机上创建一个名为\\hostname\share_name的共享. 命令New-SmbShare有很多选项可以控制连接和编码, 但是这不是这篇文章的话题.


MacOS

这些完全可以使用界面操作(GUI)完成, 只是有些步骤从命令行操作比较简单. 如果可以, 我们后面会展示后者.

我们需要按照下面的命令启动共享系统:

$ sudo defaults write /Library/Preferences/SystemConfiguration/com.apple.smb.server.plist EnabledServices -aaray disk
$ sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.smbd.plist

然后, 去共享指定文件夹:

$ sudo sharing -a /my_path/

最后, 我们需要允许用户通过SMB连接到共享文件夹. 因此, 我们需要导航到系统偏好(System Preferences), 找到共享图标. 在共享菜单有一个选项按钮. 这个按钮会打开一个窗口, 我们可以在其中选择哪些用户能够挂载. 接下来选择想要授权的用户并输入密码.

所有这些步骤会在主机上创建一个名为//hostname/my_path/的挂载点.


Linux

在Ubuntu(或其他任何基于Debian的发行版)中, samba-common包包含了SMB服务器. 我们可以使用命令安装它

$ sudo apt update && sudp apt install -y samba-common

然后, 编辑文件/etc/samba/smb.conf, 使我们可以添加共享, 新增词条, 如下:

[test_smb_mount]
  comment = smb mount test
  path = /my_path/
  read only = no
  browsable = yes
  kernel oplocks = yes

在实例中使用SMB共享挂载文件夹

一旦主机操作系统可以共享文件夹, 我们就可以在实例中挂载它. 为此, 需要cifs-tools包, 可以用下面命令安装

$ sudo apt upadte && sudo apt install -y cifs-utils

挂载需要下面命令行最终完成

$ sudo mount -t cifs //hostname/my_path_or_share_name mount_folder/ -o user=my_name,uid=1000

my_name是主机上共享文件夹的用户. 在终端中会被要求输入密码, 输入就完成了.

这一步可选. 我们可以在/etc/fstab新增一行, 让操作系统启动时自动挂载文件夹, 或至少不需要指定挂载名称或选项. 命令行应如下:

//hostname/my_path_or_share_name mount_folder/ cifs user=my_name,uid=1000 0 0

这个文件中的词条使用空格或者制表符分隔. 第一个是共享名称或路径, 第二个是要挂载文件夹的目录, 第三个是挂载类型, 第四个是一个逗号分隔的选项列表(添加noatuo避免启动时挂载), 最后两个选项最好保持为0.

假设noauto在选项中被指定了, 文件夹就需要用下面方式挂载

$ sudo mount mount_folder/

virtio-fs挂载

如果在Linux上使用LXD后端, 我们可受益于有一个优良的文件系统挂载, 鉴于系统运行时无法挂载的花销. 使用下面命令在实例上挂载文件夹

$ lxc --project multipass config device add lxdinstance mount_lxd disk source=/my_path path=//mount_folder

鉴于lxdinstance是实例名称, mount_lxd是一个挂载过于随意的设备名称, source指定了共享路径, path指定了源文件(source)需要挂载的目录. 只需要这个命令, LXD搞定了所有事情: 无需在实例运行命令.

virtio-fs也在qemu和libvirt后端可用, 尽管需要额外安装.


NFS挂载

Linux和MacOS在系统上提供了NFS服务器.


使用NFS共享文件夹

MacOS

MacOS上的NFS服务器是使用nfsd命令和文件/etc/exports控制. 我们通过新增文件夹到文件中去共享, 使用类似于下面的一行文本:

/my_path -mapall=host_user -network 192.168.0.0 -mask=255.255.0.0

-network-mask控制着共享可以连接到的网络. 然后, 我们使用命令启动服务器

$ sudo nfsd start

(或者服务器已经正在运行则使用restart)


Linux

在Ubuntu(或其他任何基于Debian的发行版), nfs-kernel-server包包含了核心中需要使用NFS服务器的文件. 我们可以用命令安装它

$ sudo apt update && sudo apt install -y nfs-kernel-server

用下面命令共享文件夹:

$ sudo exportfs *:/my_path

*表示"导出任何主机"; 我们在这可以指定主机名或IP地址


在实例中使用NFS共享挂载文件夹

我们首先需要使用下面命令在实例中安装NFS客户端

$ sudo apt update && sudo apt install -y nfs-common

然后, 我们可以用下面命令挂载共享文件夹

$ sudo mount -t nfs HPST_IP:/my_path /mount_folder -o user=host_user, uid=instance_uid,gid=instance_gid

原文链接

How to improve mounts performance in Multipass

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值