Softlayer_Hardware: как настроить несколько групп хранения raid10 на одном наборе дисков

Я работаю над автоматизацией обеспечения Softlayer экземплярами из неизолированного металла. У меня есть подходящий json для заказа аппаратного обеспечения, но я не могу понять, как указать расположение дисков.

Ниже в ответе Нельсона показана ключевая часть процесса: использование инструментов разработчика Chrome для получения идентификаторов цен и конфигурации рейдов.

На портале я заказал тестовую систему, указав 4 накопителя Western Digital WD RE на 4000 ГБ и установив группы хранения со стандартным linux 1 ТБ плюс дополнительный раздел 7 ТБ.

Конфигурация группы хранения

И используя инструменты разработчика Chrome для записи полученного json, я вижу конфигурацию группы хранения

data[Order][primaryDiskPartitionId]:1
data[Order][storageGroups][storage-group-1][arrayTypeId]:5
data[Order][storageGroups][storage-group-1][arraySize]:1000
data[Order][storageGroups][storage-group-1][lvmFlag]:0
data[Order][storageGroups][storage-group-1][partitionTemplateId]:1
data[Order][storageGroups][storage-group-1][hardDrives][]:0
data[Order][storageGroups][storage-group-1][hardDrives][]:1
data[Order][storageGroups][storage-group-1][hardDrives][]:2
data[Order][storageGroups][storage-group-1][hardDrives][]:3
data[Order][storageGroups][storage-group-2][arrayTypeId]:5
data[Order][storageGroups][storage-group-2][arraySize]:7000
data[Order][storageGroups][storage-group-2][lvmFlag]:0
data[Order][storageGroups][storage-group-2][hardDrives][]:0
data[Order][storageGroups][storage-group-2][hardDrives][]:1
data[Order][storageGroups][storage-group-2][hardDrives][]:2
data[Order][storageGroups][storage-group-2][hardDrives][]:3

Когда система материализовалась, я увидел диски следующим образом:

/dev/sda6        1006602  1850    953597   1% / <------ sda - 1Tb linux parttion set
/dev/sda1            237    68       158  30% /boot 
/dev/sdb1        6553650    54   6487522   1% /disk1 <- sdb - remaining 7Tb 

И структура диска

-> fdisk -l /dev/sda
Disk /dev/sda: 1000 GiB, 1073741824000 bytes, 2097152000 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 262144 bytes / 262144 bytes
Disklabel type: dos
Disk identifier: 0xab520822

Device     Boot   Start        End    Sectors   Size Id Type
/dev/sda1  *       2048     499711     497664   243M 83 Linux
/dev/sda2        501758 2097149951 2096648194 999.8G  5 Extended
/dev/sda5        501760    2500607    1998848   976M 82 Linux swap / Solaris
/dev/sda6       2502656 2097149951 2094647296 998.8G 83 Linux

Partition 2 does not start on physical sector boundary.

-> fdisk -l /dev/sdb
Disk /dev/sdb: 6.3 TiB, 6926708506624 bytes, 13528727552 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 262144 bytes / 262144 bytes
Disklabel type: gpt
Disk identifier: ADFDCBE8-94E3-4C23-85C6-D43F332AA1BB

Device     Start         End     Sectors  Size Type
/dev/sdb1   2048 13528725503 13528723456  6.3T Linux filesystem

SL создал устройство raid 10, разделив его на 2 отдельных диска, 1 как базовый linux на 1 ТБ и 1 как fs на 7 ТБ, смонтированный в /disk1

Теперь нам нужно выяснить синтаксис для создания того же самого через python. API SoftLayer: Provision Server с базовой конфигурацией RAID показывает, как создать базовый раздел raid10 linux. А настройка разделов диска Softlayer во время заказа расширяет это, показывая, как создавать различные конфигурации. Однако ни один из них не показывает, как создать конфигурацию выше. А вторая утверждает, что это было невозможно в то время.

