全部產品
Search
文件中心

File Storage NAS:掛載SMB協議檔案系統

更新時間:May 08, 2025

由於Linux系統對SMB協議的相容程度較低,建議僅在需要跨作業系統共用資料的情況下使用Linux系統掛載SMB協議檔案系統。本文主要介紹如何將SMB協議檔案系統掛載至Elastic Compute Service(Linux)上並執行讀寫操作。

前提條件

  • 在建立SMB協議檔案系統的地區,已有可用的Elastic Compute Service(Linux)。具體操作,請參見建立ECS執行個體

    重要
    • Linux系統推薦掛載使用NFS協議檔案系統。由於Linux系統對SMB協議的相容程度較低,建議僅在需要跨作業系統共用資料的情況下使用Linux系統掛載SMB協議檔案系統。

    • 由於Linux一些早期版本的SMB用戶端在某些情境有缺陷,如果您使用了非官方支援的Linux作業系統版本,阿里雲不能保證該SMB協議檔案系統的可靠性。

    NAS SMB協議檔案系統官方支援如下的Linux作業系統版本。如果沒有特別聲明,本文僅針對以下Linux作業系統版本:

    作業系統類型

    作業系統版本

    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及以上

    • Alibaba Cloud Linux 3.2104 64位:5.10.23-4.al8.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檔案系統

  • 已添加掛載點。具體操作,請參見添加掛載點

  • 網路連通。

    • 確保Elastic Compute Service(Linux)和SMB檔案系統在同一個Virtual Private Cloud中。

    • 檢查檔案系統白名單,確保Elastic Compute Service(Linux)已經被授予訪問該SMB檔案系統的許可權。

    • 確保連接埠445處於開啟狀態,SMB檔案系統將通過TCP連接埠445通訊。

      如果連接埠445未開啟,請在目標ECS執行個體的安全性群組中添加關於連接埠445的安全性群組規則。具體操作,請參見添加安全性群組規則

安裝CIFS用戶端

在Linux系統中掛載SMB協議檔案系統時,需要先安裝CIFS用戶端。請您確保每台Linux伺服器執行一次配置即可,不需要在每次掛載時都執行。

  1. 串連ECS(Linux)執行個體。具體串連方式,請參見串連ECS執行個體

  2. 安裝CIFS用戶端。

    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工具進行安裝。

    sudo zypper install cifs-utils

    CoreOS

    通過以下方法進行安裝:

    1. 配置SELINUX。

      sed -i 's/SELINUXTYPE=mcs/SELINUXTYPE=targeted/' /etc/selinux/config
    2. 在CoreOS作業系統上手動編譯CIFS用戶端工具。

      您可以參照以下步驟啟動一個Fedora容器來編譯CIFS用戶端工具。或下載阿里雲官方提供的名CoreOS版本的CIFS工具包,並拷貝至/tmp/或者/bin目錄。

      1. 在CoreOS上啟動一個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

掛載SMB協議檔案系統

在Linux作業系統中,NAS SMB協議檔案系統支援通過手動掛載和自動掛載兩種方式進行掛載。手動掛載適用於臨時掛載,每次伺服器啟動或重啟後都需要重新掛載。自動掛載適用於持久掛載,每次伺服器啟動或重啟後都無需重新掛載。為避免伺服器重啟後,掛載資訊丟失,導致無法查看已掛載的檔案系統,建議您手動掛載成功後,配置自動掛載檔案系統。

手動掛載檔案系統

您需要使用檔案系統的掛載點地址,將NAS SMB協議檔案系統掛載至Linux ECS執行個體。

  1. 串連ECS(Linux)執行個體。具體串連方式,請參見串連ECS執行個體

  2. 執行以下命令,掛載檔案系統。

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

    掛載命令格式為:sudo mount -t cifs //<掛載點地址>/myshare <掛載目錄> -o <掛載選項>

    參數

    說明

    檔案系統類型

    在Linux作業系統中掛載SMB協議檔案系統,必須配置-t cifs參數。

    掛載點地址

    添加檔案系統掛載點時,自動產生的掛載點地址,請根據實際值替換。您可以在NAS控制台,單擊目標檔案系統,然後單擊掛載使用,將滑鼠放置在挂载点地址列的掛載點表徵圖上擷取掛載點地址。

    myshare

    SMB檔案系統的共用目錄名稱,不支援變更。

    掛載目錄

    您要掛載的目標路徑,例如:/mnt/sharepath

    掛載選項

    通過添加-o參數指定掛載必選選項:

    • vers:支援2.1及以上協議版本。

    • 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_mode,則預設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命令,查看掛載結果。

    如果回顯包含如下類似資訊,說明掛載成功。

    回顯資訊

    掛載成功後,您可以執行df -h命令,查看當前檔案系統的容量資訊。

    如果掛載失敗,請進行錯誤排查。具體操作,請參見Linux掛載SMB協議檔案系統失敗排查思路進行排查。

  4. 掛載成功後,您可以在ECS(Linux)上訪問NAS SMB協議檔案系統,執行讀取或寫入操作。

    您可以把NAS SMB協議檔案系統當作一個普通的目錄來訪問和使用,樣本如下:

    訪問NAS

