写给儿子<9>

 

你回老家快一个月了,爸爸一个人在家过周末真的很无聊。。。

快点回来吧

最近跟你视频聊天,每次你都不太高兴,不愿意跟爸爸妈妈讲话,我们都知道,你是生气了

因为爸爸妈妈让你一个人跟爷爷回老家了,你以为爸爸妈妈不要你了

其实我们也不想让你回老家的,但是奶奶种的西瓜没人收啊,爸爸也劝了她很多次,可是她就是不听,明年肯定不让她种了

其实你在家玩的还是很好的,就是脾气不好,老喜欢欺负比你小的小朋友,这也不是一天两天了,这可不是个好习惯,一定要改掉

每次视频,爷爷奶奶都会告你的状,说你又跟谁打架了,又怎么不听话了,又怎么不吃饭了

你每次都很生气,其实爷爷奶奶是逗你玩呢

不过你也够坏的,所有的东西都是你的,别人不能跟你抢,否则就动手打人,这个坏习惯一直改不掉

你在家还叫姑姑叫妈妈,不让妹妹叫,爸爸知道你那是想妈妈了,就像当年你馨怡姐姐跟你这么大的时候一样,我和你妈妈回老家,她在姥姥家,也是一会儿妗妗一会儿妈妈、一会儿舅舅一会儿爸爸的

据爷爷说你现在又黑又瘦,可怜的娃儿,爸爸妈妈也不想让你回去,可是有些事情是没办法的,只能委屈你了

人生有很多无奈,只能忍受,等你长大了就会有体会

下面附上你的精彩表演:

 

 

云主机租户间转移方案

 

cinder中transfer卷功能实现

cinder服务提供了几个transfer-*接口,用来支持租户间转移卷功能:

大概流程是,租户A的卷vol-1,可以通过transfer-create接口创建一个转移操作流,并返回一个接收卷所需的验证码,然后可以通过transfer-list、transfer-show可以看到这个操作流,如果租户A在卷未被接收前反悔了,还可以通过transfer-delete接口删除这个操作流。

目标租户B,可以通过transfer-accept接口接收这个卷vol-1,接收完之后,租户A就看不到这个卷vol-1了,而租户B则可以看到并使用它。

命令行操作流程大概如下,首先使用租户A的账号执行:

然后更换到租户B的账号下执行:

注意:如果在租户B下执行transfer-list、transfer-show操作,是看不到租户A创建的卷转移操作流的,如果租户B具有管理员权限,则可以根据卷转移操作流UUID来通过transfer-show看到操作流详情。

租户B接收卷之后,就可以通过cinder list、cinder show看到卷vol-1了,租户A则看不到了。

整个流程的代码实现也比较简单,主要就是:

1、检查并预留租户B的配额(类似创建一个新卷)

2、修改卷所属的租户和用户

3、减少租户A的配额(类似删除一个卷)

当然上面这部分不是本文的重点,接下来是考虑在nova服务中实现云主机的转移功能。

云主机租户间转移方案

背景

主要说下为啥要做这个功能?

最终目标是让自动部署平台可以快速的扩容,具体使用场景是,自动部署平台使用的docker容器是在云主机中运行的,在集群资源利用率达到某个预设值后,可以快速的水平扩容出去,比如新增一批docker容器来运行各种服务(可能对应的是一批kubernetes的pod,也就是多个docker实例),这里的“快速”是要尽量做到秒级扩容,但是目前我们创建一台本地实例存储盘启动的云主机,如果目标计算节点上没有base镜像缓存,可能需要几分钟的时间来下载base镜像,然后创建云主机(几秒钟),最后启动云主机(几十秒),即使有base镜像缓存,也需要几十秒到1分钟以上的等待时间(创建+启动)才能通过自动部署平台的agent开始在云主机内部执行部署操作,这个耗时情况目前看来自动部署平台是不能接受的,需要实现一个云主机资源池,来随时加入到集群中作为docker宿主机,如果云主机不支持在租户间转移,那么这个资源池只能是每个租户维护一个,可想而知,会有很多资源浪费情况,如果资源池能做到平台级别,整个平台维护一个,则会节约很多。

预期操作流程

nova本身并未实现该功能,所有功能都需要我们自己开发实现,并且只是给内部PAAS服务使用,因此实现和操作流程越简单越好,不需要跟cinder中的卷转移一样,还要create然后accept,只需要实现一个transfer接口就好了,直接把云主机转移到指定租户(当然需要操作调用方有特定权限去执行该操作),并且修改掉两个租户的配额。

另外要说明的是租户私有网问题,由于租户的私有网是不互通的,所以云主机资源池中的云主机不能绑定私有网port,需要等待云主机从资源池中分配出去之后,再根据云主机真实所属的租户来动态挂载私有网等网络类型的port到云主机,达到网络连通的目的。

但是目前看起来如果创建云主机时不指定network id,会返回400错误,这个还需要进一步分析解决。

大致代码实现流程

1、通过扩展api,增加一个action,比如叫“transferInstance”,具体扩展方法可以参考我们的commit 2ed5a96089eb3fd57efb4fa88b9956ec288e539c,patch下载:extend-vnc-password.tar

API URL:POST http://nova/v2/981f3e7cdba14f0ab769d3325b931838/servers/73cae225-7a96-4d4f-836c-931d8be77261/action

参数大概为:

2、在nova/netease/compute/api.py中新增transfer_instance方法,实现修改转移前后两个租户的配额,以及nova db中instances表中instance所属project_id和user_id

3、返回结果给调用方(成功200,失败其他错误码,比如配额不足413,目标云主机或租户找不到404等)

 

网络相关问题

目前必须带私有网创建云主机,如果要改掉这一限制,整个创建云主机的流程都需要修改,改动比较多,对现有功能影响也比较大,不建议修改,可以通过创建后卸载私有网操作来规避这个问题,大致流程如下:

1、创建云主机,并且包含了一个私有网port

2、创建完毕后,从云主机上卸载私有网port

3、放入云主机资源池,之后按需转移云主机到新租户下

4、在新租户内创建新的私有网port并挂载到云主机

这一流程潜在的问题包括:

1、私有网挂载卸载操作之前没有测试过,默认都是与云主机生命周期绑定的,需要进一步测试验证相关流程和网络连通性

2、挂载私有网port后,要多久网络才能连通也需要测试,如果耗时较长,甚至比新创建云主机还要耗时,那么这个方案是不可接受的

