henda 发表于 2015-4-11 08:31:57

How to shrink disk for KVM

  如何expand虚拟机磁盘分区相对于shrink比较简单:
  1.  创建一个要扩展size大小的目标img文件
  2.  选择要扩展的分区
  3.  virt-resize --expand /dev/sda1 source.img target.img
  要保证target比source的文件大。
  shrink稍微复杂一些,因为考虑到内部文件系统的使用量,如果过度缩小会破坏文件系统。
  首先要查看确定文件系统的使用量,和将要缩小的size
  1.  virt-df source.img
  使用guestfish 读取source.img (不要加-i 自动挂载,对文件系统做操作,不要保持这个设备在使用)
  2.  guestfish -a source.img
  输入run,正式加载磁盘文件
  3.  run
  下面和bash下的操作类似,扫描分区
  4.  e2fsck-f /dev/vda1
  调整分区大小,一定要保证调整后的大小要比内部文件系统的使用量大,否则会出错。
  5.  resize2fs-size /dev/vda1 5G
  调整完成,退出
  6.  exit
  创建shrink的目标文件,因为缩小了分区,但是磁盘的大小还是原先的,占用量并没有变化。
  7.  qemu-img create -f raw target.img 5G
  使用guestfish的工具virt-resize 缩减磁盘文件的大小,原理相当于同时挂载两个镜像,然后将一个磁盘文件的全部内容和修改的部分拷贝到另一个磁盘中。(不过此方法不适用与直接缩减分区,如果有进展会将新的进度更新)
  8.  virt-resize --shrink /dev/sda1 source.img target.img
  查看新的磁盘文件的状态。
  9.  qemu-img info target.img
  查看调整后的磁盘内部文件系统的使用量。
  10.  virt-df target.img
页: [1]
查看完整版本: How to shrink disk for KVM