由於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伺服器執行一次配置即可,不需要在每次掛載時都執行。
串連ECS(Linux)執行個體。具體串連方式,請參見串連ECS執行個體。
安裝CIFS用戶端。
Ubuntu、Debian
通過apt-get軟體包管理工具進行安裝。
sudo apt-get update sudo apt-get install cifs-utilsRHEL、CentOS、Alibaba Cloud Linux
通過yum包管理器進行安裝。
sudo yum install cifs-utilsOpenSUSE、SLES12-SP2
通過zypper工具進行安裝。
sudo zypper install cifs-utilsCoreOS
通過以下方法進行安裝:
配置SELINUX。
sed -i 's/SELINUXTYPE=mcs/SELINUXTYPE=targeted/' /etc/selinux/config在CoreOS作業系統上手動編譯CIFS用戶端工具。
您可以參照以下步驟啟動一個Fedora容器來編譯CIFS用戶端工具。或下載阿里雲官方提供的名CoreOS版本的CIFS工具包,並拷貝至/tmp/或者/bin目錄。
在CoreOS上啟動一個Fedora容器自行編譯cifs-utils。
docker run -t -i -v /tmp:/cifs fedora /bin/bash在docker環境內依次運行以下命令。
yum groupinstall -y "Development Tools" "Development Libraries"yum install -y bzip2curl https://download.samba.org/pub/linux-cifs/cifs-utils/cifs-utils-6.9.tar.bz2 --output cifs-utils-6.9.tar.bz2;bunzip2 cifs-utils-6.9.tar.bz2 && tar xvf cifs-utils-6.9.tarcd cifs-utils-6.9; ./configure && makecp mount.cifs /cifs/exit
掛載SMB協議檔案系統
在Linux作業系統中,NAS SMB協議檔案系統支援通過手動掛載和自動掛載兩種方式進行掛載。手動掛載適用於臨時掛載,每次伺服器啟動或重啟後都需要重新掛載。自動掛載適用於持久掛載,每次伺服器啟動或重啟後都無需重新掛載。為避免伺服器重啟後,掛載資訊丟失,導致無法查看已掛載的檔案系統,建議您手動掛載成功後,配置自動掛載檔案系統。
手動掛載檔案系統
您需要使用檔案系統的掛載點地址,將NAS SMB協議檔案系統掛載至Linux ECS執行個體。
串連ECS(Linux)執行個體。具體串連方式,請參見串連ECS執行個體。
執行以下命令,掛載檔案系統。
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命令檢查當前核心版本。
執行
mount -l命令,查看掛載結果。如果回顯包含如下類似資訊,說明掛載成功。

掛載成功後,您可以執行
df -h命令,查看當前檔案系統的容量資訊。如果掛載失敗,請進行錯誤排查。具體操作,請參見Linux掛載SMB協議檔案系統失敗排查思路進行排查。
掛載成功後,您可以在ECS(Linux)上訪問NAS SMB協議檔案系統,執行讀取或寫入操作。
您可以把NAS SMB協議檔案系統當作一個普通的目錄來訪問和使用,樣本如下:

(可選)自動掛載檔案系統
您可以通過配置Linux ECS執行個體的/etc/fstab檔案,實現ECS重啟時自動掛載SMB協議檔案系統。
在配置自動掛載前,請先確認手動掛載成功,避免ECS啟動失敗。
開啟/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不應在啟動時運行。
執行
reboot命令,重啟Elastic Compute Service。重要重啟雲端服務器會中斷業務,建議您在業務低穀時期重啟雲端服務器。
驗證自動掛載配置成功。
說明在ECS重啟後的一分鐘內,執行
df -h命令,確認掛載的NAS檔案系統。
經典使用情境
不同的使用情境,可配置不同的掛載選項,實現檔案系統最優效能。經典的使用情境及掛載選項配置如下所示:
Elastic Compute Service(Linux)共用訪問情境
多使用者Home Directory情境
Elastic Compute Service(Linux) WebServer共用訪問情境
Elastic Compute Service(Windows)和Elastic Compute Service(Linux)共用訪問情境
存取控制
阿里雲Apsara File Storage NAS SMB協議檔案系統支援基於AD域系統的使用者身份認證及檔案系統層級的許可權存取控制。以域使用者身份串連並訪問SMB協議檔案系統,可以實現對SMB協議檔案系統中的檔案及目錄層級的存取控制。
關於如何?以AD域系統的使用者身份認證及檔案系統層級的許可權存取控制,請參見將SMB檔案系統掛載點接入AD域和Linux用戶端以AD域使用者身份掛載並使用SMB檔案系統。
相關文檔
如果您想對SMB協議檔案系統中的資料進行備份,請參見通用型NAS備份。
您也可以開啟資源回收筒功能,在誤刪除通用型NAS檔案系統中的檔案時,可以通過NAS資源回收筒恢複這些檔案及其UID、GID和ACL等中繼資料資訊。更多資訊,請參見資源回收筒。
如果您是想在本機伺服器或線下IDC中掛載訪問SMB協議檔案系統,請參見本機資料中心訪問檔案系統。
如果您需要跨VPC、跨地區或跨帳號掛載檔案系統,您可以通過阿里雲雲企業網功能實現。具體操作,請參見通過雲企業網實現同地區跨VPC掛載NAS或通過雲企業網實現跨帳號跨地區掛載NAS。