本頁說明如何在同一個 Google Cloud專案和 VPC 網路中,將 Filestore 檔案共用區掛接至 Compute Engine 虛擬機器 (VM) 執行個體。如要瞭解如何在遠端網路的用戶端上掛接檔案共用區,請參閱「在遠端用戶端上掛接檔案共用區」。如要從 Google Kubernetes Engine 叢集存取 Filestore 執行個體,請參閱「透過 Filestore CSI 驅動程式存取 Filestore 執行個體」。
事前準備
確認網路防火牆已正確設定,可搭配 Filestore 使用。詳情請參閱設定防火牆規則。
在 Compute Engine VM 執行個體中掛接檔案共用區
請執行下列其中一個程序,在 Compute Engine VM 上掛接 Filestore 檔案共用區。為確保最佳效能,建議您掛接至 n1-standard-8
VM 或更高版本。
Linux:掛接
如要手動將檔案共用區掛接到 Linux 用戶端 VM,請按照下列步驟操作:
前往 Google Cloud 控制台的「VM Instances」(VM 執行個體) 頁面。
找到您要做為用戶端使用的 Linux VM,然後按一下「SSH」SSH,在該 VM 上開啟終端機。
選用:透過次要網路,在具備多個網路介面的用戶端 VM 上掛接檔案共用區。
詳細資料 (按一下即可展開)
如要透過次要網路 (也就是
nic0
以外的介面) 掛接檔案共用區,請修改用戶端 VM 的路由政策。執行作業:sudo ip route \ add filestore-reserved-address-range \ via default-gateway-of-nic-to-filestore
其中:
filestore-reserved-address-range
是 Filestore 執行個體使用的保留位址範圍。default-gateway-of-nic-to-filestore
是連線至與 Filestore 執行個體共用虛擬私有雲網路的 NIC 預設閘道 IP 位址。
如要進一步瞭解如何使用多個 NIC 搭配 Compute Engine 執行個體,請參閱「為額外網路介面設定路由」。
安裝 NFS:
Debian/Ubuntu
使用下列指令在 Debian 或 Ubuntu 上安裝 NFS。
sudo apt-get -y update &&
sudo apt-get install nfs-commonRHEL/CentOS
使用下列指令在 Red Hat Enterprise Linux 或 CentOS 上安裝 NFS。
sudo yum update &&
sudo yum install nfs-utilsSUSE
使用下列指令在 SUSE 上安裝 NFS。
sudo zypper update &&
sudo zypper -n install nfs-client建立對應至 Filestore 檔案共用區的本機目錄:
sudo mkdir -p mount-point-directory
其中
mount-point-directory
是要建立的目錄,例如/mnt/filedir
。執行
mount
指令,從 Filestore 執行個體掛接檔案共用區。您可以使用任何 NFS 掛接選項。如要獲得最佳效能,建議使用下列 NFSmount
選項:選項 說明 hard
NFS 用戶端會無限期重試 NFS 要求。為減少 Filestore 執行個體重新啟動時發生 I/O 中斷的可能性,建議 Linux 和 Windows 用戶端都使用 hard
掛接選項。timeo=600
NFS 用戶端會等待 600 分秒 (60 秒),然後重試 NFS 要求。 retrans=3
NFS 用戶端會嘗試 NFS 要求三次,然後採取進一步的復原動作。 rsize=524288
每個 READ
要求,NFS 用戶端最多可從 NFS 伺服器接收 524,288 個位元組。
注意:如果是基本層級執行個體,請將rsize
值設為1048576
。wsize=1048576
每個 WRITE
要求,NFS 用戶端最多可從 NFS 伺服器接收 1,048,576 個位元組。resvport
NFS 用戶端與這個掛接點的 NFS 伺服器通訊時,會使用具備權限的來源通訊埠。 async
NFS 用戶端會延遲將應用程式寫入作業傳送至 NFS 伺服器,直到符合特定條件為止。
注意:使用sync
選項會大幅降低效能。- 如要減少掛接延遲時間,請指定
-o tcp
選項。 如果將區域、可用區或企業執行個體掛接至執行 Linux 核心 5.3 以上版本的用戶端 VM,建議指定
nconnect
掛接選項,以提升 NFS 效能。對於特定服務層級,建議您指定用戶端與伺服器之間的連線數如下:級別 容量 連線數量 區域、可用區 1 至 9.75 TiB nconnect=2
區域、可用區 10 至 100 TiB nconnect=7
Enterprise - nconnect=2
高可擴充性固態硬碟 - nconnect=7
一般來說,檔案共用容量越大,連線的用戶端 VM 越少,指定額外連線數可帶來的效能提升就越大。
nconnect
使用偏好選項執行
mount
指令,類似於下列指令:sudo mount -o rw ip-address:/file-share mount-point-directory
其中:
ip-address
是 Filestore 執行個體的 IP 位址。file-share
是執行個體上的檔案共用區名稱。mount-point-directory
是您要對應 Filestore 檔案共用區的路徑。
您可透過以下頁面或指令來查詢執行個體的 IP 位址與檔案共用區名稱:
Filestore 執行個體頁面。
filestore instances list
指令產生結果中的IP_ADDRESS
欄位。filestore instances describe
指令產生結果中的ipAddresses
部分。
舉例來說,假設有一個 Filestore 執行個體,其 IP 位址為
10.0.1.2
,檔案共用區名稱為share1
,以下指令就可將檔案共用區掛接至本機掛接點目錄/mnt/render
:sudo mount 10.0.1.2:/share1 /mnt/render
- 如要減少掛接延遲時間,請指定
選用:執行
chmod
,在掛接目錄中設定權限,讓超級使用者以外的使用者也能寫入掛接目錄。如要設定目錄權限,請執行下列指令:sudo chmod permissions mount-point-directory
其中:
permissions
是要授予的權限集。舉例來說,chmod go+rw
可讓目錄擁有群組的成員和所有其他使用者讀取及寫入目錄。如要進一步瞭解如何設定權限,請參閱設定檔案共用區的存取權。mount-point-directory
是掛接 Filestore 檔案共用區的所在目錄路徑。
選用:確認已掛接 Filestore 檔案共用區:
df -h --type=nfs
輸出內容應包含類似以下的項目:
Filesystem Size Used Avail Use% Mounted on 10.0.1.2:/share1 1018G 76M 966G 1% /mnt/render 10.0.2.2:/vol3 1018G 76M 966G 1% /mnt/filestore3
如需使用 NFS 檔案鎖定功能,您可能需要設定
statd
和nlockmgr
Daemon 使用的通訊埠,並設定防火牆規則,開放這些通訊埠。
Linux:/etc/fstab
如要讓檔案共用區在啟動時自動掛接到用戶端 VM,請修改用戶端的 /etc/fstab
檔案:
前往 Google Cloud 控制台的「VM Instances」(VM 執行個體) 頁面。
找到您要做為用戶端使用的 Linux VM,然後按一下「SSH」SSH,在該 VM 上開啟終端機。
選用:透過次要網路,在具備多個網路介面的用戶端 VM 上掛接檔案共用區。
詳細資料 (按一下即可展開)
如要透過次要網路 (也就是
nic0
以外的介面) 掛接檔案共用區,請修改用戶端 VM 的路由政策:- 在
/etc/default/instance_configs.cfg
中,將NetworkInterfaces
的setup
標記設為false
:[NetworkInterfaces] dhclient_script = /sbin/google-dhclient-script dhcp_command = ip_forwarding = true setup = false
在
/etc/network/interfaces
中新增下列程式碼:auto eth1 iface eth1 inet dhcp up ip route add filestore-reserved-address-range via default-gateway-of-nic-to-filestore
其中:
filestore-reserved-address-range
是 Filestore 執行個體使用的保留位址範圍。default-gateway-of-nic-to-filestore
是連線至與 Filestore 執行個體共用虛擬私有雲網路的 NIC 預設閘道 IP 位址。
如要進一步瞭解如何使用多個 NIC 搭配 Compute Engine 執行個體,請參閱「為額外網路介面設定路由」。
- 在
安裝 NFS:
Debian/Ubuntu
使用下列指令在 Debian 或 Ubuntu 上安裝 NFS。
sudo apt-get -y update &&
sudo apt-get install nfs-commonRHEL/CentOS
使用下列指令在 Red Hat Enterprise Linux 或 CentOS 上安裝 NFS。
sudo yum update &&
sudo yum install nfs-utilsSUSE
使用下列指令在 SUSE 上安裝 NFS。
sudo zypper update &&
sudo zypper -n install nfs-client建立對應至 Filestore 檔案共用區的本機目錄:
sudo mkdir -p mount-point-directory
其中
mount-point-directory
是要建立的目錄,例如/mnt/filedir
。開啟
/etc/fstab
檔案:sudo vim /etc/fstab
在
/etc/fstab
檔案中新增下列程式碼:ip-address:/file-share mount-point-directory nfs options,_netdev 0 0
其中:
ip-address
是 Filestore 執行個體的 IP 位址。file-share
是執行個體上的檔案共用區名稱。mount-point-directory
是要對應 Filestore 檔案共用區的路徑。options
是 NFS 掛接選項。建議保留預設的 NFS 掛接選項,但下列情況除外:- 如要自動掛接,建議您指定
-o tcp
,以減少掛接和卸載時的延遲。 - 如果將區域、可用區或企業執行個體掛接至執行 Linux 核心 5.3 以上版本的用戶端 VM,建議指定
nconnect
掛接選項,以提升 NFS 效能。對於特定服務層級,建議您指定用戶端與伺服器之間的連線數如下:
級別 容量 連線數量 區域、可用區 1 至 9.75 TiB nconnect=2
區域、可用區 10 至 100 TiB nconnect=7
Enterprise - nconnect=2
高可擴充性固態硬碟 - nconnect=7
一般來說,檔案共用容量越大,連線的用戶端 VM 越少,指定額外連線數可帶來的效能提升就越大。
nconnect
- 如要自動掛接,建議您指定
範例:
/etc/fstab
中的下列程式碼會使用預設掛接選項,將 IP 位址為10.0.0.2
的 Filestore 執行個體檔案共用區vol1
掛接至掛接點目錄/mnt
:10.0.0.2:/vol1 /mnt nfs defaults,_netdev 0 0
在
/etc/fstab
中掛接所有項目:sudo mount -a
現在,用戶端 VM 每次啟動時,系統都會自動掛接檔案共用區。
Linux:autofs
您可以設定 autofs
,讓檔案共用區只在存取時自動掛接,並在未使用時保持卸載狀態。相較於在 /etc/fstab
中靜態掛接檔案共用區,如果用戶端需要對應多個掛接點,這個方法有助於節省用戶端 VM 資源。
在用戶端 VM 上安裝 NFS
和 autofs
前往 Google Cloud 控制台的「VM Instances」(VM 執行個體) 頁面。
找到您要做為用戶端使用的 Linux VM,然後按一下 [SSH],在該 VM 上開啟終端機。
選用:透過次要網路,在具備多個網路介面的用戶端 VM 上掛接檔案共用區。
詳細資料 (按一下即可展開)
如要透過次要網路 (也就是
nic0
以外的介面) 掛接檔案共用區,請修改用戶端 VM 的路由政策:- 在
/etc/default/instance_configs.cfg
中,將NetworkInterfaces
的setup
標記設為false
:[NetworkInterfaces] dhclient_script = /sbin/google-dhclient-script dhcp_command = ip_forwarding = true setup = false
- 在
/etc/network/interfaces
中加入以下幾行: auto eth1 iface eth1 inet dhcp up ip route add filestore-reserved-address-range via default-gateway-of-nic-to-filestore
其中:
filestore-reserved-address-range
是 Filestore 執行個體使用的預留位址範圍。default-gateway-of-nic-to-filestore
是連線至與 Filestore 執行個體共用之 VPC 網路的 NIC 預設閘道 IP 位址。
如要進一步瞭解如何使用多個 NIC 搭配 Compute Engine 執行個體,請參閱「為額外網路介面設定路由」。
- 在
執行下列指令,安裝 NFS:
Debian/Ubuntu
使用下列指令在 Debian 或 Ubuntu 上安裝 NFS。
sudo apt-get -y update &&
sudo apt-get install nfs-commonRHEL/CentOS
使用下列指令在 Red Hat Enterprise Linux 或 CentOS 上安裝 NFS。
sudo yum update &&
sudo yum install nfs-utilsSUSE
使用下列指令在 SUSE 上安裝 NFS。
sudo zypper update &&
sudo zypper -n install nfs-client在用戶端 VM 的終端機視窗中,安裝
autofs
:Debian/Ubuntu
sudo apt-get install autofs
RHEL/CentOS
sudo yum install autofs
SUSE
sudo zypper -n install autofs
設定 autofs
,將檔案共用區動態掛接至用戶端 VM
啟用
autofs
:sudo systemctl enable --now autofs
建立對應至 Filestore 檔案共用區的本機目錄:
sudo mkdir -p mount-point-directory
其中
mount-point-directory
是要建立的目錄。不得含有任何子目錄。在本指南中,我們使用/nfs
做為掛接點目錄。開啟
/etc/auto.master
檔案:sudo vim /etc/auto.master
在
/etc/auto.master
檔案中新增下列程式碼:/nfs /etc/auto.nfs --timeout seconds
其中
seconds
是掛接逾時前的時間長度 (以秒為單位)。預設值為300
。將這個值設為0
,即可透過autofs
停用解除掛接功能。建立名為
/etc/auto.nfs
的檔案:sudo vim /etc/auto.nfs
在
/etc/auto.nfs
檔案中新增下列程式碼:mount-point-subdir options ip-address:/file-share
其中:
mount-point-subdir
是要對應 Filestore 檔案共用區的/nfs
子目錄。這個子目錄是動態產生,不應存在於用戶端 VM 中。options
是 NFS 掛接選項。建議保留預設的 NFS 掛接選項,但下列情況除外:- 如要自動掛接,建議您指定
-o tcp
,以減少掛接和卸載時的延遲。 - 如果將區域、可用區或企業執行個體掛接至執行 Linux 核心 5.3 以上版本的用戶端 VM,建議指定
nconnect
掛接選項,以提升 NFS 效能。對於特定服務層級,建議您指定用戶端與伺服器之間的連線數如下:
級別 容量 連線數量 區域、可用區 1 至 9.75 TiB nconnect=2
區域、可用區 10 至 100 TiB nconnect=7
Enterprise - nconnect=2
高可擴充性固態硬碟 - nconnect=7
一般來說,檔案共用容量越大,連線的用戶端 VM 越少,指定額外連線數可帶來的效能提升就越大。
nconnect
ip-address
是 Filestore 執行個體的 IP 位址。file-share
是執行個體上的檔案共用區名稱。
- 如要自動掛接,建議您指定
範例:
/etc/auto.nfs
中的下列行會將 IP 位址為10.0.0.2
的 Filestore 執行個體檔案共用區vol1
掛接至動態產生的子目錄file-shares
,並授予read/write
存取權:file-shares -rw 10.0.0.2:/vol1
測試您的設定
如果已掛接檔案共用,請取消掛接:
sudo umount mount-point-directory
其中
mount-point-directory
是 Filestore 檔案共用區對應的路徑。如果
/etc/fstab
項目會在系統開機時掛接檔案共用,請務必移除該項目。重新載入
autofs
:sudo service autofs reload
確認設定是否正常運作:
ls mount-point-directory/mount-point-subdir
其中:
mount-point-directory
是/etc/auto.master
檔案中指定的掛接點目錄。mount-point-subdir
是/etc/auto.nfs
檔案中指定的掛接點子目錄。
以我們的範例來說,指令會是:
ls /nfs/file-shares
如果自動掛接設定正確,系統會先掛接檔案共用,然後傳回
ls
指令的結果。閒置一段時間後,系統會自動卸載檔案共用,這段時間是在/etc/auto.master
檔案中指定的timeout
值。
Windows
連線至 Windows VM
前往 Google Cloud 控制台的「VM Instances」(VM 執行個體) 頁面。
找到要做為用戶端的 Windows VM,然後按一下「遠端桌面協定」,開啟與該 VM 的遠端桌面連線。詳情請參閱「連線至 Windows 執行個體」。
在 Windows VM 上安裝 NFS
- 在 Windows VM 中,以管理員身分開啟 PowerShell,確保 NFS 存取權和權限正確無誤。
在 PowerShell 中安裝 NFS 用戶端:
Install-WindowsFeature -Name NFS-Client
依照系統提示重新啟動 Windows VM 執行個體,然後開啟新的遠端桌面連線。
設定 NFS 用戶端所用的使用者 ID
在 PowerShell 中執行下列指令,建立兩個新的登錄項目
AnonymousUid
和AnonymousGid
:New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default" ` -Name "AnonymousUid" -Value "0" -PropertyType DWORD
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default" ` -Name "AnonymousGid" -Value "0" -PropertyType DWORD
重新啟動 NFS 用戶端服務:
nfsadmin client stop
nfsadmin client start
將檔案共用區對應至 Windows VM
結束 PowerShell,離開管理員工作階段。如果省略這個步驟,在標準使用者工作階段中執行的應用程式就無法查看或存取這個檔案共用。
exit
選用:透過次要網路,在具備多個網路介面的用戶端 VM 上掛接檔案共用區。
詳細資料 (按一下即可展開)
如要透過次要網路 (也就是
nic0
以外的介面) 掛接檔案共用區,請修改用戶端 VM 的路由政策。執行作業:route -p ^ add filestore-reserved-address-range ^ mask address-range-subnet-mask ^ default-gateway-of-nic-to-filestore
其中:
filestore-reserved-address-range
是 Filestore 執行個體使用的保留位址範圍。address-range-subnet-mask
是filestore-reserved-address-range
的子網路遮罩。舉例來說,/29 保留位址範圍會使用 255.255.255.248 子網路遮罩。default-gateway-of-nic-to-filestore
是連線至與 Filestore 執行個體共用虛擬私有雲網路的 NIC 預設閘道 IP 位址。
範例:
route -p add 10.65.21.176 mask 255.255.255.248 10.128.0.1
如要進一步瞭解如何使用多個 NIC 搭配 Compute Engine 執行個體,請參閱「為額外網路介面設定路由」。
從
Command Prompt
將檔案共用對應至磁碟機代號:net use drive-letter: \\filestore-ip\file-share-name
其中:
- filestore-ip 是 Filestore 執行個體的 IP 位址。
- file-share-name 是 Filestore 執行個體上的檔案共用區名稱。
- drive-letter 是您要指派給對應項目的磁碟機代號。
示例
下列指令會將 IP 位址為
10.0.0.2
的 Filestore 執行個體上的檔案共用區vol1
,對應至用戶端 Windows VM 上的磁碟機z:
:net use Z: \\10.0.0.2\vol1
選用步驟:如要使用 NFS 檔案鎖定功能,請確認下列事項:
確認已為所有必要的 NFS 連接埠 (包括
statd
和nlockmgr
) 設定防火牆規則。請使用類似下列 PowerShell 指令,確保 Windows NFS 用戶端已設定保留的連接埠:
nfsadmin client config protocol=tcp UseReservedPorts=yes nfsadmin client stop nfsadmin client start
在檔案共用區中建立及掛接子目錄
將檔案共用區掛接至用戶端 VM 後,您可以在檔案共用區中建立子目錄,用戶端可以直接掛接這些子目錄,不必掛接整個檔案共用區:
如要在掛接的檔案共用區中建立子目錄,請執行下列指令:
sudo mkdir -p mount-point-directory/file-share-sub-dir
其中:
mount-point-directory
是您要對應檔案共用區的路徑。file-share-sub-dir
是您要在檔案共用中建立的子目錄路徑。
這項指令會在用戶端 VM 和檔案共用區建立子目錄。舉例來說,如果您將檔案共用區
10.0.0.2:/vol1
掛接到用戶端 VM 的/mnt
目錄,指令sudo mkdir -p /mnt/nfs
會在檔案共用區建立10.0.0.2:/vol1/nfs
,並在用戶端 VM 建立/mnt/nfs
。選用:如要將檔案共用子目錄掛接到檔案共用區掛接所在用戶端 VM 的目錄,請先解除掛接檔案共用區:
sudo umount mount-point-directory
其中
mount-point-directory
是檔案共用區對應的目錄。掛接子目錄:
sudo mount ip-address:/file-share/file-share-sub-dir mount-point-directory
其中:
ip-address
是 Filestore 執行個體的 IP 位址。file-share
是執行個體上的檔案共用區名稱。file-share-sub-dir
是要掛接的檔案共用子目錄路徑。mount-point-directory
是您要對應 Filestore 檔案共用區的路徑。
範例:在下列指令中:
sudo mount 10.0.0.2:/vol1/nfs /mnt/nfs
10.0.0.2
是 Filestore 執行個體的 IP 位址。vol1
是檔案共用區的名稱。nfs
是檔案共用子目錄。/mnt/nfs
是檔案共用子目錄nfs
對應的用戶端 VM 目錄。
後續步驟
- 瞭解如何將資料複製到掛接的檔案共用區。
- 瞭解如何在遠端網路的用戶端上掛接檔案共用區。
- 排解與 Filestore 相關的掛接問題。