Comment puis-je augmenter la taille du disque sur une machine virtuelle vagabonde?

48

J'ai une machine virtuelle gérée par Vagrant à l'aide de VirtualBox sur un serveur hôte Ubuntu. Ma boîte My Vagrant utilise la basebox de Puppetlabs Debian 6.0.7, qui utilise LVM pour sa partition racine.

Par défaut, le disque est de 8 Go, ce qui est trop petit pour mes besoins. Je voudrais:

  1. Augmentez la taille du disque existant et du système de fichiers qu'il contient sans détruire ni recréer ma machine virtuelle.
  2. Configurez Vagrant de manière à créer à l'avenir un disque plus volumineux pour ce projet.

Quelqu'un peut-il expliquer comment faire cela?

    
posée David Edwards 07.07.2013 - 09:57
la source

5 réponses

23

Personnellement, je pense qu’il sera plus facile de connecter un disque dur virtuel supplémentaire et de le monter sur un point de montage approprié, par exemple /opt , et de déplacer votre contenu à l’aide de rsync pour résoudre ce problème. Après tout, marionnette les boîtes de vagabonds sont utilisées à des fins de test.

Raison pour laquelle : VBoxManage modifyhd fonctionne uniquement avec une image VDI native. Cependant, les boîtes de base vagabondes sont essentiellement exportées OVF / OVA au format VMDK .

Voir Documents VirtualBox

The --resize x option (where x is the desired new total space in megabytes) allows you to change the capacity of an existing image; this adjusts the logical size of a virtual disk without affecting the physical size much.[37] This currently works only for VDI and VHD formats, and only for the dynamically allocated variants, and can only be used to expand (not shrink) the capacity.

Pour augmenter la capacité du disque pour Vagrant Base Box

Les étapes sont

  1. Pour pouvoir redimensionner le disque dur, vous devez d'abord le convertir au format VDI, par exemple. VBoxManage clonehd in.vmdk out.vdi --format VDI puis ré-attachez-le (utiliser l'interface graphique est plus simple).

  2. Redimensionnez-le avec VBoxManage modifyhd box.vdi --resize 15360 , ce qui augmente la capacité jusqu'à 15 Go.

  3. Cependant, cela ne change que la capacité du lecteur, vous devrez ensuite développer le système de fichiers pour l'invité. Par exemple, utilisez resize2fs -p -F DEVICE pour ext {3,4}.

réponse donnée Terry Wang 11.07.2013 - 02:02
la source
14

J'ai automatisé l'ajout du disque dans mon fichier Vagrant:

Vagrant.configure("2") do |config|
    ...
    file_to_disk = File.realpath( "." ).to_s + "/disk.vdi"

    if ARGV[0] == "up" && ! File.exist?(file_to_disk) 
       puts "Creating 5GB disk #{file_to_disk}."
       vb.customize [
            'createhd', 
            '--filename', file_to_disk, 
            '--format', 'VDI', 
            '--size', 5000 * 1024 # 5 GB
            ] 
       vb.customize [
            'storageattach', :id, 
            '--storagectl', 'SATA Controller', 
            '--port', 1, '--device', 0, 
            '--type', 'hdd', '--medium', 
            file_to_disk
            ]
   ...
   config.vm.provision "shell", path: "scripts/add_new_disk.sh"
   ...
end

Où le script shell add_new_disk.sh ressemble à ceci:

set -e
set -x

if [ -f /etc/disk_added_date ]
then
   echo "disk already added so exiting."
   exit 0
fi


sudo fdisk -u /dev/sdb <<EOF
n
p
1


t
8e
w
EOF

pvcreate /dev/sdb1
vgextend VolGroup /dev/sdb1
lvextend /dev/VolGroup/lv_root
resize2fs /dev/VolGroup/lv_root

date > /etc/disk_added_date

Ce script concerne un centos 6.4 , mais peut facilement être adapté à Ubuntu.

