zabbix 3.2 ubuntu下安装

2016/12/18 posted in  云计算和大数据

ubuntu 安装zabbix agent 3.2版本

  • release

ubuntu14.04 下默认安装的zabbix-agent 是2.2.2版本,如果我们需要安装3.2版本需要自己导入相关的源。

root@ubuntu:/opt# wget http://repo.zabbix.com/zabbix/3.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.2-1+trusty_all.deb
root@ubuntu:/opt# dpkg -i zabbix-release_3.2-1+trusty_all.deb
roroot@ubuntu:/opt# apt update
root@ubuntu:/opt# apt-cache search zabbix-agent
##可以查看到相关当前版本
root@ubuntu:/opt# apt-get install zabbix-agent

使用这种方式安装会比自己打包安装简单很多。

_etc_zabbix/zabbix_agentd.conf

#Server=[zabbix server ip]
#Hostname=[Hostname of client system ]

Server=192.168.1.11
Hostname=Server2

配置完成后重启服务器

# /etc/init.d/zabbix-agent restart

如果不希望制定本地ip,可以将hostname加上注释 # 。

2016/12/7 posted in  云计算和大数据

smart city connection 智慧城市的链接系统

万物互联下的新局势

  1. Internet: 4 billion devices 互联,在2020年互联网将会有20billion 设备。预示着Internet self has to change
  2. Sensors : Every device, Every building, every vehicle
  3. Things : 为了让所有的东西互联,我们需要将他们连接上互联网,然后通过软件来控制他们。将会是后面十年的主流方向。
  4. Services: 将来面向用户的都终将成为服务,这些服务包括:Ecommerce、Egoverment和其他相关领域。

这些将组成为一个整体的smart city。

而作为其中最重要的又将是作为所有基础设施的重中之重的Internet服务。

对于Internet的观点来说,只有三种类型的building,我们称之为 : rezidentsia building, commercial building, Data center.

TCP/IP 作为联通城市的最基础协议。

无限带宽技术(InfiniBand)

在数据中心内部,需要的带宽技术实际上更大,所以我们设计了新技术来取代TCP/IP,我们称其为InfiniBand。
TCP_IP只能用到带宽量的10-20%,但是InfiniBand技术可以使用到带宽量的95%。 则表示了InfiniBand技术是TCP_IP传输效率的10倍。但是Infiniband只能用于在短距离传输,一般用于数据中心内部。而TCP/IP可用于远距离传输。

在数据中心内部我们使用InfiniBand来控制设计数据中心内部的传输,以达到更高的效率,我们称为DataCenter Fabric

而对于整体的设计就会升级成在数据中心内部使用InfiniBand,而在数据中心之间使用TCP/IP。

扩展的无线带宽技术 Extending Infinband

使用交换设备将Infinband扩展的20000 kilometers

这个技术可以解决两点间的互通问题,我们可以用这个技术来替换数据中心间的两点间的互通,将数据中心之间使用InfiniBand技术来使得我们的网络利用率更高。

从而让我们都形成InfiniBand之间的互通。

他们提供三种相应的芯片来解决不同地域之间的互通问题,可以看看

数据中心和数据中心之间的使用Fabric to the cloud, 可以提供20000km距离,100Gb_s的量, 城市间的可以使用100km 10Gb_s的量级,而家庭之间的可以使用1Km 1Gb/s的。
最终还是解决互联之间的带宽问题。

加上这三个级别的交换设备,我们就可以解决城市内部的联通,来替代传统的TCP/IP网络

这个说明了如何来替代我们的城域网络,然后进一步的,我们使用小型的交换机来解决城市内部的小型网络,将我们整个城市的所有building互通。

从而进入了每个Building的每个room, 这样我们在building的机房内设置相应的大楼级交换机来进入每个room.

然后将房间内的每个设备都连上传感器来加入InfiniBand网络。同时也可以提供Extend Wifi等系统。

将这整个一套成为New generation Network。提供了新一代的连接方式。片子结尾将这定义为2050年的网络。

各大介绍

百度是这么介绍的http://baike.baidu.com/view/1549309.htm
IBM的相关介绍http://www.ibm.com/developerworks/cn/linux/l-cn-infiniband/index.html
思科也在其中 http://www.cisco.com/web/CN/products/products_netsol/datacenter/sol/0716_1.html
数据中心光纤融入InfiniBand
专访Mellanox CEO Eyal Waldman:InfiniBand与以太网齐驱并进 性能更胜一筹

北京石竹科技 []

引用一下相关解决方案:

上述数据中心中,分三层网络结构,主要包括一层核心层,二层汇聚层,三层为业务接入层。划分网络与系统功能大致分为:

  • 业务运行系统:负责企业支撑、生产等业务系统运行。一般业务系统可通过以太网组网,进行不同应用系统间数据的共享与处理;当需要大数据量计算与处理时,或者需要高速互联传输时,可通过InfiniBand组网,实现高性能的互联计算,解决以太网遇到的I/O瓶颈问题。
  • 安全与管理系统:以太网组网,包括监控管理中心和安全中心,监控管理负责设备运行与维护,包括性能管理、设备策略配置、故障管理、告警管理等网络与设备的管理与监控。安全中心负责企业证书认证、安全设备配置管理、入侵防护与告警监控等功能。
  • 大容量存储系统:通过光纤交换机接入存储系统。
  • 异地容灾备份中心:支持数据容灾(即数据复制)和应用的远程切换(即发生灾难时,应用可以很快在异地切换)。
  • 办公网络系统:通过以太网交换机组网,企业ERP或内部管理系统,用于日常办公事务、项目、商务、外协等管理。

1.2 业务系统

业务系统是数据中心的处理核心,由数百台内置InfiniBand网卡刀片服务器组成,业务处理节点通过InfiniBand网络通讯。本方案中服务器按业务区别管理,如WEB应用业务系统用于负责应用界面的提供,接受客户端请求并返回最终结果,是业务系统和数据的对外界面;逻辑计算业务系统负责数据的计算、业务流程整合;数据管理业务系统,负责数据的存储,供业务系统进行读写和随机调用。

业务运行系统运行着企业内部的支撑系统或重要的生产系统,是企业核心业务,作为重要的系统资源,不仅从业务保证方面,要提高系统运行的高效率,更要求承载网络和运行的平台具备及高的安全性。

一般来讲,不同的业务系统,其应用会安装在不同的运行平台上,根据需求配置服务器和软件环境,从上述拓扑中,以太网络连接不同的应用,其数据也是在不同的路径中进行传输,其根据请求提交的运行结果,也会通过各种访问方式,进行响应。

1.3 安全与管理系统

安全管理系统包括安全中心和监控管理中心。

安全中心负责对全网内的安全设备进行统一管理,其功能包括对认证证书的统一管理,对安全设备如防火墙的策略设置管理,对入侵防护设备的预警配置管理,对安全审计系统的定期检测与策略更新,对全网防病毒系统的更新管理,对网关防毒、防攻击的安全设置与管理,对内网流量的安全监控等。
监控管理中心负责对网络实行全面网络管理与实时状态的监控,负责设备运行与维护,包括性能管理、设备策略配置、故障管理、告警管理等网络与设备的管理与监控,异常访问及异常流量的监控。同时还对运行的软件进行远程管理与设置。

上述的安全与管理系统是数据中心日常运维必须用到的,通过监控与管理,使网络系统透明化,运行状态实时可见,监控机房是数据中心重要的设施。

1.4 网络系统

本方案有多种网络分类方式:按照网络功能划分可以将网络分成安全与管理网络、办公网络、业务网络、容灾备份网络、外接网络;按照网络带宽不同可以分为以太网、InfiniBand网络、光纤网络;按照网络交换层次不同可分为核心层、汇聚层和接入层三层结构。

网络功能分区设计,易于各个独立管理;网络带宽兼容设计,可以充分节约成本。网络架构分层设计,充分隔离了各个功能区,易于网络故障分离排错,易于系统扩展伸缩。三种分类方式根据性能需求、成本条件、安全可靠等问题的统筹考虑,合理融合,相互渗透,形成了灵活易扩展、易管理的解决方案。

其中,各个交换环节都采用双机热备形式,更有光纤专线连入异地灾备区,这种全冗余设计充分保障安全性、可靠性。
另外,在本方案的应用环境需要同时搭建InfiniBand网络、Ethernet网络和FC存储网络,三个独立网络的搭建带来了巨大的工作量和非常高的成本,同时也大大增加了后期维护的难度及成本。而本方案采用最新技术,使用网关产品或下一代SwitchX 系列产品,实现了以太网、InfiniBand、FC 三种网络的融合。这大大减少了服务器上I/O卡的数量,降低了网络的复杂程度,降低了客户的成本,降低了客户的后期维护的难度,减少了网络维护的成本。

