本指南說明如何建立單一 Compute Engine 用戶端,並將其連線至 Google Cloud Managed Lustre 執行個體。Managed Lustre 最多可支援 20,000 個用戶端連線。
如要提升效能,請在與 Managed Lustre 執行個體相同的區域中,建立用戶端 Compute Engine VM。
所需權限
您必須具備下列 IAM 角色:
Compute 執行個體管理員 (v1) (
roles/compute.instanceAdmin.v1) 建立 Compute Engine VM。Compute 管理員 (
roles/compute.admin) 或 Compute 安全管理員 (roles/compute.securityAdmin) 建立防火牆規則。受 IAP 保護的通道使用者 (
roles/iap.tunnelResourceAccessor) 透過 Identity-Aware Proxy,以 SSH 連線至 Compute Engine VM。
如要查看各角色授予的完整權限清單,請參閱 IAM 角色參考資料。
限制
Managed Lustre 無法掛接至受防護的 VM。
建立 Compute Engine VM
請按照操作說明,使用下列其中一個 Google Cloud 映像檔系列建立 Compute Engine VM:
- Rocky Linux 8
- Rocky Linux 9
- Red Hat Enterprise Linux (RHEL) 9
- Ubuntu 20.04 LTS,版本 20250213 以上。請注意,Ubuntu 20.04 已終止支援 (EOS),因此無法從 Google Cloud 控制台選取。
- Ubuntu 22.04 LTS,v20250128 以上版本
- Ubuntu 24.04 LTS,僅適用於 Arm VM。
如果您執行的是自訂 Ubuntu 22.04 或 24.04 核心,支援 DKMS。
機器類型、儲存空間和網路
您可以選擇 OS 映像檔支援的任何機型和開機磁碟。建議您選用至少 c2-standard-4 的機型。
選取儲存空間選項時,請注意下列事項:
- 請務必選取機器系列支援的磁碟類型。
第 4 代機器系列 (例如
c4、c4a或n4) 需要hyperdisk-balanced或其他 Hyperdisk 類型。標準機器系列 (例如c2d、c2或n2) 使用pd-balanced或其他永久磁碟類型。
如要取得最佳網路總處理量,請考量機型和 vCPU 數量。一般而言:
- 增加 vCPU 數量。每個執行個體的輸出頻寬上限通常為每個 vCPU 2 Gbps,最高可達機型上限。
- 選取支援較高輸入和輸出限制的機器系列。舉例來說,使用 Tier_1 網路的 C2 執行個體最多支援 100 Gbps 的輸出頻寬,而 C3 執行個體最多支援 200 Gbps。
- 使用較大的機型,啟用各個 VM 的 Tier_1 網路效能。並非所有機型都支援 Tier_1 網路。如果所選機型不支援,請省略 Tier_1 設定選項。
- 選取具有多個實體網路介面卡 (NIC) 的機器系列,以匯總網路頻寬。實體 NIC 必須連接至一般 VPC,而非具有 RDMA 網路設定檔的 VPC,才能增加頻寬。詳情請參閱「網路和 GPU 機器」。
詳情請參閱「網路頻寬」。
建立 VM
Google Cloud 控制台
前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面。
選取您的專案並點選 [繼續]。
點選「建立執行個體」。
在「Name」(名稱) 中輸入 VM 名稱。詳情請參閱資源命名慣例。
從下拉式選單中,選取這個 VM 的「Region」(地區) 和「Zone」(區域)。 VM 應與 Managed Lustre 執行個體位於相同區域。
從清單中選取 VM 的「Machine configuration」(機器設定)。
點選左側導覽列中的「OS 和儲存空間」。
在「作業系統和儲存空間」下方,點選「變更」。
從「作業系統」下拉式選單中,選取下列其中一個選項:
- 適用於 Rocky 8 的 HPC VM 映像檔
- 適用於 Rocky 9 的 Rocky Linux
- RHEL 9 適用的 Red Hat Enterprise Linux
- Ubuntu (適用於 Ubuntu 22.04 LTS 或 24.04 LTS)
從「Version」(版本) 下拉式選單中,選取下列其中一個選項:
- HPC Rocky Linux 8
- Rocky Linux 9
- Red Hat Enterprise Linux 9
- Ubuntu 22.04 LTS
- Ubuntu 24.04 LTS
請選取 x86/64 或 Arm64 版本,以符合機器類型。Ubuntu 24.04 LTS 僅支援 Arm VM。
選取與機器系列相容的「磁碟類型」,例如第 4 代機器系列 (如
c4a) 的Hyperdisk Balanced,或是標準系列 (如c2d) 的Balanced Persistent Disk,然後按一下「選取」。按一下左側導覽列中的「網路」。
(選用) 如果是多 NIC,請按一下「新增網路介面」,然後選取相同的虛擬私有雲網路和不同的子網路 (例如
SUBNET_NAME_2)。(選用) 如要啟用 Tier_1 網路,請在「網路效能設定」下方,將「網路頻寬層級」設為「Tier 1」。如果所選機型不支援 Tier_1 網路,請保留預設設定。
按一下左側導覽列中的「安全性」。
在 [Access scopes] (存取權範圍) 下,選取 [Allow full access to all Cloud APIs] (允許所有 Cloud API 的完整存取權)。
按一下左側導覽面板中的「進階」。
在「自動化」下方,於「開機指令碼」欄位輸入下列內容:
#!/bin/bash sudo apt-get update sudo apt-get install -y lustre-client-modules-$(uname -r)如果 Ubuntu 核心升級,這個指令碼可確保 Lustre 用戶端套件更新。
如要建立並啟動 VM,請按一下 [Create] (建立)。
gcloud
使用 gcloud 指令列工具建立 VM。自訂指令時:
- 如果您的機型不支援 Tier_1 網路,請從指令中省略
--network-performance-configs=total-egress-bandwidth-tier=TIER_1。 將
type=hyperdisk-balanced設為第 4 代機器類型,例如c4a或n4;將type=pd-balanced設為標準機器類型,例如c2d或c2。
HPC Rocky Linux 8
使用 gcloud compute instances create 指令建立 VM。您可以在執行指令前更新機型和任何磁碟規格。
gcloud compute instances create VM_NAME \
--project=PROJECT_ID \
--zone=LOCATION \
--machine-type=c2d-standard-112 \
--scopes="https://www.googleapis.com/auth/cloud-platform" \
--network-interface=stack-type=IPV4_ONLY,subnet=SUBNET_NAME,nic-type=GVNIC \
--network-performance-configs=total-egress-bandwidth-tier=TIER_1 \
--create-disk=auto-delete=yes,boot=yes,device-name=VM_NAME,\
image-project=cloud-hpc-image-public,image-family=hpc-rocky-linux-8,\
mode=rw,size=100,type=pd-balanced
如果 Compute Engine 機型有多個實體網路介面卡 (NIC),請將每個 NIC 指派給子網路。這樣一來,您就能匯總多個網路介面的頻寬。
如要這麼做,請為每個額外的 NIC 新增 --network-interface 標記,並指定不同的子網路。詳情請參閱「為多 NIC 建立額外的子網路」。
... --network-interface=stack-type=IPV4_ONLY,subnet=SUBNET_NAME,nic-type=GVNIC \ --network-interface=subnet=SUBNET_NAME_2,no-address,nic-type=GVNIC \ ...
Rocky Linux 9
使用 gcloud compute instances create 指令建立 VM。您可以在執行指令前更新機型和任何磁碟規格。
gcloud compute instances create VM_NAME \
--project=PROJECT_ID \
--zone=LOCATION \
--machine-type=c2d-standard-112 \
--scopes="https://www.googleapis.com/auth/cloud-platform" \
--network-interface=stack-type=IPV4_ONLY,subnet=SUBNET_NAME,nic-type=GVNIC \
--network-performance-configs=total-egress-bandwidth-tier=TIER_1 \
--create-disk=auto-delete=yes,boot=yes,device-name=VM_NAME,\
image-project=rocky-linux-cloud,image-family=rocky-linux-9,\
mode=rw,size=100,type=pd-balanced
如果 Compute Engine 機型有多個實體網路介面卡 (NIC),請將每個 NIC 指派給子網路。這樣一來,您就能匯總多個網路介面的頻寬。
如要這麼做,請為每個額外的 NIC 新增 --network-interface 標記,並指定不同的子網路。詳情請參閱「為多 NIC 建立額外的子網路」。
... --network-interface=stack-type=IPV4_ONLY,subnet=SUBNET_NAME,nic-type=GVNIC \ --network-interface=subnet=SUBNET_NAME_2,no-address,nic-type=GVNIC \ ...
RHEL 9
使用 gcloud compute instances create 指令建立 VM。您可以在執行指令前更新機型和任何磁碟規格。
gcloud compute instances create VM_NAME \
--project=PROJECT_ID \
--zone=LOCATION \
--machine-type=c2d-standard-112 \
--scopes="https://www.googleapis.com/auth/cloud-platform" \
--network-interface=stack-type=IPV4_ONLY,subnet=SUBNET_NAME,nic-type=GVNIC \
--network-performance-configs=total-egress-bandwidth-tier=TIER_1 \
--create-disk=auto-delete=yes,boot=yes,device-name=VM_NAME,\
image-project=rhel-cloud,image-family=rhel-9,\
mode=rw,size=100,type=pd-balanced
如果 Compute Engine 機型有多個實體網路介面卡 (NIC),請將每個 NIC 指派給子網路。這樣一來,您就能匯總多個網路介面的頻寬。
如要這麼做,請為每個額外的 NIC 新增 --network-interface 標記,並指定不同的子網路。詳情請參閱「為多 NIC 建立額外的子網路」。
... --network-interface=stack-type=IPV4_ONLY,subnet=SUBNET_NAME,nic-type=GVNIC \ --network-interface=subnet=SUBNET_NAME_2,no-address,nic-type=GVNIC \ ...
Ubuntu 20.04 LTS
使用 gcloud compute instances create 指令建立 VM。您可以在執行指令前更新機型和任何磁碟規格。
gcloud compute instances create VM_NAME \
--project=PROJECT_ID \
--zone=LOCATION \
--machine-type=c2d-standard-112 \
--scopes="https://www.googleapis.com/auth/cloud-platform" \
--network-interface=stack-type=IPV4_ONLY,subnet=SUBNET_NAME,nic-type=GVNIC \
--network-performance-configs=total-egress-bandwidth-tier=TIER_1 \
--create-disk=auto-delete=yes,boot=yes,device-name=VM_NAME,\
image=projects/ubuntu-os-cloud/global/images/ubuntu-2004-focal-v20250606,\
mode=rw,size=100,type=pd-balanced \
--metadata=startup-script='#!/bin/bash
sudo apt-get update
sudo apt-get install -y lustre-client-modules-$(uname -r)'
如果 Compute Engine 機型有多個實體網路介面卡 (NIC),請將每個 NIC 指派給子網路。這樣一來,您就能匯總多個網路介面的頻寬。
如要這麼做,請為每個額外的 NIC 新增 --network-interface 標記,並指定不同的子網路。詳情請參閱「為多 NIC 建立額外的子網路」。
... --network-interface=stack-type=IPV4_ONLY,subnet=SUBNET_NAME,nic-type=GVNIC \ --network-interface=subnet=SUBNET_NAME_2,no-address,nic-type=GVNIC \ ...
Ubuntu 22.04 LTS
使用 gcloud compute instances create 指令建立 VM。您可以在執行指令前更新機型和任何磁碟規格。
gcloud compute instances create VM_NAME \
--project=PROJECT_ID \
--zone=LOCATION \
--machine-type=c2d-standard-112 \
--scopes="https://www.googleapis.com/auth/cloud-platform" \
--network-interface=stack-type=IPV4_ONLY,subnet=SUBNET_NAME,nic-type=GVNIC \
--network-performance-configs=total-egress-bandwidth-tier=TIER_1 \
--create-disk=auto-delete=yes,boot=yes,device-name=VM_NAME,\
image-project=ubuntu-os-cloud,image-family=ubuntu-2204-lts,\
mode=rw,size=100,type=pd-balanced \
--metadata=startup-script='#!/bin/bash
sudo apt-get update
sudo apt-get install -y lustre-client-modules-$(uname -r)'
如果 Compute Engine 機型有多個實體網路介面卡 (NIC),請將每個 NIC 指派給子網路。這樣一來,您就能匯總多個網路介面的頻寬。
如要這麼做,請為每個額外的 NIC 新增 --network-interface 標記,並指定不同的子網路。詳情請參閱「為多 NIC 建立額外的子網路」。
... --network-interface=stack-type=IPV4_ONLY,subnet=SUBNET_NAME,nic-type=GVNIC \ --network-interface=subnet=SUBNET_NAME_2,no-address,nic-type=GVNIC \ ...
Ubuntu 24.04 LTS
使用 gcloud compute instances create 指令建立 VM。
Managed Lustre 僅支援 Arm VM 上的 Ubuntu 24.04 LTS。
您可以在執行指令前更新機型和任何磁碟規格。
gcloud compute instances create VM_NAME \
--project=PROJECT_ID \
--zone=LOCATION \
--machine-type=c4a-standard-32 \
--scopes="https://www.googleapis.com/auth/cloud-platform" \
--network-interface=network-tier=PREMIUM,nic-type=GVNIC,stack-type=IPV4_ONLY,subnet=SUBNET_NAME \
--network-performance-configs=total-egress-bandwidth-tier=TIER_1 \
--create-disk=auto-delete=yes,boot=yes,device-name=VM_NAME,\
image-project=ubuntu-os-cloud,image-family=ubuntu-2404-lts-arm64,mode=rw,size=100,type=hyperdisk-balanced
如果 Compute Engine 機型有多個實體網路介面卡 (NIC),請將每個 NIC 指派給子網路。這樣一來,您就能匯總多個網路介面的頻寬。
如要這麼做,請為每個額外的 NIC 新增 --network-interface 標記,並指定不同的子網路。詳情請參閱「為多 NIC 建立額外的子網路」。
... --network-interface=stack-type=IPV4_ONLY,subnet=SUBNET_NAME,nic-type=GVNIC \ --network-interface=subnet=SUBNET_NAME_2,no-address,nic-type=GVNIC \ ...
如要進一步瞭解可用選項,請參閱 Compute Engine 說明文件。
建立允許 SSH 的防火牆規則
如要透過 SSH 連線至 Compute Engine VM,您必須先建立防火牆規則,允許存取 VM 的 TCP 通訊埠 22。
沒有公開 IP 的 VM
透過 SSH 連線至沒有外部 IP 的 VM 時, Google Cloud 控制台的 SSH 按鈕gcloud compute ssh和 Identity-Aware Proxy (IAP) 都會用於連線。
如要建立這類連線,請按照「建立防火牆規則」一節的指示,建立只允許從 IAP 來源範圍 (一律為 35.235.240.0/20) 進入的防火牆規則。這樣一來,您就不會將通訊埠 22 公開至更廣泛的網際網路,進而提升安全性。
具備公開 IP 的 VM
如果您已將公開 IP 指派給 Compute Engine VM,Google Cloud 控制台的 SSH 按鈕可能會嘗試直接連線,略過 IAP。
這個直接連線的來源 IP 位址不是 IAP 範圍,而是 Google IP 位址集區中的其中一個。如要允許這項連線,需要較廣泛的來源位址範圍,例如 0.0.0.0/0 (任何來源)。
如果 VM 具有公開 IP 位址,建議您設定防火牆規則,只允許來自 IAP 範圍 (35.235.240.0/20) 的 SSH 連線。然後使用 gcloud compute ssh 連線,並指定 --tunnel-through-iap 旗標。
如要指派公開 IP 並從 Google Cloud 控制台連線,請將來源 IPv4 範圍的值指定為 0.0.0.0/0。
建立防火牆規則
Google Cloud 控制台
建立允許 SSH 的防火牆規則。
前往 Google Cloud 控制台的「Firewall policies」(防火牆政策) 頁面。
按一下「Create firewall rule」(建立防火牆規則)。
輸入規則的「Name」(名稱)。
在「Network」(網路) 中,選取您先前建立的虛擬私有雲網路。
選取「Ingress」做為「流量方向」,並選取「允許」做為「相符時執行的動作」。
從「目標」下拉式選單中,選取「網路中的所有執行個體」。
在「Source IPv4 ranges」(來源 IPv4 範圍) 欄位中輸入
35.235.240.0/20。在「Protocols and ports」(通訊協定和通訊埠) 中選取「Specified protocols and ports」(指定的通訊協定和通訊埠)。
選取「TCP」,然後在「Ports」欄位中輸入
22。點選「建立」。
gcloud
建立允許 SSH 的防火牆規則。
gcloud compute firewall-rules create FIREWALL_RULE_NAME \
--allow=tcp:22 \
--network=NETWORK_NAME \
--source-ranges=35.235.240.0/20 \
--project=PROJECT_ID
透過 SSH 連線至 Compute Engine VM
建立防火牆規則後,您就可以透過 SSH 連線至 VM:
Google Cloud 控制台
前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面。
在執行個體表格中找到執行個體的資料列,然後點選「連線」欄中的「SSH」。
如果系統提示您授權,請點選「授權」來允許連線。
gcloud
gcloud compute ssh VM_NAME \
--zone=LOCATION \
--project=PROJECT_ID \
--tunnel-through-iap
安裝 Lustre 用戶端套件
Lustre 用戶端套件會託管在 Artifact Registry 的 lustre-client-binaries 專案中。
設定存放區的存取權
如要設定 VM 從 Artifact Registry 安裝,請按照這些操作說明進行。
HPC Rocky Linux 8
執行 gcloud beta artifacts print-settings,並將輸出內容透過管道傳送至 bash,以執行必要指令:
gcloud beta artifacts print-settings yum \
--repository=lustre-client-rocky-8 \
--location=us --project=lustre-client-binaries | sudo bash
Rocky Linux 9
執行 gcloud beta artifacts print-settings,並將輸出內容透過管道傳送至 bash,以執行必要指令:
gcloud beta artifacts print-settings yum \
--repository=lustre-client-rocky-9 \
--location=us --project=lustre-client-binaries | sudo bash
RHEL 9
執行 gcloud beta artifacts print-settings,並將輸出內容透過管道傳送至 bash,以執行必要指令:
gcloud beta artifacts print-settings yum \
--repository=lustre-client-rocky-9 \
--location=us --project=lustre-client-binaries | sudo bash
RHEL 9 使用與 Rocky Linux 9 相同的 lustre-client-rocky-9 存放區。
Ubuntu 20.04 LTS
安裝 Apt 存放區簽署金鑰:
curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg \ | sudo gpg --dearmor -o /usr/share/keyrings/google-cloud.gpg curl -fsSL https://us-apt.pkg.dev/doc/repo-signing-key.gpg \ | sudo gpg --dearmor -o /usr/share/keyrings/lustre-client.gpg設定 VM 來存取 Artifact Registry 套件:
echo 'deb [signed-by=/usr/share/keyrings/google-cloud.gpg] http://packages.cloud.google.com/apt apt-transport-artifact-registry-stable main' \ | sudo tee /etc/apt/sources.list.d/artifact-registry.list更新 Apt 並安裝
apt-transport-artifact-registry套件:sudo apt update && sudo apt install apt-transport-artifact-registry設定 Apt 從存放區擷取套件:
echo "deb [signed-by=/usr/share/keyrings/lustre-client.gpg] ar+https://us-apt.pkg.dev/projects/lustre-client-binaries lustre-client-ubuntu-focal main" \ | sudo tee -a /etc/apt/sources.list.d/artifact-registry.list更新存放區來源:
sudo apt update如果指令傳回錯誤,請確認您建立 Compute Engine VM 時使用的存取權範圍,允許完整存取所有 Cloud API。詳情請參閱「授予 Compute Engine 執行個體存取權」。
如要進一步瞭解這些指令,請參閱 Artifact Registry 說明文件:設定 VM 以安裝 Debian 套件。
Ubuntu 22.04 LTS
安裝 Apt 存放區簽署金鑰:
curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg \ | sudo gpg --dearmor -o /usr/share/keyrings/google-cloud.gpg curl -fsSL https://us-apt.pkg.dev/doc/repo-signing-key.gpg \ | sudo gpg --dearmor -o /usr/share/keyrings/lustre-client.gpg設定 VM 來存取 Artifact Registry 套件:
echo 'deb [signed-by=/usr/share/keyrings/google-cloud.gpg] http://packages.cloud.google.com/apt apt-transport-artifact-registry-stable main' \ | sudo tee /etc/apt/sources.list.d/artifact-registry.list更新 Apt 並安裝
apt-transport-artifact-registry套件:sudo apt update && sudo apt install apt-transport-artifact-registry設定 Apt 從存放區擷取套件:
echo "deb [signed-by=/usr/share/keyrings/lustre-client.gpg] ar+https://us-apt.pkg.dev/projects/lustre-client-binaries lustre-client-ubuntu-jammy main" \ | sudo tee -a /etc/apt/sources.list.d/artifact-registry.list更新存放區來源:
sudo apt update如果指令傳回錯誤,請確認您建立 Compute Engine VM 時使用的存取權範圍,允許完整存取所有 Cloud API。詳情請參閱「授予 Compute Engine 執行個體存取權」。
如要進一步瞭解這些指令,請參閱 Artifact Registry 說明文件:設定 VM 以安裝 Debian 套件。
Ubuntu 24.04 LTS
安裝 Apt 存放區簽署金鑰:
curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg \ | sudo gpg --dearmor -o /usr/share/keyrings/google-cloud.gpg curl -fsSL https://us-apt.pkg.dev/doc/repo-signing-key.gpg \ | sudo gpg --dearmor -o /usr/share/keyrings/lustre-client.gpg設定 VM 來存取 Artifact Registry 套件:
echo 'deb [signed-by=/usr/share/keyrings/google-cloud.gpg] http://packages.cloud.google.com/apt apt-transport-artifact-registry-stable main' \ | sudo tee /etc/apt/sources.list.d/artifact-registry.list更新 Apt 並安裝
apt-transport-artifact-registry套件:sudo apt update && sudo apt install apt-transport-artifact-registry設定 Apt 從存放區擷取套件:
echo "deb [signed-by=/usr/share/keyrings/lustre-client.gpg] ar+https://us-apt.pkg.dev/projects/lustre-client-binaries lustre-client-ubuntu-noble main" \ | sudo tee -a /etc/apt/sources.list.d/artifact-registry.list更新存放區來源:
sudo apt update如果指令傳回錯誤,請確認您建立 Compute Engine VM 時使用的存取權範圍,允許完整存取所有 Cloud API。詳情請參閱「授予 Compute Engine 執行個體存取權」。
如要進一步瞭解這些指令,請參閱 Artifact Registry 說明文件:設定 VM 以安裝 Debian 套件。
安裝 Lustre 用戶端套件
按照操作說明安裝 Lustre 用戶端套件。
HPC Rocky Linux 8
sudo yum -y --enablerepo=lustre-client-rocky-8 install kmod-lustre-client
sudo yum -y --enablerepo=lustre-client-rocky-8 install lustre-client
Rocky Linux 9
sudo yum -y --enablerepo=lustre-client-rocky-9 install kmod-lustre-client
sudo yum -y --enablerepo=lustre-client-rocky-9 install lustre-client
RHEL 9
sudo yum -y --enablerepo=lustre-client-rocky-9 install kmod-lustre-client
sudo yum -y --enablerepo=lustre-client-rocky-9 install lustre-client
Ubuntu 20.04 LTS
執行下列指令。
sudo apt install lustre-client-modules-$(uname -r)/lustre-client-ubuntu-focal
sudo apt install lustre-client-utils/lustre-client-ubuntu-focal
Lustre 用戶端套件與核心版本相關。如果您在建立 Compute Engine 執行個體時未加入開機指令碼,且 Ubuntu 核心版本因自動更新而變更,則必須重新執行這些指令,才能下載適當的 Lustre 用戶端套件。
Ubuntu 22.04 LTS
執行下列指令。
sudo apt install lustre-client-modules-$(uname -r)/lustre-client-ubuntu-jammy
sudo apt install lustre-client-utils/lustre-client-ubuntu-jammy
Lustre 用戶端套件與核心版本相關。如果 Ubuntu 核心版本因自動核心更新而變更,您必須重新執行這些指令,才能下載適當的 Lustre 用戶端套件。
Ubuntu 24.04 LTS
執行下列指令。
sudo apt install lustre-client-modules-$(uname -r)/lustre-client-ubuntu-noble
sudo apt install lustre-client-utils/lustre-client-ubuntu-noble
Lustre 用戶端套件與核心版本相關。如果您在建立 Compute Engine 執行個體時未加入開機指令碼,且 Ubuntu 核心版本因自動更新而變更,則必須重新執行這些指令,才能下載適當的 Lustre 用戶端套件。
載入 Lustre 核心模組
安裝用戶端套件後,請按照下列操作說明載入 Lustre 核心模組。
標準設定
執行下列指令:
sudo modprobe lustre
多 NIC 設定
如果 VM 有多個 NIC,且每個 NIC 都連線至不同的子網路,您必須先設定 LNet 使用這些 NIC,才能載入模組。
建立或修改
/etc/modprobe.d/lustre.conf檔案:options lnet networks="tcp0(eth0, eth1)"這個範例假設 VM 上的介面名為
eth0和eth1。請將這些名稱替換為正確的對應介面名稱。您可以執行ip address指令,查看介面名稱。載入模組:
sudo modprobe lustre(選用) 驗證 TCP 調整作業。執行下列指令:
sudo lctl list_nids輸出內容會顯示兩個 NIC。
(選用) 為 gke-support-enabled 執行個體設定 LNet
本節僅適用於連線至 Managed Lustre 執行個體的 Compute Engine 用戶端,且指定了已淘汰的 --gke-support-enabled 旗標。
如果您的 Managed Lustre 執行個體不是使用「GKE 支援」選項建立,請略過本節。
將 LNet 設為使用 accept_port 6988
如果您的 Managed Lustre 執行個體已淘汰 --gke-support-enabled 設為 true,且您是從 Compute Engine VM 連線:
- 建立或編輯
/etc/modprobe.d/lnet.conf。 - 新增下列程式碼:
options lnet accept_port=6988
- 重新啟動 VM:
sudo reboot
掛接 Managed Lustre 執行個體
掛接 Managed Lustre 執行個體。
如要快速掛接,且不需要在重新啟動後保留掛接狀態,請使用
mount指令。如要在每次 VM 啟動時自動掛接,請使用
/etc/fstab選項。
無論是哪種情況,您都必須先建立要當做掛接點的目錄,才能執行指令。
如要擷取執行個體的 IP 位址和檔案系統名稱,請使用 gcloud lustre instances describe 指令,或前往 Google Cloud 控制台的「Instances」(執行個體) 頁面。
gcloud lustre instances describe INSTANCE_NAME \
--location=ZONE
mount
在 Compute Engine VM 的指令列中,使用 mount 指令手動掛接 Managed Lustre 執行個體:
sudo mkdir -p ~/MOUNT_DIR
sudo mount -t lustre IP_ADDRESS:/FILESYSTEM_NAME ~/MOUNT_DIR
其中:
IP_ADDRESS 是 Managed Lustre 執行個體的 IP 位址。
FILESYSTEM_NAME 是執行個體檔案系統的名稱。
~/MOUNT_DIR 是您建立的本機掛接點目錄。
/etc/fstab
在 Compute Engine VM 的指令列中:
為掛接點建立本機目錄:
sudo mkdir -p ~/MOUNT_DIR開啟
/etc/fstab檔案進行編輯,並新增下列程式碼:IP_ADDRESS@tcp:/FILESYSTEM_NAME ~/MOUNT_DIR lustre defaults,_netdev 0 0其中:
IP_ADDRESS 是 Managed Lustre 執行個體的 IP 位址。
FILESYSTEM_NAME 是執行個體檔案系統的名稱。
~/MOUNT_DIR 是您建立的本機掛接點目錄。
lustre defaults,_netdev 0 0是建議的掛接選項:lustre將檔案系統類型指定為 Lustre。defaults會使用預設的掛接選項集。_netdev會指示系統等待網路連線,再嘗試掛接檔案系統。0 0可控制傾印和檔案系統檢查順序。
儲存並結束
/etc/fstab檔案。執行下列指令,掛接
/etc/fstab中列出的所有檔案系統:sudo mount -a
Managed Lustre 執行個體現已掛接。每次啟動 Compute Engine VM 時,系統都會自動掛接該磁碟。
如果掛接指令失敗,請參閱疑難排解操作說明,診斷問題。
進階網路設定
以下各節說明進階網路設定。
使用次要 NIC
如果您使用具有多個 NIC 的 Compute Engine 執行個體次要 NIC,掛接 Managed Lustre 執行個體,請按照下列操作說明進行。
請注意,這與多重 NIC 不同。
設定 LNET,使用正確的 NIC。
將
/etc/lnet.conf的內容複製到 VM 上名為/etc/modprobe.d/lustre.conf的檔案。在檔案中附加下列這行文字,並將eth1替換為次要 NIC 的名稱:options lnet networks="tcp0(eth1)"重新載入 Lustre 核心模組:
lustre_rmmod modprobe lustre確認 LNET 已設定為使用第二個 NIC。下列指令的輸出內容應為第二個 NIC:
lctl list_nids透過次要 NIC 的閘道,將靜態路由新增至 Managed Lustre 執行個體的 CIDR 區塊。
如要找出次要 NIC 的閘道,請執行
route指令。如要找出 Managed Lustre 執行個體的 CIDR 區塊,請按照下列步驟操作:
- 執行
gcloud lustre instances describe指令,取得執行個體詳細資料。 - 取得「
mountPoint」欄位中提供的地址。 - 將 IP 位址轉換為包含該位址的 CIDR 區塊,大小為 23。
- 執行
舉例來說,如果 Managed Lustre 執行個體的 CIDR 區塊為
172.16.0.0/24,次要 NIC 為eth1,閘道為10.130.0.1,請執行下列指令:ip route add 172.16.0.0/24 via 10.130.0.1 dev eth1請注意,如果 Compute Engine 執行個體重新啟動,新增的路由將不會保留。如何讓該設定持續生效,取決於您使用的特定 OS 系列。
多 NIC 轉送
您必須手動設定路由,才能確保多 NIC Compute Engine 執行個體正確使用額外介面傳輸流量。
下列步驟說明如何設定 eth1 介面。針對 VM 上的每個額外 NIC 重複執行這些步驟 (例如 eth2、eth3 等)。
設定網路介面名稱,然後取得其內部 IP 位址,並計算對應的閘道 IP。閘道是介面子網路的
.1位址。IFACE="eth1" IFACE_IP=$(ip -4 addr show ${IFACE} | grep -oP '(?<=inet\s)\d+(\.\d+){3}') GATEWAY_IP=$(echo ${IFACE_IP} | awk -F. '{print $1"."$2"."$3".1"}')取得 Managed Lustre 執行個體的掛接點,並轉換為 /23 CIDR 區塊:
LUSTRE_MOUNT_IP=$(gcloud lustre instances describe INSTANCE_NAME \ --location=ZONE --format="value(mountPoint)") IFS=. read -r i1 i2 i3 i4 <<< "${LUSTRE_MOUNT_IP}" LUSTRE_CIDR="${i1}.${i2}.$((i3 & 254)).0/23"為介面建立專屬的路由表,並套用流量規則。 每個介面的
TABLE_ID值都必須是不重複的數字。如要為其他介面重複執行這些步驟,請將TABLE_ID遞增 1。例如,使用102代表 eth2,103代表 eth3。TABLE_ID=101 sudo ip route add ${LUSTRE_CIDR} via ${GATEWAY_IP} dev ${IFACE} table ${TABLE_ID} sudo ip rule add from ${IFACE_IP} table ${TABLE_ID}
這些轉送設定不會在重新啟動後保留。如要讓這些設定保持不變,請將其新增至開機指令碼或網路設定檔。
存取 Managed Lustre 執行個體
您的 Managed Lustre 執行個體現在已掛接至 Compute Engine VM,並可使用標準 POSIX 語法讀取/寫入,但有部分例外狀況。
執行下列指令,檢查已掛接的目錄:
sudo lfs df -h ~/MOUNT_DIR
您可以使用下列指令測試檔案複製和寫入作業:
# sample file copy/file write
sudo dd if=/dev/zero of=~/MOUNT_DIR/bigfile1 bs=1M count=8000
sudo dd if=/dev/urandom of=~/MOUNT_DIR/bigfile1 bs=1M count=1000
如要確認磁碟空間用量,請按照下列步驟操作:
sudo lfs df -h ~/MOUNT_DIR
卸載執行個體
您可以使用下列指令解除掛接 Managed Lustre 執行個體:
sudo umount ~/MOUNT_DIR