Gerenciando o armazenamento de instância

O armazenamento de instância fornece armazenamento rápido, acessível e temporário, que pode melhorar o desempenho de algumas cargas de trabalho nativas da nuvem (ou apps ou serviços). Para obter mais informações, consulte Sobre o armazenamento de instância.

Para prover um disco de armazenamento de instância com a sua instância do servidor virtual, selecione um perfil que inclua armazenamento de instância. Os dispositivos de disco de armazenamento da instância não podem ser conectados ou desconectados em tempo real, pois são adquiridos como parte do próprio perfil da instância. As famílias de perfil de uso geral (Balanced, Compute e Memória) e algumas famílias de perfil de especialidade (Very High Memory e Storage Optimized) todas possuem opções de perfil com armazenamento de instância. Todos os perfis de instância de 3ª geração incluem armazenamento de instância. Para obter mais informações, consulte Perfis de instância de terceira geração. A quantidade de armazenamento de instância é proporcionalmente alocada com base no número de vCPUs designadas para o perfil. Para obter mais informações sobre perfis, consulte x86-64 instance profiles.

Provisionamento de uma instância de servidor virtual com armazenamento de instância no console

Antes de poder criar uma instância de servidor virtual com armazenamento de instância, é necessário criar uma IBM Cloud VPC.

Para provisionar um armazenamento de instância, preencha as etapas a seguir:

  1. No console IBM Cloud, acesse o ícone do Menu de navegação > Ícone da VPC de infraestrutura > Computação > Instâncias do servidor virtual.
  2. Na página Instâncias de servidor virtual para VPC, clique em Criar e insira as informações necessárias. Para obter mais informações sobre campos específicos, consulte Criando servidores virtuais.
  3. Para escolher o perfil de armazenamento da sua instância, clique em Exibir todos os perfis. Todos os perfis de ox2 e perfis com a letra "d" na quarta posição do nome Perfil incluem armazenamento de instância. Exemplos de perfis que incluem armazenamento de instância são bx2d-2x8 e ox2-2x16. Use as caixas de entrada para filtrar a lista. Para uma lista de perfis de instância, consulte os perfis de instância x86-64.
  4. Escolha o perfil que você deseja usar e clique em Salvar. Os discos de armazenamento de instância são conectados à instância de servidor virtual após o volume de inicialização e antes dos volumes de armazenamento de bloco remoto, quando existentes.
  5. Quando você estiver pronto para provisionar sua instância, clique em Criar instância de servidor virtual.

Próximas etapas

Depois que a instância for criada, associe um endereço IP flutuante à instância. Em seguida, será possível conectar-se a ela. Para obter mais informações, consulte Conectando-se à sua instância do Linux ou Conectando-se à sua instância do Windows. Se você tiver uma instância existente com um endereço IP flutuante, não será necessário designar um segundo IP flutuante à outra instância. É possível se conectar à primeira com um IP flutuante, em seguida, efetuar SSH para a segunda instância usando o endereço IP de sub-rede privado que é automaticamente designado a ela.

Provisionamento de uma instância de servidor virtual com armazenamento de instância a partir da CLI

Para prover uma instância de servidor virtual com armazenamento de instância, siga as instruções para Criando servidores virtuais usando o CLI. Escolha um perfil que inclua um disco de armazenamento de instância. Para obter mais informações sobre perfis, consulte Perfis de instância.

Provisionando uma instância de servidor virtual com armazenamento de instância com a API

Para prover uma instância de servidor virtual com armazenamento de instância, siga as instruções para Usando as APIs REST para criar recursos de VPC. Escolha um perfil que inclua um disco de armazenamento de instância. Para obter mais informações sobre perfis, consulte Perfis de instância.

