如何在virtualbox中部署openstack

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在virtualbox中部署openstack相关的知识,希望对你有一定的参考价值。

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

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

$ vi /etc/fstab
none /cgroups cgroup cpuacct,memory,devices,cpu,freezer,blkio 0 0

$ sudo reboot

  重启后可以看到 /cgroups 下面多了很多东西:
  $ ls /cgroup/
blkio.io_merged cpu.shares
blkio.io_queued devices.allow
blkio.io_service_bytes devices.deny
blkio.io_serviced devices.list
blkio.io_service_time libvirt
blkio.io_wait_time memory.failcnt
blkio.reset_stats memory.force_empty
blkio.sectors memory.limit_in_bytes
blkio.throttle.io_service_bytes memory.max_usage_in_bytes
blkio.throttle.io_serviced memory.memsw.failcnt
blkio.throttle.read_bps_device memory.memsw.limit_in_bytes
blkio.throttle.read_iops_device memory.memsw.max_usage_in_bytes
blkio.throttle.write_bps_device memory.memsw.usage_in_bytes
blkio.throttle.write_iops_device memory.move_charge_at_immigrate
blkio.time memory.numa_stat
blkio.weight memory.oom_control
blkio.weight_device memory.soft_limit_in_bytes
cgroup.clone_children memory.stat
cgroup.event_control memory.swappiness
cgroup.procs memory.usage_in_bytes
cpuacct.stat memory.use_hierarchy
cpuacct.usage notify_on_release
cpuacct.usage_percpu release_agent
cpu.rt_period_us tasks
cpu.rt_runtime_us

  修改 OpenStack Nova 配置,将 nova-compute.conf 里面的 –libvirt_type=kvm 改成 lxc:
  $ sudo vi /etc/nova/nova-compute.conf
--libvirt_type=lxc

$ sudo restart nova-compute

  重启所有 nova compute 结点上的 nova-compute 服务,有必要的话重启所有 nova compute 结点。
  那镜像怎么办呢?以前为 KVM 上传的镜像也可以用在 LXC 上吗?嗯,可以。下载 oneiric-server-cloudimg-amd64.tar.gz 解压并镜像到 OpenStack:
  $ wget
$ tar zxvf oneiric-server-cloudimg-amd64.tar.gz

$ euca-bundle-image -i oneiric-server-cloudimg-amd64.img
$ euca-upload-bundle -b oneiric -m /tmp/oneiric-server-cloudimg-amd64.img.manifest.xml
$ euca-register oneiric/oneiric-server-cloudimg-amd64.img.manifest.xml

$ euca-describe-images
IMAGE ami-00000001 oneiric/oneiric-server-cloudimg-amd64.img.manifest.xml available private x86_64 machine instance-store

$ euca-run-instances -k vpsee -t m1.tiny ami-00000001

$ euca-describe-instances
RESERVATION r-4bbu7bd7 sanbi default
INSTANCE i-00000001 ami-00000001 172.16.39.6 172.16.39.6 running vpsee (vpseecloud, node00) 0 m1.tiny 2012-01-20T08:04:05Z nova ami-00000000 ami-00000000

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

如何快速部署OpenStack环境

OpenShit是一款能够在Ubuntu14.04系统上快速部署Openstack的小工具,它使用Shell脚本和Python脚本完成对Openstack各组件的安装和配置.并且可以方便的更改配置参数重新配置,重启服务清空数据库等等.利用命令可以进行完全的自动化安装和配置.以下是OpenShit的地址