1.5 存储系统

本方案存储设备采用高密度,高可靠性,易扩展的SFA10000高性能,可扩展性存储平台,支持FC和IB交换网络,主机支持10 GB_s 写、12+GB_s读吞吐量;单系统最大支持88U/1,200 驱动器/3.6PB容量;单个机架最大支持48U/1.8PB容量;

另外,方案采用FC和IB网络传输数据,将极大的扩充数据通道的速度。光纤传输的优点是速度快、抗干扰能力强, 为高性能的数据存储提供了保障。InfiniBand可以在相对短的距离内提供高带宽、低延迟的传输,而且在单个或多个互联网络中支持冗余的I_O 通道,因此能保持数据中心在局部故障时仍能运转。它是一个统一的互联结构,既可以处理存储I_O、网络I/O,也能够处理进程间通信(IPC) ,实现高的可靠性、可用性、可扩展性和高的性能。

2016/12/6 posted in  云计算和大数据

CAS云计算安全指南3.1版本笔记

云体系架构

云计算的构成

云计算的五大特征总结的比较清晰,在NIST对云计算的定义中,包括了五个基本特征、三个云服务模式、以及四个云部署模型。

这是全文基调的一幅图:

云服务经常和虚拟化技术一起使用,或者云服务基于虚拟化技术,但是并不必然。没有要求将资源抽象与虚拟化技术必须绑在一起。很多云服务产品并没有使用虚拟化层或操作系统容器。

现在的不管是创业团队还是自由产品,感觉不在自己的项目上面加上一个云就好像不是这个时代的产品一样。不管这朵云是实的还是虚的,最终服务到客户的,拥有以上5点的我认为就是云。对于云而言,客户对内部是不感知的,在需要服务的时候去拿即可。但是对于服务提供商来说,云内是更看重的,如何保证数据的安全、如何保证信息的流动性、如何保证运维的及时有效性、如何保证服务SLA,这些是服务提供商需要考虑的。所以真正的实需在于云的内部。这也是我们技术需要更重要的考虑的一部分。互联网时代更注重的是用户体验,但如何优化我们的云内部架构来提升整体的用户体验是一门很重要的课题。

多租户

云服务模式中的“多租户”意味着满足不同客户场景对策略 驱动的安全增强、分段、隔离、监管、服务水平以及相应的计费 /返款等模型的不同需求。

消费者可以以用户的身份使用公有云服务提供商的服务, 或者是私有云服务中一个实例,一个组织可以将共享同一个公共基础的用户分隔为不同的业务单元 BU(business unit)。

从提供商的角度来看,多租户对架构和设计提出的要求是通过在很多不同消费者之间杠杆式地分享基础设施、 数据、元数据、服务和应用等,来实现可扩展、可用性、管理、分区、隔离以及运行效率等方面的“经济性”。

在IaaS中的Bu可以看做一个完整的业务单位,我们可以看做是一个业务的编排,可能有一台或者多台虚拟机来组成,最后提供一套完整的业务。

云参考模型

SaaS 会在产品中提供最为集成化的功能,最小的用户可扩展性以及相对来说较高的集成化的安全(至少提供商 承担安全的职责)。

PaaS 提供的是开发者在平台之上开发自己应用的能力。因此,它倾向于提供比 SaaS 更多的可扩展性,其代 价是没有了 SaaS 那些用户即买即用的功能。这种权衡也会延伸到安全特色和能力上,虽然内置安全能力变得不 够完备,但是用户却拥有更多的灵活性去实现自己的强化安全。

IaaS 几乎不提供那些和应用类似的特色功能,但却有极大的“可扩展性”

2016/1/13 posted in  云计算和大数据

伯克利云计算白皮书————重点摘要心得

伯克利云计算白皮书

内容概要

从硬件上看云计算和传统的对比:
  1. 云计算能随需应变的提供似乎无限的计算资源,云计算终端用户无需再为计算力准备计划或预算。(灵活的架构,计算按需扩充,快速部署上线)
  2. 云用户(SaaS 服务供应商)可以根据需要,逐步追加硬件资源,而不需要预先给出承诺。(灵活架构,硬件按需扩充)
  3. 云计算提供其用户短期使用资源的灵活性(例如:按小时购买处理器或按天购买存储)。当不再需要这些资源的时候,用户可以方便的释放这些资源。(按需购买,精确到小时,精确使用,减少资源浪费)

云计算的成本意义。

数据中心构建:

在低成本地区建立和运维超大规模商用数据中心是实现云计算的关键,因为这样可以在电力、网络带宽、运维、软件和硬件等 5 到 7 个方面降低成本。

数据中心构建的成本意义。

虚拟化技术抽象到不同的层次

云计算中,为了实现资源的弹性利用以及给用户造成资源无限的假象,必须实现资源的复用。这需要通过虚拟化技术,隐藏资源被复用和共享的具体细节来实现。不同的效用计算将由展现给开发者的抽象层次的不同和各种计算存储资源管理层次的不同这两者所决定的

Amazon EC2 将EC2实例抽象成为一个类似完整的物理硬件。
Google AppEngine 每个实例针对特定的传统Web应用程序。

私有云与效用计算选型区分

对拥有私有云的公司或个人而言,什么时候更应该使用效用计算,而不是私有云服务呢?最典型的情况是当服务的需求随时间而变化的时候。第 二种典型情况是无法提前估计未来的计算需求。第三种典型情况是批量分析处理的公司可以利用云计算更快的完成计算工作。

云计算挑战与机遇
问题 机遇
1 服务的可用性 选用多个云计算提供商;利用弹性来防范 DDOS 攻击
2 数据锁定 标准化的 API;使用兼容的软硬件以进行波动计算
3 数据安全性和可审计性 采用加密技术,VLANs 和防火墙;跨地域的数据存储
4 数据传输瓶颈 快递硬盘;数据备份/获取;更加低的广域网路由开销; 更高带宽的 LAN 交换机
5 性能不可预知性 改进虚拟机支持;闪存;支持 HPC 应用的虚拟集群
6 可伸缩的存储 发明可伸缩的存储
7 大规模分布式系统中的错误 发明基于分布式虚拟机的调试工具
8 快速伸缩 基于机器学习的计算自动伸缩;使用快照以节约资源
9 声誉和法律危机 采用特定的服务进行保护
10 软件许可 使用即用即付许可;批量销售
虚拟机方向> 所有的层面应该更注重虚拟机的横向可扩展性而不是在单个虚拟机上的效率。此外,1. 应用软件既要能快速向下分解,又要能向上组合,这是一个新的要求。同时软件需要采用基于使用量的支付模型来满足云计算的要求。
  1. 基础软件需要清楚:它是在虚拟机上而不再是在逻辑上运行。而且它必须从一开始就内置了帐单功能。
  2. 硬件系统应该被设计成像一个大的容器(至少 12 个机柜),这将是最小销售单位。运维的成本将与购置成本变得一样重要,当内存、磁盘和网络闲置的时候,可将其调至节能状态。处理器要求在虚拟机环境下能很好的工作,闪存应该被加入到存储层次结构中,局域网交换机和广域网路由器都需要在带宽和成本上进行改善。

云计算的定义> 云计算包含互联网上的应用服务及在数据中心提供这些服务的软硬件设施。互联网上的 应用服务一直被称作软件即服务(Software as a Service, SaaS),所以我们使用这个术语。而 数据中心的软硬件设施就是我们称作的云(Cloud)。

当云以即用即付的方式提供给公众的时候,我们称其为公共云,这里出售的是效用计算。 当前典型得效用计算有 Amazon Web Services、Google AppEngine 和微软的 Azure。不对公众 开放的企业或组织内部数据中心的资源称作私有云。因此云计算就是 SaaS 和效用计算,但 通常不包括私有云。

将私有云排除出云计算的范畴。由于私有云的计算是内部的,不向公众开发的计算能力。

2015/11/23 posted in  云计算和大数据

博客系统Hexo介绍

博客系统Hexo介绍

Hexo git 地址

做了这么久的云,自己这个博客是直接放在github上面的,但是有时候国内访问比较慢之类的问题总是造成响应不太好,今天有时间看到Hexo系统。这里来大概分析一下他的好处。

Hexo是直接用Node.js开发的,它天生的优势就是完全静态化。传统的我们做个人博客的做法是先要去AWS或者国内阿里云之类的租用一个云主机,然后绑上公网IP,最后安装wordpress等博客系统。整完一套最低配置一年也需要1000大洋左右。

