Openstack Instance does not use the entire hard disk

我与影子孤独终老i 提交于 2019-12-24 08:30:01

问题


I created new vm instance using "Ubuntu Server 10.04 LTS (Lucid Lynx) - 32 bits" image and m1.small falvour which has 20 GB Disk (OpenStack Icehouse). When i logging to the vm and run df -h , I found that the VM does not use the entire assigned HD. The command results are shown as the following:

Filesystem            Size  Used Avail Use% Mounted on
/dev/vda1             1.4G  595M  721M  46% /
none                 1005M  144K 1005M   1% /dev
none                 1007M     0 1007M   0% /dev/shm
none                 1007M   36K 1007M   1% /var/run
none                 1007M     0 1007M   0% /var/lock
none                 1007M     0 1007M   0% /lib/init/rw

The "fdisk -l" shows the DH size is 20 GB:

Disk /dev/vda: 21.5 GB, 21474836480 bytes
4 heads, 32 sectors/track, 327680 cylinders
Units = cylinders of 128 * 512 = 65536 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000cb9da

Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *          17       32768     2096128   83  Linux

I need the vm to take the full space assigned to it. Any idea how could I fix it? I want the solution to be applied on each vm I create, so I do not want to manually update the VM after instantiation. I also must use 10.04 image ( can not upgrdate to 14.04)


回答1:


The problem here is the image. I grabbed that one and ran it up, it's pretty simple to run a

sudo resize2fs /dev/vda1

which will resize the filesystem to the size of the partition, which seems to be 2GB. Beyond that, you have to increase the partition size. For that I think you're probably best off using virt-resize, there are some good howto's out there e.g. askubuntu, in essence:

  • SSH into your openstack controller node
  • source keystonerc_admin (or whatever yours may be called)
  • nova list --all-tenants | grep <instance_name> or just grab the server guid from horizon
  • nova show <server_guid> and note which nova host your machine is running on. Also note the instance name (e.g. instance-00000adb)
  • SSH into that nova node
  • virsh dumpxml instance-00000adb and look for the image file. On mine, this is /var/lib/nova/instances/<server_guid>/disk but that may not always be the case?
  • yum install libguestfs-tools
  • truncate -r /var/lib/nova/instances/d887249a-0d95-473e-b4f2-41f71df4dbb5/disk /var/lib/nova/instances/d887249a-0d95-473e-b4f2-41f71df4dbb5/disk.new
  • truncate -s +2G /var/lib/nova/instances/d887249a-0d95-473e-b4f2-41f71df4dbb5/disk.new
  • virt-resize --expand /dev/sda1 /var/lib/nova/instances/d887249a-0d95-473e-b4f2-41f71df4dbb5/disk /var/lib/nova/instances/d887249a-0d95-473e-b4f2-41f71df4dbb5/disk.new
  • mv disk disk.old ; mv disk.new disk

NB - mine didn't quite work when I booted that up again, not got time to investigate yet but it can't be far off that, and hopefully this helps.

Once you've managed to boot that up again, then you can shut it down and create a snapshot from horizon. You can then use that snapshot just like any other image, and launch all subsequent VMs directly from there.

HTH.



来源:https://stackoverflow.com/questions/31295416/openstack-instance-does-not-use-the-entire-hard-disk

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!