從 VPC 存取控制模式遷移到安全群組存取控制模式
請於 2027 年 5 月 6 日(支援結束日)之前,將區域性檔案共用從已廢止的 VPC 存取控制模式遷移至安全群組模式,以避免資料遺失。
VPC 存取控制模式允許 VPC 中的所有虛擬伺服器實體和裸機伺服器存取檔案共用。 安全群組存取控制模式會根據安全群組規則限制對特定運算資源的存取,提供更細緻的控制。 安全群組的存取控制模式還支援更多功能,例如傳輸中加密、跨區域掛載以及快照。
開始之前
將檔案共用從 VPC 存取控制模式轉換為安全群組存取控制模式之前,請檢閱下列需求:
- 請確認您擁有管理檔案共用及掛載目標所需的 IAM 權限。
- 識別帳戶中使用 VPC 存取控制模式的所有檔案共用。
- 請規劃您的安全群組設定,以確保授權的運算資源在遷移後能夠存取該檔案共用。
- 請為遷移作業安排一個維護時段,因為在遷移過程中,檔案共用將暫時無法存取。
移轉概觀
遷移流程包含以下步驟:
步驟 1:從所有運算主機卸載檔案共用
在刪除掛載目標之前,您必須先從所有已掛載該檔案共享的虛擬伺服器實例及裸機伺服器上解除掛載。
首先,識別使用 VPC 存取控制模式的檔案共用。 您可以透過 CLI 或 API 列出所有檔案共用。 篩選結果,僅顯示「access_control_mode」設定為「vpc」的分享內容。
如果您的環境支援 JSON 輸出,您可以使用 jq 來過濾 ibmcloud is shares:
ibmcloud is shares --output json | jq '.[] | select(.access_control_mode == "vpc") | {id, name, access_control_mode}'
進行 GET /shares 請求,並將 JSON 回應傳送到 jq:
curl -s -X GET "$vpc_api_endpoint/v1/shares?version=2026-04-28&generation=2" \
-H "Authorization: Bearer $iam_token" | jq '.shares[] | select(.access_control_mode == "vpc") | {id, name, access_control_mode}'
確定使用 VPC 存取控制模式的共用後,連線到掛載這些共用的每一台運算主機,並使用掛載點名稱執行 umount 指令。 請參閱下列範例:
umount /mnt/my-file-share
如需在不同作業系統上卸載檔案共用的詳細資訊,請參閱 掛載和卸載檔案共用。
步驟 2:從檔案共用刪除所有掛載目標
在將檔案共享從所有運算主機上卸載後,請刪除所有與該檔案共享相關的掛載目標。 您必須先刪除所有掛載目標,才能更新存取控制模式。
在主控台中刪除掛載目標
- 在 IBM Cloud 主控台中,按一下「導航」
圖示 > Infrastructure
> 儲存 > 檔案儲存共用。
- 請從清單中選取您要遷移的檔案共用。
- 在檔案共用詳細資訊頁面中,在「掛載目標」部分找到要刪除的掛載目標。
- 按一下動作圖示
,然後選擇刪除。
- 對於與檔案共用關聯的每個掛載目標,重複步驟 3-4。
如需詳細資訊,請參閱 在主控台中刪除檔案共用的掛載目標。
從 CLI 刪除掛載目標
針對與檔案共用關聯的每個掛載目標執行 share-mount-target-delete 指令。 請將 SHARE_ID 替換為檔案共用資源的 ID 或名稱,並將 MOUNT_TARGET_ID 替換為要刪除的掛載目標的 ID 或名稱。
ibmcloud is share-mount-target-delete SHARE_ID MOUNT_TARGET_ID
請參閱下列範例:
ibmcloud is share-mount-target-delete my-file-share my-mount-target
出現提示時,請輸入 y 確認刪除。 對於與檔案共用關聯的每個掛載目標,重複此指令。
如需詳細資訊,請參閱 從 CLI 刪除檔案共用的掛載目標。
使用 API 刪除掛載目標
提出 DELETE /shares/{share_id}/mount_targets/{mount_target_id} 請求,刪除與檔案共用關聯的每個掛載目標。
curl -X DELETE \
"$vpc_api_endpoint/v1/shares/$share_id/mount_targets/$mount_target_id?version=2026-04-28&generation=2" \
-H "Authorization: Bearer $iam_token"
針對與檔案共用關聯的每個掛載目標重複此要求。
如需詳細資訊,請參閱 使用 API 刪除掛載目標。
使用 Terraform 刪除掛載目標
要使用 Terraform 刪除掛載目標,請從 Terraform 配置文件中移除 ibm_is_share_mount_target 資源,然後執行 terraform apply。
# Remove or comment out the mount target resource
# resource "ibm_is_share_mount_target" "example" {
# share = ibm_is_share.example.id
# name = "my-mount-target"
# vpc = ibm_is_vpc.example.id
# }
步驟 3:刪除複製檔案共用(如適用)
如果您的檔案共用有複製檔案共用,您必須先刪除複製檔案共用,才能更新來源檔案共用的存取控制模式。 必須先移除複製關係,這會建立兩個獨立的檔案共用。 然後,您可以刪除複製檔案共用及其掛載目標。
如果您的檔案共用沒有副本,請跳過此步驟,並進行步 驟 4:更新存取控制模式為安全群組。
在主控台中移除複製關係
- 在 IBM Cloud 主控台中,按一下「導航」
圖示 > Infrastructure
> 儲存 > 檔案儲存共用。
- 按一下來源檔案共用的名稱,即可進入其詳細資訊頁面。
- 在檔案共用複製關係區段中,按一下移除複製關係。
- 在確認視窗中,請按一下「解除連結」。 刪除複製關係,建立兩個獨立的檔案共用。
- 移除複製關係後,請按照 步驟 2:從檔案共用刪除所有掛載目標 中的相同步驟刪除複製檔案共用的掛載目標。
- 返回檔案共用清單,選擇複製的檔案共用,按一下動作圖示
,然後選擇刪除。
- 出現提示時,確認刪除。
如需詳細資訊,請參閱 在主控台中移除複製關係 和 刪除副本和來源檔案共用。
從 CLI 移除複製關係
-
列出您的檔案共用,以識別複製檔案共用:
ibmcloud is shares在「複製角色」欄中尋找
replica的檔案共用。 -
執行
share-replica-split指令,以移除複製關聯。 請將「REPLICA_SHARE_ID」替換為複本檔案共用資料夾的 ID 或名稱。ibmcloud is share-replica-split REPLICA_SHARE_ID請參閱下列範例:
ibmcloud is share-replica-split my-replica-file-share出現提示時,請輸入
y確認分割作業。 -
移除複製關係後,刪除複製檔案共用的掛載目標:
ibmcloud is share-mount-target-delete REPLICA_SHARE_ID MOUNT_TARGET_ID對每個與複製檔案共用關聯的掛載目標重複此步驟。
-
刪除複本檔案共用:
ibmcloud is share-delete REPLICA_SHARE_ID出現提示時,請輸入
y確認刪除。
如需詳細資訊,請參閱 從 CLI 移除複製關係。
移除與 API 的複製關係
-
透過
DELETE /shares/{replica_id}/source請求移除複製關係:curl -X DELETE \ "$vpc_api_endpoint/v1/shares/$replica_share_id/source?version=2026-04-28&generation=2" \ -H "Authorization: Bearer $iam_token"成功的回應表示已移除複製關係。
-
透過對每個掛載目標提出
DELETE /shares/{replica_id}/mount_targets/{mount_target_id}請求,刪除複製檔案共用的掛載目標:curl -X DELETE \ "$vpc_api_endpoint/v1/shares/$replica_share_id/mount_targets/$mount_target_id?version=2026-04-28&generation=2" \ -H "Authorization: Bearer $iam_token" -
透過
DELETE /shares/{replica_id}請求刪除複製檔案共用:curl -X DELETE \ "$vpc_api_endpoint/v1/shares/$replica_share_id?version=2026-04-28&generation=2" \ -H "Authorization: Bearer $iam_token"
如需詳細資訊,請參閱 移除與 API 的複製關係。
移除與 Terraform 的複製關係
-
使用
ibm_is_share_replica_operations資源分割來源和複製共用:resource "ibm_is_share_replica_operations" "split" { share_replica = ibm_is_share.replica.id split_share = true } -
分割操作完成後,請從您的 Terraform 配置中移除複本檔案共用及其掛載目標,然後執行
terraform apply。# Remove or comment out the replica share and its mount targets # resource "ibm_is_share" "replica" { # ... # } # resource "ibm_is_share_mount_target" "replica_target" { # ... # }
如需更多資訊,請參閱 《 使用 Terraform 移除複製關聯 》及《 使用 Terraform 刪除掛載目標 》。
步驟 4:更新存取控制模式為安全群組
在刪除所有掛載目標及任何複本檔案共用後,請將檔案共用的存取控制模式從「vpc」更新為「security_group」。
在主控台更新存取控制模式
- 在 IBM Cloud 主控台中,按一下「導航」
圖示 > Infrastructure
> 儲存 > 檔案儲存共用。
- 請從清單中選取您要遷移的檔案共用。
- 在檔案共用詳細資訊頁面中,找到存取控制模式欄位。
- 點擊「存取控制模式」欄位旁邊的「編輯」圖示
。
- 從清單中選取「安全群組」。
- 按一下儲存。
從 CLI 更新存取控制模式
執行 share-update 指令,並將 --access-control-mode 選項設定為 security_group。 請將「SHARE_ID」替換為檔案共用資源的 ID 或名稱。
ibmcloud is share-update SHARE_ID --access-control-mode security_group
請參閱下列範例:
ibmcloud is share-update my-file-share --access-control-mode security_group
使用 API 更新存取控制模式
提出 PATCH /shares/{share_id} 請求,並將 access_control_mode 屬性設定為 security_group。
curl -X PATCH \
"$vpc_api_endpoint/v1/shares/$share_id?version=2026-04-28&generation=2" \
-H "Authorization: Bearer $iam_token" \
-d '{
"access_control_mode": "security_group"
}'
使用 Terraform 更新存取控制模式
將 ibm_is_share 資源中的 access_control_mode 屬性更新為 security_group,然後執行 terraform apply。
resource "ibm_is_share" "example" {
name = "my-file-share"
zone = "us-south-2"
profile = "dp2"
size = 1000
iops = 500
access_control_mode = "security_group"
}
步驟 5:建立具有安全群組存取權限的新掛載目標
更新存取控制模式後,請建立具有安全群組存取權限的新掛載目標。 每個掛載目標都必須透過一個與安全群組相關聯的 虛擬網路介面 來建立。 TCP 在建立掛載目標之前,請確認您的安全群組允許所有需要存取該檔案共用資源的運算主機,透過 NFS 協定在 埠(2049)進行傳入連線。
在主控台中建立掛載目標
- 在 IBM Cloud 主控台中,按一下「導航」
圖示 > Infrastructure
> 儲存 > 檔案儲存共用。
- 從清單中選取檔案共用。
- 在檔案共用詳細資訊頁面中,按一下掛載目標區段中的建立。
- 提供掛載目標的名稱。
- 選擇要建立掛載目標的 VPC。
- 設定虛擬網路介面:
- 請為虛擬網路介面指定一個名稱。
- 選擇建立掛載目標的子網路。
- 您可選擇指定一個預留的 IP 位址,或讓系統自動指派一個。
- 選擇控制檔案共用存取權的安全群組。
- 如果要在傳輸期間保護資料,可選擇啟用傳輸中加密。
- 按一下建立。
重複這些步驟,為要存取檔案共用的每個 VPC 建立掛載目標。
如需詳細資訊,請參閱 在主控台中建立掛載目標。
從 CLI 建立掛載目標
使用虛擬網路介面參數執行 share-mount-target-create 指令。 請將 SHARE_ID 替換為檔案共用資源的 ID 或名稱,將 MOUNT_TARGET_NAME 替換為新掛載目標的名稱,將 VPC_ID 替換為 VPC 的 ID 或名稱,將 VNI_NAME 替換為虛擬網路介面的名稱,將 SUBNET_ID 替換為子網的 ID 或名稱,並將 SECURITY_GROUP_ID 替換為安全群組的 ID 或名稱。
ibmcloud is share-mount-target-create SHARE_ID \
--name MOUNT_TARGET_NAME \
--vpc VPC_ID \
--vni-name VNI_NAME \
--vni-subnet SUBNET_ID \
--vni-sgs SECURITY_GROUP_ID
請參閱下列範例:
ibmcloud is share-mount-target-create my-file-share \
--name my-new-mount-target \
--vpc my-vpc \
--vni-name my-vni \
--vni-subnet my-subnet \
--vni-sgs my-security-group
如需詳細資訊,請參閱 從 CLI 建立掛載目標。
使用 API 建立掛載目標
使用虛擬網路介面組態提出 POST /shares/{share_id}/mount_targets 請求。
curl -X POST \
"$vpc_api_endpoint/v1/shares/$share_id/mount_targets?version=2026-04-28&generation=2" \
-H "Authorization: Bearer $iam_token" \
-d '{
"name": "my-new-mount-target",
"virtual_network_interface": {
"name": "my-vni",
"subnet": {
"id": "'"$subnet_id"'"
},
"security_groups": [
{
"id": "'"$security_group_id"'"
}
]
}
}'
如需詳細資訊,請參閱 使用 API 建立掛載目標。
使用 Terraform 建立掛載目標
使用 ibm_is_share_mount_target 資源建立具有虛擬網路介面的掛載目標。
resource "ibm_is_share_mount_target" "example" {
share = ibm_is_share.example.id
name = "my-new-mount-target"
virtual_network_interface {
name = "my-vni"
subnet = ibm_is_subnet.example.id
security_groups = [ibm_is_security_group.example.id]
}
}
如需詳細資訊,請參閱 使用 Terraform 建立掛載目標。
步驟 6:重新建立複製檔案共用(如適用)
如果您在第 3 步中刪除了複本檔案共用,現在可以使用更新後的保安群組存取控制模式重新建立它。 新複製檔案共用繼承來自原始檔案共用的安全群組存取控制模式。
如果沒有複製檔案共用,請跳過此步驟,繼續執行 步驟 7:在運算主機上掛載檔案共用。
在主控台中建立複製檔案共用
- 在 IBM Cloud 主控台中,按一下「導航」
圖示 > Infrastructure
> 儲存 > 檔案儲存共用。
- 請從清單中選取來源檔案共用。
- 在檔案共用詳細資訊頁面中,按一下動作圖示
,然後選擇建立複製。
- 在檔案共用複製建立頁面上,提供下列資訊:
- 名稱:提供複製共用的唯一名稱。
- 複製位置:選取您要建立複本的區域和區段。
- 資源群組:選擇複本的資源群組。
- 設定檔:
dp2設定檔已預先選取。 指定最大 IOPS 值。 - 掛載目標:可選擇為具有安全群組存取權限的複製共用建立掛載目標。
- 同步頻率:指定從原始碼同步化變更至副本的頻率 (每小時、每天、每週、每月或 cron-spec)。
- 加密:設定加密設定。 對於跨區域複製,如果來源使用客戶管理的加密,則必須選擇客戶根金鑰。
- 按一下「建立檔案共用」。
如需詳細資訊,請參閱 在主控台中為檔案共用新增複製。
從 CLI 建立複製檔案共用
請使用 share-replica-create 指令,為您的來源檔案共用建立一個複本。 請將 SOURCE_SHARE_ID 替換為來源檔案共用資料夾的 ID 或名稱,將 REPLICA_NAME 替換為新複本共用資料夾的名稱,將 REPLICA_ZONE 替換為您要建立複本的區域,並將
CRON_SPEC 替換為以 cron 格式表示的複製頻率(例如, 30 17 * * * 表示每天下午 5:30)。
ibmcloud is share-replica-create \
--source-share SOURCE_SHARE_ID \
--name REPLICA_NAME \
--zone REPLICA_ZONE \
--profile dp2 \
--replication-cron-spec "CRON_SPEC"
請參閱下列範例:
ibmcloud is share-replica-create \
--source-share my-file-share \
--name my-replica-file-share \
--zone us-south-1 \
--profile dp2 \
--replication-cron-spec "30 17 * * *"
如需詳細資訊,請參閱 從 CLI 為現有檔案共用建立複製。
使用 API 建立複製檔案共用
提出 POST /shares 請求以建立複製檔案共用:
curl -X POST \
"$vpc_api_endpoint/v1/shares?version=2026-04-28&generation=2" \
-H "Authorization: Bearer $iam_token" \
-d '{
"name": "my-replica-file-share",
"profile": {
"name": "dp2"
},
"zone": {
"name": "us-south-1"
},
"replication_cron_spec": "30 17 * * *",
"source_share": {
"id": "'"$source_share_id"'"
},
"size": 1000,
"iops": 500
}'
如需詳細資訊,請參閱 使用 API 建立複製檔案共用。
使用 Terraform 建立複製檔案共用
在 Terraform 配置中為副本新增 ibm_is_share 資源:
resource "ibm_is_share" "replica" {
name = "my-replica-file-share"
zone = "us-south-1"
profile = "dp2"
size = 1000
iops = 500
source_share = ibm_is_share.source.id
replication_cron_spec = "30 17 * * *"
}
接著,執行 terraform apply 來建立複本。
如需詳細資訊,請參閱 使用 Terraform 建立複製檔案共用。
步驟 7:在運算主機上掛載檔案共用
在建立具有安全群組存取權限的新掛載目標後,請使用新的掛載路徑,將檔案共用掛載至您的運算主機上。 您可以從主控台、CLI 或 API 中的掛載目標詳細資訊擷取掛載路徑。
如需在不同作業系統上掛載檔案共用的詳細說明,請參閱下列主題:
如需所有支援作業系統的完整掛載指示清單,請參閱 掛載檔案共用。
下一步
遷移完成後,請確認以下條件:
- 檔案共用可從所有授權的運算主機存取。
- 已將安全性群組規則設定為允許存取。
- 使用檔案共用的應用程式運作正常。
- 此掛載在重新啟動後仍會保留(請檢查
/etc/fstab中的條目)。
如需管理檔案共用的詳細資訊,請參閱 管理檔案共用和掛載目標。