Au lieu d'ajouter un disque, les autres options sont les suivantes:

  • en utilisant une boîte avec un disque plus gros, tel que opscode bento comportant des disques de 40 Go
  • construisez votre propre boîte à l'aide de emballeur . Vous pouvez utiliser les définitions du packer de boîtes opscode comme point de départ
réponse donnée Chris Snow 12.01.2014 - 20:56
la source
7

J'ai trouvé le moyen le plus simple de résoudre ce problème:

  • Installez ce plugin: vagrant plugin install vagrant-disksize

  • Modifiez le Vagrantfile :

Vagrant.configure('2') do |config| ... config.vm.box = 'ubuntu/xenial64' config.disksize.size = '50GB' ... end

  • vagrant halt
  • vagrant up
réponse donnée thucnguyen 15.03.2018 - 08:05
la source
3

Vous pouvez utiliser le plugin, qui vous permettra de spécifier la taille du disque. lien

    
réponse donnée shashi ranjan 17.10.2017 - 06:47
la source
0

disclaimer: la réponse ne s'applique probablement qu'aux distributions utilisant une gestion de volume logique telle que rhel pour laquelle le cas d'utilisation suivant s'applique:

J'utilise officiellement la configuration Red Hat officielle dans la boîte à vagabond officielle Red Hat Enterpise 7.2.

(vous aurez besoin d'un compte développeur rhel que vous pourrez créer gratuitement)

Lors de l'installation, j'ai été troublé par le fait que seuls 8 Go étaient également disponibles:

sudo df -h
[[email protected] ~]$ sudo df -h
Filesystem                   Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-root   8G  2,5G   6,5G  28% /
devtmpfs                     234M     0  234M   0% /dev
tmpfs                        245M     0  245M   0% /dev/shm
tmpfs                        245M  4,3M  241M   2% /run
tmpfs                        245M     0  245M   0% /sys/fs/cgroup
/dev/sda2                    297M  134M  164M  45% /boot
tmpfs                         49M     0   49M   0% /run/user/1000

Et comme vous pouvez le constater, la majeure partie de l'espace a déjà été utilisée par l'installation de rhel.

Cependant, j'ai découvert que le groupe de volumes correspondant au système de fichiers /dev/mapper/VolGroup00-root disposait d'un espace supplémentaire (ce qui, je suppose, a été alloué dynamiquement en termes de boîte virtuelle)

sudo vgdisplay VolGroup00
  --- Volume group ---
  VG Name               VolGroup00
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  11
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               1
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               39,70 GiB
  PE Size               4,00 MiB
  Total PE              10164
  Alloc PE / Size       7872 / 30,75 GiB
  Free  PE / Size       2292 / 8,95 GiB
  VG UUID               JBVwpl-13KX-HbQw-FqUa-CA9w-swpF-dF6glm

Il ne reste donc que les tâches suivantes:

a ) Augmentez la taille de notre volume logique, par exemple, 10 G

sudo lvextend -L+10G /dev/VolGroup00/root

et

b ) Mettez à jour votre système de fichiers racine afin qu'il prenne conscience de cette modification

sudo xfs_growfs /dev/mapper/VolGroup00-root

(notez qu'au moins 7,2% de rhel ne fonctionneront pas à cet effet pour rhel).

Après cela, mon système de fichiers disposait d'un espace supplémentaire:

sudo df -h
Filesystem                   Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-root   18G  2,5G   16G  14% /
devtmpfs                     234M     0  234M   0% /dev
tmpfs                        245M     0  245M   0% /dev/shm
tmpfs                        245M  4,3M  241M   2% /run
tmpfs                        245M     0  245M   0% /sys/fs/cgroup
/dev/sda2                    297M  134M  164M  45% /boot
tmpfs                         49M     0   49M   0% /run/user/1000

... pas d'intervention au niveau de la virtualbox

    
réponse donnée pkaramol 09.01.2017 - 16:01
la source

Lire d'autres questions sur les étiquettes