A API (ou CLI) é útil para determinar o tipo de interface que é usado para anexar os discos de armazenamento de instância. O objeto de instância que é retornado de uma operação de criação (ou get) relata os discos de instância na matriz disks como mostrado na saída parcial de exemplo a seguir.

  "disks": [
    {
      "created_at": "2022-04-19T17:13:28Z",
      "href": "https://sample-region.iaas.cloud.ibm.com/v1/instances/vsi_aba03916-8804-46ae-9275-b7dc196e94b3/disks/c4e4d137-a44f-47b8-beb0-a22dc8f8c6ea",
      "id": "c4e4d137-a44f-47b8-beb0-a22dc8f8c6ea",
      "interface_type": "virtio_blk",
      "name": "babbling-drove-grove-catnap",
      "resource_type": "instance_disk",
      "size": 600
    }]

Este exemplo mostra um tipo de interface de virtio_blk.

Usando imagens customizadas com disco de armazenamento de instância 

Se você estiver usando imagens customizadas, certifique-se de carregar os drivers de dispositivo corretos na imagem para usar os discos.

Se o seu dispositivo de armazenamento de instância tiver um tipo de interface de virtio_blk, então o driver libvirt virtio deverá ser instalado. O libvirt virtio driver é instalado automaticamente com todos os sistemas IBM operacionais fornecidos. Todos os perfis de uso geral com armazenamento de instância oferecem apenas conexões virtio_blk.

Usando o armazenamento de instância de sua instância

Listando os dispositivos de bloco em sua instância

Em Linux®, você pode usar o lsblk comando para listar os dispositivos de bloco após fazer login na sua instância. No exemplo a seguir, a instância provisionada conta com dois discos de instância de 600 GB e dois volumes de dados de 50 GiB. Uma lista de colunas personalizadas é especificada para o lsblk comando para destacar algumas diferenças entre o armazenamento de instância e o remoto Block Storage.

Os discos de instância são medidos em gigabytes (GB), mas lsblk mostram o tamanho em gibibytes ( GiB ).

$ lsblk -o NAME,SIZE,MAJ:MIN,TYPE,PHY-SEC,LOG-SEC,MOUNTPOINT
NAME          SIZE MAJ:MIN TYPE PHY-SEC LOG-SEC MOUNTPOINT
vda           100G 252:0   disk     512     512
├─vda1          1G 252:1   part     512     512 /boot
└─vda2         99G 252:2   part     512     512
  ├─cl-root    97G 253:0   lvm      512     512 /
  └─cl-swap   2.1G 253:1   lvm      512     512
vdb         558.8G 252:16  disk    4096    4096
vdc         558.8G 252:32  disk    4096    4096
vdd            50G 252:48  disk     512     512
vde            50G 252:64  disk     512     512
vdf           366K 252:80  disk     512     512
vdg            44K 252:96  disk     512     512

Neste exemplo, todos os Block Storage dispositivos são virtio_blk dispositivos:

  • vda é o volume de inicialização.
  • vdb e vdc são os discos de armazenamento de instância de 600 GB. No Linux®, os discos de armazenamento de instância seguem o volume de inicialização com o primeiro /dev/vdb. Como o comando lsblk exibe unidades “G” como base-2 gibibytes, o tamanho é exibido como GiBs558.8. Os valores da coluna de tamanho do setor podem diferir dependendo do sistema operacional ou da geração de perfil.. Por exemplo, as famílias de perfis de instância do x3d podem ser provisionadas com tamanhos de setor de 512 bytes para discos locais
  • vdd e vde são volumes de dados remotos que estão anexados à instância. Como esses volumes de dados são solicitados nas mesmas unidades em que lsblk são exibidos, seu tamanho permanece como um todo GiBs (50).
  • vdf e vdg são pequenos volumes de bloco usados para a configuração cloud-init da instância.

Usando o serviço de metadados para listar o armazenamento de instância

