陈沙克

Jul 252016
 

今天好好学习一下红帽8.0发布声明,也就是liberty版本的的内容,看看有什么新的东西,我能理解的,记录下来。

https://access.redhat.com/documentation/en/red-hat-openstack-platform/version-8/release-notes/

国外软件的发布声明,不仅仅包含所谓的新功能,还会有很多没有解决的问题,待解决的问题,含金量比较高,非常值得学习。

红帽的Liberty,是跑在Red Hat Enterprise Linux 7.2.。

guest系统支持

经常有很多老旧系统,需要支持,那么kvm支持哪些guest

https://access.redhat.com/articles/973163

简单说,就windows 2003和XP不支持。

组件支持和插件

这个需要关注,看看那些组件,红帽测试认为可以真正使用。那些是在技术预览阶段。

https://access.redhat.com/articles/1535373

Sahara,已经是完全支持,这也是我想好好研究一下的项目。

局限

有客户提到过,要搞一个1PB的存储挂给虚拟机,搞128个vcpu的虚拟机,到底kvm是否支持,这里好好看看。

https://access.redhat.com/articles/1436373

backup

这是企业用户最关注的问题。volume的backup,如何做一个快照。现在volume在attach的状态下,已经可以做快照。这个特性,要认真验证。

Compute

  1. nova set-password server
  2. Disk QoS (Quality of Service) when using Ceph RBD
  3. Mark host down API

上面几个特点,需要好好关注。

Identity

现在OpenStack的Dashboard体验不太好,感觉很慢,一个原因是keystone的token造成的。

Experimental support has been added for keystone tokenless authorization using X.509 SSL client certificates.

不用token,性能会不会好点呢。

Image

镜像签名,防止修改,对一般用户,意义不大。

OpenStack的Glance服务,技术上一直都没太多追求。

Artifacts Repository (experimental API),我的理解是是给虚拟机提供一个所谓的repo源,不过没搞懂如何使用。