而Hexo免费静态博客程序,Hexo基于Node.js,出自台湾一博主,Hexo生成的静态网站可以放在任意空间上,例如常见的PHP、ASP空间、FTP服务器、百度BAE、新浪SAE等空间,可以说只要可以用Web访问的就可以搭建起Hexo博客。

而且Hexo可以直接通过架接在github上面提供访问,提供更好的体验。

详细的可以参考这篇博文 如何搭建一个独立博客——简明Github Pages与Hexo教程

题后

自己的使用的也是一个github上面的框架提供的类似服务。

Hexo的主要优势还是可选的模板比较多,自己可以配置自己想要的模板样式。

2015/11/23 posted in  云计算和大数据

RDS Xen 远程桌面License区别

RDS Xen 远程桌面License区别

RDS:

有两种类型的远程桌面服务客户端访问许可证 (RDS CAL):

RDS-每设备 CAL和 RDS-每用户 CAL

每设备和每用户的区别:

如果使用每设备授权模式,并且客户端计算机或设备初次连接到RD 会话主机服务器,默认情况下,向该客户端计算机或设备颁发一个临时许可证。在客户端计算机或设备第二次连接到RD 会话主机服务器时,如果许可证服务器已激活,并且有足够的 RDS-每设备 CAL 可用,许可证服务器将向该客户端计算机或设备颁发永久 RDS-每设备 CAL。

RDS-每用户 CAL 向一个用户授予通过任意数量的客户端计算机或设备访问RD 会话主机服务器的权限。RD 授权不强制使用 RDS-每用户 CAL。因此,无论许可证服务器上安装了多少个 RDS-每用户 CAL,都可以建立客户端连接。这样,管理员不必考虑 Microsoft 软件许可条款对每个用户都需要有效的 RDS-每用户 CAL 的要求。使用每用户授权模式时,如果不是每个用户都有 RDS-每用户 CAL,将会违反许可条款。

Microsoft RDS CALs 卖的地方:

Amazon售卖Microsoft Windows Server 2008 Remote Desktop Services User 5 CAL Licenses

This is for Remote Desktop licenses. If you have users that need to remote into the server to do their work then you will need one license per user. If you only have 2 users then that is already included. This license is installed on the server and will be tracked by the server. If you have 5 users that need to use the server at one time then you will need to buy 1 pack of 5 licenses. If you have 10 people that will use the server but only 5 people will need to use the server at any given time then you will most likely want to use the "Per User" not the "Per Seat" option. If you use the "Per Seat" then you would have to buy 2 packs of 5 licenses to allow the 10 users to remote in. I would not confuse this license with the "Per Device" license required to allow other computers to network to this server. If that is what you want then this is the wrong product. Another thing to be aware is this will work on other servers that are not HP.

RDS的每客户License是根据客户的峰值来卖的,如果是5个用户的License,那么保证同时只能有5个用户在线。

5客户 921美元。

ebay售卖链接
可支持银联付款
5用户 3229.88 \(749 per year
10用户 8134.70 \)1,679.86 per year
25用户 15083.70 \(1599 per year
75用户 34446.04 \)5500 per year
100用户 40708.96 $6,500.00 per year

2012约 $118 one concurrent user per year

Citrix Xen

5用户 945 美元

多用户的待询问

Citrix Xen 包含三个版本 Citrix XenDesktopTM 7.6, Platinum Edition、Citrix XenDesktopTM 7.6, Enterprise Edition、Citrix XenDesktopTM 7.6, VDI Edition三个版本,SAP 要求使用白金版本。

Citrix XenApp product utilizes a concurrent licensing model. With the XenApp concurrent model, users are anonymous and a license is consumed by each concurrent user to one or more apps and/or XenApp published desktops. A licensed concurrent user is an anonymous floating user only licensed for the period during which access to the Citrix environment is required. Once access is terminated by the anonymoususer, the license is immediately returned to the license pool and available for another anonymous user to consume.

Citrix Xen 提供并发License模式。和微软RDS一样是采用最大并发限制进行license出售。

在网上查到一个2013年的报价
XenApp 白金版 Renewal SRP \(75 per CCU Recovery SRP \) 335 per CCU

Citrix支持两种方式报价,按年计算和终身计算方式,终身方式约为按年方式的4倍。

2015/3/9 posted in  云计算和大数据

ITIL——事件管理

ITIL--事件管理

事件管理

  • 事件:在某一服务中不属于标准操作的并能导致、或可能导致这个服务的终端或服务质量下降的任何事件。
  • ITIL将服务台接受到得几乎所有呼叫——只要这种呼叫是可以记录的和可监控的——都称之为事件。
  • 事件不仅包括软件与硬件故障,还包括服务请求。事件管理设计服务的整个生命周期。
  • 服务请求(Service Request):用户想要获得支持、递送、信息、建议或文档,它并不属于IT基础设施方面的故障。是根据服务级别协议(SLA,Service Level Agreement)提供的。其提供是根据既定程序进行,而这些既定程序是经过协商的且具有适当的检查和控制功能,它应该保存在维护记录的地方,如配置管理数据库(CMDB,Configuration Management Database)。
  • 如果被请求的服务不是事先定义好的标准服务,并且它将改变IT基础设施的状态,那么我们将根据此提交一个变更请求(RFC,Request for Change),变更请求RFC并不由事件管理流程处理,而是由变更管理流程负责对其进行正式的处理。
  • 影响度(impact): 就锁影响的用户或业务数量而言,时间偏离正常服务级别的程度。
  • 紧急度(urgency): 解决故障时,对用户或者业务来说可以接受的耽搁时间。
  • 优先级(priority): 基于影响度和紧急度来决定。
  • 升级:如果某一事件不能在规定时间内由一线支持小组解决,那么更多有经验的人员和有更高权限的人员将不得不参与进来,这就是升级。升级又分职能性升级和结构性升级。职能性升级(Functional escalation,水平升级,技术性升级):意味着需要具有更多时间、专业技能或访问权限的人员来参与事件的解决。结构性升级(Hierarchical escalation,垂直升级,管理升级):意味着当经授权的当前级别的机构不足以保证事件能及时、满意地得到解决时,需要更高级别的机构参与进来。
  • 1线支持:通常由服务台来提供。2线支持:通常由管理部门提供。3线支持:通常由软件开发人员和系统结构人员提供。4线支持:通常由供应商提供。
  • 事件管理活动和其他活动关系:
2015/1/12 posted in  云计算和大数据

ITIL总结

ITIL背景与效益

客户对于ITIL服务的高期望随着时间的流逝也发生着重大的变化,这就希望对于客户的期望进行持续的评估。
IT服务的提供是指对IT设施的全面管理(运营和运帷)

IT 服务管理主要涉及对为满足组织需求而定制的 IT 服务的交付和支持。

ITIL 对客户/用户的效益:

  • IT 服务的提供变得更加以客户为中心,同时在服务质量上的协商一致会改进双方的关系。
  • 服务内容可以以客户的语言和更为恰当的详细程度得到更好的描述。
  • 可以对服务质量、可用性、可靠性和服务成本进行更好的管理。
  • 通过对联系点的协商一致改进与 IT 部门的沟通。

ITIL 对 IT 部门的效益:

  • IT 部门会形成一个更为明晰的架构,从而变得更有效率和更为关注公司目标。
  • 更加有利于 IT 部门对其负责的基础设施和服务实施控制,同时变更也变得更易于管理。
  • 一个有效的流程架构为有效地外包某些 IT 服务提供一个框架。
  • 遵循 ITIL 最佳实践可以促进文化变革从而有助于服务质量的改进,还可以对采纳基于 ISO 9000 系列标准或 BS 15000 的质量管理体系提供支持。
  • ITIL 为内部沟通和外部供应商沟通,以及程序的标准化和识别提供一个一致的参考框架。

应用 ITIL 过程中可能产生的问题和错误:

  • ITIL 的引进需要花费很长的时间和很大的努力,并且需要组织进行文化变革。一个过于激进的引进方案可能遭到挫败,因为其目标不可能实现。
  • 如果将完善流程结构变成一个孤立的目标,服务质量也可能会受到负面的影响。在这种情况下,不必要的或巧于设计的程序也可能被视为官僚性(bureaucratic)的障碍,如有可能,这种情况应当尽量避免。
  • 由于对相关流程应当产生的结果、恰当的绩效指标和怎样对流程进行控制缺乏基本的了解,无法对 IT 服务实施改进。
  • 由于没有可作为比较参照的基线数据和(或)确立了错误的目标,在服务质量和成本降低方面的改进不是很明显。
  • 一项成功的实施需要组织内各层次人员的参与和承诺。只有专家部门参与流程结构的开发可能使该部门在组织中受到孤立,从而其设定的方向不能被其他部门所接受。
  • 如果在适当的培训和支持工具方面缺乏足够的投资,流程可能不会产生应有的作用,从而服务无法得到改进。如果组织实施了过多的 IT 服务管理活动而又不是使用“最佳实践”,则可能在短期内需要更多额外的资源和人力。

