Mar 302017
 

3月份是Kolla的Ocata版本,4.0的发布时间。3月10号,是OpenStack官方指定的最后的项目发布时间。Kolla按期发布的Ocata版本,目前大家都可以进行测试。

我一向坚持吃自己狗食的原则,把我们的开发环境换成的Ocata版本,同时也触发了好几个OpenStack Ocata版本的Bug。

Kolla Ocata当前情况

这次我们对OpenStack的Ocata版本进行测试过程中,发现遇到的bug数量,其实有点超出我的预期。这个其实也和Nova项目在Ocata版本,改动比较大有关。目前Nova 15.0.0发布后,已经连续发布了2个小版本,估计后续还需要再发布版本,才能解决存在的问题。

经过了1个月的测试,其实明显的bug都已经修复。Kolla最新版本的Ocata,已经更新到nova的最新stable版本,

大家可以通过 国内的hub  https://hub.trystack.cn/  进行体验。

4月底前,应该可以真正推动生产使用的。

Pike版本看点

目前已经进入Pike版本的开发,对于Kolla-ansilbe来说,有不少工作是需要大家关注的

  1. Nsx集成,这是广州云宏的朋友在做,非常值得表扬,
  2. OpenDaylight集成,这是Intel在推动这个事情,那么在Pike版本应该可以完成
  3. snap,这是intel搞的一套完整的监控工具,数据会存储到influxdb,通过grafana来展示,https://github.com/intelsdi-x/snap,希望本周期可以完成,大大改善Kolla的监控

对于kolla-k8s,最大的看点,就是要交出一个1.0的版本。这是必须,生死攸关的时刻。只有这样,才能和Mirantis的Fuel ccp进行竞争。

 

Non X86支持

这个话题,其实问我的人很多,能不能支持国产操作系统,能不能支持国产cpu。

对于kolla来说,只需要操作系统支持Dcoker,如果是x86的cpu,那就基本没啥问题。

如果是非x86的cpu,那么就需要对OpenStack很多基础组件进行打包,例如arm,要跑OpenStack,PPC64,使用到的包,都需要重新进行编译。

目前社区有专门的公司在推进这个事情,ARM跑在Debian下。

相关资料

对于国产cpu来说,kvm的支持,估计都是一件很挑战的事情。如果能支持Dcoker,就很不容易了。

BigTent项目

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

在我看来,Big Tent底下,就剩下5个项目需要Merge。当前其实都是在进行中,我也和开发者保持密切联系,希望这个版本可以真正来一个全家桶。

Mar 152017
 

CentOS7,网卡名字,采用consistent network device naming,简单的说,网络的名字,已经不是以前的eth0,eth1,你装系统前,你根本就不知道他叫啥名字。

这样的命名,好处就是你机器重启,增加pci设备,不会导致原来的设备名称发生改变。如果我们通过grub,修改内核的方式,改变回到以前的网卡命名,这种方式在新的设备里,会出现很多问题,你会发现每次重启机器,网卡名字都是会改变,一直都是在不停的变化,让你疯掉。

Continue reading »

Mar 112017
 

今晚刚好有台dell的730服务器,就顺便整理学习和记录一下。搞OpenStack,经常要对付各种硬件,一不小心,就会掉入某个坑里。方便日后查阅。

Snap2

Bios,iDRAC,Device 3部分,那么就截图记录一下。

Continue reading »

Mar 072017
 

Kolla部署多节点,其实和单节点区别不是很大。不过多节点的部署,可以让你对很多细节理解更加深入。

对于Kolla多节点的安装,重点已经不是kolla,而是你的网络规划。因为步骤和all in one是一致。

网络设计

OpenStack的部署

Snap15

图片来源mirantis,修改了一下。

上面一共是5个网络。对于OpenStack来说,其实是4个网络,

角色 management Public +floating IP Storage Private
控制节点+网络节点  
计算节点+存储节点  
存储节点    
         

 

如果用户创建的虚拟机可以直接放到外部的网络上,那么就要求计算节点上,也需要public的IP。也就是说,我希望provider network共享给所有租户,那么就需要计算节点,也需要pubilc IP。

假设我们实验,3台机器,都具备

  1. 控制节点
  2. 网络节点
  3. 计算节点
  4. 存储节点

如果是:两块万兆的网卡+千兆网卡。

  1. 千兆网卡1:Public +floating IP
  2. 万兆网卡1:management+private
  3. 万兆网卡2:Storage

我们实验,如果只有2块网卡

  1. 网卡1:Public +floating IP
  2. 网卡2:management+private+Storage

 

 

准备工作