3、卸载完私有网port之后,要多久才能挂载新的port到云主机,以防止并发问题(主要是指qemu进程和云主机内部的pci设备hotplug模块两个方面)导致的其他问题(比如看不到网卡、网络不通等)

4、可能需要自动部署平台增加从云主机资源池中选择被转移云主机的逻辑,比如先进先出方式,而不是随机选择,以防止刚加入池子的云主机被转移,导致的port挂卸载并发问题

 

说明:上述流程待POC验证

 

 

 

儿子三岁了

明天就是7月6号了,提前祝儿子生日快乐,永远快乐!

时间都去哪儿了?

转眼间儿子都三周岁了,感觉都还没怎么陪他玩儿,他就长大了。

刚生下来的时候那么小,现在都95公分高,28斤重了。

现在的问题是,儿子不喜欢跟小女孩一起玩,这个问题急需解决啊,谈恋爱要从娃娃抓起,这是必须的!

周末两天都下雨,在家窝了两天,也没带儿子出去玩,好可惜。

生日礼物还是妈妈今天下班之后顺路买的,白天没睡觉,困了也不睡,就为了等妈妈带礼物回来。。。

8号就要跟爷爷一起回老家了,估计至少要一个月之后才能回来,真是舍不得,但也没办法,奶奶那边已经催了好几次了,爷爷也是天天心急火燎的,一天都呆不下去了,要不是因为要等着幼儿园报名、录取结果出来,肯定早回去了。。。

幼儿园报名也不容易啊,公立的收的少,户口2013年之前的才有机会,私立的人多,还要托人,还好找到了关系,花了点钱,总算是报上了。

总之,祝儿子回家一路顺风,以后的人生顺风顺水、平安健康!

  • 2012-07
  • 2013-01
  • 2014-01
  • 2015-01

本博客备份流程介绍

首先说明,本博客基于LAMP+wordpress构建

Linux备份MySQL和wordpress目录,采用crontab定时任务完成,脚本如下:

然后加入定时任务:

每天凌晨2点35分自动执行备份脚本,备份脚本内容如下(设置可执行权限):

备份完毕之后,通过rsync服务同步到windows机器上,配置如下:

Linux服务端:

然后rsync –daemon –config=/etc/rsync/rsyncd.conf打开rsync服务端守护进程。

Windows客户端:

下载安装cwRsyncServer_4.0.6_Installer(从本站下载请点这里 :cwRsyncServer_4.0.6_Installer),

编写rsync客户端同步bat批处理脚本:

其中blog.pas为密码文件,放在目录

内容为:

然后把blog.bat加入到windows的任务计划程序,我从windows7任务计划程序导出的任务配置为:

每天凌晨2点58分执行一次rsync同步命令,注意这个时间是在Linux服务端执行备份脚本之后的,便于及时同步数据。

同步完毕之后,还有一步可选操作,也即同步到云盘(360云盘或者百度云盘),备份数据会更加安全(前提是你的云盘账号不被盗走。。。),设置步骤如下:

下载安装云盘客户端,360或者百度都可以,打开客户端,按如下步骤设置即可:

云计算平台OpenStack和Ceph更配哦

 

背景介绍

首先说明下写这篇文章的背景

某厂的云计算项目始于2012年,当时的OpenStack才刚刚起步,而我那时候还在老东家HW搞底层虚拟化平台(Xen及关联的qemu、libvirt等),连OpenStack都没听说过,只知道eucalyptus这个玩意儿(是我们开发的虚拟化平台的上层客户),听说最多的是VMware和aws,稍微扯远了,回到OpenStack项目,当时某厂也在调研各种云平台和虚拟化技术,由于某厂属于互联网公司(至少他们自己这么认为),自认为还有一些技术实力(即使现在没有,也是可以从其他厂里挖墙脚嘛),所以肯定不会考虑商业平台比如VMware,或者其他公有云、私有云解决方案提供商(或者说托管云),全部使用开源组件,构建自己的云计算平台是基本要求。

据说当时云管理平台方面对比了OpenStack、cloudstack、eucalyptus等主流云平台,底层虚拟化平台主要对比了Xen和KVM(说实话开源的虚拟化技术也没有其他的了),最终选择了OpenStack+KVM技术,目前看来还是十分明智的,对比其他云平台,要么半死不活、要么作价卖掉,只有OpenStack发展势头愈发迅猛(当然很多人认为目前容器技术如docker有取而代之的趋势,但我并太认同,二者的适用场景明显不太一样,后续有时间再开一个页面详细叙述吧),底层虚拟化技术Xen也日暮西山,支持的开源大厂也寥寥无几,基本可以忽略了,KVM借力Linux内核,已经逐步被各种企业厂商接受。

从上面的背景描述可以看出,某厂的领导还是很有眼光的,毕竟都是技术出身一步一步做到领导职位的,这点我还是相当佩服的。

某厂云平台演进介绍

OpenStack+KVM,很完美的搭配,凡事都有个演进过程,某厂也不例外,OpenStack Essex版本是第一个上线版本,当时还没有cinder、neutron这两大组件,只有最基础的计算服务nova组件,很多人都认为云计算服务重要性(难度)排名为:网络40%、存储40%,计算只占20%,我也是很赞同这个观点的,但是前提是计算服务已经稳定下来的情况下,如果计算服务还有一堆问题没解决,其他两大服务就别想玩好,从运维方面来说,云计算三分开发七分运维,也符合442这种重要性或者难度排名。

又扯远了,当时主要用了keystone、glance、nova服务,包含nova-network,没有用nova-volume(cinder服务的前身),而是自己开发的一套块存储服务,对象存储用的也是某厂自己已有的服务,这里主要讨论块存储这部分的演进过程。

