使用Python SoftLayer库,我一直在尝试通过SoftLayer API提交操作系统重新加载,以便为配置的服务器提供一致的磁盘设置。这些服务器使用阵列中的所有可用磁盘设置RAID10或RAID1。初始配置时,服务器设置正确。
当我使用Python库使用以下方法提交操作系统重新加载时:
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磁盘服务器,它应该在操作系统中显示单个块设备(/dev/sda
),/dev/sda
将设置为与这些分区和其他磁盘 - { {1}},/dev/sdb
,/dev/sdc
等 - 是块设备:
/dev/sdc
如何提交操作系统重新加载以确保RAID设置正确并且在重新加载时不会丢失?我如何一致地执行此操作,因为我们使用类似的有效负载通过cURL提交了操作系统重新加载,并且重新加载导致正确的RAID设置。
编辑:为了澄清,我不是要尝试更改RAID配置。我想保留现有的RAID配置。我只是试图更改分区。即,调整交换大小,减少根分区,并为我们的自动化工具指定增长分区。当我提交操作系统重新加载并更改分区结构时,RAID阵列就消失了。
答案 0 :(得分:0)
这是重新加载的预期行为,分区仅应用于第一个磁盘,并且无法通过API指定RAID配置以进行重新加载。
您有两种选择来保留RAID配置:
1.-不要为重新加载指定任何分区配置,因此服务器的操作系统将重新加载,但它将保留相同的RAID配置。
2.-您可以对重新加载后执行的脚本进行分类(customProvisioningScripUri是您需要添加的属性的名称,请参阅更多here),在该脚本中您可以自动创建RAID想。
此致