ITIL 服务框架

ITIL服务框架

服务交付

服务交付(Service Delivery)是整个ITIL框架的心脏。服务交付描述了客户需要用来支持其业务运作的服务以及为提供这些服务所需要的资源。

  • 服务级别管理(Service Level Management):与客户就所要提供的IT服务的类型和质量签订清晰的协议,并确保这些协议得以实施。主要负责管理提供给客户的服务。
  • IT服务财务管理(Financial Management for IT Service): 主要论及如何经济节约的提供IT服务。
  • 能力管理(Capacity Management): 通过优化服务成本、安排采购时间和部署IT资源,从而对履行与客户签订的协议提供支持的流程。主要涉及资源管理、性能管理、需求管理、模拟测试、能力规划、负载管理以及应用选型。主要通过重点关注需求的规划和整合,从而确保约定的服务级别可以实现。
  • IT服务持续性管理(IT Service Continuity Management): 为IT服务运营准备和规划灾难恢复措施以避免业务运作发生中断。
  • 可用性管理(Availability Management): 通过部署适当的资源、方法和技巧,从而确保与客户约定的IT服务可用性目标能够实现的流程。主要涉及优化维护活动以及设计有关措施以将事件发生的测试降至最低等方面。
服务支持
  • 服务台(Service Desk):用户与IT部门的单一联系点。记录、解决和监控IT服务运行过程中发生的问题。
  • 事件管理(Incident Management): 解决事件并尽快恢复服务的供应。事件被记录下来,并且这种记录的质量能够影响其他多个流程运作的有效性。
  • 问题管理(Problem Management): 目标是要查处问题发生的潜在原因。
  • 配置管理(Configuration Management): 管理关于对不断变化的IT基础设施进行控制,识别基础设施内所有重要的组件,收集、记录和管理有关这些组件的信息,以及为所有其他的流程提供有关这些组件的信息的流程。
  • 变更管理(Change Management): 讨论有关对IT基础设施实施变更锁进行的审批和控制。通过对变更进行评估,从而确保能够在对IT服务产生最小负面影响的情况下实施这些变更,通过在组织内进行有效的协商和沟通,确保所有的变更都具有可追溯性。变更的实施需要遵循定义、规划、构建、测试、验收、实施和评估这样一个特定的路径。
  • 发布管理(Release Management): 经过测试并导入实际运作环境的一组配置项(CIS)。确保发布首次被导入实际运作环境取得成功,包括整个、测试和存储。
安全管理 (Security Management)

按照保密性、完整性和可用性的要求保护信息价值。安全管理致力于在独立于外部条件的情况下提供一个基本的安全性级别。

ICT基础设施管理(ICT Infrastructure Management)
  • 主要描述为提供一个稳定的IT和通信基础设施所需的流程、组织和工具,这个IT和通信基础设施需要以合理的成本满足业务需求。
  • ICT基础设施管理介绍从业务需求的定义到最终的ICT业务解决方案的部署和实施这样一个工作流,它是以技术为中心的。
  • 主要包括对IT服务提供所需的资源、人员、技能和培训级别的管理。生命周期:设计和规划、部署、运行和技术支持。
应用管理(Application Management)
  • 提供对应用管理生命周期的一个概要性的介绍,并为企业用户、开发人员以及服务经理了解如何从服务管理的角度对应用系统进行管理提供指导。
服务管理实施规划(Planning to Implement Service Management)
  • 为规划的实施IT服务管理过程中需要考虑的一些关键问题提供实践指南,以及解释实施或改进服务供应所需采取的重要步骤。
业务视角
  • 帮助经理们了解IT服务交付。
  • 包括业务持续性管理、合作和外包、在进行激变式变更时如何承受变更以及实现业务实践的适应性转换。
2015/1/12 posted in  云计算和大数据

从CA数据中心管理看整个云数据中心管理

CA 数据中心管理

CA数据中心管理软件在最近的Gartner提供的《数据中心基础设施管理工具魔力象限》中被列为领导者象限,足见其在数据中心管理的整体低位。
数据中心集中化已经成为了当前IT业的一个趋势,对于数据中心的管理同样也需要更加的自动化。除了需要应对传统的基础架构、运维管理、服务管理之外,新兴的云数据中心同样的需要多种的管理手段。

本文希望从在工作中使用CA管理套件的学习中来整理和总结一些数据中心管理手段。

CA 管理软件目录分类

CA将自己的管理软件分成了几个大类,下面从已经了解的部分分析它的几个大类的管理:

CA Service Assurance

进行CA的服务保障,通过对CA管理服务的监控,如操作系统、网络、数据库、应用,通过对这些监控的数据分析和相应的服务行为和业务影响分析。来进行一个端到端的风向评估,以提供相应的解决方案。

以核心业务系统为被管对象,从基础架构性能、网络性能、应用程序性能等多个方面进行全方位的分析和管理。实现主动的问题发现、定位和排除,最终确保服务级别和质量。

主要包括的产品有(仅包括一些使用过的产品,详细的产品目录可以查看CA官网):

CA Performance Management

CA性能监控中心,通过SNMP和NON-SNMP,整合服务器、网络、存储、流量、应用response等多种性能和相关数据的统一展示,提供了一个更快速,更聚焦的数据中心展示平台。它能够快速整合多种监控软件,并能够定义不同的安全级别来进行数据中心的相关监控。
CA Performance Management是一套监控和管理IT系统和网络基础设施的现代解决方案,其中包括:

  • Performance Center: 对多种数据源搜集的网络、设备、应用程序的性能数据进行统一的展示和管理。
  • Data Aggregator: 其中Data Aggregator由三大组件构成Data Aggregator、Data Collector和Data Repository。其中Data Aggregator主要起数据搜集和性能指标监控的作用,Data Collector主要从各类设备上按照DA要求定期抽取数据,Data Repository主要用于数据的存储。
  • Integration with IM solutions:集成其他的IM解决方案。如CA Network Flow Analysis, CA Application Delivery Analysis and CA Unified Communications Monitor以及 CA Spectrum 等。提供统一的展示功能。
CA DCIM

CA数据中心基础设施管理,提供对L1层的监控、告警以及数据中心的全方位可视化管理。可以进行相应的数据中心能耗管理,和可视化的数据中心实时2D、3D监控图。主要管理:电源系统、制冷系统、3D物理可视图。

CA Service Operations Insight

基于开放接口的集成平台
主要提供:

  1. 动态服务模型、服务性能和资源性能的拓扑发现
  2. 服务SLA、健康、性能的风险报告
  3. 针对服务性能进行根源分析,并输出事件和告警。
CA Application Delivery Analysis

提供端到端的应用程序监控,帮助快速的进行应用程序进程管理和快速定位解决问题。

  1. 监控所有应用的响应时间,可区分网络和服务器
  2. 监控服务器配置,ADA Console、Windows Server
CA eHealth

搜集和分析IT基础设施的实时性能数据,用可视化的方法对服务进行评估判断。提供算法分析和检测、用户自定义报表、实时数据显示和告警、多系统整合。

CA Mediation Manager

存储设备管理

  1. 存储设备拓扑发现,存储设备性能监控;
  2. 存储API适配,包括虚拟机的系统性能指标接入;
  3. 存储Agent适配、部署在被监控设备上。
    由于存储设备的多样性,提供可同时管理non-IP和non-SNMP设备
CA Network Flow Analysis

网络流量分析,优化应用的网络性能,形成100%可视化管理。帮助优化网络架构,获取更好的网络性能。它能够帮助诊断网络拥塞的主因、所需的网络连接容量、能承受多大的网络流量等。
它可以和CA Performance Center, CA Application Delivery Analysis, CA Unified Communications Monitor 和 CA Technologies third-party 或 custom IT management tools 整合,形成一个整体的网络性能方案,优化整体网络方案。

CA Spectrum

网络拓扑功能,提供网络设备、服务器设备等可用性管理。
能够使用拓扑帮助整体复杂的IT 基础设施,如物理服务器、虚拟的和云环境。同时整合错误管理、容错管理和根因分析以及相应的告警管理。
作为基本管理组件可以整合到其他解决方案中去:

  1. CA Application Performance Management
  2. CA Unified Infrastructure Management
  3. CA Performance Management
  4. CA Service Desk Manager
  5. CA Service Operations Insight
CA Virtual Assurance for Infrastructure Managers

