Linux系统挂载SMB文件系统

转自https://help.aliyun.com/zh/nas/user-guide/mount-an-smb-file-system-on-a-linux-ecs-instance

前提条件

  • 在需要创建文件系统的地域,已有可用的云服务器ECS(Linux)。具体操作,请参见创建ECS实例

    重要

    • Linux系统推荐挂载使用NFS文件系统。由于Linux系统对SMB协议的兼容程度较低,建议仅在需要跨操作系统共享数据的情况下使用Linux系统挂载SMB文件系统。
    • 由于Linux一些早期版本的SMB客户端在某些场景有缺陷,如果您使用了非官方支持的Linux操作系统版本,阿里云不能保证该SMB文件系统的可靠性。

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

    <colgroup style="box-sizing: inherit; padding: 0px; margin: 0px;"><col colwidth="1" style="box-sizing: inherit; padding: 0px; margin: 0px; width: 304.25px;"></colgroup><colgroup style="box-sizing: inherit; padding: 0px; margin: 0px;"><col colwidth="3" style="box-sizing: inherit; padding: 0px; margin: 0px; width: 912.75px;"></colgroup>

    操作系统类型 操作系统版本
    CentOS CentOS 7.6 64位:3.10.0-957.21.3.el7.x86_64及以上
    Alibaba Cloud Linux Alibaba Cloud Linux 2.1903 64位:4.19.43-13.2.al7.x86_64及以上
    Debian Debian 9.10 64位:4.9.0-9-amd64及以上
    Ubuntu Ubuntu 18.04 64位:4.15.0-52-generic及以上
    OpenSuse OpenSuse 42.3 64位:4.4.90-28-default及以上
    SUSE Linux Enterprise Server 12 SP2 64位:4.4.74-92.35-default及以上
    CoreOS CoreOS 2079.4.0 64位:4.19.43-coreos及以上
  • 已创建SMB文件系统。具体操作,请参见通过控制台创建通用型NAS文件系统

  • 已添加挂载点。具体操作,请参见添加挂载点

  • 网络连通。

    • 确保云服务器ECS(Linux)和SMB文件系统在同一个专有网络VPC中。

    • 检查文件系统白名单,确保云服务器ECS(Linux)已经被授予访问该SMB文件系统的权限。

    • 确保端口445处于打开状态,SMB文件系统将通过TCP端口445通信。

      如果端口445未打开,请在目标ECS实例的安全组中添加关于端口445的安全组规则。具体操作,请参见添加安全组规则

安装CIFS客户端

在Linux系统中挂载SMB文件系统时,需要先安装CIFS客户端。请您确保每台Linux服务器执行一次配置即可,不需要在每次挂载时都执行。

  1. 连接ECS(Linux)实例。具体连接方式,请参见连接ECS实例

  2. 安装CIFS客户端。

    <caption style="box-sizing: inherit; padding: 0px; margin: 0px; font-style: normal; font-weight: 500; text-align: left;"></caption><colgroup style="box-sizing: inherit; padding: 0px; margin: 0px;"><col colwidth="1" style="box-sizing: inherit; padding: 0px; margin: 0px; width: 405.656px;"></colgroup><colgroup style="box-sizing: inherit; padding: 0px; margin: 0px;"><col colwidth="2" style="box-sizing: inherit; padding: 0px; margin: 0px; width: 811.344px;"></colgroup>

    操作系统 说明
    Ubuntu 通过apt-get软件包管理工具进行安装。
    sudo apt-get update
    
    sudo apt-get install cifs-utils
    

    |
    | Debian |
    | RHEL | 通过yum包管理器进行安装。

    sudo yum install cifs-utils
    

    |
    | CentOS |
    | Alibaba Cloud Linux |
    | OpenSUSE | 通过zypper工具进行安装。

    sudo zypper install cifs-utils
    

    |
    | SLES12-SP2 |
    | CoreOS | 通过以下方法进行安装:

    1. 配置SELINUX。

      sed -i 's/SELINUXTYPE=mcs/SELINUXTYPE=targeted/' /etc/selinux/config
      
    2. 在CoreOS操作系统上手动编译CIFS客户端工具。

      您可以参照以下步骤启动一个Fedora容器用以编译CIFS客户端工具。或下载阿里云官方提供的名CoreOS版本的CIFS工具包,并拷贝至/tmp/或者/bin目录。

      1. 在CoresOS上启动一个Fedora容器自行编译cifs-utils。

        docker run -t -i -v /tmp:/cifs fedora /bin/bash
        
      2. 在docker环境内依次运行以下命令。

        1. yum groupinstall -y "Development Tools" "Development Libraries"
          
        2. yum install -y bzip2
          
        3. curl https://download.samba.org/pub/linux-cifs/cifs-utils/cifs-utils-6.9.tar.bz2 --output cifs-utils-6.9.tar.bz2;
          
        4. bunzip2 cifs-utils-6.9.tar.bz2 && tar xvf cifs-utils-6.9.tar
          
        5. cd cifs-utils-6.9; ./configure && make
          
        6. cp mount.cifs /cifs/
          
        7. exit
          

    |

