Openstack中虚拟机的Resize功能详解

本文详细介绍了在Openstack中如何使用Resize功能扩展虚拟机资源,包括在单节点和多节点环境下的操作步骤,以及遇到的问题和解决方法。主要内容涉及源码分析、磁盘格式转换、网络配置调整等。
摘要由CSDN通过智能技术生成
本文由guwenwu写于2012年08月11日,转载请注明出处,谢谢!

   摘要:在Openstack中生成VM后,由于业务的变更或业务量的增加,需要对VM进行扩展。目前Openstack中提供了Resize功能,本文对Openstack中的源码进行了测试和分析,并进行了一定的修改。

环境:2台Centos6.2机器
          HOSTA:10.28.170.93   8core 16G 实体机 安装和运行全部Openstack组件
          HOSTB:10.28.168.55   4core 4G   虚拟机 安装和运行nova-compute nova-network

一.Openstack中Resize功能源码分析
    Openstack的resize功能默认的操作是在两台HOST(宿主机)之间进行静态的迁移(VM会重启,内存状态无法保存),但是通过修改配置文件,可以允许Openstack在一台HOST上进行RESIZE而不用迁移。
    Resize的过程中,vm主要经过以下几个方法的处理:
    def prep_resize(self, context, instance_uuid, instance_type_id, image,
                    **kwargs):
    def prep_resize(self, context, instance_uuid, instance_type_id, image,
                    **kwargs):
    def finish_resize(self, context, instance_uuid, migration_id, disk_info,
                      image):
   详细的代码就不一一例举了,有兴趣的朋友可以自行阅读源码。
   主要的操作步骤如下:
    1.检查VM虚拟磁盘格式是否为qcow2,如果是的话,将磁盘格式转换为RAW
        qemu-img convert -f qcow2 -O raw 
    2.将虚拟磁盘从HOST A scp到HOST B上
    3.用以下命令对虚拟磁盘大小进行重置
    qemu-img resize
    e2fsck -fp
    resize2fs
     4.如果use_cow_images设置为true,则将磁盘重新转为qcow2格式。
     5.重新获取网络配置,在HOST B上设置DHCP绑定和Iptables规则。
     6.修改XML文件,重新启动虚拟机。
  OK啦,整个Resize的工作就完成了。下面重点讲一下实际操作中遇到的问题和BUG

二.在一个单节点中进行resize

同一机器中进行resize需要在配置文件nova.conf中添加:
--allow_resize_to_same_host=True
重启服务:
service nova-api restart
service nova-compute restart

三.在多个节点上进行resize
3.1.采用共享存储
    从源码上来看, Openstack中resize这个功能并没有考虑使用共享存储的情况。因此需要对源码进行一些改造,并不复杂,在这里就不交代了,有兴趣的朋友可以留言。PS:测试多节点时请注释掉--allow_resize_to_same_host=True
3.1.1.在HOST A上安装配置NFS服务器
(1)检查是否安装nfs(Centos6.2默认是安装好了的)
        rpm -qa|gre
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值