提供集中管理物理环境和虚拟化环境的能力,提供一个整合的视角来同时管理Vmware、IBM、Oracle和Citrix。
该组件通过管理SystemEDGE代理组件来通过插件的方式管理不同的操作系统或者云管理平台。提供对插件的下发和管理的功能。

CA Service Management

CA 服务管理,帮助传统物理环境、虚拟化和云环境提升整体服务质量和资源利用率。能帮助实现具体的流程定义(如ITIL流程定义),管理传输、交付具体的服务或者资产声明周期。这些服务能整合以实现你的整体ITIL流程,通过ITIL流程的规范化来优化员工的积极性和效率。
服务管理的完整性可以提升服务质量、防止服务中断和大幅降低服务开销

CA Service Desk Manager

CA服务管理整合部分,能够为业务提供有效的IT服务管理,增进管理用户的能力和决策者的执行力。SDM提供变更管理、扩展自动化和Saas等工具来帮助决策者和管理员增加IT服务管理能力和降低业务消耗和风险。

CA ServiceDeskManager集成事件管理、问题管理、根因管理、变更管理、桌面管理、自动化支持、服务台、知识库管理、管理性能指标等。

Automation

IT多样性和复杂性,决定了IT管理需要有快速和多样化的服务来达到日益增长的服务要求。Automation建立自动化模式来帮助你加速和简化多样化云服务的管理变更。提供了主要的优势:

  1. 智能化:快速的响应改变的业务需求
  2. 工作流的方式加速云计算的实施
  3. 专业的速度、生产力和可视化的控制。
CA Process Automation

CA流程自动化:设计、部署和管理IT可选自动化流程

在跨组织和系统的情况下增加IT流程自动化,从而降低服务部署时间,降低跨部门情况下损耗的时间

  1. 降低手动操作花销
  2. 增加管理员效率
  3. 加速IT服务部署
  4. 增强服务质量
  5. 巩固流程策略
CA Server Automation

自动化服务器部署来增加IT服务部署效率。对操作系统、存储资源、跨物理服务的应用组件、虚拟云系统提供自动部署、补丁和配置管理。

  1. 加速应用部署时间
  2. 流程化服务器部署
  3. 增加服务器使用率
  4. 建立弹性和增加操作效率。
CA Configuration Automation

配置管理自动化: 自动化的进行数据中心资源管理配置
自动发现基础设施中得网络设备、服务器、操作系统、应用、数据库和中间件,进行相关的配置管理和管理IT服务设施。并时刻监测设施变更。

  1. 提高操作效率
  2. 巩固流程策略并减少风险
  3. 避免数据中心因为配置错误造成的运行中断
  4. 建立最好的生命周期管理
Advanced Authentication and Single Sign-On
CA Single Sign-On

单点登录组件,控制系统的单点登录情况。

业务目标

  1. 在传统物理架构领域、虚拟化领域、云架构领域,通过对故障发现、故障隔离、故障根源分析、配置变更管理、性能管理、流量分析、预测容量规划等手段支持IT服务交付
  2. 通过对网络、服务器、应用程序性能监控,并通过网络或物理关系拓扑,控制底层架构和流量构成,在网络流量分析、对网络和服务器问题提前进行有效的防护措施,更精准的预测未来的容量需求。
  3. 通过跨域相关性(物理与虚拟系统、数据与语音系统、数据库、客户端\服务器应用、私有\共有云)来简化IT管理过程,以便在集中式的企业仪表板中直观地显示故障与性能信息。
  4. 利用跨域信息和服务感知对整个外包服务的性能和可用性进行监控和管理,借助用户架构中的集中视图,无论服务降级或者中断发生在哪个位置,用户均能以更高的精准度进行定位,可主动管理与服务供应商签订的SLA,以保持服务级别竞争优势。

产品应有能力

  1. 故障定位能力:网络拓扑管理、网络关联分析、告警管理输出。网络级业务层面的快速故障定位能力。
  2. 主动预防能力:监控服务器、中间件、业务应用的运行状态,收集性能数据并进行分析和评估。通过性能数据分析和异常流量自动检测。异构场景下的监控QOS亚健康状态并输出告警,增强主动预防能力
  3. 提供优化建议:保存性能原始数据和分析数据,分析计算出性能指标基线,为全网规划、优化提供建议。

产品功能需求

集中监控

告警管理:
时间规则处理
阈值告警
用户自定义告警
告警集中呈现
告警邮件通知

性能监控:
性能阈值告警
性能指标趋势报表
性能指标健康报表
性能指标实时监控报表
公共服务拨测功能

Topo呈现

异构管理

异构服务器
异构存储
异构网络
异构Hypervisor
异构数据库

QOS管理

服务等级报告: 可用性分布、延时分布、线路利用率分布、网络容量、健康异常、平均健康指数、CPU利用率。
容量预测: 假设分析报告、健康报表的容量推断部分、健康报表的容量预算部分。

网络流量统计
  1. 统计网络报文流量,监控网络响应时间
  2. NetQOS Report Analyzer 分析网络应用延迟,帮助用户定位性能瓶颈
  3. 监测点的网络流量中各类TCP、UDP连接分析
  4. 实现保障功能,找出引起问题的异常网络流
应用程序体验和性能分析
  1. 管理最终用户的问题业务影响报告
  2. 监控Servlet、JSP、EJB、JMS、JPBC、JTA、WebService等应用组件响应时间
  3. 对事务自动跟踪分析,为分布式J2EE提供执行过程视图,自动找到执行路径中得性能瓶颈
  4. 支持灵活的监控扩充能力,可根据需要多任意客户应用中的类和方法进行监控
  5. 监控应用系统执行中得错误和异常,实时监控捕捉应用中阻碍应用程序成功执行的异常和错误
问题快速定位
  1. 告警相关性抑制,去掉重复告警
  2. 系统快照及回放
  3. 服务影响和根因分析
2014/12/8 posted in  云计算和大数据

Openstack 虚拟化优化方向

虚拟机亲和性调度机制

用于部分应用需要和某些指定应用隔离的场景,如主备场景等。

应用感知的大页表技术

用于高性能场景,使用大页表技术提供更高的内存hit率。

智能网络包中断合并技术

Linux内核在性能方面已经经历了很长一段时间的考验,尤其是2.6/3.x内核。然而,在高IO,尤其是网络方面的情况下,对中断的处理可能成为问题。我们已经在拥有一个或多个饱和1Gbps网卡的高性能系统上发现过这个问题,近来在有许多小包并发(大约10000packets/second)超载的虚拟机上也发现了这个问题。

原因很清楚:在最简单的模式中,内核通过硬件中断的方式来处理每个来自于网卡的包。但是随着数据包速率的增长,带来的中断渐渐超过了单个cpu可处理的范围。单cpu概念很重要,系统管理员对此往往认识不足。在一个普通的4-16核的系统中,因为整体cpu的使用率在6-25%左右并且系统看上去很正常,所以一个过载的内核很难被发现,。但是系统将运行很慢,并且会在没有告警,没有dmesg日志,没有明显征兆的情况下严重丢包。

详细内容请参考技术项目 - Linux网卡中断使单个CPU过载

减少VM-Exit上下文等虚拟化性能敏感的指令的优化:

减少虚拟化开销,让cpu更多的做业务相关的事情

亲和性感知的调度,HOST/Guest NUMA 的配置调优

NUMA系统的结点通常是由一组CPU(如,SGI Altix 3000是2个Itanium2 CPU)和本地内存组成,有的结点可能还有I/O子系统。由于每个结点都有自己的本地内存,因此全系统的内存在物理上是分布的,每个结点访问本地内存和访问其它结点的远地内存的延迟是不同的,为了减少非一致性访存对系统的影响,在硬件设计时应尽量降低远地内存访存延迟(如通过Cache一致性设计等),而操作系统也必须能感知硬件的拓扑结构,优化系统的访存。

可以参考 Linux 的 NUMA 技术

NetMap/DPDK软直通,及SR-IOV/VMDq硬直通,实现转发能力5-10倍以上的提升。

轻量化的Linux容器技术:

LXC 完全不使用硬件虚拟化,在host里面使用资源隔离技术,而不是做虚拟机级别的重隔离。

Linux Containers(LXC)一种操作系统层虚拟化(Operating system–level virtualization)技术,是Linux内核容器功能的一个用户空间接口。它将应用软件系统打包成一个软件容器(Container),内含应用软件本身的代码,以及所需要的操作系统核心和库。通过统一的命名空间和共用API来分配不同软件容器的可用硬件资源,创造出应用程序的独立沙箱运行环境,使得Linux用户可以容易的创建和管理系统或应用容器。[1]

