Crie e anexe um disco que não é de inicialização à 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ê o papel de
administrador de máquina virtual do projeto e o papel de 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 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.