O serviço de metadados pode ser usado de dentro da instância para recuperar informações sobre a instância, incluindo discos de armazenamento de instância. Para recuperar informações de metadados, o recurso de serviço de metadados deve ser ativado quando a instância for provisionado ou atualizando a instância posteriormente.. Para obter mais informações sobre a ativação e o procedimento de uso, consulte Acessando metadados de uma instância.

Se você tiver uma instância com o serviço de metadados ativado, as etapas a seguir demonstram um exemplo de utilização de metadados de armazenamento de instância de um servidor virtual Linux.

  1. Recupere um token de identidade de instância de curta duração

    instance_identity_token=`curl -X PUT "http://api.metadata.cloud.ibm.com/instance_identity/v1/token?version=2022-03-01" -H "Metadata-Flavor: ibm" -H "Accept: application/json" -d '{ "expires_in": 300}' | jq -r '(.access_token)'`
    

    Use HTTPS em vez de HTTP se o ponto de extremidade do serviço de metadados seguro estiver habilitado. Talvez seja necessário instalar os pacotes curl ou jq antes de executar o comando curl. jq é uma ferramenta de terceiros licenciada sob a licença MIT.

  2. Use o token para obter metadados da instância e selecionar a parte disks e armazenar o json em uma variável bash.

    disks=$(curl -sS -X GET "http://api.metadata.cloud.ibm.com/metadata/v1/instance?version=2024-02-20" -H "Authorization: Bearer $instance_identity_token" | jq -r '.disks')
    
  3. Loop sobre virtio dispositivos em /dev/disk/by-id e correlacionar caminhos de dispositivo para as informações de disco da instância armazenadas na etapa anterior.

    for ln in $(ls /dev/disk/by-id/virtio*); do b=$(basename $ln); s=${b#virtio-}; disk=$(echo $disks | jq -r ".[] | select(.id | startswith(\"$s\"))"); if [ -n "$disk" ]; then echo "$ln $(readlink -f $ln) $(echo $disk | jq -r '(.size|tostring) + " " + .name')";fi;done
    

A seguir está a saída de exemplo do comando anterior em que a ordem da coluna é (1) por caminho de ID, (2) destino do dispositivo symlink, (3) tamanho em GB e (4) o nome do disco de Cloud UI/CLI/API:

/dev/disk/by-id/virtio-0736-35db69bb-d09b-4 /dev/vdc 600 palmtree-vacuumed-judiciary-wharf
/dev/disk/by-id/virtio-0736-874803ac-2593-4 /dev/vdb 600 lunacy-dismantle-dotted-fiddling

Nesse caso, os nomes de disco são os nomes aleatórios gerados de quatro palavras, mas eles podem ser editado para ter nomes customizados... Para obter mais informações, consulte Atualização de um dos nomes padrão

Particionando, formatando e montando discos de armazenamento de instância

Os discos de armazenamento de instância podem ser particionados, formatados com um sistema de arquivos e montados no sistema de arquivo hierárquico da mesma maneira que os volumes de blocos remotos.

O exemplo de lsblk a seguir mostra a saída após efetuar login em uma instância bx3d-48x240 e particionar vdc em duas partições primárias, formatando-as com sistemas de arquivos separados e montando-as. O comando grep com expressão regular é usado para filtrar a saída apenas para os dispositivos vdb e vdc obtidos por meio do serviço Metadata (consulte a seção anterior).

$ lsblk | grep -E "NAME|vd[b|c]"
NAME    MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
vdb     252:16   0 726.4G  0 disk
vdc     252:32   0 726.4G  0 disk
├─vdc1  252:33   0   200G  0 part /mnt/localdisk1
└─vdc2  252:34   0 526.4G  0 part /mnt/localdisk2

Devido à natureza efêmera do armazenamento de instância, configure a entrada de montagem no arquivo Linux®/etc/fstab da VM com a nofail opção ou deixe a entrada de montagem totalmente de fora. Essa configuração evita uma falha de montagem durante a inicialização.

O exemplo a seguir mostra uma entrada de montagem com a opção nofail.

/dev/vdb1 /mnt/inststg1 ext4 defaults,nofail 0 0

Consultando detalhes de armazenamento de instância de um perfil de instância..

Procure a coluna de armazenamento da instância na interface do usuário da web ou na CLI ao filtrar perfis de instância. Ele pode ser chamado de Storage(GB)

Os exemplos a seguir mostram possíveis valores de coluna e o que eles significam:

  • 1 x 150 GB – Um único dispositivo de bloco de 150 GB é conectado à instância de servidor virtual para armazenamento de instância.
  • 2 x 600 GB – Dois dispositivos de bloco de armazenamento de instância de 600 GB (1200 no total) estão conectados.

Em alguns contextos, você poderá ver um Tipo de Interface (geralmente virtio_blk) para um perfil de instância ou para um disco de instância anexado. O exemplo a seguir mostra detalhes que foram obtidos da CLI para um perfil de instância específica.

ibmcloud is in-pr bx2d-48x192
Getting instance profile bx2d-48x192 under account YYYYYY as user vpc-user@myco.com...

Name                     bx2d-48x192
Architecture             amd64
vCPU Manufacturer        intel
Family                   balanced
vCPUs                    48
Memory(GiB)              192
GPU                      Model   Manufacturer   Count   Memory(GiB)
                         -       -              -       -

Numa Count               -
Bandwidth(Mbps)          80000
Volume bandwidth(Mbps)   -
Instance Storage Disks   Quantity   Size   Supported interface types
                         2          900    virtio_blk

Min NIC Count            1
Max NIC Count            10

Relatando informações de armazenamento de instância

É possível relatar informações de armazenamento de instância para sua instância de servidor virtual usando o exemplo de CLI a seguir. Substitua pelo seu próprio ID ou nome de instância.

ibmcloud is instance-disks 0716_f8c0fd3b-cada-46c3-91f6-c271937ef488
Listing disks of instance 0716_f8c0fd3b-cada-46c3-91f6-c271937ef488 under account YYYYYY as user vpc-user@myco.com...
ID                                          Name                               Size   Interface Type
0716-6ebed02f-c421-4b06-a73b-f334413e84b3   clunky-refocus-tidings-underpaid   600    virtio_blk
0716-54ee0659-d92a-4d4c-ac6b-8f03cb178a07   linguini-epiphany-lush-preschool   600    virtio_blk

Atualizando um dos nomes padrão

Você pode atualizar os nomes personalizados dos discos de armazenamento da instância usando o seguinte comando CLI. Substitua seu próprio ID de instância e ID de disco para os dois últimos parâmetros, respectivamente.

ibmcloud is instance-disk-update 0716_f8c0fd3b-cada-46c3-91f6-c271937ef488 0716-6ebed02f-c421-4b06-a73b-f334413e84b3 --name my-instance-disk1
Updating instance disk 0716-6ebed02f-c421-4b06-a73b-f334413e84b3 of instance 0716_f8c0fd3b-cada-46c3-91f6-c271937ef488 under account YYYYYY as user vpc-user@myco.com...

ID               0716-6ebed02f-c421-4b06-a73b-f334413e84b3
Name             my-instance-disk1
Size             600
Interface Type   virtio_blk
Created          2020-10-29T22:57:15-05:00

$ ibmcloud is instance-disks 0716_f8c0fd3b-cada-46c3-91f6-c271937ef488
Listing disks of instance 0716_f8c0fd3b-cada-46c3-91f6-c271937ef488 under account YYYYYY as user vpc-user@myco.com...
ID                                          Name                               Size   Interface Type
0716-6ebed02f-c421-4b06-a73b-f334413e84b3   my-instance-disk1                  600    virtio_blk
0716-54ee0659-d92a-4d4c-ac6b-8f03cb178a07   linguini-epiphany-lush-preschool   600    virtio_blk