小蒋同学

小蒋同学

· Linux技术 · · 554次浏览

Linux系统挂载SMB文件系统

本文主要介绍如何将SMB文件系统挂载至Linux上并执行读写操作。

前提条件

注意 Linux系统推荐挂载使用NFS文件系统。由于Linux系统对SMB协议的兼容程度较低,建议仅在需要跨操作系统共享数据的情况下使用Linux系统挂载SMB文件系统。

SMB文件系统现在官方支持如下的Linux操作系统版本。如果没有特别声明,本文仅针对以下Linux操作系统版本:

  • CentOS 7.6 64bit(3.10.0-957.5.1.el7.x86_64)
  • Ubuntu 18.04 64bit(4.15.0-48-generic)
  • Debian 9.9 64bit(4.9.0-9-amd64)
  • Suse Enterprise Server 12 SP2 64bit(4.4.74-92.35-default)
  • OpenSUSE 42.3 64bit(4.4.90-28-default)
  • Alibaba Cloud Linux(4.19.34-11.al7.x86_64)
  • CoreOS(4.19.43-coreos VersionID=2079.4.0)
说明 由于Linux一些早期版本的SMB客户端在某些场景有缺陷,如果您使用了非官方支持的Linux操作系统版本,阿里云不能保证该SMB文件系统的可靠性。

安装软件

在Linux操作系统中安装cifs-utils工具包。

如果您使用Ubuntu或Debian操作系统,通过apt-get软件包管理工具进行安装。

sudo apt-get update
sudo apt-get install cifs-utils

如果您使用RHEL、CentOS、Alibaba Cloud Linux操作系统,通过yum包管理器进行安装。

sudo yum install cifs-utils

如果您使用OpenSUSE、SLES12-SP2操作系统,通过zypper或yast工具进行安装。

sudo zypper install cifs-utils
sudo yast2 -> Software -> Software Management, 然后安装cifs-utils

挂载文件系统

使用root用户或sudo enabled客户端管理员用户,登录Linux。

执行以下命令,挂载文件系统。

mount -t cifs //hostname/myshare /mnt -o vers=2.0,guest,uid=0,gid=0,dir_mode=0755,file_mode=0755,mfsymlinks,cache=strict,rsize=1048576,wsize=1048576

挂载命令格式:mount -t cifs //<挂载点>/myshare <挂载目录> -o <挂载选项>

20220604165730.png

执行mount -l命令,查看挂载结果。

如果回显包含如下类似信息,说明挂载成功。
p54720.png

挂载成功后,您可以在Linux上访问NAS文件系统,执行读取或写入操作。

您可以把NAS文件系统当作一个普通的目录来访问和使用,例子如下所示。
p54347.png

经典使用场景

不同的使用场景,可配置不同的挂载选项,实现文件系统最优性能。经典的使用场景及挂载选项配置如下所示:

Linux共享访问场景

在多个Linux中需要共享访问文件系统数据,但没有用户权限控制要求,被授权的Linux管理员可以使用如下方法在各个Linux上执行挂载。

mount -t cifs //smbfs.hangzhou-g.aliyun.com/myshare /mnt/sharepath -o vers=2.1,guest,mfsymlinks

多用户Home Directory场景

在多个Linux中需要共享访问文件系统数据时,如果有权限控制需求,可以通过挂载时指定uid、gid、dir_mode、file_mode参数实现。

Linux WebServer共享访问场景

在多个Linux上安装WebServer(如apache),且SMB文件系统作为共享文件存储。

说明

  • SMB文件系统主要特点是共享访问、横向扩展、高可用,由于和本地硬盘实现机理不同,某些场景的小文件访问性能上会稍微有一些差距。对于WebServer场景,如果想要达到极致性能,可以考虑只将需要共享的文件放在SMB文件系统上,而将不需要共享访问的WebServer程序等放在本地硬盘。
  • WebServer应用通常网络协议通讯负载较大,此场景需要开通WebServer加速功能,请您联系阿里云NAS团队申请开通。

Windows和Linux共享访问场景

如果您需要同时从Windows和Linux访问SMB文件系统的内容。则需要在Linux挂载时一定使用客户端缓存,即设置cache=strict或者默认方式挂载。

评论功能已被作者关闭