SoftLayer API:如何使用 RAID 选项指定 OS 重新加载?
SoftLayer API: How to specify OS Reload with RAID options?
使用 Python SoftLayer 库,我一直在尝试通过 SoftLayer API 提交 OS 重新加载,以获得配置服务器的一致磁盘设置。这些服务器具有 RAID10 或 RAID1 设置,使用阵列中的所有可用磁盘。初始配置后,服务器已正确设置。
当我使用 Python 库提交 OS 重新加载时,使用如下方法:
def reload_server(server_id):
conf = {
"upgradeHardDriveFirmware": "1",
"upgradeBios": "1",
"hardDrives": [
{
"complexType": "SoftLayer_Hardware_Component_HardDrive",
"partitions": [
{ "name": "/boot", "minimumSize": "1"},
{ "name": "/swap0", "minimumSize": "20"},
{ "name": "/", "minimumSize": "15"},
{ "name": "/disk", "minimumSize": "1", "grow": "1"}
]
}
]
}
return client['Hardware_Server'].reloadOperatingSystem('FORCE', conf, id=server_id)
重新加载已启动,但分区设置仅使用第一个磁盘而不是 RAID 块设备。因此,他们没有 RAID 设置。换句话说,对于打算拥有 RAID10 的 6 磁盘服务器,它应该在 OS (/dev/sda
) 中有一个可见的块设备,/dev/sda
被设置为与这些分区和其他磁盘 - /dev/sdb
、/dev/sdc
、/dev/sdc
等 - 是块设备:
root@server ~ $blkid
/dev/sda1: UUID="6c80b9ef-0228-4f6d-8ff9-7ed851f383f9" TYPE="ext2"
/dev/sda5: UUID="58e05f19-aa62-42cd-858b-568f415a0201" TYPE="swap"
/dev/sda6: UUID="8d7c0396-a3d3-4e72-847e-f8b3bbbda120" TYPE="ext4"
/dev/sda7: UUID="TmNPZO-V1Dq-xSRU-hHM2-02A8-9mJi-mRPLjo" TYPE="ext4"
/dev/sdb1: LABEL="/disk1" UUID="a19883ec-1fd0-472d-a2ef-188f943a0ab3" TYPE="ext4"
/dev/sdc1: LABEL="/disk2" UUID="c6bd0fc6-3d5c-4c29-9b33-a61b15793d5d" TYPE="ext4"
/dev/sdd1: LABEL="/disk3" UUID="5bda0575-1bfa-473b-83bc-519f705f2213" TYPE="ext4"
/dev/sde1: LABEL="/disk4" UUID="43fe460d-8ad4-41f9-b840-11f3d36d8788" TYPE="ext4"
/dev/sdf1: LABEL="/disk5" UUID="9b34ca0f-bc54-41fe-934a-daabdaa8521b" TYPE="ext4"
如何提交 OS 重新加载以确保正确设置 RAID 并且不会在重新加载时丢失?我如何始终如一地做到这一点,因为我们已经使用类似的有效负载通过 cURL 提交了 OS 重新加载,并且重新加载导致了正确的 RAID 设置。
编辑: 澄清一下,我并不是要更改 RAID 配置。我想保留现有的 RAID 配置。我只是想更改分区。即,调整交换大小,减少根分区,并为我们的自动化工具指定增长分区。当我提交 OS 重新加载并更改分区结构时,RAID 阵列消失了。
这是重新加载的预期行为,分区仅应用于第一个磁盘,无法通过 API 为重新加载指定 RAID 配置。
您有两种选择来维护您的 RAID 配置:
1.- 不要为重新加载指定任何分区配置,因此您服务器的 OS 将被重新加载,但它会保持相同的 RAID 配置。
2.- 您可以指定一个将在重新加载后执行的脚本(customProvisioningScripUri 是您需要添加的 属性 的名称 查看更多 here),在该脚本中您可以自动创建你想要的RAID。
此致
使用 Python SoftLayer 库,我一直在尝试通过 SoftLayer API 提交 OS 重新加载,以获得配置服务器的一致磁盘设置。这些服务器具有 RAID10 或 RAID1 设置,使用阵列中的所有可用磁盘。初始配置后,服务器已正确设置。
当我使用 Python 库提交 OS 重新加载时,使用如下方法:
def reload_server(server_id):
conf = {
"upgradeHardDriveFirmware": "1",
"upgradeBios": "1",
"hardDrives": [
{
"complexType": "SoftLayer_Hardware_Component_HardDrive",
"partitions": [
{ "name": "/boot", "minimumSize": "1"},
{ "name": "/swap0", "minimumSize": "20"},
{ "name": "/", "minimumSize": "15"},
{ "name": "/disk", "minimumSize": "1", "grow": "1"}
]
}
]
}
return client['Hardware_Server'].reloadOperatingSystem('FORCE', conf, id=server_id)
重新加载已启动,但分区设置仅使用第一个磁盘而不是 RAID 块设备。因此,他们没有 RAID 设置。换句话说,对于打算拥有 RAID10 的 6 磁盘服务器,它应该在 OS (/dev/sda
) 中有一个可见的块设备,/dev/sda
被设置为与这些分区和其他磁盘 - /dev/sdb
、/dev/sdc
、/dev/sdc
等 - 是块设备:
root@server ~ $blkid
/dev/sda1: UUID="6c80b9ef-0228-4f6d-8ff9-7ed851f383f9" TYPE="ext2"
/dev/sda5: UUID="58e05f19-aa62-42cd-858b-568f415a0201" TYPE="swap"
/dev/sda6: UUID="8d7c0396-a3d3-4e72-847e-f8b3bbbda120" TYPE="ext4"
/dev/sda7: UUID="TmNPZO-V1Dq-xSRU-hHM2-02A8-9mJi-mRPLjo" TYPE="ext4"
/dev/sdb1: LABEL="/disk1" UUID="a19883ec-1fd0-472d-a2ef-188f943a0ab3" TYPE="ext4"
/dev/sdc1: LABEL="/disk2" UUID="c6bd0fc6-3d5c-4c29-9b33-a61b15793d5d" TYPE="ext4"
/dev/sdd1: LABEL="/disk3" UUID="5bda0575-1bfa-473b-83bc-519f705f2213" TYPE="ext4"
/dev/sde1: LABEL="/disk4" UUID="43fe460d-8ad4-41f9-b840-11f3d36d8788" TYPE="ext4"
/dev/sdf1: LABEL="/disk5" UUID="9b34ca0f-bc54-41fe-934a-daabdaa8521b" TYPE="ext4"
如何提交 OS 重新加载以确保正确设置 RAID 并且不会在重新加载时丢失?我如何始终如一地做到这一点,因为我们已经使用类似的有效负载通过 cURL 提交了 OS 重新加载,并且重新加载导致了正确的 RAID 设置。
编辑: 澄清一下,我并不是要更改 RAID 配置。我想保留现有的 RAID 配置。我只是想更改分区。即,调整交换大小,减少根分区,并为我们的自动化工具指定增长分区。当我提交 OS 重新加载并更改分区结构时,RAID 阵列消失了。
这是重新加载的预期行为,分区仅应用于第一个磁盘,无法通过 API 为重新加载指定 RAID 配置。
您有两种选择来维护您的 RAID 配置:
1.- 不要为重新加载指定任何分区配置,因此您服务器的 OS 将被重新加载,但它会保持相同的 RAID 配置。
2.- 您可以指定一个将在重新加载后执行的脚本(customProvisioningScripUri 是您需要添加的 属性 的名称 查看更多 here),在该脚本中您可以自动创建你想要的RAID。
此致