Neutron

  1. QOS:带宽限制,是一直用户比较关注。
  2. OVS 2.4
  3. RBAC,非常有意思的一个功能(某个网络仅仅允许几个租户使用。allowing an administrator to control which tenants are granted permission to attach instances to a network.

技术预览项目

  1. Rally:作为技术预览,提供rally的测试服务。目前Fuel也考虑集成Rally作为产品的一部分。
  2. DPDK:OVS+DPDK
  3. OpenDaylight:Beryllium
  4. Real Time KVM Integration:NFV
  5. Containerized Compute Nodes:Atomic+kolla
  6. Cell
  7. DBaaS
  8. DVR
  9. DNS as service
  10. Erasure Coding (EC)
  11. Manila
  12. vpn
  13. firewall
  14. gnocchi

Enhancement

  1. 支持cinder backup到对象存储,ceph或swift
  2. With this release, the ‘Metering’ panel in Dashboard (horizon) has been disabled due to performance issues.
  3. virt-customize -a overcloud-full.qcow2 –root-password password:<my_root_password>
  4. Red Hat OpenStack Platform director only supports a High Availability (HA) overcloud deployment using three controller nodes.
  5. Red Hat Gluster Storage is deprecated as of this release, and all Gluster-related drivers will be removed in a future release.
  6. The ability of the libvirt driver to set the admin password has been added. To use this feature, run the following command: “nova root-password [server]”.
Jul 052016
 

时间真的很快,孩子一眨眼就6岁,应该上小学。本来应该是上个月完成的文章,因为孩子上学,一直等到孩子上学的事情定下来,才开始写这篇文章。六岁,也可以做一个阶段性的总结

基本情况

  • 身高:123
  • 体重:46斤

相比五岁的时候,长了8厘米。算是中等身材。

上学

对于现在的家庭,小孩上学,都是头等大事。每个人对孩子的教育的观点,看法,其实差异很大。上次请教一位朋友北京上学的问题,他说就像小马过河,经历一次就明白了。

估计我们的情景也比较典型,在通州买房,北漂。对于在北京正常上班的一族来说,所谓五证,其实并不是太麻烦的事情。

2016年的通州上小学的情况,对于外地人来说,没有北京市居住证的话,那么只能依靠电脑派位,是否能派中你希望的学校,只能考验你的运气。

其实孩子的运气,真的一向不错。

  1. 老婆怀他的时候,北京医院实行电话挂号,北京妇产医院,我没排过队挂号
  2. 老婆生孩子的时候,由于过了预产期,主任医师主动给了一张床位,没花一分钱,并且进入产房还特别关照
  3. 儿子第一次生病住院,居然医院就马上有床位,顺利入住。
  4. 儿子上幼儿园,小区上,也没折腾
  5. 儿子上小学报名,通常家长都是要排队排几个晚上,今年北京改革,网上报名就可以。
  6. 按照我们房子所在的区域,只能上一所最差的小学。最近两年改成电脑派位,赌一把。

在电脑程序派位的情况下,儿子的运气,战胜了北京户口,居住证,学区房。中签后南仓小学。

这次后南仓小学一共招生224人,外地的是49人。今年通州外地的小孩数量其实不算太多,1377人,全部都有学校可上,还是很不错的。

其实我心目中的所谓好学校的标准,和别人不太一样。作业少,是我衡量学校的好坏的重要标准。后南仓小学,是以作业少而著称。我真的希望孩子未来六年快快乐乐。对于他们这代来说,读不读博士,是自己选择的问题,不存在能不能读的问题。

其实我以前单位是可以办理居住证,手续都快办完,我后来离职,也就一直都没有居住证。没法帮孩子上学任何忙。

 

生病

今年上半年,孩子因为咳嗽,担心肺炎,去医院检查,打了两天的点滴,后来医生建议去儿研所看看耳鼻喉科,可能有点过敏,第一次去儿研所,不过医生倒是很好,没啥毛病,开点药就没问题。

在北京,确实有一个好处,看病。去到儿研所,基本啥问题都解决了,你也不需要担心。你也不用再想别的。

旅游

最近半年,由于孩子上学,没啥心情带他出去玩,在他上学前,争取带他出去好好玩玩。

在过去的3年里,孩子已经去过

  1. 香港迪士尼
  2. 日本迪士尼
  3. 泰国普吉

这些地方我都没去过,都是老婆,她父母一起带他去的。

幼儿园花费

幼儿园7月14日,举行毕业典礼。到时候好好拍照片放到文章里。算了一下,3年里,交给幼儿园的Money,应该差不多有10w,真不少。包括

  1. 幼儿园费用,每月1800
  2. 饭费400
  3. 外教300
  4. 参加幼儿园搞的培训班
  5. 幼儿园搞的活动

这就是北京小孩的幼儿园的费用。这是3年前的价格,北京这边幼儿园一个惯例就是你进幼儿园的时候的价格,每年都是一样的。听说今年幼儿园小班的费用,已经超过4k。

Jun 282016
 

使用Devstack的时间其实很长。我第一次成功安装OpenStack就是使用Devstack,记忆很清楚,那时候Devstack项目刚刚成立,时间大概是2011年10月份的时候。

Devstack,只要的用户群,是开发者,直接使用源码安装,Shell的脚本,使用的出神入化,如果你希望深入了解学习如何安装OpenStack,那么代码本是就是最好的教程。

Devstack最近几年,其实变化很大,尤其在OpenStack采用大帐篷策略,项目暴涨,这也导致Devstack需要重新考虑,提供插件的机制,让更多的项目可以更加方便集成Devstack上。

这其实也导致很多以前写的文章都已经失效,很多设置已经不起作用。

真正的OpenStack玩家,一定会给Devstack折磨过。希望本文可以帮助大家减轻一点痛苦。

这篇文章是把以前的Devstack使用的文章,修改完成。

操作系统

Devstack目前是支持Ubuntu14.04和CentOS 7,不过全球的OpenStack开发者,大部分都在用Ubuntu 14.04。所以为了减少麻烦,还是建议你使用Ubuntu 14.04

详细的介绍 http://docs.openstack.org/developer/devstack/

使用trystack源

安装devstack痛苦的其中一个原因,是OpenStack代码,都需要从github下载,这样由于网络的原因,经常导致各种错误,简直让人崩溃,各种错误,也根本无法通过google来解决。

目前国内已经提供了完整的OpenStack的github的mirror。

http://git.trystack.cn

这样Devstack成功概率会大大提高。

另外devstack还会下载image,下载的过程也是非常缓慢。trystack也提供大家常用的image下载。

http://images.trystack.cn

 

指定版本

默认无论是Devstack和OpenStack,都是采用Master的代码进行安装,这样经常会出现,今天安装成功,明天失败,代码时刻在变化。所以我们不仅仅要指定OpenStack的版本,还需要指定Devstack的版本,才能提供安装成功的概率。

另外插件的版本,也是指定,如果使用master,也是可能会导致你失败。

目前Devstack的默认安装的组件,就的几个核心模块。如果你希望安装其他模块,就需要通过插件来安装。Devstack支持的插件列表

http://docs.openstack.org/developer/devstack/plugin-registry.html

目前各个项目,基本都会有一个devstack的目录,进入目录,就有介绍如何在devstack把该项目装起来。

https://github.com/openstack/rally/tree/master/devstack

 

网络环境

vmware workstation,安装ubuntu 14.04 虚拟机,记住,最小化安装,仅仅安装ssh server服务就可以。

虚拟机使用NAT网络,虚拟机默认通过dhcp获得的IP地址是

192.168.27.128/24

auto eth0
iface eth0 inet static
        address 192.168.27.128
        netmask 255.255.255.0
        network 192.168.27.0
        broadcast 192.168.27.255
        gateway 192.168.27.2
        # dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers 114.114.114.114
        dns-search test.com

vmware workstation默认设置分配的IP地址池是128开始分配。所以我的

Floating Ip是:192.168.27.102到192.168.27.110

网关是:192.168.27.2

Snap3

Snap4

看图,就应该很清楚 http://docs.openstack.org/developer/devstack/guides/neutron.html

Snap4

设置ubuntu源

对于ubuntu的系统,默认安全会从国外的源安装,导致速度比较慢。

deb http://cn.archive.ubuntu.com/ubuntu/ trusty main restricted universe multiverse
deb http://cn.archive.ubuntu.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://cn.archive.ubuntu.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://cn.archive.ubuntu.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://cn.archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse

允许update

apt-get update

记得同步一下时间

ntpdate ntp.sjtu.edu.cn

 

安装

apt-get install git

下载devstack

cd /home
git clone http://git.trystack.cn/openstack-dev/devstack.git -b stable/mitaka

目前Devstack脚本已经不支持直接使用root身份运行,你需要创建stack用户运行

cd /home/devstack/tools/
./create-stack-user.sh

修改devstack目录权限,让stack用户可以运行

chown -R stack:stack /home/devstack
chmod 777 /dev/pts/0

切换的stack用户下

su stack
cd /home/devstack

进入devstack目录下,创建local.conf文件,最新版本的devstack,改动很大,我专门写篇文章来介绍local.conf 设置参数

这个local.conf 文件最关键的地方

更多的local.conf 例子,可以查看 https://github.com/shake/devstack  会把我验证通过的配置文件都放到github上,方便大家。

你也可以使用wget命令,直接下载我的local.conf 配置文件。

wget -O - https://raw.githubusercontent.com/shake/devstack/gh-pages/local.conf-sample-mitaka > ./local.conf

例子

[[local|localrc]]

# use TryStack git mirror
GIT_BASE=http://git.trystack.cn
NOVNC_REPO=http://git.trystack.cn/kanaka/noVNC.git
SPICE_REPO=http://git.trystack.cn/git/spice/spice-html5.git

#OFFLINE=True
RECLONE=True

# Define images to be automatically downloaded during the DevStack built process.
DOWNLOAD_DEFAULT_IMAGES=False
IMAGE_URLS="http://images.trystack.cn/cirros/cirros-0.3.4-x86_64-disk.img"

HOST_IP=192.168.27.128


# Credentials
DATABASE_PASSWORD=pass
ADMIN_PASSWORD=pass
SERVICE_PASSWORD=pass
SERVICE_TOKEN=pass
RABBIT_PASSWORD=pass

HORIZON_BRANCH=stable/mitaka
KEYSTONE_BRANCH=stable/mitaka
NOVA_BRANCH=stable/mitaka
NEUTRON_BRANCH=stable/mitaka
GLANCE_BRANCH=stable/mitaka
CINDER_BRANCH=stable/mitaka


#keystone
KEYSTONE_TOKEN_FORMAT=UUID

##Heat
HEAT_BRANCH=stable/mitaka
enable_service h-eng h-api h-api-cfn h-api-cw


## Swift
SWIFT_BRANCH=stable/mitaka
ENABLED_SERVICES+=,s-proxy,s-object,s-container,s-account
SWIFT_REPLICAS=1
SWIFT_HASH=011688b44136573e209e


# Enabling Neutron (network) Service
disable_service n-net
enable_service q-svc
enable_service q-agt
enable_service q-dhcp
enable_service q-l3
enable_service q-meta
enable_service q-metering
enable_service neutron

## Neutron options
Q_USE_SECGROUP=True
FLOATING_RANGE="192.168.27.0/24"
FIXED_RANGE="10.0.0.0/24"
Q_FLOATING_ALLOCATION_POOL=start=192.168.27.102,end=192.168.27.110
PUBLIC_NETWORK_GATEWAY="192.168.27.2"
Q_L3_ENABLED=True
PUBLIC_INTERFACE=eth0
Q_USE_PROVIDERNET_FOR_PUBLIC=True
OVS_PHYSICAL_BRIDGE=br-ex
PUBLIC_BRIDGE=br-ex
OVS_BRIDGE_MAPPINGS=public:br-ex

# #VLAN configuration.
Q_PLUGIN=ml2
ENABLE_TENANT_VLANS=True

# Logging
LOGFILE=/opt/stack/logs/stack.sh.log
VERBOSE=True
LOG_COLOR=True
SCREEN_LOGDIR=/opt/stack/logs

运行

./stack.sh

安装过程,你很可能遇到错误,重复运行就可以,一般错误都会通过。如果反复,还是停留在相同的错误,那么你很可能就需要重新干净的系统再来一遍,这个主要是因为网络的bridge设置有关。

看看结果

Snap3

装完后,虚拟机是不能重启的,所以你最好是当前状态做一个快照。都是采用暂停。

测试

用admin登录Dashbord,为了测试,我们创建一个project:test,给project创建一个用户

Snap5

使用该该账户重新登录Dashboard

大概的步骤

  1. 创建lan,分配内网IP地址段,记得设置dns
  2. 创建router,连接外网,同时连接lan
  3. 创建test安全组,允许tcp,udp,icmp全部访问
  4. 上传秘钥,或者创建秘钥
  5. 创建虚拟机,分配floating IP,验证网络所有功能

我是用vmware workstation做实验,我在我的笔记本上,可以直接ssh到虚拟机上,那么基本所有的问题都解决,最好是使用秘钥的方式,这样基本各种功能都测试了一遍。

 

 

 

参考文章

http://docs.openstack.org/developer/devstack/guides/neutron.html

http://blog.chinaunix.net/uid-13152448-id-2906443.html

关于如何重启服务等相关问题

http://www.unixarena.com/2015/08/how-to-stop-and-start-openstack-on-ubuntu.html

http://zqfan.github.io/openstack/2015/01/10/devstack/

Jun 202016
 

一直都计划写篇文章介绍Kolla项目。可能是因为了解太多,不知道如何写,还有一种可能,就因为追求写的太正经,导致一直没写。

有一次和朋友介绍Kolla的时候,开玩笑说,其实我也不愿意让你知道kolla,因为这个东西太革命,把我以前积累的安装和部署的经验,全部都报废。不过也确实没啥办法,这是社区的项目,如果真的是革命性,那么你知道只是早晚的事情,为了保持我的专家身份,我也就只能提前告诉你了。

2015年4月份有位朋友去参加温哥华峰会的感受就是:如果OpenStack不支持Docker,那么这很可能是最后一次峰会。OpenStack基金会及时调整方向,全面支持容器。

  1. kolla实现OpenStack容器化
  2. Magnum管理容器和COE (Mesos、 Google的Kubernetes、 Docker Swarm)
  3. Solum实现开发容器化
  4. Murano实现App store 容器化

OpenStack要向外界证明自己有能力管理容器,就必须吃自己的狗食,先把自己容器化。作为OpenStack厂商谈论容器的时候,OpenStack本是没有容器化,那是比较讽刺一件事情。

基本介绍

Kolla项目是2014年9月份,Steven Dake提交的,这位老兄以前是HeatPTL,还是Corosync作者,牛的一塌糊涂。对于OpenStack的项目是非常熟悉,并且以前是红帽工程师,目前跳槽到思科,代表思科推出Kolla项目。

Kolla的目标,就是要做到100个节点开箱即用,所有的组件的HA都具备。简单说,Fuel装完是什么,他就是什么样子。实现的代价肯定比Fuel小很多。

Kolla,就是把目前OpenStack项目用到的所有组件都容器化。

kolla

图片来自刘光亚文章

其实上面图片还可以增强一下,包括下面组件,也实现的容器化

  1. libvirt
  2. qemu
  3. OVS 和linux bridge
  4. Ceph
  5. HAproxy,Keeplived
  6. MariaDB
  7. ELK ( Heka )
  8. MongoDB
  9. rabbitmq

进行了非常彻底的容器化。

把OpenStack组件容器化,其实技术上的挑战最大在于网络OVS和Qemu。目前这些技术难点都已经搞定,剩下就是体力活,对一个一个组件进行容器打包。

目前OpenStack大帐篷管理下的项目,大概是50多个,http://governance.openstack.org/reference/projects/index.html

Kolla项目会对大帐篷里的项目进行build 镜像。这个工作,估计到明年4月份,就能基本完成。目前大家常用的组件

  1. nova
  2. glance
  3. keystone
  4. cinder
  5. heat
  6. neutron
  7. horizon

上面7个组件,包括控制节点的HA,目前已经经过了我的反复测试。后续的Newton版本,应该会集成更多的组件。

Kolla架构

其实我不搞开发,我就说一下我的理解,OpenStack的项目,都会根据功能进行拆分,每个模块做一件事情。社区目前的规划大概是

  • Kolla,主要是负责Docker的镜像制作
  • kolla-Ansible负责容器的配置管理
  • Kolla-Kubernetes,也是负责容器的配置管理

kolla的Docker镜像制作,非常有意思,支持红帽的rpm包,Ubuntu和Debian的Deb包,还能支持源码的方式。理论上你源码制作的镜像,是可以跑在所有的支持容器的操作系统。

你可以选择ansible来做容器的管理,也可以选择Kubernetes来管理。目前ansible已经比较完善,Kubernetes还在积极开发中,估计怎么都还需要1年后,才能真正投入使用。

目前阶段,Kolla还没有安装操作系统的功能。社区的初步考虑是把ironic放到一个容器里,通过这个容器来安装操作系统。

https://blueprints.launchpad.net/kolla/+spec/bifrost-support

希望Newton版本可以实现。

Kolla的生态

Kolla对于所有的OpenStack创业公司,包括Mirantis的Fuel,都是革命性的东西,以前很辛苦写的东西,很可能都作废。个人预测,2017年,OpenStack部署,都会采用容器的方式。

  1. 红帽目前的Liberty产品,计算节点已经支持使用kolla的容器来部署
  2. Fuel,也已经开始考虑采用Docker来部署OpenStack
  3. Rackspace已经采用LXC来部署OpenStack
  4. Canonical采用LXD来部署OpenStack

Snap4

从上面可以看到,红帽,思科,九州云,Intel,IBM和Oracle,都是投入在积极开发。从Mitaka,Newton版本,项目的热门程度(Review,Commit,人天投入)都是排名前十,这是非常不容易的做到的。

 

Kolla解决的问题

过去,无论是OpenStack创业公司,还是企业尝试OpenStack,在安装和部署,都花费和消耗大量的精力。这其实也是影响OpenStack推广的一个重要障碍。如何才能让大家从安装部署中解脱出来呢?如何才能让大家把精力放到如何用好OpenStack上呢?用好OpenStack,才能真正体现出OpenStack的价值。

采用Kolla来部署OpenStack,装好系统后,你大概只需要10分钟的时间,就可以搭建完成full feature的功能OpenStack。各种社区的最佳实践,高可用,都集成在上面。而且全都是运维人员都明白的python语言。

容器化后的OpenStack,让人感觉真的像积木一样,你需要什么,就拿过来放上去就可以。

这样说可能大家比较容易接受,Kolla让以前很多OpenStack的部署,安装,升级的问题,解决起来更加优雅。

上周见一位朋友谈起OpenStack升级,总结的很好,所谓升级就是把以前的删掉,再装新的版本。如果你是采用包的安装,例如rdo,那你就慢慢熬夜搞定吧,对于容器来说,做到这点就太简单了,非常优雅。

对于部署,已经没有安装的过程,你只需要把相应的容器放到相应的位置,配置管理推送过去就可以。对于升级,你只需要做一个容器的替换就可以实现升级,只需要集中精力去处理数据库的问题就可以。

build image的过程,其实可以官方提供,大家直接使用就可以。

资料

目前kolla的资料不多,官方文档以外,就2位的blog,大家可以参考

kolla项目的Croe 张雷同学的blog http://xcodest.me/

Kolla项目的PTL blog:https://sdake.io/

May 232016
 

现在OpenStack项目越来越多,要想搞清楚每个项目具体用途是啥,就算对于我们OpenStack创业公司,有时候都是有点吃力。很很多好玩的东西,我们不知道,这是比较可惜的事情。

到底从哪个项目开始介绍,选了半天,终于选了这个项目Shaker,和我的名字很类似。开玩笑,是用我名字创建的项目,所以就必须认真学习。

靠一个人的力量的搞定那么多项目,其实也不现实。这次就把我九州云同事江军波 OpenStack应用实战之Shaker安装测试 转载过来。

项目介绍

在以前OpenStack做网络的性能测试是比较麻烦的,各种的网络场景,vlan,vxlan,Flat模式,L3,Dvr,各家厂商的SDN插件,这些场景的性能测试工作量,是非常庞大的,你都需要登录虚拟机里面,使用工具进行互相打压,并且把数据记录下来。这样手工出来的测试结果,很难让人信服。

Shaker项目是Mirantis发起,专门针对OpenStack网络的性能的测试工具。通过模拟不同的网络场景,通过heat的模板,创建虚拟机,并且在虚拟机里运行iperf,iperf3, netperf等工具来对网络进行自动化性能测试,并且把测试的结果用网页形式输出。

目前OpenStack的另外一个著名测试工具Rally, 也是Mirantis发起,对OpenStack进行整体的测试的一个工具,可以对OpenStack的功能,存储的性能进行压力测试,可以测试磁盘的IOPS,并且提供很好的web展示。

Rally和Shaker有各自的重点,两个工具结合起来,在OpenStack交付给用户的场景下,可以提供一份比较客观的验收报告。

环境说明

需要有一个可用的openstack环境,需要配置好heat服务,因为shaker会使用编排服务启动各种场景下的虚拟机,由于测试网络性能,所以计算节点需要两个以上,采用的neutron L3网络。

为了好说明,专门拿一台机器跑Shaker,其实安装在控制节点,也是可以的。控制节点也可以跑计算服务。

本文环境如下

角色 IP 备注
Controller 192.168.1.41 网络节点在上面
Compute1 192.168.1.42  
Compute2 192.168.1.43  
Shaker 192.168.1.43  

 

安装篇

在Shaker机器上 (CentOS 7.2)

安装Shaker项目,这里我把github的源替换成trystack.cn, 为了加快下载的速度。

git clone http://git.trystack.cn/openstack/shaker
cd shaker
pip install

制作镜像

这个环节其实是最容易出错,如果有已经做好的镜像,其实就可以跳过这一步。目前发现制作镜像出现错误都是因为网络原因导致,大家要留意网络。

设置环境变量,这个是需要admin的权限。

source ./keystonerc

你可以设置镜像的创建参数,etc/shaker.conf ,默认参数应该就够用。默认是采用ubuntu的镜像来进行测试

shaker-image-builder

heat,作为一个编排软件,日常其实很少用到,这次倒是体会了一次heat编排功能的强大,shaker-image-builder,大概需要完成的内容大概是:

  1. 创建路由器
  2. 创建内部网络,连接到路由器上,
  3. 把外网连接到路由器上,
  4. 创建一个专用Flavor shaker-flavor
  5. 下载一个ubuntu镜像,上传到glance上
  6. 通过镜像,创建一个虚拟机
  7. 通过cloud init 安装所有的测试工具
  8. 装完后,关机,做快照,上传到glance,镜像命名为shaker-imag
  9. 删除虚拟机。并且把第一次下载的ubuntu镜像,网络,路由都删除。

你的OpenStack就是多了一个镜像和一个Flaovr。

上面这些事情如果手工来完成,估计没1,2个小时是搞不定,而且很容易出错。shaker-image-builder就是调用Heat模板来完成。

https://github.com/openstack/shaker/blob/master/shaker/resources/image_builder_templates/ubuntu.yaml

上面最容易出错是第三步,路由器连接外网。你需要提前在你的OpenStack里,创建一个外部网络,heat通过代码检测出那个网络是外部网络,就接到路由器上,这样你创建的虚拟机才能联网。不然肯定就会出错。

日后其实可以考虑把做好的镜像提供出去,下载直接就可以使用。

制作镜像原理

shaker-image-builder这个命令底层就调用了一个python函数,shaker/engine/image_builder.py 中的 build_image 函数

shaker提供了三种制作shaker-image镜像的模板,centos、debian、ubutnu,默认使用ubuntu,可以使用 –image-builder-template 参数指定使用哪个镜像,使用哪个镜像对shaker来说都一样,shaker在乎的是镜像中的pyshaker-agent、iperf、netperf、flent工具,换句话说,你镜像中只要有这几个工具,啥系统都可以

build_image函数会创建名字为 shaker-flavor的flavor(1vcpu,512mb memory,3g disk),以及名字为shaker-image的glance镜像,shaker创建镜像底层使用的技术是heat,build_image函数读取 shaker/resources/image_builder_templates/ 目录下的模板文件,默认是ubuntu,然后由heat创建需要的network、router,下载原始镜像,然后通过cloud-init工具,安装shaker需要的工具,build_image函数会等待虚拟机关机,最后创建虚拟机的快照,上传到glance中

build_image函数创建镜像之前会检查glance是否存在名为shaker-imag的镜像以及名为shaker-flavor的flavor,如果已经存在,就不会再次创建了,所以不管使用哪个原始镜像创建shaker-image镜像,都只会创建出一个,例如第一次使用ubuntu,那么第二次使用centos,shaker-image-builder 命令会直接返回,不会继续。

测试

环境有限,只进行了如下简单测试,对一个tenant网络进行了测试 (scenario:openstack/full_l2),这个环境下,会在每个计算节点启动一个虚拟机,然后在虚拟机里面对tcp、icmp进行测试

source ./keystonerc
shaker --output output.json --verbose \
--server-endpoint 192.168.1.44:4000 --scenario openstack/full_l2

参数说明

–output 指定把raw格式的报告存放到哪个文件

–server-endpoint 这个ip地址和端口,是运行shaker命令的本机的ip地址和端口,端口随意,不冲突就好,虚拟机中的shaker-agent会连接到这个socket上,跟shaker命令通讯,由shaker告知需要测试的项目以及相关节点信息(如ip)

–scenario Shaker 项目提供多种场景的模板进行测试,详细可以查看https://github.com/openstack/shaker/tree/master/shaker/scenarios/openstack

我们例子使用的是full_l2.yaml 来进行测试。

测试原理

同样shaker也使用heat启动各种场景下的虚拟机,这个示例使用的是 openstack/full_l2 ,根据描述,shaker会启动成对的虚拟机(master/slave),每个虚拟机起在不同的compute节点上,在虚拟机中使用iperf、netperf工具测试

heat还是会按照一个基本流程,创建网络,路由,安全组,打开相应的端口。

根据结果生成报告

shaker-report –input output.json –report a.html

shaker-report 可以根据结果生成html格式的报告

shaker

 

Snap2

 

相关链接

https://github.com/openstack/shaker/
http://pyshaker.readthedocs.io/en/latest/

Apr 092016
 

OpenStack的Mitaka版本4月7号发布,这应该是OpenStack项目管理采用大帐篷后第一个版本,发布的形式也做了很多调整,已经没有统一的发布声明。

OpenStack项目的数量已经不是以前的10几个项目,在stackalytics统计的项目,就达到538个。要统一所有的项目在相同时间发布,还是有不少问题的。例如Fuel,kolla等安装部署项目,他们的测试都是需要基于上游的包来进行,目前大部分项目都已经进入bug修复阶段,本月份应该发布正式版本。

目前大家都是通过http://stackalytics.com/网站来了解各个公司的贡献的排名。OpenStack的贡献统计,有很多维度,从不同的维度,会得出不同的结果。

关于liberty的统计分析,大家可以参考 http://www.chenshake.com/openstack-liberty-community-statistics/

下面的数据截止2016年4月9日,在未来一个月内,数据应该还是会发生变化。

还是需要强调一下,做这个统计,目的是对我们过去半年里所做的工作的一个总结,了解我们对OpenStack的社区贡献情况,和国际同行的差距。而并不是为了所谓的企业的排名,谁是第一。

还是引用这句话:No Measurement, No Improvement.

Continue reading »