概述
FuncitonGraph提供了文件系統掛載功能,多個函數可以通過共用一個文件系統,實現文件共享。相比于對單個函數實例分配的臨時磁盤空間限制,可以極大擴展函數的執行和存儲空間。
場景介紹
目前FunctionGraph函數支持以下文件系統配置。
- SFS Turbo文件系統
SFS Turbo分為SFS Turbo標準型、SFS Turbo標準型-增強版、SFS Turbo性能型和SFS Turbo性能型-增強版。SFS Turbo為用戶提供一個完全托管的共享文件存儲,能夠彈性伸縮至320TB規模,具備高可用性和持久性,為海量的小文件、低延遲高IOPS型應用提供有力支持。適用于多種應用場景,包括高性能網站、日志存儲、壓縮解壓、DevOps、企業辦公、容器應用等。
- ECS共享目錄
ECS共享目錄是通過nfs服務,把ECS上的指定目錄設置為共享文件系統,函數(和ECS相同的VPC配置)可以掛載對應目錄進行讀寫等操作,實現計算資源的動態擴展。此類型適合業務不太頻繁的場景。
使用文件系統掛載功能具有以下優勢:
- 函數執行空間相比于/tmp,可以極大擴展存儲空間。
- 多個函數之間可以共享訪問已經配置好的文件系統。
- ECS計算資源動態擴展,利用ECS已有的存儲能力實現更大的計算能力。
說明您可以在/tmp路徑下寫臨時文件,最大不能超過512MB。
創建委托
為函數添加文件系統配置需要先給函數設置相關服務的委托。
創建委托時,委托類型選擇云服務,云服務選擇FunctionGraph,因為委托數目有限,而且目前界面上不支持修改,建議可以創建一個權限較大的委托(Tenant Administrator),可以支持在函數中操作當前區域內的所有資源。
添加sfs turbo文件系統
設置委托
掛載sfs turbo文件系統需要給函數設置委托(至少擁有sfs administrator以及VPC administrator權限)。如果沒有對應權限的委托,需要新創建。
設置VPC
sfs turbo涉及VPC內部網絡訪問,添加sfs turbo文件系統前需要給函數配置sfs turbo對應的VPC。
- 在彈性文件服務中,獲取需要掛載的文件系統的VPC和子網信息。
- 配置網絡開啟VPC訪問,輸入獲取的VPC和子網。
添加掛載-SFS Turbo
添加sfs turbo和添加sfs過程相似,只要選好需要掛載的文件系統,設置好函數訪問路徑即可。
添加ECS共享目錄
添加委托
掛載ECS共享目錄需要給函數設置委托(至少擁有tenant guest以及VPC administrator權限),如果沒有對應權限的委托,需要新創建。
配置VPC
添加ECS共享目錄前,也需要給函數配置ECS對應的VPC,可以到ECS詳情頁的“基本信息”頁簽中查看“虛擬私有云”。單擊虛擬私有云名稱,進入虛擬私有云的詳情頁,查看子網。
獲取到這兩個信息后,可以在函數配置中配置對應的VPC。
添加掛載-ECS
需要在界面上輸入ECS上的共享目錄路徑信息和函數訪問路徑。
填寫路徑信息

后續操作
當函數掛載了文件系統配置后,對函數訪問路徑的讀寫就相當于對相關文件系統的讀寫。
如果把日志路徑配置為函數訪問路徑的子目錄,就可以輕松實現函數日志的持久化。
ECS創建nfs共享目錄
Linux系統
CentOS、SUSE、Euler OS、Fedora或OpenSUSE等系統
1.配置yum源
- 在/etc/yum.repos.d目錄下創建文件euleros.repo(文件名可隨意取,但是必須以“.repo”結尾)。
- 使用如下命令進入euleros.repo編輯配置信息。
vi /etc/yum.repos.d/euleros.repo
Euler 2.0SP3 yum配置信息如下:
[base]
name=EulerOS-2.0SP3 base
baseurl=//repo.cloud.com/euler/2.3/os/x86_64/
enabled=1
gpgcheck=1
gpgkey=//repo.cloud.com/euler/2.3/os/RPM-GPG-KEY-EulerOS
Euler 2.0SP5 yum配置信息如下:
[base]
name=EulerOS-2.0SP5 base
baseurl=//repo.cloud.com/euler/2.5/os/x86_64/
enabled=1
gpgcheck=1
gpgkey=//repo.cloud.com/euler/2.5/os/RPM-GPG-KEY-EulerOS
說明參數說明
name:倉庫的名稱。
baseurl:倉庫的地址。
使用http協議的網絡地址://path/to/repo
使用本地倉庫地址:file:///path/to/local/repo
gpgcheck:表示是否進行gpg(GNU Private Guard)校驗,以確定RPM包來源的有效性和安全性。gpgcheck設置為1表示進行gpg校驗,0表示不進行gpg校驗。如果沒有這一項,默認是檢查的。
- 保存配置的repo文件。
- 執行如下命令清理緩存。
yum clean all
2.使用如下命令安裝nfs-utils
yum install nfs-utils
3.設置共享文件夾
打開/etc/exports,比如要把/sharedata目錄設置為共享目錄,可以填入如下內容:
/sharedata 192.168.0.0/24(rw,sync,no_root_squash)
說明上述內容的含義是:把/sharedata這個目錄共享給192.168.0.0/24這個子網段的其他服務器。
命令輸入完成后,可以執行命令exportfs -v 顯示共享的目錄,從而判斷是否設置成功。
4.使用如下命令啟動nfs服務
systemctl start rpcbind
service nfs start
5.修改共享目錄
比如需要新增/home/myself/download到共享目錄,可以在/etc/exports中新增如下內容。
/home/myself/download 192.168.0.0/24(rw,sync,no_root_squash)
然后重啟nfs服務。
service nfs restart
或者用如下命令,無需重啟nfs服務。
exportfs -rv
6.設置rpcbind開機啟動(可選)
如果需要設置rpcbind服務開機啟動,可執行如下命令。
systemctl enable rpcbind
Ubuntu系統
1.使用如下命令安裝nfs-kernel-server
sudo apt-get update
sudo apt install nfs-kernel-server
2.設置共享文件夾
打開/etc/exports,比如要把/sharedata目錄設置為共享目錄,可以填入如下內容。
/sharedata 192.168.0.0/24(rw,sync,no_root_squash)
說明上述內容的含義是:把/sharedata這個目錄共享給192.168.0.0/24這個子網段的其他服務器。
命令輸入完成后,可以執行命令exportfs -v 顯示共享的目錄,從而判斷是否設置成功。
3.啟動nfs服務
service nfs-kernel-server restart
4.修改共享目錄
比如需要新增/home/myself/download到共享目錄,可以在/etc/exports中新增如下內容:
/home/myself/download 192.168.0.0/24(rw,sync,no_root_squash)
然后重啟nfs服務
service nfs restart
或者用如下命令,無需重啟nfs服務:
exportfs -rv
Windows系統
1.安裝nfs server軟件
目前可用的收費軟件有:hanewin nfs server,可到對應下載。
免費的有:FreeNFS、winnfsd等,可到上下載。
打開nfs功能
如果是winnfsd,可參見:。
如果是hanewin nfs server,可以參見如下步驟。
- 以Windows系統管理員身份運行nfsctl.exe
- 在空白處右鍵,然后Insert,完成設置
Insert