刚开始的时候某厂的块存储是模仿aws的EBS服务来构建的,而不是为了搭配nova-volume,这一决定给后续整个云平台的发展带来了较大的障碍,列举出来有如下几个潜在问题:

  1. api不兼容nova-volume以及后续的cinder,毕竟是aws的EBS风格,跟OpenStack完全不搭边
  2. 架构不合理,由基本完全不懂云计算存储的传统专家构建,当然并不是说他们的技术不牛逼,只是跟云计算平台所期望的存储系统的需求有很多不匹配的地方,后面我会详细说明具体有哪些问题
  3. 技术人员断层,由一个主要的存储专家来全面负责(从隔壁厂重金挖墙脚过来的,当然后面隔壁厂即将上市前,又被挖了回去,据说不止这一个,还顺便挖了很多墙角,导致某厂损失惨重,我恶意猜测可能是报复行为吧,某厂也没办法,毕竟码农也不傻,钱多钱少还是分得清的),其他人都是刚毕业的小弟(人员几经变动、人来人往,后来只剩下俩人),导致后续群龙无首,存储系统发展缓慢,几乎陷入停滞状态,只能做基本的维护和bug修复,新功能基本没技术、没人力去开发(有人可能会问,为啥不继续招人甚至挖墙脚?我们可以设想一下,如果你老板或者技术经理,项目组很缺人,你是招一个刚毕业的应届生呢还是技术熟手或者专家?肯定是后者,应届生的培养周期太长,极有可能看到你项目没前途就提早闪人了,挖专家的话,让一个专家去接手一个半死不活,并且即使做好了,绩效也不归他,毕竟不是你设计构建的,搞砸了,领导嘴上可能不说,但心里肯定鄙视你啊,一个堂堂专家,我们重金挖来,连一个简单的系统都搞不定,至少认为你的能力不如前一个设计这个系统的那个专家牛逼啊,人家都能设计出来,你维护都搞不定。。。呵呵了吧)

闭源vs开源

上面第三点又扯远了,但确实是很现实的问题,我相信也是很多其他厂遇到的问题,为啥会出现这种困境?我个人理解其中一个原因就是自己设计了一个闭源系统,并且人员储备不足(或者说来不及储备,带头大哥就被隔壁厂挖走了。。。跟隔壁老王有一拼了。。。),后面招人维护或者改进会更加难上加难,上面第三点也简单描述了一些原因。假设换成使用的是业界主流开源系统,这种情况肯定会大有不同,毕竟码农也想给自己贴金,以期提高卖身价钱,如果是一个闭源系统,你做的再好、再牛逼,也只是服务于一个很小的范围(某个厂的内部、某个厂的特定客户,除非你能做到微软、VMware这种世界一流的平台),想要用这种系统来作为跳槽的垫脚石,目标公司的认可度肯定大打折扣,至少很少有机会被其他厂主动挖墙脚,主动和被动看起来结果差不多,但是待遇就不一样了,一个让你自己提要求、一个是让你不敢提要求。

但是换做开源系统,你贡献的一个bug修复,一个小功能,都可能让全世界的所有使用该系统的厂家受益,你的名字也会被全世界关心这个bug或者功能的码农关注甚至膜拜,这对码农(一般都是宅男,没机会被世人关注,只能躲在阴暗角落里偷偷的边抹泪边码代码)来说是非常难得扬名立万的机遇,如果能成为某个流行的开源系统的重要代码贡献者、甚至核心开发人员,基本可以与金榜题名相比了,对码农来说简直可以说是无上荣耀,足以光宗耀祖,养家糊口更是不在话下,带领全家奔小康也是小菜一碟、信手拈来、稀松平常!各种公司都会在各种场合通过各种方式向你伸出橄榄枝,想要挖你过去,待遇足以让你心动。

采用流行开源系统还有一个好处,人员储备几乎可以不用太过担心,毕竟一抓一大把搞这方面的人,想找核心贡献者很难(这要看你敢不敢开价了),想找入门级、熟练级的肯定不难,稍加指导即可给你卖力干活了,他们也没有后顾之忧,毕竟自己的能力没有断层,还是延续专长的方向,即使在你这混不下去,还可以凭自己的本事找到合适的接盘厂,不至于家里老婆孩子喝西北风。

其他开源的好处就不多说了,已经扯得远的没边了。。。

首次改进

一开始的时候,挂卸载卷操作是云硬盘服务组,通过自己在计算节点上的agent调用libvirt接口来做的,也就是用户挂卸载卷都是云硬盘组单独处理的,云硬盘还要调用nova接口查询虚拟机状态,计算服务nova等根本不清楚也不参与这个流程,然后各种并发问题、虚拟机迁移问题等等就接踵而来,靠云硬盘服务肯定搞不定,靠nova服务也不行,因为他管不到云硬盘。想想都觉得不靠谱。

后来在计算服务组相关开发的推动下,改为使用nova的挂卸载卷接口来执行操作,好了很多,毕竟nova控制了这个流程,虽然多加了一部分云硬盘的驱动代码来跟云硬盘api交互,还对nova本身的代码做了一些改动,维护有点困难,至少某些功能可以做起来了,大部分问题也解决掉了,虽然创建删除卷等操作还是要调用云硬盘api,顺便说了下,为了适配这个改动,云硬盘还开发了一个代理程序,用于接口转换,让上层用户平滑过渡。

二次改进

后来的后来,也就是平台上线近两年后,云硬盘和计算服务的开发已经对这种模式吐槽到不行了,这个时候的cinder服务也已经发展到了Havana版本(某厂的其他服务也已经升级到这个版本),社区对cinder的稳定性也逐步认可,也经过了其他厂的验证,某厂也开始考虑把云硬盘服务接入过来,作为cinder的一种后端存储方案,为此开发了专用的cinder driver,基本也就是把之前的nova里面的驱动改吧改吧挪到cinder里面,这样nova服务关于卷的操作就完全兼容了OpenStack社区实现,基本不需要做任何改动(除了部分功能增强,这部分跟这次改进没有联系),为后续nova服务的顺利升级、新功能的支持打下了良好基础。

经过这次改进,计算服务和存储服务的交互就只集中在cinder服务的一个驱动模块了,大大简化了沟通难度,后续两个服务各司其职,架构清晰,有什么要求只要给存储后端提需求即可,cinder服务成了需求方,功能开发更加顺利(之前还要两个服务讨论清楚怎么分工,怎么合作),沟通成本大降。

改完之后,所有的问题都集中在了存储后端本身,各种云计算服务的基础功能,比如从云硬盘启动虚拟机(或者叫从块设备启动虚拟机,boot from volume),在线迁移虚拟机,云硬盘快照,从快照恢复虚拟机,等功能都需要云硬盘后端提供技术支持,但很遗憾,这些都不能做到。所以就面对第三次改进还是直接更换技术方案的严峻问题。

三次改进vs更换存储方案

如何改进

