知方号

知方号

如何在vmware下的虚拟机中安装openstack

如何在vmware下的虚拟机中安装openstack?

OpenStack几乎支持现在所有主流的虚拟技术和Hypervisor,如KVM,Hyper-V,LXC,QEMU,UML,VMWareESX/ESXi,Xen/XenServer等,未来还会支持OpenVZ和VirtualBox.不过OpenStack首选的Hypervisor是KVM,OpenStack安装后默认使用的是KVM(–libvirt_type=kvm),不需要特别配置。如果由于某种原因,比如服务器CPU不支持IntelVT-x/AMD-V不能使用KVM或者想简单尝试一下另外一种Hypervisor怎么办呢?方法很容易,1、更改OpenStackNova的配置文件(–libvirt_type);2、给所有的Compute结点装上相应的Hypervisor就可以了。以下以LXC为例来说明如何更换OpenStackNova的Hypervisor,LXC使用的是与Xen和KVM完全不同的虚拟技术,和OpenVZ的容器技术有点类似。

  首先在所有openstacknovacompute结点上替换现有的nova-compute-kvm到nova-compute-lxc:

  $sudoapt-getinstallnova-compute-lxc

  LXC使用cgroup文件系统来限制资源和进程,libvirt需要cgroup文件系统来运行LXC,我们只要在novacompute上创建一个ctroups目录并且在/etc/fstab最后加上none/cgroupscgroupcpuacct,memory,devices,cpu,freezer,blkio00这行就可以了,别忘了重启系统:

  $sudomkdir/cgroups

$vi/etc/fstab

none/cgroupscgroupcpuacct,memory,devices,cpu,freezer,blkio00

$sudoreboot

  重启后可以看到/cgroups下面多了很多东西:

  $ls/cgroup/

blkio.io_mergedcpu.shares

blkio.io_queueddevices.allow

blkio.io_service_bytesdevices.deny

blkio.io_serviceddevices.list

blkio.io_service_timelibvirt

blkio.io_wait_timememory.failcnt

blkio.reset_statsmemory.force_empty

blkio.sectorsmemory.limit_in_bytes

blkio.throttle.io_service_bytesmemory.max_usage_in_bytes

blkio.throttle.io_servicedmemory.memsw.failcnt

blkio.throttle.read_bps_devicememory.memsw.limit_in_bytes

blkio.throttle.read_iops_devicememory.memsw.max_usage_in_bytes

blkio.throttle.write_bps_devicememory.memsw.usage_in_bytes

blkio.throttle.write_iops_devicememory.move_charge_at_immigrate

blkio.timememory.numa_stat

blkio.weightmemory.oom_control

blkio.weight_devicememory.soft_limit_in_bytes

cgroup.clone_childrenmemory.stat

cgroup.event_controlmemory.swappiness

cgroup.procsmemory.usage_in_bytes

cpuacct.statmemory.use_hierarchy

cpuacct.usagenotify_on_release

cpuacct.usage_percpurelease_agent

cpu.rt_period_ustasks

cpu.rt_runtime_us

  修改OpenStackNova配置,将nova-compute.conf里面的–libvirt_type=kvm改成lxc:

  $sudovi/etc/nova/nova-compute.conf

--libvirt_type=lxc

$sudorestartnova-compute

  重启所有novacompute结点上的nova-compute服务,有必要的话重启所有novacompute结点。

  那镜像怎么办呢?以前为KVM上传的镜像也可以用在LXC上吗?嗯,可以。下载oneiric-server-cloudimg-amd64.tar.gz解压并镜像到OpenStack:

  $wget

$tarzxvfoneiric-server-cloudimg-amd64.tar.gz

$euca-bundle-image-ioneiric-server-cloudimg-amd64.img

$euca-upload-bundle-boneiric-m/tmp/oneiric-server-cloudimg-amd64.img.manifest.xml

$euca-registeroneiric/oneiric-server-cloudimg-amd64.img.manifest.xml

$euca-describe-images

IMAGEami-00000001oneiric/oneiric-server-cloudimg-amd64.img.manifest.xmlavailableprivatex86_64machineinstance-store

$euca-run-instances-kvpsee-tm1.tinyami-00000001

$euca-describe-instances

RESERVATIONr-4bbu7bd7sanbidefault

INSTANCEi-00000001ami-00000001172.16.39.6172.16.39.6runningvpsee(vpseecloud,node00)0m1.tiny2012-01-20T08:04:05Znovaami-00000000ami-00000000

  需要注意的是,OpenStack目前不支持混合Hypervisor,也就是说所有novacompute结点上必须使用同一种Hypervisor,不过支持混合Hypervisor的OpenStack正在计划开发中。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。