144 lines
3.4 KiB
Markdown
144 lines
3.4 KiB
Markdown
# Oracle 云韩国区域存储卷重新分配操作手册
|
||
|
||
## 概述
|
||
|
||
本手册详细说明如何在 Oracle 云韩国区域执行存储卷重新分配操作,将 ch2 实例的存储资源释放并重新分配给 A1 实例。
|
||
|
||
## 准备工作
|
||
|
||
### 1. 环境检查
|
||
- 确保已安装 Terraform (v1.0+)
|
||
- 确保已安装 OCI CLI
|
||
- 确保 ~/.oci/config 文件配置正确
|
||
|
||
### 2. OCI 配置文件示例
|
||
```
|
||
[korea]
|
||
tenancy = ocid1.tenancy.oc1..your_tenancy_id
|
||
user = ocid1.user.oc1..your_user_id
|
||
fingerprint = your_key_fingerprint
|
||
key_file = ~/.oci/oci_api_key_kr.pem
|
||
region = ap-chuncheon-1
|
||
```
|
||
|
||
### 3. 创建变量文件
|
||
```bash
|
||
# 编辑 terraform.tfvars
|
||
compartment_id = "ocid1.compartment.oc1..your_compartment_id"
|
||
availability_domain = "your_ad_name"
|
||
image_id = "ocid1.image.oc1..your_image_id"
|
||
ssh_public_key = "your_ssh_public_key"
|
||
```
|
||
|
||
## 操作步骤
|
||
|
||
### 1. 初始化环境
|
||
```bash
|
||
cd /home/ben/terraform/oracle/kr
|
||
terraform init
|
||
```
|
||
|
||
### 2. 预览变更
|
||
```bash
|
||
terraform plan \
|
||
-var ch2_enabled=false \
|
||
-var a1_storage_size_gb=200 \
|
||
-var ch3_enabled=true
|
||
```
|
||
|
||
### 3. 执行变更
|
||
```bash
|
||
terraform apply \
|
||
-var ch2_enabled=false \
|
||
-var a1_storage_size_gb=200 \
|
||
-var ch3_enabled=true
|
||
```
|
||
|
||
## 预期变更
|
||
|
||
### 资源销毁 (1)
|
||
- `oci_core_instance.ch2_instance` - ch2 实例将被完全终止
|
||
|
||
### 资源创建 (2)
|
||
- `oci_core_volume.a1_additional_storage` - 为 A1 实例创建 200GB 数据卷
|
||
- `oci_core_volume_attachment.a1_volume_attachment` - 将新卷附加到 A1 实例
|
||
|
||
### 保持不变 (2)
|
||
- `oci_core_instance.ch3_instance` - ch3 实例保持运行
|
||
- 所有其他网络资源 (VCN, 子网, 网关等)
|
||
|
||
## 存储卷重新分配逻辑
|
||
|
||
1. **资源释放阶段**:
|
||
- ch2 实例终止,释放其引导卷和任何附加的数据卷
|
||
- 相关的临时存储空间被标记为可用
|
||
|
||
2. **资源分配阶段**:
|
||
- 创建新的 200GB 块存储卷
|
||
- 将新卷附加到 A1 实例
|
||
- 通过 `depends_on` 确保按正确顺序执行
|
||
|
||
## 验证步骤
|
||
|
||
### 1. Terraform 状态验证
|
||
```bash
|
||
terraform show
|
||
```
|
||
|
||
### 2. 云控制台验证
|
||
- 登录 Oracle Cloud Console
|
||
- 导航到韩国区域 (ap-chuncheon-1)
|
||
- 验证实例状态和存储卷分配
|
||
|
||
### 3. SSH 连接到 A1 实例验证存储
|
||
```bash
|
||
# 连接到 A1 实例
|
||
ssh opc@<a1_instance_public_ip>
|
||
|
||
# 检查新附加的存储卷
|
||
lsblk
|
||
df -h
|
||
```
|
||
|
||
## 回滚计划
|
||
|
||
如果需要回滚操作:
|
||
```bash
|
||
# 重新启用 ch2 实例
|
||
terraform apply -var ch2_enabled=true
|
||
```
|
||
|
||
## 成本影响
|
||
|
||
- **减少**: ch2 实例的计算和存储费用
|
||
- **增加**: A1 实例的额外存储费用 (200GB 块存储)
|
||
- **净效果**: 总体存储成本可能略有增加,但计算资源得到优化
|
||
|
||
## 注意事项
|
||
|
||
- 在执行前确保 ch2 实例上的数据已备份
|
||
- 操作期间 ch2 实例将不可用
|
||
- A1 实例在附加新存储卷后可能需要重新配置
|
||
- 确保有足够的配额来创建新的 200GB 卷
|
||
|
||
## 故障排除
|
||
|
||
### 如果遇到权限错误
|
||
- 检查 OCI 配置文件中的用户权限
|
||
- 确保用户具有管理实例和存储卷的权限
|
||
|
||
### 如果遇到配额错误
|
||
- 检查目标区域的配额
|
||
- 可能需要申请增加存储卷配额
|
||
|
||
### 如果依赖关系问题
|
||
- 检查 `depends_on` 设置
|
||
- 确保按正确顺序创建和销毁资源
|
||
|
||
## 总结
|
||
|
||
通过此操作,你将成功:
|
||
1. 终止 ch2 实例并释放其存储资源
|
||
2. 将存储资源重新分配给 A1 实例
|
||
3. 保持 ch3 实例不变
|
||
4. 实现存储资源的优化配置 |