Exemplo 3: anexar discos a um BMS
Cenários
Se os discos existentes de um BMS não atenderem aos requisitos de serviço, por exemplo, devido a espaço em disco insuficiente ou baixo desempenho do disco, você pode anexar mais discos disponíveis ao BMS ou chamar a API de criação de disco EVS para criar discos e anexá-los ao o BMS.
Pré-requisitos
Os BMSs que usam determinados flavors não podem ter discos EVS anexados porque os servidores não têm iNICs de SDI ou por outros motivos. Portanto, execute as seguintes operações para verificar se os discos EVS podem ser anexados a um BMS:
Chame a API de Consulta de detalhes sobre flavors e informações estendidas sobre flavors e verifique a resposta. Se o valor de baremetal:__support_evs para o flavor do BMS for true, os discos EVS podem ser anexados ao BMS. Se o valor for false ou o flavor do BMS não contiver este parâmetro, os discos EVS não poderão ser anexados ao BMS.
APIs envolvidas
As seguintes APIs estão envolvidas:
Procedimento
- Crie um disco EVS.
- API
Formato de URI: POST /v2/{project_id}/volumes
Para obter detalhes, consulte Criação de discos EVS.
- Exemplo de solicitação
POST https://{EVS Endpoint}/v2/05041fffa40025702f6dc009cc6f8f33/volumes
Obtenha {EVS Endpoint} de Regiões e pontos de extremidade.
Corpo:
{ "volume": { "name": "openapi_vol01", "availability_zone": "cn-north-4a", "description": "create for api test", "volume_type": "SSD", "metadata": { "hw:passthrough": "true" }, "size": 40 } }
Os BMSs suportam apenas discos EVS SCSI. Portanto, o valor de hw:passthrough deve ser true.
- Exemplo de resposta
{ "volume": { "attachments": [], "links": [ { "href": "https://evs.cn-north-4.myhuaweicloud.com/v2/05041fffa40025702f6dc009cc6f8f33/volumes/8ae4ff5b-7e6e-492f-b83a-8a51fdfa3111", "rel": "self" }, { "href": "https://evs.cn-north-4.myhuaweicloud.com/05041fffa40025702f6dc009cc6f8f33/volumes/8ae4ff5b-7e6e-492f-b83a-8a51fdfa3111", "rel": "bookmark" } ], "availability_zone": "cn-north-4a", "encrypted": false, "updated_at": "2020-11-09T08:19:22.077967", "replication_status": "disabled", "storage_cluster_id": null, "snapshot_id": null, "id": "8ae4ff5b-7e6e-492f-b83a-8a51fdfa3111", "size": 40, "user_id": "0504186e6a8010e01f3ec009a7279baa", "metadata": { "hw:passthrough": "true" }, "status": "creating", "description": "create for api test", "multiattach": false, "source_volid": null, "consistencygroup_id": null, "name": "openapi_vol01", "bootable": "false", "created_at": "2020-11-09T08:19:22.061273", "volume_type": "SSD", "shareable": false } }
Registre o valor de id em volume.
- API
- Conecte o disco do EVS ao BMS.
- API
Formato de URI: POST /v1/{project_id}/baremetalservers/{server_id}/attachvolume
Para mais detalhes, consulte Anexar um disco EVS a um BMS.
- Exemplo de solicitação
POST https://{BMS Endpoint}/v1/05041fffa40025702f6dc009cc6f8f33/baremetalservers/9ab74d89-61e7-4259-8546-465fdebe4944/attachvolume
Obtenha {BMS Endpoint} de Regiões e pontos de extremidade.
Corpo:
{ "volumeAttachment": { "volumeId": "8ae4ff5b-7e6e-492f-b83a-8a51fdfa3111", "device": "/dev/sdb" } }
- Exemplo de resposta
{ "volumeAttachment": { "id": "b53f23bd-ee8f-49ec-9420-d1acfeaf91d6", "volumeId": "8ae4ff5b-7e6e-492f-b83a-8a51fdfa3111", "serverId": "9ab74d89-61e7-4259-8546-465fdebe4944", "device": "/dev/sdb" } }
- API
- Verifique se o disco EVS foi anexado com sucesso ao BMS.
- API
Formato de URI: GET /v1/{project_id}/baremetalservers/{server_id}/os-volume_attachments
Para mais detalhes, consulte Consulta de discos EVS conectados a um BMS.
- Exemplo de solicitação
GET https://{BMS Endpoint}/v1/05041fffa40025702f6dc009cc6f8f33/baremetalservers/9ab74d89-61e7-4259-8546-465fdebe4944/os-volume_attachments
Obtenha {BMS Endpoint} de Regiões e pontos de extremidade.
- Exemplo de resposta
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
{ "volumeAttachments": [ { "device": "/dev/sdd", "id": "a26887c6-c47b-4654-abb5-dfadf7d3f803", "serverId": "9ab74d89-61e7-4259-8546-465fdebe4944", "volumeId": "a26887c6-c47b-4654-abb5-dfadf7d3f803" }, { "device": "/dev/sdb", "id": "b53f23bd-ee8f-49ec-9420-d1acfeaf91d6", "serverId": "9ab74d89-61e7-4259-8546-465fdebe4944", "volumeId": "8ae4ff5b-7e6e-492f-b83a-8a51fdfa3111" } ] }
- API