LXC不需要Hypervisor这个软件层,软件容器(Container)本身极为轻量化,提升了创建虚拟机的速度。

LXC是所谓的操作系统层次的虚拟化技术,与传统的HAL(硬件抽象层)层次的虚拟化技术相比有以下优势:

更小的虚拟化开销(LXC的诸多特性基本由内核特供,而内核实现这些特性只有极少的花费,具体分析有时间再说)
快速部署。利用LXC来隔离特定应用,只需要安装LXC,即可使用LXC相关命令来创建并启动容器来为应用提供虚拟执行环境。传统的虚拟化技术则需要先创建虚拟机,然后安装系统,再部署应用。
LXC跟其他操作系统层次的虚拟化技术相比,最大的优势在于LXC被整合进内核,不用单独为内核打补丁。

LXC技术可以参考:LXC:Linux 容器工具

2014/8/27 posted in  云计算和大数据

libvert 虚拟化网络配置详解

libvert 虚拟化网络配置详解

具体的libvert xml文件格式指南可以参考Domain XML format

基本虚拟libvert虚拟化网络

bridge 和 tap/tun

桥是一个接口,桥由多个接口共同构成,在以太层把每一个接口收到的数据复制到其他接口。向桥写入数据时,桥内所有的接口都会收到

tap_tun简单的说时一块虚拟网卡。tap是以太层设备,tun是IP层设备。用户空间的程序向tap_tun写入数据,这些数据会传送到内核的网络模块;内核的网络模块写入数据,这些数据又可以被用户空间的程序读到。实现了宿主和Guest之间的共享接口。当guest机器的IP和宿主IP在同一个子网中时,连上这块虚拟网卡的虚拟机就可以和宿主通信。

bridge模式

Linux每启动一个VM,就会为这个VM创建一个tap设备,名字叫vnetx,然后将这块虚拟网卡加入桥设备brx,桥设备具体和那一块网卡绑定由用户自己决定。

...
  <devices>
    <interface type='bridge'>
      <source bridge='br0'/>
      <mac address='00:14:41:12:ac'/>
    </interface>
...

其中整个操作如下:

  1. 安装uml-utilities和bridge-utils这两个工具分别含有tunctl和brctl命令。
  2. 生成一个新的TAP接口 tunctl -t tap1 -u
  3. 生成一个叫做br0的bridge brctl addbr br0
  4. 把真实网卡加到bridge br0的一端 brctl addif br0 eth0
  5. 把上面生成的TAP接口加到bridge br0的另一端 brctl addif br0 tap1
  6. 激活TAP fconfig tap1 up
  7. 设置_dev_net/tun的读写权限 chmod 0666 /dev/net/tun

NAT模式

NAT: 网络地址转换
NAT分为: DNAT把数据包的目的地改称指定地址, SNAT把数据包的原地址改为指定地址。

SNAT的作用就是在宿主机内部构造一个独立的虚拟子网。Guest就是子网中的一台机器,当子网中的数据要发送出来的时候,这些数据的源地址会改为宿主机的实际网络地址,这样就实现了IP伪装。
Libvert创建了virbr0网桥,作为default虚拟网络的网关,并打开了STP。Libvert每启动一个VM的时候,同样为这个VM创建一个TAP设备。该tap设备连接到网桥之后,就可以访问这个虚拟网络的其他虚拟机。网桥可以通过NAT转发到外网,因为这个NAT使用Linux的iptables实现的,所以可以使用iptables规则。

...
  <devices>
    <interface type='network'>
      <source network='default'/>
      <mac address='00:14:41:12:ac'/>
    </interface>
...

该配置表示连接到default这个虚拟网络,default虚拟网络的配置文件位于_var_lib_libvert_network/default.xml
具体详细配置可以参考

libvert 虚拟化网络详细配置

libvert xml详细使用可以参考官方的这篇文档http://libvirt.org/formatdomain.html#elementsNICS
这里专注于libvert的网络看一下当前libvert支持哪些网络,这也同样可以看出openstack当前支持哪些网络。

  • Virtual network
  • Bridge to LAN
  • Userspace SLIRP stack
  • Generic ethernet connection
  • Direct attachment to physical interface
  • PCI Passthrough
  • Multicast tunnel
  • TCP tunnel
  • Setting the NIC model
  • Setting NIC driver-specific options
  • Overriding the target element
  • Specifying boot order
  • Interface ROM BIOS configuration
  • Quality of service
  • Setting VLAN tag (on supported network types only)
  • Modifying virtual link state
  • vhost-user interface

Virtual network

This is the recommended config for general guest connectivity on hosts with dynamic / wireless networking configs (or multi-host environments where the host hardware details are described separately in a definition Since 0.9.4).

virtual network定义了在HOST上的一种动态的/无线的连接配置。(就是NAT模式)
在网络下可以配置一个或多个portgroup,每个portgroup为不同的网络连接配置了不同的配置信息。
virtualport定义了该虚拟端口的下一跳,比如 vepa (802.1Qbg) 或者 802.1Qbh compliant switch 或者 Open vSwitch virtual switch。

...
  <devices>
    <interface type='network'>
      <source network='default'/>
    </interface>
...
    <interface type='network'>
      <source network='default' portgroup='engineering'/>
      <target dev='vnet7'/>
      <mac address="00:11:22:33:44:55"/>
      <virtualport>
        <parameters instanceid='09b11c53-8b5c-4eeb-8f00-d84eaa0aaa4f'/>
      </virtualport>
    </interface>
  </devices>
...

Open vSwitch virtual switch

This is the recommended config for general guest connectivity on hosts with static wired networking configs.

OVS switch配置静态的有线网络。 (bridge模式)
bridge提供虚拟机直接连接到LAN的功能。为虚拟机提供类似物理机的网络访问功能。
在Linux系统,bridge设备一般使用标准Linux host bridge 。 在支持OpenVSwitrh的HOST上同样可以将虚拟机对接到相应的OpenVSwitch端口上。

...
  <devices>
    ...
    <interface type='bridge'>
      <source bridge='br0'/>
    </interface>
    <interface type='bridge'>
      <source bridge='br1'/>
      <target dev='vnet7'/>
      <mac address="00:11:22:33:44:55"/>
    </interface>
    <interface type='bridge'>
      <source bridge='ovsbr'/>
      <virtualport type='openvswitch'>
        <parameters profileid='menial' interfaceid='09b11c53-8b5c-4eeb-8f00-d84eaa0aaa4f'/>
      </virtualport>
    </interface>
    ...
  </devices>
...

Userspace SLIRP stack

Provides a virtual LAN with NAT to the outside world.This networking is the only option for unprivileged users who need their VMs to have outgoing access.

使用NAT的方式将虚拟机网络直接对接到外部。仅用于需要访问外部的无特权用户。

...
 <devices>
   <interface type='user'/>
   ...
   <interface type='user'>
     <mac address="00:11:22:33:44:55"/>
   </interface>
 </devices>
...

Generic ethernet connection

Provides a means for the administrator to execute an arbitrary script to connect the guest's network to the LAN.

...
  <devices>
    <interface type='ethernet'/>
    ...
    <interface type='ethernet'>
      <target dev='vnet7'/>
      <script path='/etc/qemu-ifup-mynet'/>
    </interface>
  </devices>
...

Direct attachment to physical interface

Provides direct attachment of the virtual machine's NIC to the given physical interface of the host. Since 0.7.7 (QEMU and KVM only)

This setup requires the Linux macvtap driver to be available.

可以支持3种形式的直连选择,'vepa','bridge','private'。 其中vepa为默认模式。

  • vepa
    All VMs' packets are sent to the external bridge. Packets whose destination is a VM on the same host
  • bridge
    Packets whose destination is on the same host as where they originate from are directly delivered to the target macvtap device. Both origin and destination devices need to be in bridge mode for direct delivery. If either one of them is in vepa mode, a VEPA capable bridge is required.
  • private
    All packets are sent to the external bridge and will only be delivered to a target VM on the same host if they are sent through an external router or gateway and that device sends them back to the host. This procedure is followed if either the source or destination device is in private mode.
  • passthrough
    This feature attaches a virtual function of a SRIOV capable NIC directly to a VM without losing the migration capability. All packets are sent to the VF/IF of the configured network device. Depending on the capabilities of the device additional prerequisites or limitations may apply; for example, on Linux this requires kernel 2.6.38 or newer. Since 0.9.2

例子如下:

...
  <devices>
    ...
    <interface type='direct'>
      <source dev='eth0' mode='vepa'/>
    </interface>
  </devices>
