Crie e anexe um disco que não é de inicialização à sua máquina virtual (VM) usando as instruções nesta página.
Antes de começar
Para usar os comandos da interface de linha de comando (CLI) gdcloud, verifique se você baixou, instalou
e configurou a CLI gdcloud.
Todos os comandos do Distributed Cloud usam a CLI gdcloud ou kubectl e exigem um ambiente de sistema operacional (SO).
Extrair o caminho do arquivo kubeconfig
Para executar comandos no servidor da API Management, verifique se você tem os seguintes recursos:
Faça login e gere o arquivo kubeconfig para o servidor da API Management se você não tiver um.
Use o caminho para o arquivo kubeconfig do servidor da API Management para substituir
MANAGEMENT_API_SERVERnestas instruções.
Solicitar permissões e acesso
Para executar as tarefas listadas nesta página, você precisa ter o papel de administrador de máquina virtual do projeto. Siga as etapas para
verificar
se você tem o papel de administrador de máquina virtual do projeto (project-vm-admin) no namespace
do projeto em que a VM reside.
Para operações de VM usando o console do GDC ou a CLI gdcloud,
peça ao administrador do IAM do projeto para atribuir a você os papéis de
administrador de máquina virtual do projeto e leitor do projeto (project-viewer).
Anexar um disco a uma VM
Crie e anexe discos que não são de inicialização à VM. Cada disco adicional pode especificar uma imagem personalizada ou um disco em branco. É possível adicionar vários discos de uma só vez a uma VM.
Console
No menu de navegação, clique em Virtual Machines > Instâncias.
Na lista de VMs, clique no nome de uma delas para ver os detalhes.
Clique em Adicionar disco novo.
Na caixa de diálogo de confirmação, clique em Parar para interromper a VM.
Aguarde alguns minutos até que a VM seja interrompida.
Clique em Atualizar.
Quando a VM estiver parada, clique em Adicionar novo disco novamente.
Na caixa de diálogo "Adicionar disco", escolha um disco novo ou um disco atual.
Para provisionar um novo disco, clique na guia Novo disco.
- No campo Nome do disco, insira um nome exclusivo para o projeto.
- No campo Tamanho, insira um tamanho de disco entre 10 e 65.536 GiB. Por exemplo, 10 GiB.
- Na seção Regra de exclusão, clique em Manter disco ou Excluir disco.
Para escolher um disco existente, clique na guia Disco existente.
- Na lista Disco, selecione um disco.
- Na seção "Regra de exclusão", clique em Manter disco ou Excluir disco.
Clique em Salvar. O disco aparece na lista de discos da VM.
API
Crie um
VirtualMachineDisk:kubectl --kubeconfig MANAGEMENT_API_SERVER \ -n PROJECT \ apply -f - <<EOF apiVersion: virtualmachine.gdc.goog/v1 kind: VirtualMachineDisk metadata: name: NON_BOOT_BLANK_DISK spec: size: NON_BOOT_BLANK_DISK_SIZE EOFAdicione o
VirtualMachineDiskaoVirtualMachinespec.disksatual:kubectl --kubeconfig MANAGEMENT_API_SERVER \ -n PROJECT \ edit virtualmachines.virtualmachine.gdc.goog VM_NAMEEdite o seguinte no seu editor de texto:
# … disks: - virtualMachineDiskRef: name: VM_BOOT_DISK_NAME boot: true - virtualMachineDiskRef: name: NON_BOOT_BLANK_DISK autoDelete: false # …Substitua as variáveis usando as seguintes definições.
Variável Definição MANAGEMENT_API_SERVERO arquivo kubeconfig do servidor da API Management. PROJECTO projeto do Google Distributed Cloud isolado (GDC) em que a VM será criada. VM_NAMEO nome da nova VM. VM_BOOT_DISK_NAMEO nome do novo disco de inicialização da VM. NON_BOOT_BLANK_DISKO nome do seu disco adicional. NON_BOOT_BLANK_DISK_SIZEO tamanho dos seus discos adicionais, como 20G.
Formatar e ativar um disco que não é de inicialização
Depois de anexar um disco à VM, execute as etapas necessárias a seguir para torná-lo acessível na VM.
Conectar-se à VM
Formatar o disco
Liste os discos anexados à instância por número de série e localize o disco que você quer formatar e ativar.
ls -l /dev/disk/by-id/Este exemplo de saída mostra os nomes dos discos como números de série:
total 0 lrwxrwxrwx 1 root root 9 Sep 13 23:51 ata-QEMU_HARDDISK_agentSADisk -> ../../sdc lrwxrwxrwx 1 root root 9 Sep 13 23:51 scsi-0ATA_QEMU_HARDDISK_agentSADisk -> ../../sdc lrwxrwxrwx 1 root root 9 Sep 13 23:51 scsi-0QEMU_QEMU_HARDDISK_vm-disk-boot -> ../../sda lrwxrwxrwx 1 root root 10 Sep 13 23:51 scsi-0QEMU_QEMU_HARDDISK_vm-disk-boot-part1 -> ../../sda1 lrwxrwxrwx 1 root root 11 Sep 13 23:51 scsi-0QEMU_QEMU_HARDDISK_vm-disk-boot-part14 -> ../../sda14 lrwxrwxrwx 1 root root 11 Sep 13 23:51 scsi-0QEMU_QEMU_HARDDISK_vm-disk-boot-part15 -> ../../sda15 lrwxrwxrwx 1 root root 9 Sep 13 23:51 scsi-0QEMU_QEMU_HARDDISK_vm-disk-data -> ../../sdb lrwxrwxrwx 1 root root 9 Sep 13 23:51 scsi-1ATA_QEMU_HARDDISK_agentSADisk -> ../../sdc lrwxrwxrwx 1 root root 9 Sep 13 23:51 scsi-SATA_QEMU_HARDDISK_agentSADisk -> ../../sdc lrwxrwxrwx 1 root root 9 Sep 13 23:51 scsi-SQEMU_QEMU_HARDDISK_vm-disk-boot -> ../../sda lrwxrwxrwx 1 root root 10 Sep 13 23:51 scsi-SQEMU_QEMU_HARDDISK_vm-disk-boot-part1 -> ../../sda1 lrwxrwxrwx 1 root root 11 Sep 13 23:51 scsi-SQEMU_QEMU_HARDDISK_vm-disk-boot-part14 -> ../../sda14 lrwxrwxrwx 1 root root 11 Sep 13 23:51 scsi-SQEMU_QEMU_HARDDISK_vm-disk-boot-part15 -> ../../sda15 lrwxrwxrwx 1 root root 9 Sep 13 23:51 scsi-SQEMU_QEMU_HARDDISK_vm-disk-data -> ../../sdbAs informações que seguem a seta,
->, em cada linha indicam o nome do dispositivo de disco. Por exemplo, emscsi-SQEMU_QEMU_HARDDISK_vm-disk-data -> ../../sdb, o número de série éscsi-SQEMU_QEMU_HARDDISK_vm-disk-datae o nome do dispositivo ésdb.Identifique o número de série do disco nessa lista.
Comportamento importante de recursos contextuais que pode afetar a lista de números de série:
- Se o valor
virtualMachineDiskRef.nametiver mais de 20 caracteres, apenas os primeiros 20 caracteres serão usados como o número de série. - Se houver dois discos com os mesmos primeiros 20 caracteres, somente o primeiro terá um número de série.
- Se o valor
Formate o disco:
sudo mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/disk/by-id/DISK_ID
- Substitua
DISK_IDpelo número de série do disco que você está formatando. - Neste exemplo, especifique
scsi-SQEMU_QEMU_HARDDISK_vm-disk-datapara formatar todo o disco sem uma tabela de partição.
Para aumentar o desempenho do disco, use as opções de formatação recomendadas na
sinalização -E. Como não é necessário reservar espaço para o volume raiz no disco secundário, especifique -m 0 para usar todo o espaço disponível.
Montar o disco
Crie um diretório que sirva como ponto de ativação para o novo disco. É possível usar qualquer diretório. O exemplo a seguir cria um diretório em
/mnt/disks/:sudo mkdir -p /mnt/disks/MOUNT_DIRSubstitua
MOUNT_DIRpelo diretório em que você quer ativar o disco.Ative o disco na instância e habilite a opção de descarte:
sudo mount -o discard,defaults /dev/disk/by-id/DISK_ID /mnt/disks/MOUNT_DIRSubstitua:
DISK_IDcom o número de série do disco a ser ativado.MOUNT_DIRcom o diretório em que você quer ativar o disco.
Opcional: configure as permissões de leitura e gravação no disco. O comando a seguir concede acesso de gravação,
a+w, ao disco para todos os usuários.sudo chmod a+w /mnt/disks/MOUNT_DIROpcional: configure a montagem automática na reinicialização da VM usando o identificador exclusivo universal (UUID) ou o script de inicialização.
Configurar a montagem automática na reinicialização da VM: UUID do disco
Adicione o disco ao arquivo /etc/fstab para que ele seja montado de novo
automaticamente quando a VM for reiniciada. Em um sistema operacional (SO), o nome do dispositivo
muda a cada reinicialização, mas o UUID do dispositivo sempre aponta para o mesmo volume,
mesmo quando você move discos entre sistemas. Portanto, sempre use o UUID do dispositivo
para configurar a montagem automática na reinicialização da VM.
Crie um backup do seu arquivo
/etc/fstabatual:sudo cp /etc/fstab /etc/fstab.backupListe o UUID do disco:
sudo blkid /dev/DEVICE_NAMEO exemplo de saída mostra o UUID de
accc19c5-d0d6-4157-9672-37d4e1d48eb5para o disco./dev/sdb: UUID="accc19c5-d0d6-4157-9672-37d4e1d48eb5" TYPE="ext4"DEVICE_NAMEé o nome do dispositivo do disco que você quer ativar automaticamente. Se você criou uma tabela de partição no disco, especifique a partição que quer ativar como um sufixo do nome do dispositivo. Por exemplo, sesdbfor o nome do dispositivo de disco e você quiser ativar a partição 1,DEVICE_NAMEse tornarásdb1.Abra o arquivo
/etc/fstabem um editor de texto e crie uma entrada que inclua o UUID:UUID=UUID_VALUE /mnt/disks/MOUNT_DIR ext4 discard,defaults,MOUNT_OPTION 0 2Substitua:
UUID_VALUEcom o discoUUID, listado como a saída do comando Listar o UUID.MOUNT_DIRcom o diretório em que você ativou o disco.MOUNT_OPTIONcom o valorMOUNT_OPTIONpara seu SO, que especifica o que o SO faz se não for possível ativar o disco durante a inicialização.
Verifique se as entradas
/etc/fstabestão corretas:cat /etc/fstabConfira um exemplo de saída:
LABEL=cloudimg-rootfs / ext4 defaults 0 1 LABEL=UEFI /boot/efi vfat umask=0077 0 1 UUID=UUID_VALUE /mnt/disks/MOUNT_DIR ext4 discard,defaults,MOUNT_OPTION 0 2
Se você desanexar esse disco ou criar um snapshot pelo
disco de inicialização para essa VM, edite o arquivo /etc/fstab e exclua a
entrada desse disco. Mesmo que você tenha
MOUNT_OPTION definido como nofail ou nobootwait, mantenha o arquivo /etc/fstab
sincronizado com os dispositivos anexados à VM. Remova essas entradas antes de criar o snapshot do disco de inicialização ou desanexar o disco.
Configurar a montagem automática na reinicialização da VM: script de inicialização da VM
Também é possível usar um script de inicialização para montar o disco em cada reinicialização adicionando os comandos de Montar o disco a um script de inicialização. Antes de adicionar o script para ativar o disco, formate-o usando os comandos em Formatar o disco.
Crie o secret do script de inicialização.
cat <<EOF >>mount-disk-script #!/bin/bash mkdir -p /mnt/disks/MOUNT_DIR mount -o discard,defaults /dev/disk/by-id/DISK_ID /mnt/disks/MOUNT_DIR EOFkubectl --kubeconfig MANAGEMENT_API_SERVER \ -n PROJECT \ create secret generic VM_NAME-mount-script \ --from-file=script=mount-disk-scriptrm mount-disk-scriptAdicione o script de inicialização à VM.
kubectl --kubeconfig MANAGEMENT_API_SERVER \ -n PROJECT \ edit virtualmachines.virtualmachine.gdc.goog VM_NAMEEdite o
spec.startupScriptspara incluir o nome do secret.apiVersion: virtualmachine.gdc.goog/v1 kind: VirtualMachine metadata: name: VM_NAME namespace: PROJECT spec: # … startupScripts: - name: mount-script scriptSecretRef: name: VM_NAME-mount-script
Para mais informações sobre como configurar scripts de inicialização, consulte.