首先要把各种功能补齐,下面列举一些:

  1. 快照功能必须要有吧,你真的难以想象,一个云硬盘服务,上线运行了快两年了,都不支持快照功能,这是有多么的让人无法接受。。。
  2. boot from volume,从云硬盘启动虚拟机,这已经是云计算必备功能了吧
  3. 随虚拟机迁移供,包括离线、在线两种,离线方式比较简单,支持起来没难度,已经搞定,在线迁移对后端存储要求较高,必须做到完全共享存储才有可能,虽然KVM支持带本地存储的在线迁移,但跨节点拷贝这么大的数据量对网络IO、cpu、磁盘IO都是严重考验,其他虚拟机肯定或多或少的受到影响,迁移时间也会很长,虚拟机停服时间也会相应拉长,但目前后端存储还做不到完全共享,方案都还没想出来,据说是因为卷的位图是放在挂载卷所在节点的内存盘里面,两个节点没办法共享,需要跟虚拟机一起迁移过去,但是位图的迁移时机,以及位图迁移过程中如何限制虚拟机访问存储都是大难题,总不能在qemu迁移虚拟机结束后,还要先不恢复虚拟机的运行,通知存储系统迁移位图,等位图迁移过去,再恢复虚拟机的运行吧?先不说在qemu中调用存储系统api实现通知他们迁移位图的难度和架构的猥琐程度,但这一流程的耗时和迁移位图所需要的时间加起来,估计都要上一分钟了吧?还不如带本地存储的在线迁移快。。。

再说下性能问题,或者说用户体验问题,主要是指打快照耗时、快照恢复耗时、从云硬盘虚拟机启动等操作的耗时:

  1. 打快照,完成后要上传到某厂自己的对象存储服务,即使内网万兆再快,第一次快照是全量的,可能上百G的数据量,可想而知,要多久能完成,这还不包括云硬盘存储后端生成快照文件的时间,即便是后续的增量快照,如果一个几百G的卷,隔三差五的打个快照,增量部分也不止1分钟能搞定吧
  2. 快照恢复卷,要先从对象存储下载到存储节点,把数据恢复到生成的卷,几百G这种大小的卷,你自己可以算下下载耗时和恢复耗时
  3. 为了支持从云硬盘启动,后端存储开发了延迟加载数据功能,也就是虚拟机启动过程中,需要哪些硬盘上的存储数据块,后端就给他从对象存储上下载哪些数据块,而不是一开始就全部下载好,在一定程度上加快虚拟机启动速度,这个技术难度还是有点大的,先不说一开始经常发生的虚拟机crash、蓝屏问题(后来基本都解决了,也真不容易),但是实际效果还是不尽如人意,启动时间还是比较长,至少不能跟其他公有云厂商相提并论

更换方案

上面吐槽了太多某厂的存储方案,下面简单看下其他采用OpenStack云平台的厂商是怎么解决这些槽点的,据我了解,主要有如下几种方案:

  1. 最简单的采用NFS,适用于小规模部署场景
  2. 高大上的SAN,适用于土豪厂商
  3. 开源块存储系统如sheepdog、glusterFS等,适用于中小规模场景
  4. 开源统一存储方案Ceph

我在此推荐统一存储方案Ceph,理由如下:

  1. NFS不适合大规模部署
  2. SAN太贵,也浪费计算节点上的存储资源,虽然你可以配合从刀片服务器(不配存储盘),但是很多互联网公司也不会考虑,主要是说出去丢人啊,总感觉只有技术实力低下的公司才会去买。。。(这点纯属个人YY)
  3. 开源块存储系统,用户体验不友好,各种操作都比较耗时,主要原因还是数据拷贝量太大,网络数据包的零拷贝一直以来都是大家改进网络IO性能的一大方向,内存数据拷贝尚且追求零拷贝,更何况硬盘数据的拷贝
  4. Ceph统一存储就几乎可以做到硬盘数据的零拷贝,当然我这里指的是正常的打快照、从快照恢复卷、从卷启动虚拟机等场景

Ceph也不是完美无缺,从各个渠道你可以得知,它也是各种性能、功能问题缠身,但我想强调的是,他是主流开源技术,尤其是配合OpenStack,简直是绝配,一个系统搞定三种存储方式(文件、块、对象),尤其是数据零拷贝这一优势,对系统的压力大减,用户体验改进十分明显。有人说10个OpenStacker9个Cepher,虽然有点夸张,但是至少表明这是一种趋势。

Ceph我也没有深入研究过,但就是对他莫名的感兴趣,想尝试一番,可以这么说,他对我的吸引力已经超出了docker。

下面列出一些我看到的Ceph的文章,供大家参考:

切换方案的代价

最后在罗嗦几句,如果某厂从自研方案切换到Ceph,要付出哪些代价?

  1. 先验证分析Ceph功能上是否满足需求
  2. 接入cinder、nova、glance这些OpenStack服务,原生支持,不需要改动
  3. 部署测试环境,测试性能是否满足需求
  4. 如果满足需求,两种存储系统测试环境并存,共同提供服务,验证可靠性、稳定性等,cinder支持多种存储后端并存在一套云平台中并同时提供服务
  5. 离线生产环境上线,也是并存方案,进一步验证和优化
  6. 真正上线到在线生产环境,并逐步淘汰自研方案,甚至两种一直共存,原系统只维护,停止开发
  7. 即使Ceph出问题,还可以使用原来的自研方案提供云硬盘服务

切换带来的好处显而易见,上面的槽点都能一一解决,而且是不费吹灰之力。。。

其实云硬盘服务的开发人员也是支持切换到Ceph的,谁不想跟着开源潮流走?谁想费时费力的开发半年,做出来一套很矬的系统,还不如开源实现来的好?

只是某厂的领导们还没下决心做这件事情,怕风险太大,砸了云计算平台的招牌,这也是可以理解的,但通过上面的切换流程,其实风险没那么大的。

我是如何备份个人数据的

 

1. 手机通讯录备份

我这里只针对Android手机进行说明,苹果手机买不起,没用过,不敢妄言,不过据说有iCloud这个牛X工具,可以搞定一切,用iPhone的朋友可以试试看。

经常听到朋友同学等很多人说,我的手机丢了、坏了,通讯录没了,让我把联系方式发一下给他。

我也换过几个手机,也丢过一个,还刷机过很多次,但是我的通讯录从来没有丢过,最多也就是通讯录更新不及时,很多人的联系方式都不准确而已。

怎么做才能保证通讯录不会丢?

1.1 备份

  • 导出一份到电脑上,可以用各种手机助手搞定这个,这个备份是用来救急的,主要问题是不够实时,你可能好几个月才想起来备份一次,在这段时间新增或者修改的联系人就会丢失,不过一般来说影响不大,没多少人
  • 几乎每个手机厂商都会自带云备份工具,也就是类似iCloud的软件,比如我之前用的魅族手机,现在用的华为手机,都有这种功能,你需要做的就是打开这个功能,它就会在你修改或者新增联系人的时候,自动备份到他们的服务器上,很实时,也很方便
  • 手机上安装其他云盘软件,比如百度云360云盘等,这种软件都会有通信录备份功能,也能把通信录自动(或手工)备份到他们否服务器上