Это порядок json без блока storageGroup. Обратите внимание, что идентификаторы цен доступны в инструменте разработчика Chrome, который обсуждается в ответе.

worker_json = {
    "quantity" : 1,
    "packageId": 551,
    "location" : datacenterId,
    "hardware" : [
        {
            "hostname": module.params.get('hostname'),
            "domain": module.params.get('domain'),
            "primaryNetworkComponent": {
                "networkVlanId": public,
            },
            "primaryBackendNetworkComponent": {
                "networkVlanId": private,
            }
        }
    ],
    "prices": [
        { "id": 171621 },
        { "id": 177669 },
        { "id": 165723 },
        { "id":  29691 ,  "item" : {"description": "RAID 10 - SATA/SAS - MegaRAID SAS 9361-8i" }},
        { "id":  49841 ,  "item" : {"description": "Hard Drive 4000GB Western Digital WD RE" }},
        { "id":  49841 ,  "item" : {"description": "Hard Drive 4000GB Western Digital WD RE" }},
        { "id":  49841 ,  "item" : {"description": "Hard Drive 4000GB Western Digital WD RE" }},
        { "id":  49841 ,  "item" : {"description": "Hard Drive 4000GB Western Digital WD RE" }},
        { "id":  33483 },
        { "id":  35686 },
        { "id":  50359 }, 
        { "id":  34807 },
        { "id":  27023 },
        { "id":  35310 },
        { "id":  50223 },
        { "id":  25014 },
        { "id":  34996 },
        { "id":  32500 }
    ],
    "storageGroups": [
        { What to put here? }
    ]
}

Вот окончательный вариант StorageGoup JSON, который был создан из вышеприведенных инструментов Chrome Dev. Это произвело желаемую конфигурацию рейда:

    "primaryDiskPartitionId": 1,
    "storageGroups": [
        {
            "arraySize": 1000,
            "arrayTypeId": 5,
            "hardDrives": [ 0, 1, 2, 3 ],
            "partitionTemplateId" : 1
        },
        {
            "arraySize": 7000,
            "arrayTypeId": 5,
            "hardDrives": [ 0, 1, 2, 3 ]
        }
    ]

1 ответ

Решение

Это конфигурация, я думаю, вы делаете (было бы проще, если бы вы опубликовали скриншот)

введите описание изображения здесь

для этого конфигурация групп хранения:

"storageGroups": [
    {
    "arraySize": 8000,
    "arrayTypeId": 5,
    "hardDrives": [ 0, 1, 2, 3 ],
    "partitionTemplateId": 4
    }
]

В любом случае, если это не конфигурация, вы можете увидеть конфигурацию, которую использует портал управления с инструментами разработчика Chrome.

вам просто нужно перейти к контролю, выполнить всю конфигурацию для вашего заказа и, прежде чем нажать "СОХРАНИТЬ НА ЗАКАЗ", откройте инструменты разработчика, выберите вкладку "Сеть" и установите флажок "Сохранить журнал":

введите описание изображения здесь

затем нажмите кнопку "Сохранить в заказ" и найдите следующий запрос POST

введите описание изображения здесь

Открой это

введите описание изображения здесь

и вы увидите конфигурацию группы хранения, тогда вам просто нужно перевести ту же конфигурацию в вашем запросе и все. Если у вас есть проблемы с этим, пришлите мне конфигурацию, которую вы видите в инструментах разработчика

ОБНОВИТЬ

в соответствии с вашим изображением правильная конфигурация выглядит так:

"primaryDiskPartitionId": 1,
"storageGroups": [{
            "arraySize": 1000,
            "arrayTypeId": 5,
            "hardDrives": [0, 1, 2, 3],
            "lvmFlag": 1,
            "partitionTemplateId": 1
        },
        {
            "arraySize": 7000,
            "arrayTypeId": 5,
            "hardDrives": [0, 1, 2, 3]
        }
    ]
Другие вопросы по тегам