Feb 222017
 

很久没动手,导致配置一点东西,基本完全忘记。这次要在CentOS 7.3 下装Kolla,好好把这个补回来。

我的习惯都是最小化安装操作系统,然后慢慢玩和调整。

关闭Selinux

这个就基本不需要讨论的事情,编辑  /etc/selinux/config

SELINUX=disabled

我习惯重启机器,查看selinux状态

# sestatus
SELinux status:                 disabled

关闭Firewalld

做实验的时候,端口无法访问的事情是经常发生的。不折腾了。

systemctl status firewalld
systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld
firewall-cmd --state

Epel

现在的epel源,已经很简单了。

yum install epel-release

查看repo情况

yum repolist

Hostname

对于很多环境,这是必须的。

cat /etc/hostname
kolla
# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.27.10   kolla.chenshake.com     kolla

检查

#hostname -F /etc/hostname

#hostname
kolla

#hostname -f
kolla.chenshake.com

同步时间

yum install ntp
systemctl enable ntpd.service
systemctl start ntpd.service

手工同步时间

ntpdate 0.centos.pool.ntp.org
Feb 142017
 

大家看我的blog,其实一直都没写过Kolla的安装过程,其实并不是我不想写,而是对于用户来说,参考我的文章,因为网络带宽的原因,他其实是很难照做的。

经过很多的尝试,在OpenStack的Ocata版本发布的时候,我想我应该已经有办法解决安装的各种问题。

我还是使用大家最常用的vmware workstation 12.0, CentOS 7.3 虚拟机来完成整个的验证过程。

准备工作

我习惯最小化安装CentOS 7.3,装完后,对他进行初始化的工作。

http://www.chenshake.com/centos-7-x-class/ 大家照做就可以,放到一个文档,显得太长。selinux,防火墙端口无法访问,主机名问题,都是安装的常见错误,大家一定要细心确认。

kolla的安装,要求目标机器是两块网卡,所以我虚拟机也是分配两块网卡,

  1. ens33,NAT网络里,设置的IP是:192.168.27.10,日后Horizon访问就是通过这个IP地址
  2. ens34,桥接模式,ip其实是dhcp分配,这个其实是让neutron的br-ex 绑定使用,虚拟机是通过这块网卡访问外网。

在机器上连接虚拟机,是通过ens33的IP进行访问,如果你通过ens34 ssh,安装过程,会导致ssh中断。

默认设置,其实两块网卡都是可以访问到互联网。也可以是其中一块网卡访问外网,对于测试来说,基本问题不大。

如果在服务器直接安装,两块网卡的IP,就算是同一个网段,也是没啥问题的。

以前安装kolla,必须自己build镜像,这样由于网络的原因,经常会导致在build 镜像的时候失败。这次我们直接采用kolla官方提供的镜像文件,这样就不需要自己build镜像的环节。

 

基础包

yum install python-devel libffi-devel gcc openssl-devel git python-pip

安装Docker

目前最新版本的Docker是1.3.1,Kolla目前支持的Docker是1.2.x,所以我们要指定Docker的版本来安装,并且一定要采用Docker官方的源,不能使用红帽的源,红帽的源的Docker是有bug。

设置repo

tee /etc/yum.repos.d/docker.repo << 'EOF'
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF

安装Docker 1.2.5

yum install docker-engine-1.12.5 docker-engine-selinux-1.12.5

设置docker

mkdir /etc/systemd/system/docker.service.d
tee /etc/systemd/system/docker.service.d/kolla.conf << 'EOF'
[Service]
MountFlags=shared
EOF

重启相关服务

systemctl daemon-reload
systemctl enable docker
systemctl restart docker

访问私有的Docker仓库

编辑  /usr/lib/systemd/system/docker.service

#ExecStart=/usr/bin/dockerd
ExecStart=/usr/bin/dockerd --insecure-registry 192.168.27.10:4000

重启服务

systemctl daemon-reload
systemctl restart docker

Ansible

