Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Central de ajuda/ Elastic Volume Service/ Referência de API/ API/ Gerenciamento de disco/ Consulta de detalhes sobre todos os discos EVS
Atualizado em 2024-09-25 GMT+08:00

Consulta de detalhes sobre todos os discos EVS

Função

Esta API é usada para consultar detalhes sobre todos os discos EVS.

Método de chamada

Para obter detalhes, consulte Chamada de APIs.

URI

GET /v2/{project_id}/cloudvolumes/detail

Tabela 1 Parâmetros de caminho

Parâmetro

Obrigatório

Tipo

Descrição

project_id

Sim

String

O ID do projeto. Para obter detalhes sobre como obter o ID de projeto, consulte Obtenção de um ID de projeto.

Tabela 2 Parâmetros de consulta

Parâmetro

Obrigatório

Tipo

Descrição

marker

Não

String

A consulta de paginação por ID de disco. Os dados na primeira página são consultados por padrão. Quando um ID de disco é especificado no marker, as informações de todos os discos que seguem o disco especificado são consultadas. (As informações do disco especificado não estão incluídas nos resultados da consulta.)

name

Não

String

O nome do disco.

limit

Não

Integer

O número máximo de resultados de consulta que podem ser retornados. O valor padrão é 1000.

Mínimo: 1

Máximo: 1000

Padrão: 1000

sort_key

Não

String

Palavra-chave com base na qual os resultados retornados são classificados. O valor pode ser id, status, size ou created_at, e o valor padrão é created_at.

offset

Não

Integer

O deslocamento da consulta. Este parâmetro é usado junto com *limit quando você consulta discos EVS. Por exemplo, há um total de 30 discos EVS. Se você definir offset para 11 e limit para 10, a consulta começará a partir do décimo segundo disco e um máximo de 10 discos poderão ser consultados por vez.

sort_dir

Não

String

A ordem de classificação do resultado. O valor padrão é desc. desc: a ordem decrescente asc: a ordem crescente

status

Não

String

O status do disco. Para obter detalhes, consulte Status do disco EVS.

metadata

Não

String

Os metadados do disco.

availability_zone

Não

String

A informação da AZ.

multiattach

Não

Boolean

Se o disco é compartilhável. true: o disco é compartilhável. false: o disco não pode ser compartilhado.

service_type

Não

String

O tipo de serviço. Os serviços suportados são EVS, DSS e DESS.

dedicated_storage_id

Não

String

O ID do pool de armazenamento dedicado. Todos os discos no pool de armazenamento dedicado podem ser filtrados por correspondência exata.

dedicated_storage_name

Não

String

O nome do pool de armazenamento dedicado. Todos os discos no pool de armazenamento dedicado podem ser filtrados por correspondência difusa.

volume_type_id

Não

String

O ID do tipo de disco. Para obter o ID, consulte o valor de id na tabela para descrever o parâmetro volume_types em Consulta de tipos de disco EVS.

id

Não

String

O ID do disco.

ids

Não

String

Os IDs do disco. O valor é no formato ids=['id1','id2',...,'idx']. Na resposta, o valor de ids contém apenas IDs de disco válidos. IDs de disco inválidos são ignorados. Os detalhes sobre um máximo de 60 discos podem ser consultados. Se ambos id e ids forem especificados na solicitação, id será ignorado.

enterprise_project_id

Não

String

O ID do projeto empresarial, que é usada para filtragem.

Se all_granted_eps for transferido, os discos em todos os projetos empresariais que estão dentro do escopo de permissão serão consultados.

Para obter detalhes sobre como obter IDs de projeto empresarial e recursos de projeto empresarial, consulte Visão geral.

server_id

Não

String

O ID do servidor.

bootable

Não

Boolean

Se o disco é um disco de inicialização ou um disco do sistema. true indica que o disco é um disco de inicialização ou disco do sistema e false indica que o disco é um disco de dados.

Parâmetros de solicitação

Tabela 3 Parâmetros de cabeçalho de solicitação

Parâmetro

Obrigatório

Tipo

Descrição

X-Auth-Token

Sim

String

O token do usuário. Ele pode ser obtido chamando a API do IAM usada para obter um token de usuário. O valor de X-Subject-Token no cabeçalho da resposta é o token do usuário.

Parâmetros de resposta