我是采用了上面的三种方法来备份的,所以即使我的电脑坏了、丢了,手机坏了、丢了、刷机了,我的通信录也还有备份。

1.2 恢复

当你更换手机,或者刷机后,通信录是空的,可以通过上面的备份恢复回来,

  • 从电脑上的备份导入,也是通过各种手机助手来弄
  • 通过手机自带的云备份工具恢复,这种方式只适用于手机品牌没变化的情况,比如你之前用的是华为,现在还是华为,只是换了个型号或者新的同型号手机,那这种方式是ok的,如果你换了手机品牌,那么一般来说需要用电脑上的备份,或者你去之前的手机厂商的云服务器上下载你的通信录(比如华为的云服务网站是www.hicloud.com,魅族的是http://cloud.flyme.cn/),然后再用各种手机助手恢复到手机上
  • 如果是通过第三方的云盘软件备份的,那更简单的,不管你怎么换,只要装上这些软件,登录进去,然后选择恢复通信录就ok了

需要注意的是,采用手机自带云备份和第三方云备份,需要有用户名密码在登录时使用,所以你一定要记住他们,不然之后是没办法恢复的,尤其是你想恢复可能是很久以后的事情了。

2015-06-18--19_34_31

2. 照片视频

2.1 备份

照片视频一般为手机和相机拍出来的,手机又分为我自己的和老婆的,拍出来的照片视频一般比较多,所以比较占空间,如果放到QQ空间,或者博客相册,好几百G的量,很难存的下,即使保存了,也是压缩过的,分辨率太低了,不忍直视。尤其是视频,除了优酷之类的网站,根本没地方存,存储空间倒是不限制,只是质量就不敢恭维了,而且优酷之类的网站,会根据视频的热度分配带宽,私人视频,播放的时候,不但有超长的广告,还会十分卡顿,不能忍啊!

为此,我采用两种备份手段:

  • 专门买了一个1T的移动硬盘,用来保存照片视频
  • 另外为了保证手机里面的照片视频不丢失,可以在手机空间不够的时候放心的清理,我还用了360云盘,即时备份照片视频(当然是只在WIFI信号连接上的情况下),我和老婆的手机用相同的账号登录,这样两个人拍的照片视频,可以互相同步,互相查看

QQ20150618210159

2.2 整理

备份完之后,还需要定期整理,不然乱成一坨,若干年以后怎么看?

整理我一般是一两个月做一次,每次整理,是把移动硬盘里面的照片视频,上传到360云盘和百度云盘,然后把360云盘自动备份的照片视频,下载到移动硬盘里面,并且上传到百度云盘,也就是保证有3处备份(为啥要搞这么多备份,下面会专门解释),整理后的照片视频是按月份保存的,方便以后查看。

20150618205512 QQ20150618205551 QQ20150618205615

 

 

 

QQ20150618205859

 

我的360云盘有43T的空间,目前用了150G了,百度云有3T,空间用的跟360云盘应该很接近。

3. 普通文档

分为如下几种:

  • 个人文档(各种证件照、证件扫描件等):此类文档比较私密,很重要,丢失后果比较严重,所以我都是加密压缩后保存在移动硬盘和网盘中,这样即使文档丢了,没有密码他们也解不开压缩包
  • 工作相关文档资料(doc、excel、PPT、pdf等文件):这类文件不太重要,但是又怕电脑硬盘突然挂了,影响工作效率,所以直接用各种云盘的同步功能,自动同步到云盘服务器
  • 其他文档(比如上学时的毕业设计、论文,平时收集的学习资料,QQ聊天记录备份等等):这种就放到移动硬盘和网盘里面,随便丢,影响不大

4. 杂乱文字和备忘录

  • 工作上的经验总结和临时记录:比如每天学到的东西,整理的经验积累,和工作记录等,都放到有道云笔记里面
  • 生活上的临时记录:也放到云笔记里面,或者放到手机备忘录里面
  • 日程提醒:手机的日程里面,时间到了可以提醒你
  • 正在编辑的文字:为了防止写的时候电脑突然蓝屏之类的,也在有道云笔记里面写,你每写一个字,还有历史版本的记录,它都会自动同步到云端服务器(不需要你点“保存”或者按ctrl+s),即使你不小心把所有的文字全删除了,也能通过历史版本记录找回来之前的文字,妈妈再也不用担心我的电脑死机蓝屏了(当然你也可以在word、excel等软件里通过时不时的按ctrl+s来人肉保存)

QQ20150618212858

5. 为啥要备份到这么多的地方?

  • 不想花钱买多块移动硬盘,并且移动硬盘容易丢、容易坏
  • 想共享数据给其他人,所以放到云盘比较方便,比如我拍的照片,我妈在老家的电脑上,打开云盘的客户端就可以查看
  • 云盘服务商可能随时倒闭,所以要多个云盘一起用,虽然看起来百度、360目前都活的挺好,但谁也不敢保证哪天他们不把云盘服务关掉,到时候我的数据可就麻烦了,不过即使要关掉,也会提前通知用户,备份数据的,一般来说影响不大,但是对我这种想保存几十年数据的人来说,还是多备份几个地方比较靠谱,即使一个关了,还有另外的备份可以用,即使他们没良心同时关了,并且不给我机会备份数据,我还有移动硬盘
  • 另外有人可能担心数据泄露隐私,但是我觉得和泄露隐私相比,数据丢失问题更严重,尤其是对我来说,没啥隐私,就家人的照片而已,本来也没啥好保密的,其他重要的数据肯定要加密保管的

6. 各种密码的保存

每个人肯定有各种密码需要记住,QQ、微信、邮箱、淘宝、支付宝、12306、银行卡、各种其他需要登录的网站等等,这类密码用chrome浏览器的lastpass插件就全部搞定(刚开始是看到其他同事都在用,也跟着用了,确实很爽),真的只需要记住最后一个密码,那就是lastpass本身的密码,如果对这个插件也不放心,那还可以搞一个文本文件(.txt),把所有的用户名、密码都放进去,然后用压缩软件加密压缩一下,密码设置成你永远不会忘记的那个,当然要比较复杂的,不然可能被暴力破解掉,然后随便丢到哪个云盘里面就好了。

QQ20150618214004

参加DCD中国企业级数据中心与云计算发展论坛

 

演讲PPT下载:网易私有云IaaS平台介绍

会议网站:http://www.dcdconverged.com/conferences/enterprise-china

参会感受

  1. 有幸能作为三个角色参会:主持应用>云会场(其实也就是串串场子,类似报幕员)、参与专家(砖家)讨论、作为演讲嘉宾介绍网易私有云平台
  2. 由于需要主持会场,所以没能去其他会场听讲,也是一大遗憾
  3. 接触到了各行各业的人士,并听到了他们对云计算的理解和应用情况(银行业、制造业、电商等),也听到了他们对openstack的顾虑和畏惧
  4. 京东的docker应用情况,听起来不错,但个人感觉也有一些问题,可能是各个公司的需求差异导致的吧,不过听他们说openstack是个过气的技术,虽然不太赞同,但这也是给我们的警示,没有任何一种技术是永远先进的,干IT的,不学习就没饭吃了。。。
  5. 云会场的大部分公司都偏重于介绍业务,而不是云计算相关技术(除了我。。。),对我来说吸引力不大
  6. 没有名片很不好意思,微信上又加了很多人
  7. 赞助商广告很多。。。

 

 

 

 

 

 

 

IMG_1091IMG_1092IMG_1093IMG_0546

IMG_0545 IMG_0544 IMG_0543 IMG_0542

 

OpenStack I/J/K版本更新内容

nova项目Icehouse版本更新内容

官方ReleaseNotes:https://wiki.openstack.org/wiki/ReleaseNotes/Icehouse

版本关键特性

  • 有限在线升级支持,可以先升级控制节点,然后再一个一个的升级计算节点,不至于导致全平台停服

Compute driver(Libvirt)变动

  • Libvirt(KVM) driver支持更多设备:内核参数设置、virtio-scsi支持、virtio-rng支持、支持配置显卡驱动(vga、cirrus、vmvga、xen、qxl)和显存大小设置、虚拟机watchdog设备支持、增强CPU特性感知能力(虚拟机可以使用更多的物理cpu特性)
  • Libvirt(KVM)driver中禁用HPET(High Precision Event Timer),该定时器会导致windows虚拟机在高负载情况下时钟漂移(时间不准)
  • Libvirt(KVM)driver在虚拟机创建过程中,可以等待neutron发送事件通知,以便确认网络准备完毕,防止竞争问题出现(依赖新版本的neutron实现事件发送功能)

API变动

  • OS-DCF:diskConfig在V3版本API中不再被支持
  • XML格式将不被支持,后续API只支持JSON格式的请求和响应
  • 增加删除服务接口(ExtendedServicesDelete)
  • admin_actions扩展移植到V3 API
  • nova调用neutron API时改用tenant_id来认证(之前用的是tenant name),改动原因是keystone V3版本API支持tenant name重名
  • nova hypervisor-show命令增加支持获取计算节点IP地址功能(API也支持)

Scheduler变动

  • 调度器缓存功能支持,加快调度速度
  • 新增调度器AggregateImagePropertiesIsolation,用来匹配镜像属性和计算节点的aggregate属性
  • 权重计算结果归一化,最大权重节点为1.0,最小为0.0
  • 调度器增加对虚拟机组的支持,有两种类型,亲和性调度和非亲和性调度,也即聚集或分散调度虚拟机组中的各个虚拟机
  • 负载感知调度功能支持,可以基于监控数据来根据计算节点负载选择调度节点(用来计算权重)

其他变动

  • 创建、删除keypairs时发送notification
  • 计算节点enable、disable、上电、下电、重启、进入或退出维护模式时发送notification
  • 计算服务(nova-compute)退出时,可以优雅关闭服务(先停止接收新请求,然后处理完所有处理中的请求,最后关闭进程)
  • 野虚拟机审计时(定时查询计算节点上是否有已经被删除的但还在运行的虚拟机),支持关机操作(之前有noop不操作、log打日志、reap清理三种)
  • 默认关闭文件注入功能,后续版本将会彻底删除
  • nova.conf文件分组,H版本只有一个[default]分组,新增了很多分组如[libvirt]等

已知问题

nova服务与其他OpenStack服务交互时经过测试建议使用的版本号如下:

  • keystone V2
  • cinder V1
  • glance V1

升级注意事项

  • 使用Cell调度器时权重计算结果归一化问题
  • docker、PowerVM driver从nova中移除
  • 各种配置项变动(名称变化或者被移除)
  • keystone_authtoken配置项组相关变更
  • I版本引入了libguestfs依赖,会导致从H版本升级到I之后,文件注入流程出现异常,建议是先在H版本关掉文件注入功能后,再升级到I
  • H版本之前私有flavor创建后不会自动被tenant看到(与文档描述不一致),之后的版本则会(与文档描述一致)
  • nova.conf.sample文件默认不会放到nova包里,需要执行命令生成
  • nova服务升级时,如果打开了等待neutron发送网卡绑定完成事件功能,则依赖新版本neutron(否则可能导致网卡挂载到虚拟机失败,或者网卡挂载成功但不可用),建议步骤:nova升级时通过配置项禁用该功能,然后升级neutron(启用事件通知功能),然后修改nova配置项打开该功能
  • 升级到I版本时,如果要使用半停服升级功能,需要修改配置项:[upgrade_levels]/compute=icehouse-compat
  • 注意有一大波配置项改名或者将被废弃

Juno版本更新内容

官方ReleaseNotes:https://wiki.openstack.org/wiki/ReleaseNotes/Juno/zh-hans

虚拟机管理功能

  • 在实例拯救中(rescue),允许用户使用一个特定的镜像,而并非原始镜像
  • 允许镜像指定config drive
  • 用户和管理员可以通过Flavor控制虚拟机CPU的拓扑(核数和vCPU个数配置)
  • 在实例拯救中(Rescue)挂载所有的本地盘

网络变动

  • 改善nova-network代码,允许每一个网络单独配置
  • 允许开发人员增加钩子(hooks),如果一旦实例的网络发生改变,立即得到通知
  • 允许Nova实例使用Neutron SR-IOV端口启动
  • 允许实例添加同一个网络内的多块网卡

Scheduler变动

  • 可扩展的资源跟踪。Nova中资源跟踪的代码是hard code,这个更新使这个功能可扩展,允许增加新的插件支持在调度中跟踪新的类型的资源
  • 支持整个host(虚拟机)的撤离(evacuated),但是需要经过scheduler为实例重新选择目标主机

其他变动

  • scheduler过滤器中支持host集合
  • Nova中支持i18n,在Oslo i18n中开启lazy翻译支持,更新Nova适配这个限制并添加可翻译的字段
  • 允许配置使用slave数据库作为定时任务的sql查询来降低负载
  • 只有在Host状态变化时才更新数据中的状态,替换之前的每60秒一次
  • 在虚拟化的列表API中返回状态信息
  • 允许API调用者在过滤服务状态时,同时传入大于一种以上的状态
  • 配额中增加用户可以创建服务器组的限制

Compute driver(Libvirt)变动

  • 在新的libivrt上,优化获取实例列表的性能
  • 允许为基于网络的磁盘做快照
  • 为Ceilometer开启qemu balloon统计
  • 支持退还未使用的磁盘块到底层存储系统
  • 实例的Meta-data信息现在存储在libvirt的domain xml中。这有利于系统管理员排查问题
  • 支持LXC容器的命名空间
  • 支持RBD的磁盘Copy-on-write复制
  • 开放交互式串口
  • 允许控制在关闭物理机时同时关闭虚拟机
  • 提供智能NUMA节点配置

已知问题

升级注意事项

  • 不推荐使用的或者被删除的Nova选项列表,可以在这里看到: http://docs.openstack.org/trunk/config-reference/content/nova-conf-changes-master.html
  • Nova-manage flavor子命令在Juno版本被废弃了,在2015.1(K)版本中会被删除掉。https://review.openstack.org/#/c/86122/ https://review.openstack.org/#/c/102212/
  • Libvirt最低版本现在是0.9.11: https://review.openstack.org/#/c/58494/
  • Nova现在支持使用Cinder V2 API. 在Juno版本中Cinder V1 API被废弃,在L版本中,Nova将默认切换到Cinder V2版本
  • python-novaclient的日志输出的小变化来提高可读性。keystone token的sha1哈希被输出,取代之前输出token自身 – 这样减少了输出内容,但是仍然可以判断token不匹配的场景。另外,额外的’\n’字符被删除掉。再次检查任何log解析器!
  • libvirt.volume_drivers配置现在已经被nova.conf废弃,将在Lxxxx版本中删除掉。通常来讲,这只会影响一小部分在此驱动的开发者。如果恰好这里包含你,一个建议的解决方案是继续在nova代码库中继续你的工作

Kilo版本更新内容

官方ReleaseNotes:https://wiki.openstack.org/wiki/ReleaseNotes/Kilo/zh-hans

版本关键特性

API v2.1
  • 我们有了下一代Nova API的第一个更新版本v2.1。v2.1版本的目的是向回兼容v2.0版本,并且拥有增强的API校验。API所有更新是通过发布微版本(microversion)发现的。更多信息请参阅:http://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/api-microversions.html
  • kilo版本中,我们仍然使用v2.0 API的代码提供v2.0 API的请求。我们希望v2.1将能够同时为v2.0和v2.1请求提供服务。
  • liberty v2.0现在被冻结了,所有功能被添加在v2.1 API中使用微版本(microversions)机制实现。kilo版本中微版本(microversion)更新包括:
    • 扩展keypair API支持x509证书,能够和Windows WinRM使用,这个功能是v2.1 API中第一个被以微版本(microversions)添加的功能。
    • 在os-extended-server-attributes暴露扩展属性
  • python-novaclient现在还不支持v2.1 API
  • Nova v2.1 API的策略执行得到优化:
    • 只在API入口执行策略
    • 对于单一的API,去掉了重复性规则
    • 所有的v2.1 API的策略规则使用’os_compute_api’作为前缀,以区别于v2 API。
    • 之前,由于在db层面权限检查的硬编码(hard-code),部分Nova API并不支持策略的配置。总是需要admin用户权限。部分在Nova v2.1 API中硬编码(hard-code)权限检查被移除,使得API策略可配置。其余的硬编码(hard-code)将在Liberty版本被移除掉。
升级支持
  • 我们减少了使用DB迁移脚本执行数据迁移,现在这部分使用一种”懒(lazy)”方式在DB的对象代码中完成。在nova-manage命令中可以帮助强制进行数据迁移。更多的信息请见:http://specs.openstack.org/openstack/nova-specs/specs/kilo/approved/flavor-from-sysmeta-to-blob.html
  • https://review.openstack.org/#/c/97946/ 增加了编号为267的数据库迁移脚本,这个脚本主要扫描instances.uuid为空(null)的记录并且一旦发现就会导致失败,因为迁移中需要保证instances.uuid非空并且在那个字段加入了UniqueConstraint限制。为了避免数据库迁移失败,提供了一个帮助脚本用来搜索空(null)的instances.uuid的记录。运行’nova-manage db sync’之前,运行帮助脚本‘nova-manage db null_instance_uuid_scan’,默认情况下,该脚本只会检索记录,并将结果输出,不会改变任何内容。如果在参数中加入- -delete,就会自动删除所有instances.uuid为空的记录

Scheduler变动

  • 一系列的性能优化
  • 我们在优化scheudler的代码结构,这将帮助我们能够演进和优化调度过程。这一点对于终端用户不可见。

Compute driver(Libvirt)变动

  • 以NUMA为基础的调度 : http://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/input-output-based-numa-scheduling.html
  • 虚拟机使用固定的物理CPU: http://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/virt-driver-cpu-pinning.html
  • 超大页(Large Page)支持: http://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/virt-driver-large-pages.html
  • vhostuser VIF驱动: http://specs.openstack.org/openstack/nova– specs/specs/kilo/implemented/libvirt_vif_vhostuser.html
  • 使用QEMU agent静默(Quiesce)文件系统(例如:做快照之前): http://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/quiesced-image-snapshots-with-qemu-guest-agent.html
  • Quobyte卷支持: http://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/quobyte-nova-driver.html
  • 支持QEMU iSCSI initiator: http://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/qemu-built-in-iscsi-initiator.html

已知问题

  • Evacuate恢复部分代码存在损坏数据的潜在危险。在nova-compute启动过程中,虚拟化端会汇报instance的状态,用于检查物理机发生故障过程中,虚拟机是否被移走了(i.e. 被evacuated)。如果此时发现的确发生迁移了,那么本地的数据就会被彻底删除。这样就存在潜在的可能出现选择错误,虚拟机被错误的销毁。在libvirt节点上,这样的情况可能会由于改变系统的主机名引发。在vmware节点中,这个可能会由于尝试从两个不同的主机(不同的主机名)管理同一个vcenter引发。这个Bug可能会在Liberty中得到修复,但是在当前部署中,关闭这种行为的建议是设置destroy_after_evacuate=False。 注意:这个并不是回归(regression)并且在evacuate的设计中已经提到这个瑕疵。这个并不容易修复,所以使用这种方式绕过去(workaround)解决这个潜在的数据损坏。在liberty的修复记录:https://review.openstack.org/#/c/161444/。
  • 生成的配置文件样例可能会缺少某些oslo相关的配置

升级注意事项

下面是你在升级中需要了解的内容。在可能的情况下,git提交的hash编码会提供你找到更多更详细的信息:

  • 如果你的Neutron端口(ports)是在Nova之外建立的,在你的服务器删除后并不会删除这些端口:1153a46738fc3ffff98a1df9d94b5a55fdd58777
  • EC2 API支持现在被废弃了,可能要在kilo删除掉:f098398a836e3671c49bb884b4a1a1988053f4b2
  • Websocket代理需要被和API节点一起升级,由于旧的API节点在鉴权控制台权限时不会发送access_url,新的代理服务(这个提交和以后的)处理类似请求时会鉴权失败9621ccaf05900009d67cdadeb1aac27368114a61
  • 在全部升级到kilo后(例如,所有节点都运行kilo代码),你需要在后台运行一个flavor信息更新的迁移,把旧名字改为新名字。Kilo的conductor节点会根据需要进行处理,但是其余的空闲数据需要在后台完成迁移。这个要在Liberty更新后全部完成,到时候旧的位置会被废弃。使用”nova-manage migrate-flavor-data”完成迁移。
  • 由于Nova v2.1 API强制策略的优化。在v2.1 API策略上有一系列改变发生。因为v2.1 API之前一直没有更新,所以这些改变无法向前兼容。所以最好使用策略的样例配置取代之前的版本。
  • force_config_drive = always被废弃了,需要使用force_config_drive = True替换:c12a78b35dc910fa97df888960ef2b9a64557254
  • 改变multi_instance_display_name_template的默认值:609b2df339785bff9e30a9d67d5c853562ae3344
  • 使用”nova-manage db null_instance_uuid_scan”确保DB迁移之前数据是干净的,c0ea53ce353684b48303fc59393930c3fa5ade58

cinder I/J/K版本功能调研

I版本新增功能
  • Ability to change the type of an existing volume (更改卷的volume type)
  • Add volume metadata support to the Cinder Backup Object (卷backup支持 metadata)
  • Implement Multiple API workers (多api worker)
  • Enable multi-process for API service ( 多api 进程)
  • Add ability to delete Quota ( 添加删除配额接口)
  • Add ability to import/export backups in to Cinder (导入导出卷备份,方便云环境和非云环境的数据迁移)
  • Ceilometer notifications on attach/detach (增加attach、detach的notification)
  • Add support for x-openstack-request-id (api请求的request-id跨服务支持)
  • Deprecate chance and simple schedulers (废弃了H版本的chance和simple调度策略 )
  • Port to oslo.messaging (使用oslo.messaging)
  • record-reason-for-disabling-service (记录服务disable原因)
  • 新增 了EMC,HP, IMB等的相关后端存储驱动
已知问题及注意事项
  • Reconnect on failure for multiple servers always connects to first server (Bug: #1261631)
  • Storwize/SVC driver crashes when check volume copy status (Bug: #1304115)
  • Glance API v2 not supported (Bug: #1308594) (glance v2版本不支持)
  • It is recommended you leave Cinder v1 enabled as Nova does not know how to talk to v2. (最好还是用v1版本的cinder来配合nova)
  • Force detach API 改成只能由管理员调用,用户自己无法调用了。
  • Simple/Chance scheduler 被移除,需配置 scheduler_driver=cinder.scheduler.filter_scheduler.FilterScheduler 。
  • hp3par_domain 配置项被移除。
J版本新增功能
  • Support for Volume Replication. (卷多副本支持)
  • Support for Consistency Groups and Snapshots of Consistency Groups. (一致性组,将一组卷划为一个组,来集中进行快照等管理操作)
  • Pool-aware Scheduler Support (支持后端存储池调度)
  • Completion of i18n-enablement Honor Glance protected properties in Image Upload (从卷创建镜像时保留保护属性)
  • Limit Bandwidth of Volume Copy ( 卷拷贝Qos限制,从镜像创建卷,备份,删除卷时的清理)
  • Add Volume Num Weighter Scheduling (卷数量权重调度)
  • Improve taskflow logging & usage 增加 了华为,富士通,oracle等等公司的若干后端驱动
已知问题及注意事项
  • 引入 了后端存储池概念来提升卷后端调度 配置项改动 nova 开始支持cinder v2 api,v1 api逐渐被遗弃,将在L版本完成切换。
  • 除了 在keystone 中药配置cinder v2的endpoint信息,nova中还需要配置配置项cinder_catalog_info 为 ‘volumev2:cinder:internalURL’
K版本 新增功能
  • cinder objects (cinder对象化)
  • Add DB table for driver private data (新增一个数据库表,来存放后端driver的私有数据)
  • Backup Support for Encrypted Volumes Cinder Pagination Sorting Enhancements (cinder分页排序支持)
  • Private Volume Types (支持私有volume type)
  • filtering-weighing-with-driver-supplied-functions (支持后端提供filter 权重算法来进行调度)
  • Limit Volume Copy Bandwidth Per Backend (针对每个存储后端来限制卷拷贝带宽)
  • iscsi-multipath-enhancement (iscsi多路径优化)
  • nfs- backup(driver to backup to NFS repository) Support over subscription in thin provisioning (支持精简配置的超额认购)

参考

https://blueprints.launchpad.net/cinder/icehouse https://blueprints.launchpad.net/cinder/juno https://blueprints.launchpad.net/cinder/kilo https://wiki.openstack.org/wiki/ReleaseNotes/Juno#OpenStack_Block_Storage_.28Cinder.29 https://wiki.openstack.org/wiki/ReleaseNotes/Icehouse#OpenStack_Block_Storage_.28Cinder.29

 

neutron

I 版本:

无新功能,增加一些第三方plugin。

J 版本:

DB migration refactor and new timeline
Distributed Virtual Router Support (DVR)
High Availability for the L3 Agent

主要数据库升级方式重构,是DVR以及L3重构。额外有对IPv6的支持,安全组的一些改进。

K 版本:

无新功能,增加一些第三方plugin。
基本没有对我们特别有用的功能,比较多代码重构。数据库升级重构和L3高可用我们已经有了。