Kolla项目的Mitaka版本要求ansible版本低于2.0,Newton版本以后的就只支持2.x以上的版本。

yum install ansible

Registry 服务器

默认docker的registry是使用5000端口,对于OpenStack来说,有端口冲突,所以改成4000

docker run -d -v /opt/registry:/var/lib/registry -p 4000:5000 \
--restart=always --name registry registry:2

下载kolla官方提供的镜像

http://tarballs.openstack.org/kolla/images/

这是kolla官方提供的镜像给CI使用,只保留最新版本和最新的stable版本。大家可以下载Ocata版本

wget http://tarballs.openstack.org/kolla/images/centos-source-registry-ocata.tar.gz
tar zxvf centos-source-registry-ocata.tar.gz -C /opt/registry/

这样就把kolla的docker镜像文件放到Regisitry服务器上。

kolla-ansible

下载kolla-ansible的代码

cd /home
git clone http://git.trystack.cn/openstack/kolla-ansible

安装kolla-ansible

cd kolla-ansible
pip install .

复制相关文件

cp -r etc/kolla /etc/kolla/
cp ansible/inventory/* /home/

如果是在虚拟机里装kolla,希望可以启动再启动虚拟机,那么你需要把virt_type=qemu,默认是kvm

mkdir /etc/kolla/config/nova
cat << EOF > /etc/kolla/config/nova/nova-compute.conf
[libvirt]
virt_type=qemu
EOF

生成密码文件

kolla-genpwd

编辑 /etc/kolla/passwords.yml

keystone_admin_password: chenshake

这是登录Dashboard,admin使用的密码,你可以根据自己需要进行修改。

编辑 /etc/kolla/globals.yml  文件

kolla_internal_vip_address: "192.168.27.11"

kolla_install_type: "source"
openstack_release: "4.0.0"
docker_registry: "192.168.27.10:4000"
docker_namespace: "lokolla"
network_interface: "ens33"
neutron_external_interface: "ens34"

192.168.27.11,这个ip是一个没有使用的的ip地址,他是给haproxy使用,单节点其实压根没有意义。

安装OpenStack

kolla-ansible deploy -i /home/all-in-one 

验证部署

 

kolla-ansible post-deploy

这样就创建 /etc/kolla/admin-openrc.sh 文件

安装OpenStack client端

pip install python-openstackclient

编辑 /usr/share/kolla-ansible/init-runonce,根据自己需求进行修改,我改成国内的镜像下载,速度快。

IMAGE_URL=http://images.trystack.cn/0.3.4/

运行

source /etc/kolla/admin-openrc.sh
cd /usr/share/kolla-ansible
./init-runonce

最后你可以创建一个虚拟机来玩玩,根据最后的命令提示

openstack server create \
    --image cirros \
    --flavor m1.tiny \
    --key-name mykey \
    --nic net-id=2ba93782-71e2-44d6-ad64-796c5853dcce \
    demo1

 

 

参考文档

http://docs.openstack.org/developer/kolla-ansible/quickstart.html

http://www.cnblogs.com/lienhua34/p/4922130.html

Feb 082017
 

从2016年开始,OpenStack项目的PTL从以前的1年选举一次,改成半年选举一次。也就是项目的当前版本开发周期RC1发布前后,就要开始下一个版本的PTL的选举。

根据 https://releases.openstack.org/ocata/schedule.html Pike版本的PTL选举将要在1月底举行,首先是提名,如果一个项目提名人只有一人,那么就自动当选。如果超过2人,就要进行投票,在过去1年里,参与过该项目提交过commiter都是有资格进行投票。如果该项目没人竞选,那么这个项目将会很可能移除Big Tent。

目前所有Big Tent管理的项目 https://governance.openstack.org/tc/reference/projects/index.html

经常会增加或减少项目,截止到2017年2月24日为止,是61个项目,也就意味着我们需要选举出61位PTL。

OpenStack专门一个一个地方管理项目候选人的竞选 https://github.com/openstack/election/tree/master/candidates

大家可以通过这里了解不同版本的PTL的情况。

  1. Rackspace:10个项目PTL(Designate,Document,Glance,Keystone,Magnum,Octavia,OpenStack-ansible,Requirements,Solum,Stable Branch Maintenance)
  2. IBM :7个项目PTL(Community App Catalog,Nova,Quality Assurance,RefStack,Security,Senlin,Storlets)
  3. Redhat:6个项目PTL(ironic,Kuryr,Puppet,Sahara,Telemetry,Tripleo)
  4. Mirantis: 5个项目PTL(Fuel, Neutron,Deb,Rpm,Rally)
  5. 华为 :4个项目PTL(DragonFlow,Karbor,Tricircle,Zun)
  6. HPE:3个项目PTL (Freezer,Monasca,Searchlight)
  7. Intel :2个项目PTL(OpenStackClient,Kolla)
  8. Cisco:2个项目PTL(Barbican,Horizon)
  9. Nokia:2个项目PTL(Mistral,Vitrage)
  10. OpenStack Foundation:2个项目PTL (Release Management,Infrastructure)
  11. 个人身份当选:2个项目(Congress,I18n)

大陆这次两家OpenStack创业公司99cloud,获得Tacker项目PTL,EasyStack,获得Olso项目PTL。台湾地区创业公司inwinSTACK,Heat的PTL。

研究了一下,PTL里,会说中文的大概有7位 (Heat,Oslo,Senlin,Tacker,Tricircle, Zaqar,Zun)

我就根据项目的字母排序,进行介绍一下。同时也统计一下PTL归属那个厂商。

项目 PTL 公司
Barbican Dave McCowan Cisco
Chef OpenStack Jan Klare Cloudbau
Cinder Sean McGinnis Dell
Cloudkitty Christophe Sauthier Objectif Libre
Community App Catalog Matthew Wagoner IBM
Congress Eric K 个人
Designate Tim Simmons Rackspace
Documentation Alexandra Settle Rackspace
Dragonflow Omer Anson Huawei
Ec2 Api Alexandre Levine Cloudscaling
Freezer Saad Zaher HPE
Fuel Vladimir Kuklin Mirantis
Glance Brian Rosmaita Rackspace
Heat Rico Lin inwinSTACK
Horizon Rob Cresswell Cisco
I18n Ian Y. Choi 个人
Infrastructure Jeremy Stanley OpenStack Foundation
Ironic Dmitry Tantsur Redhat
Karbor Yuval Brik Huawei
Keystone Lance Bragstad Rackspace
Kolla Michal Jastrzebski   Intel
Kuryr Antoni Segura Puimedon Redhat
Magnum Adrian Otto Rackspace
Manila Ben Swartzlander NetApp
Mistral Renat Akhmerov Nokia
Monasca Roland Hochmuth HPE
Murano Felipe Monteiro AT&T
Neutron Kevin Benton Mirantis
Nova Matt Riedemann IBM
Octavia Michael Johnson Rackspace
OpenStackAnsible Andy McCrae Rackspace
OpenStackClient Dean Troyer intel
OpenStack Charms James Page  Canonical
Oslo ChangBo Guo EasyStack
Packaging Deb Thomas Goirand Mirantis
Packaging Rpm Igor Yozhikov Mirantis
Puppet OpenStack Alex Schultz Redhat
Quality Assurance Andrea Frittoli IBM
Rally  Andrey Kurilin Mirantis
RefStack Catherine Diep IBM
Release Management Thierry Carrez OpenStack Foundation
Requirements Tony Breeds Rackspace
Sahara Telles Mota Vidal Nóbrega Redhat
Searchlight Steve McLellan HPE
Security Robert Clark  IBM
Senlin Qiming Teng    IBM
Solum Devdatta-kulkarni Rackspace
Stable Branch Maintenance Tony Breeds Rackspace
Storlets Eran Rom IBM
Swift John Dickinson  SwiftStack
Tacker Gongysh Gongysh 99Cloud
Telemetry Julien Danjou Redhat
Tricircle Chaoyi Huang Huawei
Tripleo Emilien Macchi Redhat
Trove Amrith Amrith Tesora
Vitrage Ifat Afek Nokia
Watcher Alexander Chadin Servionica
Winstackers Claudiu Belu ClouBase
Zaqar  Fei Long Wang Catalyst IT
Zun Hongbin Lu Huawei
Jan 232017
 

这是今年第一份kolla的月报,1月26号,OpenStack将要发布Ocata版本的B3。由于OpenStack的发布周期调整,对于Ocata版本来说,变得很特别,整个开发周期,也就只有4个月左右。2月3日就标记RC1,2月24日,正式发布。

对于Kolla这种部署项目,OpenStack TC (技术委员会)要求是Ocata版本发布后2周,也就是3月10号发布。所以Kolla Ocata版本,4.0,将会在3月10号发布。

https://releases.openstack.org/ocata/schedule.html

对于Kolla来说,Ocata版本还需要进行Repo的拆分,把Kolla拆分成Kolla和Kolla-ansible。这也是为了日后的发展需求,不过Repo拆分,肯定也会影响开发的进展,CI需要重新构建,这都是会影响开发的进度的。

整个Ocata版本,贯穿老外的圣诞节,中国的春节。项目的很多设想,和实际进展,其实是差距比较大的。不过对于Kolla来说,在Ocata版本,取得的进展,其实是远远超过Kolla的PTL的预计。

这是Kolla Offical项目 Ocata版本到2017年1月23日的数据(包括kolla, kolla-ansible, kolla-kubernetes),大家看底下的数据,不用仅仅关注第一,还有很多很有价值的信息。

Kolla项目的Independent的贡献比例非常高,很可能是所有OpenStack项目里最高。大家要留意others的比例,这个比例越高,能很好说明这个项目的活跃度,参与度。

Snap1

irc0继续竞选PTL

1月份其实还是项目的PTL竞选,irc0,代表intel担任在Ocata版本担任PTL,目前已经在申请下一个版本的PTL,当选应该问题不大。不过后续,他如何兑现他的诺言,找intel要300台机器来给Kolla做测试,这个是需要他好好考虑的。

在Ocata版本里,Intel其实是投入了不少人手参与Kolla的开发,贡献了很多很有价值的功能。

  1. Opendaylight
  2. dpdk

尤其是DPDK,对kolla项目未来发展,还是非常有帮助的。预计在Ocata版本merge,问题不大,这个就不需要怀疑。

Kolla优化

在Ocata版本里,Kolla要解决掉上次100台机器测试所遇到的问题。

部署一次Kolla,需要30分钟,却发现修改配置,也差不多需要同样的时间,当规模大的时候,变得不可接受。

https://review.openstack.org/#/q/status:open+project:openstack/kolla-ansible+branch:master+topic:bp/better-reconfigure

工作量很大,不过必须在3月10号发布前完成。这基本是Ocata版本的一个重点。

另外一个端口检查的优化。以前是安装kolla的时候,会把所有的项目要求的条件都检查一遍,这样导致很浪费时间,现在是把检查放到每个项目里,只有你启用该项目,才会对条件进行检查,这样更加合理。这个代码重构,已经全部完成。

 

Ironic

对于Kolla来说,如何应对初始化的操作系统安装,其实大家都在解决这个问题。利用ironic,是一个思路。不过罗马不是一日建成的。Kolla的ironic,先要能用起来。

经过张雷同学的努力,目前ironic inspector已经修复,可用。这是一个令人振奋的feature,很多人已经着急的不得了。下一步,就是解决ironic的多租户问题,目前ironic支持多租户的网络,对你交换机是有要求的,只支持Cisco,华为的等有限几款交换机,不过幸运的是,我实验的交换机支持,所以Kolla的ironic支持多租户,应该是问题不大。

Panko

Telemetry项目,包括Ceilometer,aodh,Panko,Gnocchi,目前Ceilometer项目的拆分功能,已经进行最后的阶段。很多以前ceilometer的功能,都会去掉,你只能使用aodh和panko。

目前Kolla的Panko,在朱冰兵同学的努力下,已经merge。到目前为止Cloudkitty+Telemetry一整套组件,全部merge。另外包括Grafana,Collectd的组件,Kolla也已经集成。后续我们需要的是解决前端展示的问题。

对于Cloudkitty项目,他是通过调用Aodh,Panko来实现计费功能,目前国内对Cloudkitty项目关注度很高,也已经有两位项目的Core,希望可以在Ocata版本给大家带来一个惊喜。

NTP服务

Ceph存储的故障,估计20%都是因为时间没同步造成的,所以NTP服务就显得很重要。对于Kolla来说,如何解决时间同步的问题呢?

Kolla的设计理念,我的理解就是不对目标机器进行任何的修改。甚至包括NTP服务。目前Kolla考虑把ntp也放到Docker里,为理想而奋斗。

张雷同学负责,已经merge

多Region和Cell V2支持

欧洲原子能机构,应该是OpenStack最大的科研用户,他们就是通过Cell的功能,实现大规模的支持,OpenStack的Cell的功能,其实都是他们在帮忙完善。目前Kolla已经在积极支持Cell v2。后续如果他们可以采用Kolla来部署OpenStack,真的是一个重大利好。

多Region,也已经在日程中,对于Kolla来说,实现代价不大。就看时间进度安排。

 

Big Tent项目

对于一个OpenStack部署工具来说,对OpenStack支持数量,质量,是一个用户重要考虑的指标。目前一月份已经Merge的项目

  1. Karbor
  2. Designate
  3. Freezer

在Master开发的项目有

  1. Dragonflow
  2. Monasca
  3. Zun
  4. Vitrage
  5. Zaqar

可以这样说,Kolla所有需要集成的项目,都已经在Master里,目前Kolla已经在2月1日以后,停止BP的merge,专注bug修复,所以这些BP,就只能在下一个版本来完成。

Ocata版本上面的项目开发,其实和以往有很大的不同,我邀请各个项目的Core或PTL帮忙review,这次Dragonflow的马力同学,Zaqar的王飞龙,Zun的Hongbin Lu,Karbor的华为团队,都参与的Kolla的项目的review,大大提高的Kolla的项目的代码质量。

我同事曹威同学负责Dragonflow项目,得到马力同学的大力支持。在实现过程中,还发现Dragonflow放2个bug,目前马力同学在修复中。只有大家在社区里密切合作,才能把OpenStack做的更加强大。

Jan 032017
 

在我看来,目前的OpenStack的部署工具,已经很完备了,尤其是Kolla,至少可以满足我提出的各种需求。那么在部署安装的问题解决后,我们其实对日后的如何用好OpenStack。就需要做一下研究。

我这里整理一下我所关注和思考的问题,其实也是OpenStack交付给用户,我们要回答的问题。

CPU和内存超分比例

经常有人问我,一台机器可以虚拟出多少台虚拟机。对于这个问题,我的答案永远都是:It depends。完全取决于你,从1个到100,都是可能的。

OpenStack默认的cpu超分比例是16:0,内存是1.5:0。那么生产环境是如何配置呢?

这个需要我们认真考虑,不同的OpenStack使用场景,确实区别很大。对于开发环境,16倍的超分比例,很可能也跑的很好。内存也是可以超分。

目前看到的生产环境中,稳妥的做法是4:0超分比例,内存不超分,这样的做法比较多。

这里面要简单介绍一下KVM计算cpu超分的计算方式

一颗物理cpu,是12Core,超线程,那么就是24Core,如果我们不做任何的超分,1.0,那么就是24个Core,创建4core的虚拟机,可以创建6个。

如果我在参数里设置的cpu超分比例是4.0,那么就有24*4=96core,对于4core的虚拟机,我就可以创建出24个。

CPU和内存预留

对于计算节点的cpu和内存,需要保留多少,尤其现在超融合架构下,保留多少比较合适,都是比较争议的问题,不同的软件版本,不同的硬件条件。

对于超融合架构,采用ssd,以前是需要专门做cpu的预留和绑定,不过现在好像很少人谈及这个问题。

不过一般习惯,大家都是内存保留4G,现在内存比较便宜,4G内存跑计算节点各种服务,问题不大。

CPU的预留多少给主机使用,这个参数,很多环境下都不设置,不做任何的保留。

Flavor

一般开始的时候,很少考虑Flavor该如何设置,不过真正使用起来,Flavor问题其实很多,因为一旦Flavor有虚拟机使用,你就无法删除和修改,如果你对flavor做任何操作,都会导致虚拟机产生各种问题。

OpenStack默认初始化的Flavor,在实际中应该做调整。

目前OpenStack支持 专门租户设置特别flavor,所以我们建议生产环境,设置2个flavor

  1. 4core+8G内存
  2. 8Core+16G内存
  3. 1Core+2G内存

第三个flavor,主要目的是测试使用。日常用户使用2个flavor,应该就足够了。这个其实也需要考虑主机的内存,到底多少是最合适。

如果机器是512G内存,16G内存的虚拟机,可以创建32个,减掉系统保留内存啥,30个虚拟机是没啥问题的。

对于core来说,我们就需要240个Core,如果一个cpu是15个Core,超分比例是4,那么就基本够用。从成本角度,15个Core的cpu很贵,通常12Core的cpu,比较合算。

镜像

这个就很重要,不过过去来讲,私有云的镜像制作都很不正规,导致很多问题。

一个linux的OpenStack镜像,其实是需要做很多工作,用户用起来,才会感觉好用。

  1. 上传镜像,必须指定内存和硬盘的最小要求,这样可以避免很多用户出错
  2. 上传qcow2,转换成raw格式,
  3. 只提供最小化安装的linux镜像(centos 7.2,centos 7.3,Ubuntu 16.04)
  4. 集成qemu agent
  5. 关闭selinux
  6. 不设置wap分区
  7. 加快ssh速度,设置ssh不用dns
  8. 指定源,加快速度
  9. 可以设置密码

对于OpenStack特殊服务,例如ironic,sahara,trove,其实还需要特殊的定制的镜像。

镜像上传,只能让管理员上传。

租户和计费

很多情况下,为了方便,创建用户,都分配管理员权限,导致很多管理问题。还是要求一个租户,一个用户对应。这样好管理。不能那么随意。

对于租户,计费系统要启用,这样才能了解到资源是如何消耗掉的。

Jan 022017
 

这是酷威第四次保养,估计是经济形势的原因,亦庄的港龙店已经关门,所以也就只能尝试别的店进行维修保养。这次选择来广营店(汇杰伟业)来进行保养。

以前北京有6家克莱斯勒的4s店,买车是在亚运村的安源店,保养是在亦庄港龙,海淀中进百旺,这次是来广营的汇杰伟业。最近由于港龙退出北京市场,新增加一家店冀东通,不过环境很差,我到那边就感觉不好就去汇杰伟业。

这家店还是很大,不过就是好像暖气不足。不然其实是很不错的。应该比我去的其他几家店都要大,包括停车场。

这次保养的公里数是3万六,离上次保养,开了一万公里。主要是春节期间打算回趟广州,估计要跑6千公里,稳妥起见,还是保养一次,就当检查一遍,再出门。

维修费用

  1. 机油滤清器     83元元
  2. 合成机油5w-20 1L   83*5=415元
  3. 酷威空气滤清器      236元
  4. 空调滤芯               124元

合计858元。相比我以前的几次保养,其实配件价格都要低一些。

不过这里工时费就有点贵。

换空滤,空调滤芯,工时费2工时,220,加上保养工时费2.2工时,220,工时费是:440。

总费用:1298元。

比上次保养大概贵了100 多一点。在中进百旺那边,换滤芯工时费是22元。不可能什么都是最便宜,整体来说,都是还是可以接受。

作为一个汽车维修专业毕业的人士,很多事情,都是可以理解和接受,还很明白啊。