Código de status: 200

Tabela 4 Parâmetros do corpo de resposta

Parâmetro

Tipo

Descrição

count

Integer

O número de discos consultados. Este valor não é afetado pela paginação.

volumes_links

Array of Link objects

O marcador de posição da consulta na lista de discos. Se apenas alguns discos forem retornados nesta consulta, o URL do último disco consultado será retornado. Você pode usar esse URL para continuar a consultar os discos restantes na próxima consulta.

volumes

Array of VolumeDetail objects

A lista de discos retornados.

Tabela 5 VolumeDetail

Parâmetro

Tipo

Descrição

id

String

O ID do disco.

links

Array of Link objects

O URI do disco.

name

String

O nome do disco.

status

String

O status do disco. Para obter detalhes, consulte Status do disco EVS.

attachments

Array of Attachment objects

As informações de anexo do disco.

availability_zone

String

A AZ à qual o disco pertence.

os-vol-host-attr:host

String

O campo reservado.

source_volid

String

O ID do disco de origem. Este parâmetro tem um valor se o disco for criado a partir de um disco de origem.

Este campo não é suportado no momento.

snapshot_id

String

O ID do snapshot. Este parâmetro tem um valor se o disco for criado a partir de um snapshot.

description

String

A descrição do disco.

created_at

String

A hora em que o disco foi criado. Formato da hora: UTC AAAA-MM-DDTHH:MM:SS.XXXXXX

os-vol-tenant-attr:tenant_id

String

O ID do locatário ao qual o disco pertence. O ID do locatário é o mesmo que o ID do projeto.

volume_image_metadata

Map<String,Object>

Os metadados da imagem de disco.

NOTA:

Para obter detalhes sobre o campo volume_image_metadata, consulte Consulta de detalhes da imagem (API OpenStack nativo).

volume_type

String

O tipo de disco.

O valor pode ser SATA, SAS, GPSSD, SSD, ESSD, GPSSD2 ou ESSD2.

  • SATA: o tipo de I/O comum (esgotado)

  • SAS: o tipo de I/O alta

  • GPSSD: o tipo de SSD de uso geral

  • SSD: o tipo de I/O ultra-alta

  • ESSD: o tipo de SSD extremo

  • GPSSD2: o tipo de SSD V2 de uso geral

  • ESSD2: o tipo de SSD V2 extremo

size

Integer

O tamanho do disco, em GiB.

consistencygroup_id

String

O campo reservado.

bootable

String

Se o disco é inicializável. true: o disco é inicializável. false: o disco não é inicializável.

metadata

Map<String,Object>

Os metadados do disco. __system__cmkid: o ID da CMK de encriptação em metadata. Este parâmetro é utilizado em conjunto com __system__encrypted para encriptação. O comprimento do ID da CMK é fixado em 36 bytes.

Para obter detalhes sobre como obter o ID de chave, consulte Consulta da lista de chaves.

__system__encrypted

O campo de encriptação nos metadata. O valor pode ser 0 (não criptografado) ou 1 (criptografado).

Se esse parâmetro não for especificado, o atributo de encriptação do disco será o mesmo da fonte de dados. Se o disco não for criado a partir de uma fonte de dados, o disco não será criptografado por padrão.

full_clone

O método de criação quando o disco é criado a partir de um snapshot.

  • 0: clone vinculado

  • 1: clone completo

hw:passthrough

  • Se o valor desse parâmetro for true, o tipo de dispositivo de disco será SCSI, o que permite que os sistemas operacionais do ECS acessem diretamente a mídia de armazenamento subjacente e ofereça suporte a comandos de reserva SCSI.

  • Se esse parâmetro for definido como false, o tipo de dispositivo de disco será VBD, que também é o tipo padrão. O VBD suporta apenas comandos simples de leitura/gravação de SCSI.

  • Se esse parâmetro não for especificado, o tipo de dispositivo de disco será VBD.

orderID

O parâmetro que descreve o modo de cobrança do disco em metadata.

Se esse parâmetro tiver um valor, o disco será cobrado anualmente/mensalmente. Se esse parâmetro não for especificado, o disco será cobrado em uma base de pagamento por uso.

updated_at

String

A hora em que o disco foi atualizado. Formato da hora: UTC AAAA-MM-DDTHH:MM:SS.XXXXXX

