KVM中Linux虚拟机的硬盘添加方法

最近虚拟机中运行的东西比较多,很多。而刚启动的时候虚拟机分配的磁盘比较少,随着日志还有平时的上传文件的积累,磁盘空间报警了。网上查了下资料,自己也做了下实验。总结下给虚拟机增加磁盘的一些硬盘空间的方法。
 
对于sda/vda等格式的硬盘
 
环境:CentOS 6.1
 
虚拟机的属性:domainname  test
 
              Disk path      /var/lib/libvirt/images/test.img
 
硬盘分区:
 
[root@localhost ~]# df -hT
 
Filesystem    Type    Size Used Avail Use% Mounted on
 
/dev/vda1    ext4    6.8G 3.2G 3.3G 50% /
 
tmpfs        tmpfs    499M    0 499M  0% /dev/shm
 
需要添加硬盘空间。
 
方法1
 
思路,既然是少一块硬盘,那么我们就直接给虚拟机加一块硬盘就好了,然后直接挂载到根分区的一个目录下面。这样我根分区的硬盘空间就扩展了。
 
解决方法1
 
 A,生成一块新的硬盘
 
    使用virt-manager很容易,直接在虚拟的属性中点击“添加硬件”----“storage”选择多大的空间,驱动类型,缓存模式。然后点击完成。注意,有些硬盘是支持热插拔的,有些不支持。除了IDE格式的硬盘外,其他的都支持热插拔,这就意味着,如果添加的是IDE的硬盘的话,需要对虚拟机进行重启,使他识别新添加的硬盘。
 
如果采用virsh命令添加的话。采用命令
 
#qemu-img create -f raw test_add.img 10G
 
//说明,生成一块新的raw格式的空盘
 
#virsh attach-disk test /var/lib/libvirtd/images/test_add.img vdb —cache none
 
或者#virsh edit test 在xml中的disk后面添加如下几行。
 
    <disk type='file' device='disk'>
 
      <driver name='qemu' type='raw' cache='none'/>
 
      <source file='/var/lib/libvirt/images/test_add.img'/>
 
      <target dev='vdb' bus='virtio'/>
 
    </disk>

 B,在虚拟机中对硬盘进行格式化
 
登录到虚拟机中,首先查看是否能新识别硬盘
 
 #fdisk -l        查看是否回显示新添加的硬盘/dev/vdb
 
然后,对vdb进行格式化,
 
#mkfs.ext4 /dev/vdb
 
接下来,新建一个目录用来挂载新的硬盘
 
#mkdir  /test
 
#mount /dev/vdb /test
 
最后,将该挂载添加到开机启动中
 
#blkid /dev/vdb          //获取硬盘的UUID
 
/dev/vdb: UUid="19fc1d1d-7891-4e22-99ef-ea3e08a61840" TYPE="ext4"
 
#vim /etc/fstab            //添加开机加载,在最后一行加入
 
UUID=19fc1d1d-7891-4e22-99ef-ea3e08a61840 /test ext4 defaults        1 2
 
到此方法一,添加完毕
 
方法2,直接拉升分区
 
思 路,采用挂载的方法是而外添加了一块盘,有没有一种方法可以直接对硬盘进行拉伸。qemu-img中提供了一个resize的命令,但是该命令只是单纯的 简单了拉升或者缩小了一个raw的img镜像大小,对于其中的分区却不能进行修改。我需要对其中的的分区进行拓展。很碰巧红帽子提供这种插件可以时间。此方法是采用红帽子自带的插件virt-resize进行拓展。该命令首先是获取原来的分区信息,还 有其他文件信息。然后对新的镜像进行重新分区、格式化。最后拷贝原镜像中的文件到新文件系统中,再用新拓展的镜像替换原有镜像。因为实际采用copy的方 式,所以他花的时间比较长,如果是一个大镜像不建议使用此方法

相关推荐