EHLO a todos! Meu primeiro post na rede StackOverflow :)
Estamos executando uma infraestrutura ESXi 5.0 / vCenter para hospedar principalmente sistemas convidados Debian 6 / amd64 com partições ext3 e open-vm-tools
compilados a partir da fonte por bug 471784 da debian .
Tem um problema que é visto sendo levantado em toda a Internet, mas sem uma resposta conclusiva dada em qualquer lugar.
Ao tentar reduzir um disco thin-provisioned no modo persistente independente, sem instantâneos, pais ou clones, sempre recebo o seguinte erro:
root@linux64:~# vmware-toolbox-cmd disk list
Shrink disk is disabled for this virtual machine.
Shrinking is disabled for linked clones, parents of linked clones,
pre-allocated disks, snapshots, or due to other factors.
See the User's manual for more information.
(A propósito, quais são os "outros fatores" e qual das toneladas de white papers e manuais técnicos é o manual do usuário? :)
Eu sei que posso encher as partições com zeros (na verdade, eu uso shred -fuzn0
ao excluir arquivos grandes) e desligar o convidado em questão e usar vários métodos vmkfstools
, como clonar ou vMotioning discos no modo thin-provision, etc, mas todos um deles incorre na penalidade de tempo de inatividade para o convidado ser desviado ou resulta em uma movimentação injustificada de dados entre os datastores e / ou hosts.
E a resposta é: não há encolhimento no ESX / ESXi (a partir da versão 5).
A documentação diz:
IMPORTANTE A redução de discos não é permitida nas seguintes circunstâncias:
A máquina virtual está hospedada em um servidor ESX / ESXi. O ESX / ESXi Server pode reduzir o tamanho de um disco virtual somente quando uma máquina virtual é exportada. O espaço ocupado pelo disco virtual no servidor ESX / ESXi, no entanto, não muda.
A máquina virtual possui um sistema operacional convidado para Mac .
Você pré-alocou todo o espaço em disco no disco virtual quando o criou.
A máquina virtual contém um instantâneo .
A máquina virtual é um clone vinculado ou o pai de um clone vinculado.
O disco virtual é um disco independente no modo não persistente .
O sistema de arquivos é um sistema de arquivos de registro no diário , como um sistema de arquivos ext4, xfs ou jfs .
Não admira que é uma opção para encolher em VMWare Workstation, mas não no cliente vSphere conectado a uma instância ESXi ou vCenter.
Respostas:
http://www.vmware.com/pdf/vmware-tools-cli.pdf Página 13:
A redução de discos não é permitida nas seguintes circunstâncias:
A máquina virtual está hospedada em um servidor ESX / ESXi. O ESX / ESXi Server pode reduzir o tamanho de um disco virtual somente quando uma máquina virtual é exportada. O espaço ocupado pelo disco virtual no servidor ESX / ESXi, no entanto, não muda.
fonte
Na verdade, existe uma maneira de reduzir uma VM no ESXi, embora você precise desligar a VM para isso. Aqui está como:
Zere todo o espaço não utilizado dentro da VM:
dd if=/dev/zero bs=1048576 of=/zero ; sync ; rm /zero
Faça o mesmo com outros pontos de montagem, partições de troca etc.
Desligue a VM.
SSH para ESXi e emita este comando:
vmkfstools -K /vmfs/volumes/volumename/vmname/vmname.vmdk
Isso levará algum tempo ... vmkfstools "faz furos" dentro do seu VMDK, por exemplo, desaloca todos os blocos preenchidos com zeros, reduzindo efetivamente o seu VMDK.
fonte
A única maneira de reduzir um VMDK no vSphere ESXi seria exportar ou migrar / Storage vMotion para outro armazenamento de dados. Faço isso muito com servidores ativos que podem lidar com uma migração (não SQL ou Exchange). Um administrador de servidor anterior criou todas as VMs com discos provisionados espessos. Migro as VMs de um armazenamento de dados para outro e altero o VMDK para thin-provisioned.
Você também pode executar o vmkfstools se o servidor estiver offline.
fonte
É possível reduzir os discos no ESXi.
Encontre o arquivo grande e exclua-o.
find / -type f -size +50M
Desfragmentar (não é necessário desmontar / remontar nada). Ignore os erros. Alguns arquivos, como links simbólicos e arquivos de dispositivos, não podem ser desfragmentados.
sudo e4defrag /
Preencher com zero todo o espaço não utilizado, para que a VMware saiba que é realmente não utilizado:
dd if=/dev/zero of=wipefile bs=1M; sync; rm wipefile
Execute a operação de redução: Se 4 falhar, prossiga para 5.
sudo vmware-toolbox-cmd disk shrinkonly
Reinicie o sistema linux com a opção try e edite a tabela de partições com o gparted. Reduza o sistema de arquivos raiz e exclua e mova a partição swap para perto da partição raiz.
SSH para ESXi e emita este comando:
vmkfstools -K /vmfs/volumes/volumename/vmname/vmname.vmdk
Precisamos editar o arquivo * .vmdk. Após as letras RW, define o tamanho do disco virtual VMware (VMDK)
* 40 GB = 40 * 1024 * 1024 * 1024/512 = 83886080 *
Migre-o para outro armazenamento de dados para refletir o novo tamanho.
fonte