OpenShit命令介绍
./openshit.sh <--all|service_name> start|stop|restart
可对各个(或者全部)Openstack组件进行启动,停止,重启操作.
./openshit.sh <--all|service_name> install|uninstall|download
可对Openstack各个组件进行 安装,卸载,下载包 操作
./openshit.sh <--all|service_name> config
可以配置组建建立数据库, 原先的配置文件在config-backup文件夹中按照时间备份起来,使用rollback.sh脚本可以方便的回滚配置文件改动
./openshit.sh <--all|service_name> clean
可以清除服务的数据库, 若服务出问题了可以直接清掉数据库然后重新config
接下来我们使用OpenShit在Ubuntu14.04上部署OpenStack.这里有几个小要求:
1. Ubuntu14.04分区一定要有足够的空间.OpenStack在创建实例的时候会使用分区的空间,空间不够则无法创建实例.测试用Ubuntu14.04分了100G,足够使用了.

2. 建议最好是新装的ubuntu分区.如果装过神马DevStack没装成功一堆垃圾留在系统库里再用OpenShit不成功那就不好意思了.
不多说现在开始
1.安装git, 使用git下载openshit
git clone https://github.com/windworst/openshit.git.

2.修改配置文件setting.conf.
里面有很多密码:数据库密码,服务密码.默认的可以更改,不改也没什么.
改变网络配置.配置文件内IP值都设置称自己的IP, 网卡设置成自己的网卡(默认为eth0).

3.配置文件修改完成后开始安装
./openshit.sh --all install.
这个命令会 问你是否需要配置软件源, 第一次使用openshit请选择y, 所以命令可以这样写:
echo y | ./openshit.sh --all install

4.一段时间后安装完成,请输入
./openshit.sh --all config
会根据setting.conf的值修改各个组件的配置文件以及数据库配置.

5.完成后
运行source admin-env.sh; nova service-list 查看服务状态若都为up安装成功
在浏览器内打开 http://localhost/horizon即可看到Openstack管理界面输入密码可登陆

现在OpenStack成功部署到了Ubuntu14.04服务器上.
为了成功运行一个实例,我们需要制作并上传一个镜像, 配置网络,启动实例.
这里制作一个ubuntu14 server 的镜像
1. 制作镜像
qemu-img create -f qcow2 ubuntu.img 20G
kvm -cdrom ubuntu-14.04-server-amd64.iso -drive file=ubuntu.img,if=virtio,index=0 -boot d -net nic -net user
这里就是直接从光盘安装ubuntu14-server了 装好就行

2.上传镜像
在openshit目录中 执行 source admin-env.sh
执行
glance image-create --name "ubuntu" --file ubunut.img --disk-format qcow2 --container-format bare --is-public True --progress
进度条快速滚过,上传完成
3. 创建网络
在openshit目录中 执行 source admin-env.sh (前面执行过了这里就不用执行了)
执行
nova network-create v-net --bridge br100 --multi-host T --fixed-range-v4 10.0.1.0/29
这里 v-net是网络名字 10.0.1.0/29 是网段和要分配的主机数量 不要设置网段跟本网段一样,否则蛋疼超乎你想象
执行
nova net-list
可以看到刚才创建的网络
4. 创建实例
在web管理端 镜像 栏内 点 运行 即可创建实例 (会分配刚才创建网络的ip地址)
点击控制台,可以通过vnc看到虚拟机的屏幕
这里有个问题 虚拟机和主机能互相ping通(需要关掉防火墙),不过无法访问外网,可能是哪里没有设置.
参考技术A OpenStack最初是Rackspace和NASA共同投入的,现在是由开源社区维护。
在9月18日即将在San Diego举行的Openstack Summit上也将有关于最新版本Folsom的消息。
值得关注。
它就是一个IaaS的云平台软件。
实际应用场景非常多,凡是IaaS可以应用的地方Openstack都可以做到。
比如虚拟主机,出售计算资源,公司内部IT云计算解决方案等等。

以上是关于如何在virtualbox中部署openstack的主要内容,如果未能解决你的问题,请参考以下文章

利用脚本在Virtualbox中部署fuel Openstack

视频 - 在 VirtualBox 中部署 OpenStack

openstack 之 使用virtualbox 脚本自动安装mirantis openstack

自动化部署--openstack

Create a virtualbox Based CentOS 6 OpenStack Cloud Image

kolla单节点部署openstack