encrypted

Boolean

Este campo não é suportado no momento.

replication_status

String

O campo reservado.

os-volume-replication:extended_status

String

O campo reservado.

os-vol-mig-status-attr:migstat

String

O campo reservado.

os-vol-mig-status-attr:name_id

String

O campo reservado.

shareable

String

Se o disco é compartilhável. O valor pode ser true (compartilhável) ou false (não compartilhável). Este campo foi preterido. Use multiattach.

user_id

String

O campo reservado.

service_type

String

O tipo de serviço. Os serviços suportados são EVS, DSS e DESS.

multiattach

Boolean

Se o disco é compartilhável.

dedicated_storage_id

String

O ID do pool de armazenamento dedicado que aloja o disco.

dedicated_storage_name

String

O nome do pool de armazenamento dedicado que aloja o disco.

tags

Map<String,String>

As tags do disco. Este campo tem valores se o disco tiver tags. Ou, é deixado vazio.

wwn

String

O identificador exclusivo usado ao anexar o disco.

enterprise_project_id

String

O ID do projeto empresarial ao qual o disco foi adicionado.

Para obter detalhes sobre como obter IDs de projeto empresarial e recursos de projeto empresarial, consulte Visão geral.

serial_number

String

O número de série do disco. Esse campo é retornado somente para discos SCSI não HyperMetro e é usado para mapeamento de disco na VM.

iops

iops object

As informações de IOPS do disco. Este parâmetro é retornado apenas para um disco SSD V2 de uso geral ou um disco SSD V2 extremo.

throughput

throughput object

As informações de taxa de transferência do disco. Este parâmetro é retornado apenas para um disco SSD V2 de uso geral.

Tabela 7 Attachment

Parâmetro

Tipo

Descrição

attached_at

String

A hora em que o disco foi anexado.

Formato da hora: UTC AAAA-MM-DDTHH:MM:SS.XXXXXX

attachment_id

String

O ID do anexo.

device

String

O nome do dispositivo.

host_name

String

O nome do host físico que hospeda o servidor de nuvem ao qual o disco está anexado.

id

String

O ID do disco anexado.

server_id

String

O ID do servidor ao qual o disco está anexado.

volume_id

String

O ID do disco.

Tabela 8 iops

Parâmetro

Tipo

Descrição

frozened

Boolean

A tag congelada.

Padrão: false

id

String

O ID do IOPS do disco.

total_val

Integer

O IOPS.

Tabela 9 throughput

Parâmetro

Tipo

Descrição

frozened

Boolean

A tag congelada.

Padrão: false

id

String

O ID da taxa de transferência.

total_val

Integer

A taxa de transferência.

Código de status: 400

Tabela 10 Parâmetros do corpo de resposta

Parâmetro

Tipo

Descrição

error

Error object

A mensagem de erro retornada se ocorrer um erro. Para obter detalhes, consulte Parâmetros no campo error.

Tabela 11 Error

Parâmetro

Tipo

Descrição

code

String

O código de erro retornado se ocorrer um erro. Para os códigos de erro e seus significados, consulte Códigos de erro.

message

String

A mensagem de erro retornada se ocorrer um erro.

Exemplo de solicitações

  • Consultar detalhes de discos cujos IDs são e92ba908-82f8-4728-b8cc-82f2f56bd461, 40g42920-4243-420f-8bb2-a0bd7660fbd8 e b1fd8dcc-dd67-4edf-b89e-87c3485112ec (Os discos são classificados por tamanho.)

    GET https://{endpoint}/v2/{project_id}/cloudvolumes/detail?ids=['e92ba908-82f8-4728-b8cc-82f2f56bd461', '40g42920-4243-420f-8bb2-a0bd7660fbd8', 'b1fd8dcc-dd67-4edf-b89e-87c3485112ec']&offset=0&limit=100&sort_key=size&sort_dir=asc
  • Consultar detalhes de todos os discos de dados compartilhados de um ECS (o ID do ECS é 3ffcbe9d-e5bf-45f4-aa0a-670b54bda66c. Os resultados retornados são classificados em ordem crescente.)

    GET https://{endpoint}/v2/{project_id}/cloudvolumes/detail?server_id=3ffcbe9d-e5bf-45f4-aa0a-670b54bda66c&multiattach=true&sort_dir=asc

