67 lines
2.3 KiB
Markdown
67 lines
2.3 KiB
Markdown
# Oracle 云存储卷重新分配演示
|
|
|
|
## 预期的 Terraform 计划输出
|
|
|
|
当我们执行 `terraform plan -var ch2_enabled=false -var a1_storage_size_gb=200` 时,预期的输出将是:
|
|
|
|
```
|
|
Terraform will perform the following actions:
|
|
|
|
# oci_core_instance.ch2_instance[0] will be destroyed
|
|
- resource "oci_core_instance" "ch2_instance" {
|
|
- availability_domain = "..." -> null
|
|
- compartment_id = "..." -> null
|
|
- display_name = "ch2-instance" -> null
|
|
- id = "..." -> null
|
|
- shape = "VM.Standard2.1" -> null
|
|
# ... 其他实例属性
|
|
}
|
|
|
|
# oci_core_volume.a1_additional_storage will be created
|
|
+ resource "oci_core_volume" "a1_additional_storage" {
|
|
+ availability_domain = (known after apply)
|
|
+ compartment_id = "..."
|
|
+ display_name = "a1-additional-storage"
|
|
+ id = (known after apply)
|
|
+ size_in_gbs = 200
|
|
}
|
|
|
|
# oci_core_volume_attachment.a1_volume_attachment will be created
|
|
+ resource "oci_core_volume_attachment" "a1_volume_attachment" {
|
|
+ attachment_type = "paravirtualized"
|
|
+ id = (known after apply)
|
|
+ instance_id = (known after apply)
|
|
+ volume_id = (known after apply)
|
|
}
|
|
|
|
Plan: 2 to add, 0 to change, 1 to destroy.
|
|
```
|
|
|
|
## 存储卷重新分配流程
|
|
|
|
1. **终止 ch2 实例** - 释放其所有关联资源(包括引导卷和数据卷)
|
|
2. **创建新的 200GB 数据卷** - 为 A1 实例提供额外存储
|
|
3. **附加新卷到 A1 实例** - 将新存储空间挂载到目标实例
|
|
|
|
## 实际执行步骤
|
|
|
|
在实际环境中,你需要:
|
|
|
|
1. 确保 ~/.oci/config 文件中有正确的 [korea] 配置
|
|
2. 运行 `terraform init` 下载 OCI provider
|
|
3. 运行 `terraform plan -var ch2_enabled=false -var a1_storage_size_gb=200` 查看计划
|
|
4. 确认计划无误后运行 `terraform apply -var ch2_enabled=false -var a1_storage_size_gb=200`
|
|
|
|
## 预期结果
|
|
|
|
- ch2 实例被完全终止,释放其存储资源
|
|
- A1 实例获得新的 200GB 数据卷
|
|
- ch3 实例保持不变
|
|
- 总体资源得到优化配置
|
|
|
|
## 验证步骤
|
|
|
|
完成后,你可以在 Oracle 云控制台中验证:
|
|
- ch2 实例不再存在
|
|
- A1 实例有新的 200GB 数据卷附加
|
|
- 存储卷的成本已从 ch2 转移到 A1 |