...
...
<devices>
  ...
  <interface type='direct'>
    <source dev='eth0.2' mode='vepa'/>
    <virtualport type="802.1Qbg">
      <parameters managerid="11" typeid="1193047" typeidversion="2" instanceid="09b11c53-8b5c-4eeb-8f00-d84eaa0aaa4f"/>
    </virtualport>
  </interface>
</devices>
...
...
  <devices>
    ...
    <interface type='direct'>
      <source dev='eth0' mode='private'/>
      <virtualport type='802.1Qbh'>
        <parameters profileid='finance'/>
      </virtualport>
    </interface>
  </devices>
...

PCI Passthrough> A PCI network device (specified by the element) is directly assigned to the guest using generic device passthrough, after first optionally setting the device's MAC address to the configured value, and associating the device with an 802.1Qbh capable switch using an optionally specified element (see the examples of virtualport given above for type='direct' network devices).

用于将客户虚拟机直接绑定到PCI物理网卡,实现PCI的 passthrough. 使用可选的配置设备的mac地址,然后使用virtualport标签来是设备同步802.10bh交换能力。

...
<devices>
<interface type='hostdev' managed='yes'>
  <driver name='vfio'/>
  <source>
    <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
  </source>
  <mac address='52:54:00:6d:90:02'>
  <virtualport type='802.1Qbh'>
    <parameters profileid='finance'/>
  </virtualport>
</interface>
</devices>
...

Multicast tunnel

多播组,一个多播组用来建立一个虚拟网络。 多台虚拟机的devices设置同一个多播组的虚拟机能够进行跨host互访。

...
<devices>
  <interface type='mcast'>
    <mac address='52:54:00:6d:90:01'>
    <source address='230.0.0.1' port='5558'/>
  </interface>
</devices>
...

Tcp tunnel

Tcp Client/Server 构架同样可以用来组建一个虚拟网络。一个虚拟机提供网络的服务端,其他的虚拟机配置成为客户端。虚拟机之间的网络流量将Server作为路由,所有的都通过路由进行相互访问。

...
<devices>
  <interface type='server'>
    <mac address='52:54:00:22:c9:42'/>
    <source address='192.168.0.1' port='5558'/>
  </interface>
  ...
  <interface type='client'>
    <mac address='52:54:00:8b:c9:51'/>
    <source address='192.168.0.1' port='5558'/>
  </interface>
</devices>
...

set the NIC model

...
<devices>
  <interface type='network'>
    <source network='default'/>
    <target dev='vnet1'/>
    <model type='ne2k_pci'/>
  </interface>
</devices>
...

可以用以上方法设置网卡的模式。 这个type的类型是通过不同的hypervisor类型来进行定义的。
在qume和KVM中可以使用如下方式查询支持的模型列表:

qemu -net nic,model=? /dev/null
qemu-kvm -net nic,model=? /dev/null

可以查询到相应的模型类型:ne2k_isa i82551 i82557b i82559er ne2k_pci pcnet rtl8139 e1000 virtio

Setting NIC driver-specific options

网卡的特殊driver类型选项。

...
<devices>
  <interface type='network'>
    <source network='default'/>
    <target dev='vnet1'/>
    <model type='virtio'/>
    <driver name='vhost' txmode='iothread' ioeventfd='on' event_idx='off' queues='5'/>
  </interface>
</devices>
...
2014/7/30 posted in  云计算和大数据

虚拟化Iaas底层平台基本功能目录

虚拟化底层平台基础功能目录

libvert 详解

  • 虚拟机基本信息
  • 虚拟网卡
  • SR-IOV网卡直通
  • 异常通知
  • 内存预占
  • 虚拟机watchdog
  • 虚拟机网卡终端绑定
  • MacVTap
  • Guest Kbox信息转储
  • netmap软直通
  • 导出虚拟机的SeaBIOS日志
  • 共享内存通道设备
  • 绑定进程至pcpu

计算虚拟化

  • 虚拟机生命周期管理
  • 虚拟机信息查询
  • 虚拟机迁移
  • 故障HA特性
  • 虚拟化硬件设备管理
  • 虚拟机信息统计
  • 虚拟机NUMA管理

网络虚拟化

  • 虚拟网络交换机 vswitch
  • EVS
  • SR-IOV
  • netmap
  • VNI
  • NRM
2014/7/28 posted in  云计算和大数据

libvert基本功能及相关接口分析

KVM

KVM(Kernel-based Virtual Machine)是基于内核的虚拟化解决方案,目前Intel和AMD的CPU都对其提供了好很的支持。

平时KVM也会被说成是管理KVM虚拟化的一个工具,类似于qemu(quick emulator)。在网上看的文档,有的说KVM只能在物理机上做虚拟化,而qemu还适合在虚拟机上面进一步做虚拟化。目前大家常用的KVM虚拟化工具都是qemu。

KVM基本操作

虚拟机创建

创建img镜像文件(快照)

# cd /var/instances
# qemu-img create ubuntu.img 5G
# cd /var/instances
# kvm -hda ubuntu.img -cdrom ubuntu-12.04-server-amd64.iso -boot d -m 512

创建镜像并创建虚拟机。

# cd /var/instances
#virt-install --name=ubuntu --ram=512 --vcpu=2 \
--disk path=/var/instances/ubuntu.img,size=5 \
--cdrom=/var/images/ubuntu-12.04-server-amd64.iso \
--graphics=vnc,listen=0.0.0.0

另一种创建虚拟机的方式。
virt-install命令在virtinst包里,在CentOS下该包名为python-virtinst,其实最终调用的命令还是qemu-img和qemu-kvm。

操作系统安装

vnc登入安装操作系统,完成之后会在相应目录下生成镜像文件及xml配置文件(_etc_libvirt_qemu_ubuntu.xml)。

更多相关内容: http://en.wikibooks.org/wiki/QEMU/Images#Mounting_an_image_on_the_host

libvirt

libvirt是一套免费、开源的支持Linux下主流虚拟化工具的C函数库,这个函数库是一种实现Linux虚拟化功能的API,它支持虚拟机监控程序,比如Xen, KVM, Qemu等。

虚拟机基本信息

libvert虚拟机管理

安装完成之后,会生成相应的XML文件,libvert对于虚拟机的管理就针对这个XML文件,管理的命令如下:

# virsh list
# virsh list --all
# virsh create /etc/libvirt/qemu/ubuntu.xml
# virsh define /etc/libvirt/qemu/ubuntu.xml
# virsh undefine /etc/libvirt/qemu/ubuntu.xml
# virsh autostart domain_id|instance_name
# virsh destory domain_id|instance_name
# virsh start/shutdown/reboot/... domain_id|instance_name

libvirt XML文件格式

常规信息区域
...
<domain type='xen' id='3'>
    <name>instance-name</name>
    <uuid>d9ef885b-634a-4437-adb6-e7abe1f792a5</uuid>
    <title>A short description - title - of the domain</title>
    <description>Some human readable description</description>
    <metadata>
        <app1:foo xmlns:app1="http://app1.org/app1/">..</app1:foo>
        <app2:bar xmlns:app2="http://app1.org/app2/">..</app2:bar>
    </metadata>
    ...

type是虚拟化类型,其值可以是kvm, xen, qemu, lxc, kqemu等。id是标识正在运行的虚拟机,可以省略。

  • name
    虚拟机的名字,可以由数字、字母、中横线和下划线组成。
  • uuid
    虚拟机的全局唯一标识,可以用uuidgen命令生成。如果在定义(define)或创建(create)虚拟机实例时省略,系统会自动分配一个随机值这个实例。
  • title, description
    这两个东西都可以省略,见名知义,如果有特殊需求可以加上。
  • metadata
    metadata可以被应用(applications)以xml格式来存放自定义的metadata,该项也可以省略。