Exemplo de respostas

Código de status: 200

OK

{
  "count" : 1,
  "volumes" : [ {
    "attachments" : [ ],
    "availability_zone" : "az-dc-1",
    "bootable" : "false",
    "created_at" : "2016-05-25T02:42:10.856332",
    "id" : "b104b8db-170d-441b-897a-3c8ba9c5a214",
    "links" : [ {
      "href" : "https://volume.localdomain.com:8776/v2/dd14c6ac581f40059e27f5320b60bf2f/volumes/b104b8db-170d-441b-897a-3c8ba9c5a214",
      "rel" : "self"
    }, {
      "href" : "https://volume.localdomain.com:8776/dd14c6ac581f40059e27f5320b60bf2f/volumes/b104b8db-170d-441b-897a-3c8ba9c5a214",
      "rel" : "bookmark"
    } ],
    "metadata" : { },
    "name" : "zjb_u25_test",
    "os-vol-host-attr:host" : "pod01.xxx#SATA",
    "volume_image_metadata" : { },
    "os-vol-tenant-attr:tenant_id" : "dd14c6ac581f40059e27f5320b60bf2f",
    "replication_status" : "disabled",
    "multiattach" : false,
    "size" : 1,
    "status" : "available",
    "updated_at" : "2016-05-25T02:42:22.341984",
    "user_id" : "b0524e8342084ef5b74f158f78fc3049",
    "volume_type" : "SATA",
    "service_type" : "EVS",
    "wwn" : " 688860300000d136fa16f48f05992360"
  } ],
  "volumes_links" : [ {
    "href" : "https://volume.localdomain.com:8776/v2/dd14c6ac581f40059e27f5320b60bf2f/volumes/detail?limit=1&marker=b104b8db-170d-441b-897a-3c8ba9c5a214",
    "rel" : "next"
  } ]
}

Código de status: 400

Bad Request

{
  "error" : {
    "message" : "XXXX",
    "code" : "XXX"
  }
}

Código de amostra do SDK

O código de amostra do SDK é o seguinte.

Java

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
package com.huaweicloud.sdk.test;

import com.huaweicloud.sdk.core.auth.ICredential;
import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.exception.ConnectionException;
import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
import com.huaweicloud.sdk.core.exception.ServiceResponseException;
import com.huaweicloud.sdk.evs.v2.region.EvsRegion;
import com.huaweicloud.sdk.evs.v2.*;
import com.huaweicloud.sdk.evs.v2.model.*;


public class ListVolumesSolution {

    public static void main(String[] args) {
        // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        String ak = System.getenv("CLOUD_SDK_AK");
        String sk = System.getenv("CLOUD_SDK_SK");

        ICredential auth = new BasicCredentials()
                .withAk(ak)
                .withSk(sk);

        EvsClient client = EvsClient.newBuilder()
                .withCredential(auth)
                .withRegion(EvsRegion.valueOf("<YOUR REGION>"))
                .build();
        ListVolumesRequest request = new ListVolumesRequest();
        request.withMarker("<marker>");
        request.withName("<name>");
        request.withLimit(<limit>);
        request.withSortKey("<sort_key>");
        request.withOffset(<offset>);
        request.withSortDir("<sort_dir>");
        request.withStatus("<status>");
        request.withMetadata("<metadata>");
        request.withAvailabilityZone("<availability_zone>");
        request.withMultiattach(<multiattach>);
        request.withServiceType("<service_type>");
        request.withDedicatedStorageId("<dedicated_storage_id>");
        request.withDedicatedStorageName("<dedicated_storage_name>");
        request.withVolumeTypeId("<volume_type_id>");
        request.withId("<id>");
        request.withIds("<ids>");
        request.withEnterpriseProjectId("<enterprise_project_id>");
        request.withServerId("<server_id>");
        try {
            ListVolumesResponse response = client.listVolumes(request);
            System.out.println(response.toString());
        } catch (ConnectionException e) {
            e.printStackTrace();
        } catch (RequestTimeoutException e) {
            e.printStackTrace();
        } catch (ServiceResponseException e) {
            e.printStackTrace();
            System.out.println(e.getHttpStatusCode());
            System.out.println(e.getRequestId());
            System.out.println(e.getErrorCode());
            System.out.println(e.getErrorMsg());
        }
    }
}

