web-dev-qa-db-fra.com

Disque Shrink ne fonctionne pas sur les clients EXXI

Ehlo tout le monde! Mon premier message sur le réseau Stackoverflow :)

Nous gérons une infrastructure ESXI 5.0/vCenter pour accueillir principalement des systèmes d'invités de Debian 6/Amd64 avec des partitions ext3 et open-vm-tools compilé de la source par Bug de Debian 471784 .

J'ai eu un problème qui est vu être soulevé tout autour d'Internet, mais sans une réponse concluante donnée nulle part.

Lors de la tentative de réduction d'un disque mince en mode persistant indépendant, sans instantané, parents, clones que ce soit, je reçois toujours l'erreur suivante:

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.

(Au fait, quels sont les "autres facteurs" et lequel de la tonne de papiers blancs et de manuels techniques est le manuel de l'utilisateur? :)

Je sais que je peux tracer les partitions avec des zéros (en fait, j'utilise shred -fuzn0 Lors de la suppression de fichiers volumineux), puis fermez l'invité en question et utilisez diverses méthodes telles que vmkfstools, clonage ou vmotioning disques autour en mode de prestation mince, etc., mais tous incontournent la pénalité de temps d'arrêt pour la invité étant shirnked, ou entraîner un déplacement injustifié de données entre les datastores et/ou les hôtes.


Et la réponse est: Pas de contraction sous ESX/ESXI (à la version 5).

La documentation se lit comme suit:

IMPORTANT Les disques rétrécissants ne sont pas autorisés Dans les cas suivants:

  1. La machine virtuelle est hébergée sur un serveur ESX/ESXI. Server ESX/ESXI Peut rétrécir la taille d'un disque virtuel uniquement lorsqu'une machine virtuelle est exportée. L'espace occupé par le disque virtuel sur le serveur ESX/ESXI ne change pas.

  2. La machine virtuelle a un Mac Guest Système d'exploitation.

  3. Vous préallocated tout l'espace disque sur le disque virtuel lorsque vous l'avez créée.

  4. La machine virtuelle contient un Snapshot.

  5. La machine virtuelle est une liaison clone ou le parent d'un clone lié.

  6. Le disque virtuel est un indépendant Disque in Non persistent Mode.

  7. Le système de fichiers est un Système de fichiers de journalisation, tel qu'un EXT4, XFS ou JFS Système de fichiers.

Pas étonnant là-bas est une option de réduction du poste de travail VMware mais non dans VSphere Client connecté à une instance ESXI ou vCenter.

11
NekojiruSou

http://www.vmware.com/pdf/vmware-tools-cli.pdf Page 13:

Réduction des disques ne sont pas permis dans les circonstances suivantes:

La machine virtuelle est hébergé sur un serveur ESX/ESXi. ESX/ESXi Server peut réduire la taille d'un disque virtuel que lorsqu'une machine virtuelle est exportée. L'espace occupé par le disque virtuel sur le serveur ESX/ESXi, cependant, ne change pas.

3
Li Ni

En fait, il existe un moyen de rétrécir A VM sur ESXI, bien que vous ayez besoin d'arrêter le VM pour cela. Voici comment:

  1. Zéro tout espace inutilisé à l'intérieur du VM:

    dd if=/dev/zero bs=1048576 of=/zero ; sync ; rm /zero

  2. Faites la même chose avec d'autres points de montage, swap partitions, etc.

  3. Arrêtez le VM.

  4. Ssh à ESXI et publier cette commande:

    vmkfstools -K /vmfs/volumes/volumename/vmname/vmname.vmdk

Cela prendra du temps ... vmkfstools "trous de poing" à l'intérieur de votre VMDK, par ex. DealLocate Tous les blocs remplis de zéros, rétrécissant efficacement votre VMDK.

18
haimg

Les disques rétrécissants sont possibles sur ESXI.

  1. Trouvez le fichier grand et supprimez-les.

    find / -type f -size +50M

  2. Défragmentation (pas besoin d'un/remonter quoi que ce soit). Ignorer les erreurs. Certains fichiers comme des liens symboliques et des fichiers de périphérique ne peuvent pas être défragmentés.

    Sudo e4defrag /

  3. Zéro remplissez tous les espaces inutilisés afin que VMware sait qu'il est en effet inutilisé:

    dd if=/dev/zero of=wipefile bs=1M; sync; rm wipefile

  4. Exécutez l'opération de réduction: si 4 échoue, passez à 5.

    Sudo vmware-toolbox-cmd disk shrinkonly

  5. Redémarrez le système Linux avec l'option Essayez et modifiez la table de partition avec GParted. Réduire le système de fichiers racine et Supprimer et déplacer la partition de swap près de la partition racine.

  6. Ssh à ESXI et publier cette commande:

    vmkfstools -K /vmfs/volumes/volumename/vmname/vmname.vmdk

  7. Nous devons modifier le fichier * .vmdk. Après les lettres RW, définit la taille du disque virtuel VMware (VMDK)

    * 40 gb = 40 * 1024 * 1024 * 1024/512 = 83886080 *

  8. Migrez-le vers un autre magasin de données pour refléter la nouvelle taille.

0
Kondapaneni

Le seul moyen de rétrécir un VMDK dans VSphere ESXI serait d'exporter ou de migrer/stocker VMotion vers un autre DataStore. Je le fais beaucoup avec des serveurs vivants pouvant gérer une migration (pas SQL ou échange). Un administrateur de serveur précédent construit tous les VMS avec des disques approvisionnés épais. Je migre les ordinateurs virtuels d'un magasin de données à un autre et changez le VMDK en mince à provisionnement.

Vous pouvez également faire le vmkfstools si le serveur est hors ligne.

0