操作系统启动区域```

...

hvm


_var_instances_instance-hostname_kernel
_var_instances_instance-hostname_ramdisk
root=_dev_vda console=ttyS0

...


* type
虚拟机启动的操作系统类型,hvm表示操作系统是在裸设备上运行的,需要完全虚拟化。
* boot
boot属性的值可以是fd, hd, cdrom, network等,用来定义下一个启动方式(启动顺序)。该属性可以有多个。
* bootmenu
在虚拟机启动时是否弹出启动菜单,该属性缺省是弹出启动菜单。
* kernel
内核镜像文件的绝对路径。
* initrd
ramdisk镜像文件的绝对路径,该属性是可选的。
* cmdline
这个属性主要是在内核启动时传递一些参数给它。

##### 内存和CPU区域

...
2
2097152
2000000
...

vcpu属性表示分配给虚拟机实例的最大CPU个数。其中cpuset表示该vcpu可以运行在哪个物理CPU上面,一般如果设置cpuset,那么placement就设置成static。current的意思是是否允许虚拟机使用较少的CPU个数(current can be used to specify whether fewer than the maximum number of virtual CPUs should be enabled)。vcpu下面的这几个属性貌似只在kvm与qemu中有。
* memory
memory表示分配给虚拟机实例的最大内存大小。unit是内存的计算单位,可以是KB, KiB, MB, MiB,默认为Kib。(1KB=10^3bytes,1KiB=2^10bytes)
* currentMemory
currentMemory表示实际分配给虚拟实例的内存,该值可以比memory的值小。

##### 磁盘区域

...

_usr_bin_kvm<_emulator>


<disk type='file' device='disk'>
    <source file='_var_instances_instance-hostname_disk' />
    <target dev='vda' bus='ide' />
</disk> 

<disk type='file' device='disk'>
    <driver name='qemu' type='raw'/>
    <source file='_var_instances_instance-hostname_disk.raw'/>
    <target dev='vda' bus='virtio'/>
    <alias name='virtio-disk0'/>
    <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</disk> 

<disk type='block' device='disk'>
    <driver name='qemu' type='raw'/>
    <source dev='_dev_sdc'/>
    <geometry cyls='16383' heads='16' secs='63' trans='lba'/>
    <blockio logical_block_size='512' physical_block_size='4096'/>
    <target dev='hda' bus='ide'/>
</disk>

...

模拟器的二进制文件全路径。
* disk
定义单块虚拟机实例上的磁盘。
* type
可以是block, file, dir, network。分别表示什么意思就不多说了。
* device
表示该磁盘以什么形式暴露给虚拟机实例,可以是disk, floppy, cdrom, lun,默认为disk。
* driver
可以定义对disk更为详细的使用结节。
* source
定义磁盘的源地址,由type来确定该值应该是文件、目录或设备地址。
* target
控制着磁盘的bus/device以什么方式暴露给虚拟机实例,可以是ide, scsi, virtio, sen, usb, sata等,如果未设置的系统会自动根据设备名字来确定。如: 设备名字为hda那么就是ide。
* mirror
这个mirror属性比较牛B,可以将虚拟机实例的某个盘做镜像,具体不细说了。

##### 网络接口区域

...







...

表示该接口的类型,可以是bridge等类型

##### 相关事件的配置

...
destroy
restart
restart
poweroff
...


on_poweroff, on_reboot, on_crash
其属性值为遇到这三项时进行的操作,可以是以下操作:

* destroy 虚拟机实例完全终止并且释放所占资源。
* restart 虚拟机实例终止并以相同配置重新启动。
* preserve 虚拟机实例终止,但其所占资源保留来做进一步的分析。
* rename-restart 虚拟机实例终止并且以一个新名字来重新启动。

on_crash 还支持以下操作:

* coredump-destroy crash的虚拟机实例会发生coredump,然后该实例完全终止并释放所占资源。
* coredump-restart crash的虚拟机实例会发生coredump,然后该实例会重新启动。

on_lockfailure
当锁管理器(lock manager)失去对资源的控制时(lose resource locks)所采取的操作:

* poweroff 虚拟机实例被强制停止。
* restart 虚拟机实例被停止后再启动来重新获取它的锁(locks)。
* pause 虚拟机实例会被暂停,并且当你解决了锁(lock)问题后可以将其手动恢复运行。
* ignore 让虚拟机实例继续运行,仿佛一切都没发生过。

##### 时间区域


offset支持utc, localtime, timezone, variable等四个值,表示虚拟机实例以什么方式与宿主机同步时间。(并不是所有虚拟化技术都支持这些模式)

##### 图形管理接口

...






...

type为管理类型,可以是VNC,rdp等。其中port可以自动分配(从5900开始分配)。

##### 日志记录

...









...

以上意思是禁止字符设备的输入,并将其输出定向到虚拟机的日志文件中(domain log)。将设备的日志写到一个文件里(Device log),比如:开机时的屏幕输出。

###虚拟网卡

#### Linux Tun/Tap虚拟网卡##### 介绍:
Tun_Tap 驱动程序实现了虚拟网卡的功能,tun表示虚拟的是点对点设备,tap表示虚拟的是以太网设备,这两种设备针对网络包实施不同的封装。利用tun_tap 驱动,可以将tcp_ip协议栈处理好的网络分包传给任何一个使用tun_tap驱动的进程,由进程重新处理后再发到物理链路中。
开源项目[openvpn](http://openvpn.sourceforge.net)和[Vtun](http://vtun.sourceforge.net)都是利用tun/tap驱动实现的隧道封装。

##### 工作原理:
做为虚拟网卡驱动,Tun_Tap驱动程序的数据接收和发送并不直接和真实网卡打交道,他在Linux内核中添加了一个TUN_TAP虚拟网络设备的驱动程序和一个与之相关连的字符设备 _dev_net/tun,字符设备tun作为用户空间和内核空间交换数据的接口。当内核将数据包发送到虚拟网络设备时,数据包被保存在设备相关的一个队 列中,直到用户空间程序通过打开的字符设备tun的描述符读取时,它才会被拷贝到用户空间的缓冲区中,其效果就相当于,数据包直接发送到了用户空间。通过 系统调用write发送数据包时其原理与此类似。
在linux下,要实现内核空间和用户空间数据的交互,有多种方式:可以通用socket创建特殊套接字,利用套接字实现数据交互;通过proc文件系统创建文件来进行数据交互;还可以使用设备文件的方式,访问设备文件会调用设备驱动相应的例程,设备驱动本身就是内核空间和用户空间的一个接口,Tun/tap驱动就是利用设备文件实现用户空间和内核空间的数据交互。
从结构上来说,Tun/tap驱动并不单纯是实现网卡驱动,同时它还实现了字符设备驱动部分。以字符设备的方式连接用户空间和内核空间。
Tun_tap 驱动程序中包含两个部分,一部分是字符设备驱动,还有一部分是网卡驱动部分。利用网卡驱动部分接收来自TCP_IP协议栈的网络分包并发送或者反过来将接收到的网络分包传给协议栈处理,而字符驱动部分则将网络分包在用户空间和内核空间之间传送,模拟物理链路的数据接收和发送。Tun/tap驱动很好的实现了两种驱动的结合。

#### libvert Network Interface指南
详细指南请参考 [](http://pengjunjie.com/articles/library-network-interface/)
2014/7/28 posted in  云计算和大数据

Openstack Cascade级联特性

Openstack Cascade 级联特性

简介

Openstack Cascade解决方案设计用于解决大规模的分布式云场景,比如由多个数据中心组成的上百万级别的虚拟机场景。

Openstack Cascade主要通过Openstack API聚合组成,将由多个子Openstack整合成一个单一的Openstack,提供单一的API供租户访问(包括NOVA_Cinder_Neutron_Glance_Ceilometer API)。 对于租户来说,看到的是一个Openstack,多个子Openstack被一个父Openstack整合,提供给租户,租户可以看到的是仅仅是单一的父Openstack。每个租户同样可以看到多个available zone。 每个Openstack实际的工作组成类似amazon的availiablity zone。

对于大级别云,两种方案的对比

使用单一Openstack组建

  • 使用单一Openstack管理100万以上的虚拟机或者10万以上的Host主机风险很大
  • 不能想EC2的available zone一样隔离故障区域,由于数据库和RPC message的绑定所有的云都仅仅的绑定到一个Openstack中了。
  • 单一的巨大的系统为维护团队的升级和配置管理带来了极大的挑战

使用多Openstack组建Cascade

Openstack Cascade 架构

架构演进可以参考这篇文章OpenStack cascading and fractal

  • Nova-Proxy: Similar role like Nova-Compute. Transfer the VM operation to cascaded Nova. Also responsible for attach volume and network to the VM in the cascaded OpenStack.
  • Cinder-Proxy: Similar role like Cinder-Volume. Transfer the volume operation to cascaded Cinder.
  • L2-Proxy: Similar role like OVS-Agent. Finish L2-networking in the cascaded OpenStack, including cross OpenStack networking.
  • L3-Proxy: Similar role like L3-Agent. Finish L3-networking in the cascaded OpenStack, including cross OpenStack networking.
  • FW-Proxy: Similar role like FWaaS-Agent. TBD
  • LB-Proxy: Similar role like LBaaS-Agent. TBD
  • VPN-Proxy: Similar role like VPNaaS-Agent. TBD

Openstack Cascade 包含Nova、Cinder、Neutron、Glance和Ceilometer的级联。但是Keystone和Heat将作为在级联中分享的全局服务。

详细内容可以看这一段Openstack Cascade官方文档

2014/7/28 posted in  云计算和大数据