(可選)自動掛載檔案系統

您可以通過配置Linux ECS執行個體的/etc/fstab檔案,實現ECS重啟時自動掛載SMB協議檔案系統。

說明

在配置自動掛載前,請先確認手動掛載成功,避免ECS啟動失敗。

  1. 開啟/etc/fstab設定檔,添加自動掛載配置。

    • <file-system-id.region.nas.aliyuncs.com>:替換為實際的NAS查看掛載點地址(例如:237*******-*****.cn-hangzhou.nas.aliyuncs.com)。

    • </mnt>:替換為本地掛載路徑。(例如:/mnt)。

    file-system-id.region.nas.aliyuncs.com/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)掛載命令參數說明表。其餘參數說明如下。

    參數

    說明

    0(wsize值後第一項)

    非零值表示檔案系統應由dump備份。對於NAS檔案系統而言,此值預設為0。

    0(wsize值後第二項)

    該值表示fsck在啟動時檢查檔案系統的順序。對於NAS檔案系統而言,此值預設為0,表示fsck不應在啟動時運行。

  2. 執行reboot命令,重啟Elastic Compute Service。

    重要

    重啟雲端服務器會中斷業務,建議您在業務低穀時期重啟雲端服務器。

  3. 驗證自動掛載配置成功。

    說明

    在ECS重啟後的一分鐘內,執行df -h命令,確認掛載的NAS檔案系統。

經典使用情境

不同的使用情境,可配置不同的掛載選項,實現檔案系統最優效能。經典的使用情境及掛載選項配置如下所示:

Elastic Compute Service(Linux)共用訪問情境

在多個Elastic Compute Service(Linux)中需要共用訪問檔案系統資料,但沒有使用者權限控制要求,被授權的Elastic Compute Service(Linux)管理員可以使用如下方法在各個Elastic Compute Service(Linux)上執行掛載。

 mount -t cifs //file-system-id.region.nas.aliyuncs.com/myshare /mnt/sharepath -o vers=2.1,guest,mfsymlinks

重要參數說明如下:

  • file-system-id.region.nas.aliyuncs.com:檔案系統掛載點的掛載點地址,請根據實際值替換。您可以在NAS控制台,單擊目標檔案系統,然後單擊掛載使用,將滑鼠放置在挂载点地址列的掛載點表徵圖上擷取掛載點地址。

  • /mnt/sharepath:待掛載檔案系統的目標路徑,請根據實際值替換。

多使用者Home Directory情境

在多個Elastic Compute Service(Linux)中需要共用訪問檔案系統資料時,如果有許可權控制需求,可以通過掛載時指定uid、gid、dir_mode、file_mode參數實現。

Elastic Compute Service(Linux) WebServer共用訪問情境

在多個Elastic Compute Service(Linux)上安裝WebServer(如Apache),且SMB檔案系統作為共用檔案儲存體。

說明
  • SMB檔案系統主要特點是共用訪問、橫向擴充、高可用,由於和本地硬碟實現機理不同,某些情境的小檔案訪問效能上會稍微有一些差距。對於WebServer情境,如果想要達到極致效能,可以考慮只將需要共用的檔案放在SMB檔案系統上,而將不需要共用訪問的WebServer程式等放在本地硬碟。

  • WebServer應用通常網路通訊協定通訊負載較大,此情境需要開通WebServer加速功能,請您聯絡阿里雲NAS團隊申請開通。

Elastic Compute Service(Windows)和Elastic Compute Service(Linux)共用訪問情境

如果您需要同時從Elastic Compute Service(Windows)和Elastic Compute Service(Linux)訪問SMB檔案系統的內容。則需要在Elastic Compute Service(Linux)掛載時一定使用用戶端緩衝,即設定cache=strict或者預設掛載。

存取控制

阿里雲Apsara File Storage NAS SMB協議檔案系統支援基於AD域系統的使用者身份認證及檔案系統層級的許可權存取控制。以域使用者身份串連並訪問SMB協議檔案系統,可以實現對SMB協議檔案系統中的檔案及目錄層級的存取控制。

關於如何?以AD域系統的使用者身份認證及檔案系統層級的許可權存取控制,請參見將SMB檔案系統掛載點接入AD域Linux用戶端以AD域使用者身份掛載並使用SMB檔案系統

相關文檔