这些工作都是在OpenStack服务的节点进行。对于kolla来说,准备工作做完后,安装OpenStack就是30分钟的事情。

  1. 关闭Selinux
  2. 关闭Firewalld
  3. 关闭NetworkManager
  4. 设置hostname FQDN,让机器可以通过hostname进行互相访问,统一 /etc/hosts文件
  5. 同步时间,先确保时间是基本一致,和硬件也统一时间
  6. 设置docker registry 服务器位置,设置不安全的访问。
  7. 检查机器是否支持KVM
  8. 设置docker源,安装docker 1.12.5
  9. 设置访问私有的registry 源
  10. 打开Docker 的 shared mount 功能
  11. 设置网卡,网络,符合部署需求。如果需要bonding,需要把bonding做好。
  12. 对于要部署Ceph的节点的磁盘,进行打标签
  13. 检查网络,重点,确保装好后,网络功能正常。

在Master节点,我们需要做的工作,

  1. 关闭Selinux
  2. 关闭Firewalld
  3. 关闭NetworkManager
  4. 设置hostname FQDN,让机器可以通过hostname进行互相访问,统一 /etc/hosts文件
  5. 同步时间,先确保时间是基本一致,和硬件也统一时间
  6. 设置docker源,安装docker 1.12.5

全面6条,都是相同的,不同的是

  1. 搭建私有的registry服务器,存放build好的OpenStack Docker镜像
  2. 安装ansible
  3. 部署kolla-ansible

 

参考文档

http://docs.ocselected.org/openstack-manuals/kilo/fuel-docs/reference-architecture.html

https://docs.ustack.com/unp/src/deployment/access_ha.html

Mar 012017
 

默认安装的all in one,是没有安装cinder服务的,也是没有ceph。如何在一个已经装好的环境下,增加Ceph?那么这个其实比我直接装Ceph更加有挑战。

下面的文档,就是在All in one的基础上,继续安装Ceph,并且实现nova,glance,cinder整合,还支持swift api。

需要强调的是,我们需要把all in one环境里的虚拟机,镜像都删除掉。

 

增加磁盘

我们给虚拟机增加一块磁盘,100G。重启虚拟机,应该就可以看到 sdb

parted /dev/sdb -s -- mklabel gpt mkpart KOLLA_CEPH_OSD_BOOTSTRAP 1 -1

这条命令,就是对磁盘进行打标签。表示是用来做kolla的ceph。

查看命令的结果。

#  parted /dev/sdb print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 107GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End    Size   File system  Name                      Flags
 1      1049kB  107GB  107GB               KOLLA_CEPH_OSD_BOOTSTRAP

配置Ceph

由于是单节点,all in one的部署,ceph数据只存放1份

创建 /etc/kolla/config/ceph.conf

[global]
osd pool default size = 1
osd pool default min size = 1

全局设置

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

enable_cinder: "yes"
enable_ceph: "yes"
enable_ceph_rgw: "yes"
enable_ceph_rgw_keystone: "yes"
glance_backend_ceph: "yes"

安装

这个时候,你就可以重复运行kolla安装

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

目前的版本,装完后,需要把相关的容器重启一遍,或者你把虚拟机重启也是可以的。

镜像格式

由于Ceph要求使用Raw的格式的镜像。所以要把qcow2的镜像进行格式转换。

yum install qemu-img

对于ceph,我们需要上传raw格式,需要对镜像进行转换。

# qemu-img info  cirros-0.3.4-x86_64-disk.img   
image: cirros-0.3.4-x86_64-disk.img
file format: qcow2
virtual size: 39M (41126400 bytes)
disk size: 13M
cluster_size: 65536
Format specific information:
    compat: 0.10

转成raw格式

qemu-img convert -f qcow2 -O raw \
cirros-0.3.4-x86_64-disk.img cirros-0.3.4-x86_64-disk.raw

这时候查看镜像信息

# qemu-img info cirros-0.3.4-x86_64-disk.raw 
image: cirros-0.3.4-x86_64-disk.raw
file format: raw
virtual size: 39M (41126400 bytes)
disk size: 18M

上传镜像

openstack image create --disk-format raw --container-format bare \
--public true --file ./cirros-0.3.4-x86_64-disk.raw

这个时候,你就可以登录Dashboard,进行创建虚拟机。

参考文档

http://www.ibm.com/developerworks/cn/linux/1409_qiaoly_qemuimgages/

附上我同事给我的ceph的管理命令

docker exec -it ceph_mon ceph osd pool ls
docker exec -it ceph_mon ceph osd pool set vms size 1
docker exec -it ceph_mon ceph osd pool set images size 1
docker exec -it ceph_mon ceph osd pool set volumes size 1
docker exec -it ceph_mon ceph osd pool set backups size 1
docker exec -it ceph_mon ceph osd pool set rbd size 1
docker exec -it ceph_mon ceph osd pool set rbd min_size 1
docker exec -it ceph_mon ceph osd pool set backups min_size 1
docker exec -it ceph_mon ceph osd pool set volumes min_size 1
docker exec -it ceph_mon ceph osd pool set images min_size 1
docker exec -it ceph_mon ceph osd pool set vms min_size 1
docker exec -it ceph_mon ceph osd pool ls
docker exec -it ceph_mon ceph -s