掛載SMB協(xié)議文件系統(tǒng)
由于Linux系統(tǒng)對(duì)SMB協(xié)議的兼容程度較低,建議僅在需要跨操作系統(tǒng)共享數(shù)據(jù)的情況下使用Linux系統(tǒng)掛載SMB協(xié)議文件系統(tǒng)。本文主要介紹如何將SMB協(xié)議文件系統(tǒng)掛載至云服務(wù)器ECS(Linux)上并執(zhí)行讀寫操作。
前提條件
在創(chuàng)建SMB協(xié)議文件系統(tǒng)的地域,已有可用的云服務(wù)器ECS(Linux)。具體操作,請(qǐng)參見創(chuàng)建ECS實(shí)例。
重要Linux系統(tǒng)推薦掛載使用NFS協(xié)議文件系統(tǒng)。由于Linux系統(tǒng)對(duì)SMB協(xié)議的兼容程度較低,建議僅在需要跨操作系統(tǒng)共享數(shù)據(jù)的情況下使用Linux系統(tǒng)掛載SMB協(xié)議文件系統(tǒng)。
由于Linux一些早期版本的SMB客戶端在某些場(chǎng)景有缺陷,如果您使用了非官方支持的Linux操作系統(tǒng)版本,阿里云不能保證該SMB協(xié)議文件系統(tǒng)的可靠性。
NAS SMB協(xié)議文件系統(tǒng)官方支持如下的Linux操作系統(tǒng)版本。如果沒有特別聲明,本文僅針對(duì)以下Linux操作系統(tǒng)版本:
操作系統(tǒng)類型
操作系統(tǒng)版本
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及以上
已創(chuàng)建SMB協(xié)議文件系統(tǒng)。具體操作,請(qǐng)參見通過控制臺(tái)創(chuàng)建通用型NAS文件系統(tǒng)。
已添加掛載點(diǎn)。具體操作,請(qǐng)參見添加掛載點(diǎn)。
網(wǎng)絡(luò)連通。
確保云服務(wù)器ECS(Linux)和SMB文件系統(tǒng)在同一個(gè)專有網(wǎng)絡(luò)VPC中。
檢查文件系統(tǒng)白名單,確保云服務(wù)器ECS(Linux)已經(jīng)被授予訪問該SMB文件系統(tǒng)的權(quán)限。
確保端口445處于打開狀態(tài),SMB文件系統(tǒng)將通過TCP端口445通信。
如果端口445未打開,請(qǐng)?jiān)谀繕?biāo)ECS實(shí)例的安全組中添加關(guān)于端口445的安全組規(guī)則。具體操作,請(qǐng)參見添加安全組規(guī)則。
安裝CIFS客戶端
在Linux系統(tǒng)中掛載SMB協(xié)議文件系統(tǒng)時(shí),需要先安裝CIFS客戶端。請(qǐng)您確保每臺(tái)Linux服務(wù)器執(zhí)行一次配置即可,不需要在每次掛載時(shí)都執(zhí)行。
連接ECS(Linux)實(shí)例。具體連接方式,請(qǐng)參見連接ECS實(shí)例。
安裝CIFS客戶端。
Ubuntu、Debian
通過apt-get軟件包管理工具進(jìn)行安裝。
sudo apt-get update sudo apt-get install cifs-utils
RHEL、CentOS、Alibaba Cloud Linux
通過yum包管理器進(jìn)行安裝。
sudo yum install cifs-utils
OpenSUSE、SLES12-SP2
通過zypper工具進(jìn)行安裝。
sudo zypper install cifs-utils
CoreOS
通過以下方法進(jìn)行安裝:
配置SELINUX。
sed -i 's/SELINUXTYPE=mcs/SELINUXTYPE=targeted/' /etc/selinux/config
在CoreOS操作系統(tǒng)上手動(dòng)編譯CIFS客戶端工具。
您可以參照以下步驟啟動(dòng)一個(gè)Fedora容器來編譯CIFS客戶端工具?;蛳螺d阿里云官方提供的名CoreOS版本的CIFS工具包,并拷貝至/tmp/或者/bin目錄。
在CoreOS上啟動(dòng)一個(gè)Fedora容器自行編譯cifs-utils。
docker run -t -i -v /tmp:/cifs fedora /bin/bash
在docker環(huán)境內(nèi)依次運(yùn)行以下命令。
yum groupinstall -y "Development Tools" "Development Libraries"
yum install -y bzip2
curl 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.tar
cd cifs-utils-6.9; ./configure && make
cp mount.cifs /cifs/
exit
掛載SMB協(xié)議文件系統(tǒng)
在Linux操作系統(tǒng)中,NAS SMB協(xié)議文件系統(tǒng)支持通過手動(dòng)掛載和自動(dòng)掛載兩種方式進(jìn)行掛載。手動(dòng)掛載適用于臨時(shí)掛載,每次服務(wù)器啟動(dòng)或重啟后都需要重新掛載。自動(dòng)掛載適用于持久掛載,每次服務(wù)器啟動(dòng)或重啟后都無需重新掛載。為避免服務(wù)器重啟后,掛載信息丟失,導(dǎo)致無法查看已掛載的文件系統(tǒng),建議您手動(dòng)掛載成功后,配置自動(dòng)掛載文件系統(tǒng)。
手動(dòng)掛載文件系統(tǒng)
您需要使用文件系統(tǒng)的掛載點(diǎn)地址,將NAS SMB協(xié)議文件系統(tǒng)掛載至Linux ECS實(shí)例。
連接ECS(Linux)實(shí)例。具體連接方式,請(qǐng)參見連接ECS實(shí)例。
執(zhí)行以下命令,掛載文件系統(tǒng)。
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 //<掛載點(diǎn)地址>/myshare <掛載目錄> -o <掛載選項(xiàng)>
參數(shù)
說明
文件系統(tǒng)類型
在Linux操作系統(tǒng)中掛載SMB協(xié)議文件系統(tǒng),必須配置
-t cifs
參數(shù)。掛載點(diǎn)地址
添加文件系統(tǒng)掛載點(diǎn)時(shí),自動(dòng)生成的掛載點(diǎn)地址,請(qǐng)根據(jù)實(shí)際值替換。您可以在NAS控制臺(tái),單擊目標(biāo)文件系統(tǒng),然后單擊掛載使用,將鼠標(biāo)放置在掛載點(diǎn)地址列的圖標(biāo)上獲取掛載點(diǎn)地址。
myshare
SMB文件系統(tǒng)的共享目錄名稱,不支持變更。
掛載目錄
您要掛載的目標(biāo)路徑,例如:/mnt/sharepath。
掛載選項(xiàng)
通過添加
-o
參數(shù)指定掛載必選選項(xiàng):vers:支持2.1及以上協(xié)議版本。
guest:只支持基于ntlm認(rèn)證協(xié)議的客戶端掛載。
rsize:用來設(shè)置讀數(shù)據(jù)包的最大限制。一般需要設(shè)置成1048576(1 MB)。
wsize:用來設(shè)置寫數(shù)據(jù)包的最大限制,一般需要設(shè)置成1048576(1 MB)。
通過添加
-o
參數(shù)指定掛載可選選項(xiàng):uid:掛載成功后,文件所屬的用戶。如果未設(shè)置uid,則默認(rèn)uid=0。
gid:掛載成功后,文件所屬的用戶組。如果未設(shè)置gid,則默認(rèn)gid=0。
dir_mode:向用戶授予指定目錄的讀取、寫入和執(zhí)行權(quán)限。必須以0開頭,例如:0755、0644等。如果未設(shè)置dir_mode,則默認(rèn)dir_mode=0755。
file_mode:向用戶授予普通文件的讀取、寫入和執(zhí)行權(quán)限。必須以0開頭,例如:0755、0644等。如果未設(shè)置file_mode,則默認(rèn)file_mode=0755。
mfsymlinks:支持symbol link功能。
cache:
cache=strict:設(shè)置SMB文件系統(tǒng)使用客戶端緩存。如果未設(shè)置cache,則默認(rèn)cache=strict。
cache=none:設(shè)置SMB文件系統(tǒng)不使用客戶端緩存。
atime|relatime:如果您的業(yè)務(wù)對(duì)文件的訪問時(shí)間非極度敏感,請(qǐng)勿使用atime選項(xiàng),默認(rèn)采用relatime方式掛載。
說明授予云服務(wù)器(Linux)管理員擁有對(duì)SMB文件系統(tǒng)的絕對(duì)控制權(quán)限。
您可以使用
mount | grep cifs
命令查詢自己的掛載點(diǎn)信息。如果您使用非官方支持的Linux操作系統(tǒng)版本,強(qiáng)烈建議使用內(nèi)核在3.10.0-514以上的版本。如果Linux kernel版本小于等于3.7,必須在掛載選項(xiàng)中設(shè)置cache=strict參數(shù)。您可以執(zhí)行
uname -a
命令檢查當(dāng)前內(nèi)核版本。
執(zhí)行
mount -l
命令,查看掛載結(jié)果。如果回顯包含如下類似信息,說明掛載成功。
掛載成功后,您可以執(zhí)行
df -h
命令,查看當(dāng)前文件系統(tǒng)的容量信息。如果掛載失敗,請(qǐng)進(jìn)行錯(cuò)誤排查。具體操作,請(qǐng)參見Linux掛載SMB協(xié)議文件系統(tǒng)失敗排查思路進(jìn)行排查。
掛載成功后,您可以在ECS(Linux)上訪問NAS SMB協(xié)議文件系統(tǒng),執(zhí)行讀取或?qū)懭氩僮鳌?/p>
您可以把NAS SMB協(xié)議文件系統(tǒng)當(dāng)作一個(gè)普通的目錄來訪問和使用,示例如下:
(可選)自動(dòng)掛載文件系統(tǒng)
您可以通過配置Linux ECS實(shí)例的/etc/fstab
文件,實(shí)現(xiàn)ECS重啟時(shí)自動(dòng)掛載SMB協(xié)議文件系統(tǒng)。
在配置自動(dòng)掛載前,請(qǐng)先確認(rèn)手動(dòng)掛載成功,避免ECS啟動(dòng)失敗。
打開/etc/fstab配置文件,添加自動(dòng)掛載配置。
//<掛載點(diǎn)地址>/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
示例中主要參數(shù)說明,請(qǐng)參見SMB(Linux)掛載命令參數(shù)說明表。其余參數(shù)說明如下。
參數(shù)
說明
0(wsize值后第一項(xiàng))
非零值表示文件系統(tǒng)應(yīng)由dump備份。對(duì)于NAS文件系統(tǒng)而言,此值默認(rèn)為0。
0(wsize值后第二項(xiàng))
該值表示fsck在啟動(dòng)時(shí)檢查文件系統(tǒng)的順序。對(duì)于NAS文件系統(tǒng)而言,此值默認(rèn)為0,表示fsck不應(yīng)在啟動(dòng)時(shí)運(yùn)行。
執(zhí)行
reboot
命令,重啟云服務(wù)器ECS。重要重啟云服務(wù)器會(huì)中斷業(yè)務(wù),建議您在業(yè)務(wù)低谷時(shí)期重啟云服務(wù)器。
驗(yàn)證自動(dòng)掛載配置成功。
說明在ECS重啟后的一分鐘內(nèi),執(zhí)行
df -h
命令,確認(rèn)掛載的NAS文件系統(tǒng)。
經(jīng)典使用場(chǎng)景
不同的使用場(chǎng)景,可配置不同的掛載選項(xiàng),實(shí)現(xiàn)文件系統(tǒng)最優(yōu)性能。經(jīng)典的使用場(chǎng)景及掛載選項(xiàng)配置如下所示:
云服務(wù)器ECS(Linux)共享訪問場(chǎng)景
在多個(gè)云服務(wù)器ECS(Linux)中需要共享訪問文件系統(tǒng)數(shù)據(jù),但沒有用戶權(quán)限控制要求,被授權(quán)的云服務(wù)器ECS(Linux)管理員可以使用如下方法在各個(gè)云服務(wù)器ECS(Linux)上執(zhí)行掛載。
mount -t cifs //file-system-id.region.nas.aliyuncs.com/myshare /mnt/sharepath -o vers=2.1,guest,mfsymlinks
重要參數(shù)說明如下:
file-system-id.region.nas.aliyuncs.com
:文件系統(tǒng)掛載點(diǎn)的掛載點(diǎn)地址,請(qǐng)根據(jù)實(shí)際值替換。您可以在NAS控制臺(tái),單擊目標(biāo)文件系統(tǒng),然后單擊掛載使用,將鼠標(biāo)放置在掛載點(diǎn)地址列的圖標(biāo)上獲取掛載點(diǎn)地址。/mnt/sharepath
:待掛載文件系統(tǒng)的目標(biāo)路徑,請(qǐng)根據(jù)實(shí)際值替換。
多用戶Home Directory場(chǎng)景
在多個(gè)云服務(wù)器ECS(Linux)中需要共享訪問文件系統(tǒng)數(shù)據(jù)時(shí),如果有權(quán)限控制需求,可以通過掛載時(shí)指定uid、gid、dir_mode、file_mode參數(shù)實(shí)現(xiàn)。
云服務(wù)器ECS(Linux) WebServer共享訪問場(chǎng)景
在多個(gè)云服務(wù)器ECS(Linux)上安裝WebServer(如Apache),且SMB文件系統(tǒng)作為共享文件存儲(chǔ)。
SMB文件系統(tǒng)主要特點(diǎn)是共享訪問、橫向擴(kuò)展、高可用,由于和本地硬盤實(shí)現(xiàn)機(jī)理不同,某些場(chǎng)景的小文件訪問性能上會(huì)稍微有一些差距。對(duì)于WebServer場(chǎng)景,如果想要達(dá)到極致性能,可以考慮只將需要共享的文件放在SMB文件系統(tǒng)上,而將不需要共享訪問的WebServer程序等放在本地硬盤。
WebServer應(yīng)用通常網(wǎng)絡(luò)協(xié)議通訊負(fù)載較大,此場(chǎng)景需要開通WebServer加速功能,請(qǐng)您聯(lián)系阿里云NAS團(tuán)隊(duì)申請(qǐng)開通。
云服務(wù)器ECS(Windows)和云服務(wù)器ECS(Linux)共享訪問場(chǎng)景
如果您需要同時(shí)從云服務(wù)器ECS(Windows)和云服務(wù)器ECS(Linux)訪問SMB文件系統(tǒng)的內(nèi)容。則需要在云服務(wù)器ECS(Linux)掛載時(shí)一定使用客戶端緩存,即設(shè)置cache=strict或者默認(rèn)方式掛載。
訪問控制
阿里云文件存儲(chǔ)NAS SMB協(xié)議文件系統(tǒng)支持基于AD域系統(tǒng)的用戶身份認(rèn)證及文件系統(tǒng)級(jí)別的權(quán)限訪問控制。以域用戶身份連接并訪問SMB協(xié)議文件系統(tǒng),可以實(shí)現(xiàn)對(duì)SMB協(xié)議文件系統(tǒng)中的文件及目錄級(jí)別的訪問控制。
關(guān)于如何實(shí)現(xiàn)以AD域系統(tǒng)的用戶身份認(rèn)證及文件系統(tǒng)級(jí)別的權(quán)限訪問控制,請(qǐng)參見將SMB文件系統(tǒng)掛載點(diǎn)接入AD域和Linux客戶端以AD域用戶身份掛載并使用SMB文件系統(tǒng)。
相關(guān)文檔
如果您想對(duì)SMB協(xié)議文件系統(tǒng)中的數(shù)據(jù)進(jìn)行備份,請(qǐng)參見通用型NAS備份。
您也可以開啟回收站功能,在誤刪除通用型NAS文件系統(tǒng)中的文件時(shí),可以通過NAS回收站恢復(fù)這些文件及其UID、GID和ACL等元數(shù)據(jù)信息。更多信息,請(qǐng)參見回收站。
如果您是想在本地服務(wù)器或線下IDC中掛載訪問SMB協(xié)議文件系統(tǒng),請(qǐng)參見本地?cái)?shù)據(jù)中心訪問文件系統(tǒng)。
如果您需要跨VPC、跨地域或跨賬號(hào)掛載文件系統(tǒng),您可以通過阿里云云企業(yè)網(wǎng)功能實(shí)現(xiàn)。具體操作,請(qǐng)參見通過云企業(yè)網(wǎng)實(shí)現(xiàn)同地域跨VPC掛載NAS或通過云企業(yè)網(wǎng)實(shí)現(xiàn)跨賬號(hào)跨地域掛載NAS。