Python

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# coding: utf-8

from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkevs.v2.region.evs_region import EvsRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkevs.v2 import *

if __name__ == "__main__":
    # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak = __import__('os').getenv("CLOUD_SDK_AK")
    sk = __import__('os').getenv("CLOUD_SDK_SK")

    credentials = BasicCredentials(ak, sk) \

    client = EvsClient.new_builder() \
        .with_credentials(credentials) \
        .with_region(EvsRegion.value_of("<YOUR REGION>")) \
        .build()

    try:
        request = ListVolumesRequest()
        request.marker = "<marker>"
        request.name = "<name>"
        request.limit = <limit>
        request.sort_key = "<sort_key>"
        request.offset = <offset>
        request.sort_dir = "<sort_dir>"
        request.status = "<status>"
        request.metadata = "<metadata>"
        request.availability_zone = "<availability_zone>"
        request.multiattach = <Multiattach>
        request.service_type = "<service_type>"
        request.dedicated_storage_id = "<dedicated_storage_id>"
        request.dedicated_storage_name = "<dedicated_storage_name>"
        request.volume_type_id = "<volume_type_id>"
        request.id = "<id>"
        request.ids = "<ids>"
        request.enterprise_project_id = "<enterprise_project_id>"
        request.server_id = "<server_id>"
        response = client.list_volumes(request)
        print(response)
    except exceptions.ClientRequestException as e:
        print(e.status_code)
        print(e.request_id)
        print(e.error_code)
        print(e.error_msg)

Go

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
package main

import (
	"fmt"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
    evs "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/evs/v2"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/evs/v2/model"
    region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/evs/v2/region"
)

func main() {
    // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak := os.Getenv("CLOUD_SDK_AK")
    sk := os.Getenv("CLOUD_SDK_SK")

    auth := basic.NewCredentialsBuilder().
        WithAk(ak).
        WithSk(sk).
        Build()

    client := evs.NewEvsClient(
        evs.EvsClientBuilder().
            WithRegion(region.ValueOf("<YOUR REGION>")).
            WithCredential(auth).
            Build())

    request := &model.ListVolumesRequest{}
	markerRequest:= "<marker>"
	request.Marker = &markerRequest
	nameRequest:= "<name>"
	request.Name = &nameRequest
	limitRequest:= int32(<limit>)
	request.Limit = &limitRequest
	sortKeyRequest:= "<sort_key>"
	request.SortKey = &sortKeyRequest
	offsetRequest:= int32(<offset>)
	request.Offset = &offsetRequest
	sortDirRequest:= "<sort_dir>"
	request.SortDir = &sortDirRequest
	statusRequest:= "<status>"
	request.Status = &statusRequest
	metadataRequest:= "<metadata>"
	request.Metadata = &metadataRequest
	availabilityZoneRequest:= "<availability_zone>"
	request.AvailabilityZone = &availabilityZoneRequest
	multiattachRequest:= <multiattach>
	request.Multiattach = &multiattachRequest
	serviceTypeRequest:= "<service_type>"
	request.ServiceType = &serviceTypeRequest
	dedicatedStorageIdRequest:= "<dedicated_storage_id>"
	request.DedicatedStorageId = &dedicatedStorageIdRequest
	dedicatedStorageNameRequest:= "<dedicated_storage_name>"
	request.DedicatedStorageName = &dedicatedStorageNameRequest
	volumeTypeIdRequest:= "<volume_type_id>"
	request.VolumeTypeId = &volumeTypeIdRequest
	idRequest:= "<id>"
	request.Id = &idRequest
	idsRequest:= "<ids>"
	request.Ids = &idsRequest
	enterpriseProjectIdRequest:= "<enterprise_project_id>"
	request.EnterpriseProjectId = &enterpriseProjectIdRequest
	serverIdRequest:= "<server_id>"
	request.ServerId = &serverIdRequest
	response, err := client.ListVolumes(request)
	if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}

Mais

Para obter o código de amostra do SDK de mais linguagens de programação, consulte a guia Código de amostra no API Explorer. O código de amostra do SDK pode ser gerado automaticamente.

Códigos de status

Código de status

Descrição

200

OK

400

Bad Request

Códigos de erro

Consulte Códigos de erro.