手动挂载文件系统

  1. 连接ECS(Linux)实例。具体连接方式,请参见连接ECS实例

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

    sudo mount -t cifs //file-system-id.region.nas.aliyuncs.com/myshare /mnt -o vers=2.0,guest,uid=0,gid=0,dir_mode=0755,file_mode=0755,mfsymlinks,cache=strict,rsize=1048576,wsize=1048576
    

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

    <caption style="box-sizing: inherit; padding: 0px; margin: 0px; font-style: normal; font-weight: 500; text-align: left;"></caption><colgroup style="box-sizing: inherit; padding: 0px; margin: 0px;"><col colwidth="1" style="box-sizing: inherit; padding: 0px; margin: 0px; width: 243.391px;"></colgroup><colgroup style="box-sizing: inherit; padding: 0px; margin: 0px;"><col colwidth="4" style="box-sizing: inherit; padding: 0px; margin: 0px; width: 973.609px;"></colgroup>

    参数 说明
    文件系统类型 在Linux操作系统中挂载SMB文件系统,必须配置-t cifs参数。
    挂载点地址 添加文件系统挂载点时,自动生成的挂载点地址,请根据实际值替换。您可以在NAS控制台,单击目标文件系统,然后单击挂载使用,将鼠标放置在挂载点地址列的[图片上传失败...(image-2a5c02-1695690258232)]

    图标上获取挂载点地址。 |
    | myshare | SMB文件系统的共享目录名称,不支持变更。 |
    | 挂载目录 | 您要挂载的目标路径,例如:/mnt/sharepath。 |
    | 挂载选项 |

    通过添加-o参数指定挂载必选选项:

    • vers:支持2.0及以上协议版本。
    • guest:只支持基于ntlm认证协议的客户端挂载。
    • rsize:用来设置读数据包的最大限制。一般需要设置成1048576(1 MB)。
    • wsize:用来设置写数据包的最大限制,一般需要设置成1048576(1 MB)。

    通过添加-o参数指定挂载可选选项:

    • uid:挂载成功后,文件所属的用户。如果未设置uid,则默认uid=0。
    • gid:挂载成功后,文件所属的用户组。如果未设置gid,则默认gid=0。
    • dir_mode:向用户授予指定目录的读取、写入和执行权限。必须以0开头,例如:0755、0644等。如果未设置dir_more,则默认dir_mode=0755。
    • file_mode:向用户授予普通文件的读取、写入和执行权限。必须以0开头,例如:0755、0644等。如果未设置file_mode,则默认file_mode=0755。
    • mfsymlinks:支持symbol link功能。
    • cache:
      • cache=strict:设置SMB文件系统使用客户端缓存。如果未设置cache,则默认cache=strict。
      • cache=none:设置SMB文件系统不使用客户端缓存。
    • atime|relatime:如果您的业务对文件的访问时间非极度敏感,请勿使用atime选项,默认采用relatime方式挂载。

    说明

    • 授予云服务器(Linux)管理员拥有对SMB文件系统的绝对控制权限。
    • 您可以使用mount | grep cifs命令查询自己的挂载点信息。
    • 如果您使用非官方支持的Linux操作系统版本,强烈建议使用内核在3.10.0-514以上的版本。如果Linux kernel版本小于等于3.7,必须在挂载选项中设置cache=strict参数。您可以执行uname -a命令检查当前内核版本。

    |

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

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

    [图片上传失败...(image-d9604b-1695690258233)]

    挂载成功后,您可以执行df -h命令,查看当前文件系统的容量信息。

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

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

    [图片上传失败...(image-1c683d-1695690258233)]

自动挂载文件系统

为避免已挂载文件系统的云服务器ECS重启后,挂载信息丢失,您可以通过在Linux ECS实例中配置/etc/fstab文件,实现在云服务器ECS设置重启时SMB文件系统自动挂载。

说明

在配置自动挂载前,请先确认手动挂载成功,避免ECS启动失败。

  1. 打开/etc/fstab配置文件,添加自动挂载配置。

    //<挂载点地址>/myshare /mnt cifs vers=3,guest,uid=0,gid=0,dir_mode=0755,file_mode=0755,mfsymlinks,cache=strict,rsize=1048576,wsize=1048576 0 0
    

    示例中主要参数说明,请参见SMB(Linux)挂载命令参数说明表。其余参数说明如下。

    <caption style="box-sizing: inherit; padding: 0px; margin: 0px; font-style: normal; font-weight: 500; text-align: left;"></caption><colgroup style="box-sizing: inherit; padding: 0px; margin: 0px;"><col colwidth="1" style="box-sizing: inherit; padding: 0px; margin: 0px; width: 304.25px;"></colgroup><colgroup style="box-sizing: inherit; padding: 0px; margin: 0px;"><col colwidth="3" style="box-sizing: inherit; padding: 0px; margin: 0px; width: 912.75px;"></colgroup>

    参数 说明
    0(wsize值后第一项) 非零值表示文件系统应由dump备份。对于NAS文件系统而言,此值默认为0。
    0(wsize值后第二项) 该值表示fsck在启动时检查文件系统的顺序。对于NAS文件系统而言,此值默认为0,表示fsck不应在启动时运行。
  2. 执行reboot命令,重启云服务器ECS。

    说明

    在重启云服务器ECS前,请确认手动挂载成功,避免ECS重启失败。另外,如果自动挂载配置成功,在ECS重启后的一分钟内,可以通过df -h命令查看到挂载的NAS文件系统。

经典使用场景

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

云服务器ECS(Linux)共享访问场景

多用户Home Directory场景

云服务器ECS(Linux) WebServer共享访问场景

云服务器ECS(Windows)和云服务器ECS(Linux)共享访问场景

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,457评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,837评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,696评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,183评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,057评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,105评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,520评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,211评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,482评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,574评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,353评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,897评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,489评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,683评论 2 335

推荐阅读更多精彩内容