1.为window的虚拟机扩容
先将磁盘镜像文件.img容量加大,进入windows操作系统使用diskgenius等类型的软件将“未分配空间”并入系统在用磁盘。
先将虚拟机关闭
virsh shutdown vm1-clone
查看虚拟机磁盘大小
qemu-img info /var/lib/libvirt/images/vm1-clone.img
扩展磁盘
qemu-img resize /var/lib/libvirt/images/vm1-clone.img +5G
接下来就可以打开虚拟机使用磁盘操作软件将“未使用“的磁盘并入了
2.为linux虚拟机扩容---非逻辑卷的虚拟机
第一种方法是创建一个新的磁盘镜像文件,直接挂载到linux虚拟机上。此法简单不再单独叙述
第二种方法是创建一个全新的空的磁盘镜像,并将旧的磁盘镜像整体迁移到新的上面,此种方法操作简单并且没有风险,推荐使用。
第三种方法也是给原镜像文件直接增加磁盘空间,然后再把新旧磁盘空间融合,不过由于centos没有类似windows的磁盘操作软件,如果操作不当会在磁盘融合那部将整个磁盘给损坏,所以这个方法慎用。(2019-8-27更新:找到叫growpart的工具,可以实现安全扩容)
方法2:
首先创建一个大的镜像文件,这个镜像文件将要替代你原有的镜像,所以需要多大的空间就创建多大的镜像
#qemu-img create -f raw outdisk.img 15G
新的镜像outdisk.img一般会被创建在桌面,也可使用find / -name outdisk.img 来查找被创建在了哪个目录
使用virt-resize命令将旧镜像的内容迁移到新镜像,其中indisk为input,即旧镜像。outdisk为output,即新的镜像。
#virt-resize --expand /dev/sda2 /var/lib/libvirt/images/indisk.img /root/Desktop/outdisk.img
如果提示没有virt命令,则先需要安装libguestfs-tools工具。
#yum install libguestfs-tools
成功运行后,虚拟系统解除挂载indisk.img,并挂载新的镜像文件outdisk.img,开机测试。测试通过后可将旧的镜像indisk.img删除。
关于libguestfs-tools工具的其他用法可参考:
https://blog.csdn.net/chenxin2tj/article/details/100092212
方法3:
先直接给原镜像扩容,然后开机进入虚拟机,安装 growpart。
centos6需要安装以下三个包
yum install cloud-init cloud-utils-growpart dracut-modules-growroot
生新生成 initramfs
dracut -f
dracut 把 growroot 的脚本封装到 initramfs 里面。 把系统启动时, initramfs 利用 growpart 命令把根分区进行扩展。然后启动真正的 kernel, 之后 cloud-init 服务会自动把文件系统进行扩展。(以上步骤未亲测)
centos7只需安装以下两个包
#yum install cloud-init cloud-utils-growpart
执行growpart指令对需要扩容的分区进行容量扩展操作
#growpart /dev/sda 2 //参数是要操作的磁盘代号,需要扩容的分区id
#reboot //要重启系统才能识别到新的分区大小
PS:本次在CentOS中扩容的/
分区是这块磁盘上的最后一个分区,也就是磁盘扩展后增加的空间是加在附加在磁盘的最后的,所以可以通过growpart
工具修改硬盘的分区表,将这部分空间直接append到最后一个分区(也就是我这里原本/
分区的后面了)所以如果你要扩容的分区在你的系统上,并非是磁盘上的最后一个分区的话,可能无法直接无损扩充分区;谨慎使用此方法扩容,有数据丢失风险
3.为linux虚拟机扩容---逻辑卷的虚拟机
查看卷组相关信息,通过这个命令可以查看本机有几个逻辑卷组,及卷组名分别是什么,接下来分配空间的时候需要用到卷组名。
# vgscan
Reading all physical volumes. This may take a while...
Found volume group "Xvdbgroup" using metadata type lvm2
Found volume group "centos" using metadata type lvm2
首先使用命令fdisk -l查看本机有几块物理硬盘,并找出哪块硬盘为新增的未分配空间,本次假设为sda
1. 创建pv
#pvcreate /dev/sda
//新增硬盘 即:pvcreate /dev/sda
2. 把创建的新pv加入vg
#vgextend 卷组名 /dev/sda
//即:vgextend centos /dev/sda
3. 扩容逻辑卷并制作xfs文件系统
#lvextend -r -l +100%FREE /dev/卷组名/逻辑卷名
//即:lvextend -r -l +100%FREE /dev/centos/centos-home
如果所需调整硬盘比较大,可能第三步等待时间会比较长。以上步骤之后重启系统,使用df -h 就可以看到硬盘空间已经成功扩展
逻辑卷的不同文件系统有不同的扩容方式,以下为详解+实例
当我们在安装系统的时候,由于没有合理分配分区空间,在后续维护过程中,发现有些分区空间不够使用,而有的分区空间却有很多剩余空间。如果这些分区在装系统的时候使用了lvm(前提是这些分区要是lvm逻辑卷分区),那么就可以轻松进行扩容或缩容!不同文件系统类型所对应的创建、检查、调整命令不同,下面就针对xfs和ext2/3/4文件系统的lvm分区空间的扩容和缩容的操作做一记录:
########################################################
特别注意的是:
resize2fs 命令 针对的是ext2、ext3、ext4文件系统
xfs_growfs 命令 针对的是xfs文件系统
########################################################
1)ext2/ext3/ext4文件系统的调整命令是resize2fs(增大和减小都支持)
1 2 3 4 5 6 |
|
2)xfs文件系统的调整命令是xfs_growfs(只支持增大)
1 2 3 4 5 6 |
|
实例1(当系统上还有空闲空间的时候)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
|
虽然xfs文件系统只支持增加,不支持减少。但并不是说在xfs系统文件下不能减小,只是减小后,需要重新格式化才能挂载上。这样原来的数据就丢失了!
实例2: 这种情况只适用于系统刚安装好,逻辑分区内没有什么数据或数据不多且不重要可以删除或拷贝的情况下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
|
#################### 温馨提示 #######################
若是减小分区空间,减小前必须要先卸载这个分区。如果卸载有问题,解决如下:
[root@localhost ~]# umount /home/
umount: /home: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
提示无法卸载,则是有进程占用/home,使用如下命令来终止占用进程:
[root@localhost ~]# fuser -m -k /home
/home: 1409 1519ce 1531e 1532e 1533e 1534e 1535e 1536e 1537e 1538e 1539e 1541e 1543e 1544e 1545e 1546e 1547e 1548e 1549e 1550e 1601m
再次卸载home分区就成功了。
[root@localhost ~]# umount /home/
-k 表示自动把霸占home分区的进程kill掉!
如果你不是很明确是否要杀死所有霸占设备的程序,还可以加一个-i 参数,这样每杀死一个程序前,都会询问!(即fuser -m -v -i -k /home)
综合参考
http://blog.csdn.net/hnhuangyiyang/article/details/50904078
http://blog.csdn.net/wenwenxiong/article/details/48056105
http://blog.sina.com.cn/s/blog_43b678810102vy9c.html
2019-8-27新增部分参考
https://xiexianbin.cn/openstack/glance/2016-12-14-centos-root-partition-auto-grow/
https://www.moonfly.net/archives/49.html
卷组部分参考
https://blog.51cto.com/junongs/2330676?source=dra
https://blog.51cto.com/linsj/2134664
详解+实例部分