分类 工具 下的文章

CloudStack常用术语解释

您可能会在用户界面,帮助和文档里遇到下列术语。了解这些关键术语将对你建立私有云或混合云有莫大的帮助。
account (账户)
一个CloudStack账户是服务提供商的一个客户或一个大型组织结构中的一个部门. 账户是CloudStack里的最小隔离单元: 在一个账户里,所有的用户可以共享数据和其它资源,而这在另一账户里是不可见的.在CloudStack里账户(Account)与用户(User)是不同的概念.可以把一系列用户看成是账户的别名.在许多安装部署中并不会特别在意用户,只要保证每个账户有一个用户即可.
cluster(集群)
由一个或多个物理主机组成,它们使用指定的存储.在主机上运行Hypervisor软件.它们的存储可以是主机自身的(也就是与Hypervisor在同一台机器上),但更为常见的是使用共享存储,比如NAS,这样就可以提供更好的可靠性和高可用性(HA).
disk offering(硬盘方案)
预定义的一定量的存储空间设置,用户在创建虚拟机实例的时候可以指定一个数据盘使用这个存储设置.管理员可以定义一个或多个这样的存储设置供用户选择–比如小型,中型或大型存储空间–这里的”小型”和”大型”的不同完全由管理员决定.数据盘在整个虚拟机实例的生命周期是比较短暂的,但通过CloudStack提供的快照功能,可以提供数据盘的持久化复本.
domain(域)
一组账户属于一个域.可以认为一个域包含了有逻辑关系的一组账户.比如,一个服务提供商为几个经销商服务,可以为每个经销商创建一个域.在一个经销商内部可以有一系列的账户为这个经销商的客户服务.一个域通常会有一个或多个域管理员,域管理员拥有这个域及其子域的控制权限.
domain administrator(域管理员)
一个域管理员是整个系统中比其它用户拥有更多权限的用户.例如,域管理员可以在这个域的范围内创建新的账户.域管理员可以访问只属于管理员域的虚拟资源.
global administrator(全局管理员)
全局管理员账户是整个系统中拥有最多权限的的用户,它等同于系统中的根用户(Linux中的root).它可以使用云环境中的所有功能,包括虚拟资源和物理资源的管理,可以创建或删除系统中其它用户.
host(主机)
主机是提供虚拟机运行所需要资源的环境.通常可以认为主机包含计算机及所需的服务端软件.比如,一台安装KVM套件的Linux服务器,一台Citrix的XenServer或一台ESXi服务器都是一个主机.主机提供了虚拟机运行所需的所有的CPU,内存,存储及网络资源.它们通过高带宽的TCP/IP进行互连以及连接到因特网.它们可以驻留在不同的数据中心,可以在不同的地理位置上.它们可以有不同的能力,比如,不能的CPU主频,不同数据量的内存等.它们通常使用高性能的硬件用来保证单一主机的可靠性,但在一个大规模的部署中,是允许有部分主机有故障出现.
hypervisor(虚拟化套件)
它是一个可以监控同一主机上多个虚拟机实例的软件. VMWare的VSphere, XenServer®,以及KVM都是这类软件.这个术语并非CloudStack独有.
IaaS
基础设施即服务(Infrastructure as a Service的缩写),这个术语并非CloudStack独有. 维基百科认为IaaS是云计算的代名词,它给的定义是”通过计算机网络按需供给计算资源”.CloudStack只是提供软件而不包含硬件,所以对于CloudStack来讲定义成IMaaS或IAaaS更为合适.
注: IMaaS或IAaaS指(基础设施管理即服务).
Management Server(管理服务器)
一个管理服务器提供了管理员的用户Web界面.
管理分配到主机的虚拟机.
管理分配给账户的公有或私有IP地址.
管理分配给虚拟机映像的存储.
管理快照,模板,ISO映像,并可能在多个数据中心进行复制.
network offering(网络方案)
是通过虚拟路由器或外部网络设备提供给最终用户的一组网络功能集合描述.它不像磁盘方案或计算方案,网络方案是CloudStack定义的而非管理员定义.
offering(方案)
参照磁盘方案,计算方案和网络方案.
pod(机架)
一组集群,与一个数据中心的一个物理机架的概念相似..
role(角色)
一组预定义的功能,根据用户被授予的权限,可以对登入系统的用户提供三种角色:
全局管理员
域管理员
用户
service offering(计算方案)
一些预定义好的虚拟硬件属性,包括CPU频率,CPU核数,内存大小等,用户可以选择相应的计算方案来创建一个新的虚拟机实例或是更改一个已有虚拟机的实例.管理员可以定义一个或多个计算方案来供用户选择,比如,小型,中型或大型实例,这里的”小型”和”大型”的不同完全有管理员来决定.
template(模板)
用户创建新的虚拟机时可供选择的基础操作系统镜像. 模板由管理员创建.比如,CloudStack默认情况下包含一个CentOS的模板可供使用. 目前所有流行的Linux及Windows操作系统版本都被支持用来做模板.
user(用户)
与计算机软件交互的人.一个账户和一个用户在CloudStack中是不一样的术语.一个账户下可以创建多个用户,也就是多个用户可以同属一个账户,但通常情况下是单个用户对应一个账户.用户更像是账户的别名.同一个账户下的用户可以访问分配给这个账户的所有资源.
zone(资源域)
由一组机架组成,一个数据中心通常等同于一个资源域.
 » 转载请注明来源:CloudStack中文社区
 » 本文链接地址:http://www.cloudstack-china.org/2012/07/123.html

大数据时代:Hadoop认证变身高薪敲门砖

众所周知,积极的参加各类的培训并获得相关的认证是IT专业人士的显著特征。而在2012年哪种技术会成为热点?毫无疑问是Hadoop。Apache Hadoop作为开源数据管理软件主要用来在分布式环境中的分析大量的结构化和非结构化数据。Hadoop已被用在包括Yahoo,Facebook,LinkedIn和eBay等众多流行的网站之中。
Hadoop大潮正在逐渐席卷所有美国的垂直行业,包括金融、传媒、零售、能源、以及制药等。Hadoop在树立大数据概念的同时,还对海量数据进行实时分析,并从分析得出的数据发现趋势,以提高企业赢利的能力。
IT专业人士对一些Hadoop开发和管理培训课程以及认证非常感兴趣。同时,IT经理(如CIO或CTO)也可以从大数据相关课程中受益良多。包括Cloudera、Hortonworks、IBM、MapR和Informatica都提供了相关的Hadoop培训。总部设在加州一家公司则提供四个不同受众(程序员、数据库分析师、系统管理员以及IT经理)的Hadoop相关课程。
Cloudera产品副总裁Charles Zedlewski表示Hadoop正在影响越来越的的行业。Cloudera所提供Hadoop服务已经持续了三年,同时也为自身企业级Hadoop软件做出了有力的补充。在过去几个月中,通过Cloudera Hadoop培训的相关人才极其抢手。相比于2011年第一季度,2012年第一季度参与培训的人预计会增长4倍。
Cloudera培训服务总监Sarah Sproehnle表示“公司也在努力聘请Hadoop人才,我们的Hadoop培训已经进行了一段时间。我们将最佳实践融入到我们课程之中,这驱使我们可以加快Hadoop从业人员快速成长。获得我们认证的从业人员也受到很多企业的欢迎,在企业中他们负责管理PB级数据”。Cloudera的Hadoop培训持续4天,大约需要2000美元费用。
事实上Cloudera的培训课程的名额在去年十一月纽约举行的第三次Hadoop全球年度大会(近2000人出席了会议)上被抢购一空。在过往的三年内,Cloudera已经培训超过10000名技术从业者。Cloudera计划在2012年底再培训10000名。
Hortonworks在二月也推出了被称为Hortonworks大学的Hadoop培训项目,并为IT专业人士提供标准课程和认证。Hortonworks的Hadoop认证分为开发人员认证与管理员认证。Hadoop开发者认证培训需要4天,费用约为2500美元。Hadoop管理员培训需要两天,费用大约1400美元。
“我们看到相关的Hadoop培训的需求在成倍增长,企业开始将收集的信息细化(客户信息、交易信息),企业都在争先恐后的寻找缩减成本的方法。”Hortonworks全球服务领域高级总监Bob Mahan说道。
相关的Hadoop开发培训需要被培训人具备Java编程经验,而对于Hadoop管理培训而言则需要被培训人具备Linux或Unix的管理经验。IT人员争先恐后参加Hadoop认证培训无非是想获取更高的薪资。据Mahan预测在未来3-5年,全球将有一半的数据通过Hadoop处理。
而IBM则提出了新的倡议,IBM呼吁在大学时代开始培养本科生和研究生,旨在让他们在大学时期就接触大数据概念以及Hadoop。IBM这一倡议自去年十月以来已经吸引了14000学生参与其中。IBM提供了六个在线课程,涉及Hadoop基础上下篇。IBM表示,在庞大的注册人群中,约有1成学生在5个月内完成了相关资格认证。
与此同时,MIT更要求计算机系的学生使用Hadoop MapReduce构建程序。而加州伯克利分校更是使用Hadoop致力于数据科学领域的研究。
最后Cloudera产品副总裁Charles Zedlewski表示“现今Hadoop所处的状况让我想起了1995年时的Java”。

互联网协议入门

我们每天使用互联网,你是否想过,它是如何实现的?
全世界几十亿台电脑,连接在一起,两两通信。上海的某一块网卡送出信号,洛杉矶的另一块网卡居然就收到了,两者实际上根本不知道对方的物理位置,你不觉得这是很神奇的事情吗?
互联网的核心是一系列协议,总称为”互联网协议”(Internet Protocol Suite)。它们对电脑如何连接和组网,做出了详尽的规定。理解了这些协议,就理解了互联网的原理。
下面就是我的学习笔记。因为这些协议实在太复杂、太庞大,我想整理一个简洁的框架,帮助自己从总体上把握它们。为了保证简单易懂,我做了大量的简化,有些地方并不全面和精确,但是应该能够说清楚互联网的原理。

一、概述
1. 1 五层模型
互联网的实现,分成好几层。每一层都有自己的功能,就像建筑物一样,每一层都靠下一层支持。
用户接触到的,只是最上面的一层,根本没有感觉到下面的层。要理解互联网,必须从最下层开始,自下而上理解每一层的功能。
如何分层有不同的模型,有的模型分七层,有的分四层。我觉得,把互联网分成五层,比较容易解释。

如上图所示,最底下的一层叫做”实体层”(Physical Layer),最上面的一层叫做”应用层”(Application Layer),中间的三层(自下而上)分别是”链接层”(Link Layer)、”网络层”(Network Layer)和”传输层”(Transport Layer)。越下面的层,越靠近硬件;越上面的层,越靠近用户。
它们叫什么名字,其实并不重要。只需要知道,互联网分成若干层就可以了。
1. 2 层与协议
每一层都是为了完成一种功能。为了实现这些功能,就需要大家都遵守共同的规则。
大家都遵守的规则,就叫做”协议”(protocol)。
互联网的每一层,都定义了很多协议。这些协议的总称,就叫做”互联网协议”(Internet Protocol Suite)。它们是互联网的核心,下面介绍每一层的功能,主要就是介绍每一层的主要协议。
二、实体层(Physical Layer)
我们从最底下的一层开始。
电脑要组网,第一件事要干什么?当然是先把电脑连起来,可以用光缆、电缆、双绞线、无线电波等方式。

这就叫做”实体层”,它就是把电脑连接起来的物理手段。它主要规定了网络的一些电气特性,作用是负责传送 0 和 1 的电信号。
三、链接层(Link Layer)
3. 1 定义
单纯的 0 和 1 没有任何意义,必须规定解读方式:多少个电信号算一组?每个信号位有何意义?
这就是”链接层”的功能,它在”实体层”的上方,确定了 0 和 1 的分组方式。
3. 2 以太网协议
早期的时候,每家公司都有自己的电信号分组方式。逐渐地,一种叫做”以太网”(Ethernet)的协议,占据了主导地位。
以太网规定,一组电信号构成一个数据包,叫做”帧”(Frame)。每一帧分成两个部分:标头(Head)和数据(Data)。

“标头”包含数据包的一些说明项,比如发送者、接受者、数据类型等等;”数据”则是数据包的具体内容。
“标头”的长度,固定为 18 字节。”数据”的长度,最短为 46 字节,最长为 1500 字节。因此,整个”帧”最短为 64 字节,最长为 1518 字节。如果数据很长,就必须分割成多个帧进行发送。
3. 3 MAC 地址
上面提到,以太网数据包的”标头”,包含了发送者和接受者的信息。那么,发送者和接受者是如何标识呢?
以太网规定,连入网络的所有设备,都必须具有”网卡”接口。数据包必须是从一块网卡,传送到另一块网卡。网卡的地址,就是数据包的发送地址和接收地址,这叫做 MAC 地址。

每块网卡出厂的时候,都有一个全世界独一无二的 MAC 地址,长度是 48 个二进制位,通常用 12 个十六进制数表示。

前 6 个十六进制数是厂商编号,后 6 个是该厂商的网卡流水号。有了 MAC 地址,就可以定位网卡和数据包的路径了。
3. 4 广播
定义地址只是第一步,后面还有更多的步骤。
首先,一块网卡怎么会知道另一块网卡的 MAC 地址?
回答是:有一种 ARP 协议,可以解决这个问题。这个留到后面介绍,这里只需要知道,以太网数据包必须知道接收方的 MAC 地址,然后才能发送。
其次,就算有了 MAC 地址,系统怎样才能把数据包准确送到接收方?
回答是:以太网采用了一种很”原始”的方式,它不是把数据包准确送到接收方,而是向本网络内所有计算机发送,让每台计算机自己判断,是否为接收方。

上图中,1号计算机向 2 号计算机发送一个数据包,同一个子网络的 3 号、4号、5号计算机都会收到这个包。它们读取这个包的”标头”,找到接收方的 MAC 地址,然后与自身的 MAC 地址相比较,如果两者相同,就接受这个包,做进一步处理,否则就丢弃这个包。这种发送方式就叫做”广播”(broadcasting)。
有了数据包的定义、网卡的 MAC 地址、广播的发送方式,”链接层”就可以在多台计算机之间传送数据了。
四、网络层(Network Layer)
4. 1 网络层的由来
以太网协议,依靠 MAC 地址发送数据。理论上,单单依靠 MAC 地址,上海的网卡就可以找到洛杉矶的网卡了,技术上是可以实现的。
但是,这样做有一个重大的缺点。以太网采用广播方式发送数据包,所有成员人手一”包”,不仅效率低,而且局限在发送者所在的子网络。也就是说,如果两台计算机不在同一个子网络,广播是传不过去的。这种设计是合理的,否则互联网上每一台计算机都会收到所有包,那会引起灾难。
互联网是无数子网络共同组成的一个巨型网络,很像想象上海和洛杉矶的电脑会在同一个子网络,这几乎是不可能的。

因此,必须找到一种方法,能够区分哪些 MAC 地址属于同一个子网络,哪些不是。如果是同一个子网络,就采用广播方式发送,否则就采用”路由”方式发送。(”路由”的意思,就是指如何向不同的子网络分发数据包,这是一个很大的主题,本文不涉及)遗憾的是,MAC 地址本身无法做到这一点。它只与厂商有关,与所处网络无关。
这就导致了”网络层”的诞生。它的作用是引进一套新的地址,使得我们能够区分不同的计算机是否属于同一个子网络。这套地址就叫做”网络地址”,简称”网址”。
于是,”网络层”出现以后,每台计算机有了两种地址,一种是 MAC 地址,另一种是网络地址。两种地址之间没有任何联系,MAC 地址是绑定在网卡上的,网络地址则是管理员分配的,它们只是随机组合在一起。
网络地址帮助我们确定计算机所在的子网络,MAC 地址则将数据包送到该子网络中的目标网卡。因此,从逻辑上可以推断,必定是先处理网络地址,然后再处理 MAC 地址。
4. 2 IP 协议
规定网络地址的协议,叫做 IP 协议。它所定义的地址,就被称为 IP 地址。
目前,广泛采用的是 IP 协议第四版,简称 IPv4。这个版本规定,网络地址由 32 个二进制位组成。

习惯上,我们用分成四段的十进制数表示 IP 地址,从 0.0.0.0 一直到 255.255.255.255 。
互联网上的每一台计算机,都会分配到一个 IP 地址。这个地址分成两个部分,前一部分代表网络,后一部分代表主机。比如,IP 地址 172.16.254.1,这是一个 32 位的地址,假定它的网络部分是前 24 位(172.16.254),那么主机部分就是后 8 位(最后的那个1)。处于同一个子网络的电脑,它们 IP 地址的网络部分必定是相同的,也就是说 172.16.254.2 应该与 172.16.254.1 处在同一个子网络。
但是,问题在于单单从 IP 地址,我们无法判断网络部分。还是以 172.16.254.1 为例,它的网络部分,到底是前 24 位,还是前 16 位,甚至前 28 位,从 IP 地址上是看不出来的。
那么,怎样才能从 IP 地址,判断两台计算机是否属于同一个子网络呢?这就要用到另一个参数”子网掩码”(subnet mask)。
所谓”子网掩码”,就是表示子网络特征的一个参数。它在形式上等同于 IP 地址,也是一个 32 位二进制数字,它的网络部分全部为1,主机部分全部为0。比如,IP 地址 172.16.254.1,如果已知网络部分是前 24 位,主机部分是后 8 位,那么子网络掩码就是 11111111.11111111.11111111.00000000,写成十进制就是 255.255.255.0。
知道”子网掩码”,我们就能判断,任意两个 IP 地址是否处在同一个子网络。方法是将两个 IP 地址与子网掩码分别进行 AND 运算(两个数位都为1,运算结果为1,否则为0),然后比较结果是否相同,如果是的话,就表明它们在同一个子网络中,否则就不是。
比如,已知 IP 地址 172.16.254.1 和 172.16.254.233 的子网掩码都是 255.255.255.0,请问它们是否在同一个子网络?两者与子网掩码分别进行 AND 运算,结果都是 172.16.254.0,因此它们在同一个子网络。
总结一下,IP 协议的作用主要有两个,一个是为每一台计算机分配 IP 地址,另一个是确定哪些地址在同一个子网络。
4. 3 IP 数据包
根据 IP 协议发送的数据,就叫做 IP 数据包。不难想象,其中必定包括 IP 地址信息。
但是前面说过,以太网数据包只包含 MAC 地址,并没有 IP 地址的栏位。那么是否需要修改数据定义,再添加一个栏位呢?
回答是不需要,我们可以把 IP 数据包直接放进以太网数据包的”数据”部分,因此完全不用修改以太网的规格。这就是互联网分层结构的好处:上层的变动完全不涉及下层的结构。
具体来说,IP 数据包也分为”标头”和”数据”两个部分。

“标头”部分主要包括版本、长度、IP 地址等信息,”数据”部分则是 IP 数据包的具体内容。它放进以太网数据包后,以太网数据包就变成了下面这样。

IP 数据包的”标头”部分的长度为 20 到 60 字节,整个数据包的总长度最大为 65,535 字节。因此,理论上,一个 IP 数据包的”数据”部分,最长为 65,515 字节。前面说过,以太网数据包的”数据”部分,最长只有 1500 字节。因此,如果 IP 数据包超过了 1500 字节,它就需要分割成几个以太网数据包,分开发送了。
4. 4 ARP 协议
关于”网络层”,还有最后一点需要说明。
因为 IP 数据包是放在以太网数据包里发送的,所以我们必须同时知道两个地址,一个是对方的 MAC 地址,另一个是对方的 IP 地址。通常情况下,对方的 IP 地址是已知的(后文会解释),但是我们不知道它的 MAC 地址。
所以,我们需要一种机制,能够从 IP 地址得到 MAC 地址。
这里又可以分成两种情况。第一种情况,如果两台主机不在同一个子网络,那么事实上没有办法得到对方的 MAC 地址,只能把数据包传送到两个子网络连接处的”网关”(gateway),让网关去处理。
第二种情况,如果两台主机在同一个子网络,那么我们可以用 ARP 协议,得到对方的 MAC 地址。ARP 协议也是发出一个数据包(包含在以太网数据包中),其中包含它所要查询主机的 IP 地址,在对方的 MAC 地址这一栏,填的是 FF:FF:FF:FF:FF:FF,表示这是一个”广播”地址。它所在子网络的每一台主机,都会收到这个数据包,从中取出 IP 地址,与自身的 IP 地址进行比较。如果两者相同,都做出回复,向对方报告自己的 MAC 地址,否则就丢弃这个包。
总之,有了 ARP 协议之后,我们就可以得到同一个子网络内的主机 MAC 地址,可以把数据包发送到任意一台主机之上了。
五、传输层(Transport Layer)
5. 1 传输层的由来
有了 MAC 地址和 IP 地址,我们已经可以在互联网上任意两台主机上建立通信。
接下来的问题是,同一台主机上有许多程序都需要用到网络,比如,你一边浏览网页,一边与朋友在线聊天。当一个数据包从互联网上发来的时候,你怎么知道,它是表示网页的内容,还是表示在线聊天的内容?
也就是说,我们还需要一个参数,表示这个数据包到底供哪个程序(进程)使用。这个参数就叫做”端口”(port),它其实是每一个使用网卡的程序的编号。每个数据包都发到主机的特定端口,所以不同的程序就能取到自己所需要的数据。
“端口”是 0 到 65535 之间的一个整数,正好 16 个二进制位。0 到 1023 的端口被系统占用,用户只能选用大于 1023 的端口。不管是浏览网页还是在线聊天,应用程序会随机选用一个端口,然后与服务器的相应端口联系。
“传输层”的功能,就是建立”端口到端口”的通信。相比之下,”网络层”的功能是建立”主机到主机”的通信。只要确定主机和端口,我们就能实现程序之间的交流。因此,Unix 系统就把主机+端口,叫做”套接字”(socket)。有了它,就可以进行网络应用程序开发了。
5. 2 UDP 协议
现在,我们必须在数据包中加入端口信息,这就需要新的协议。最简单的实现叫做 UDP 协议,它的格式几乎就是在数据前面,加上端口号。
UDP 数据包,也是由”标头”和”数据”两部分组成。

“标头”部分主要定义了发出端口和接收端口,”数据”部分就是具体的内容。然后,把整个 UDP 数据包放入 IP 数据包的”数据”部分,而前面说过,IP 数据包又是放在以太网数据包之中的,所以整个以太网数据包现在变成了下面这样:

UDP 数据包非常简单,”标头”部分一共只有 8 个字节,总长度不超过 65,535 字节,正好放进一个 IP 数据包。
5. 3 TCP 协议
UDP 协议的优点是比较简单,容易实现,但是缺点是可靠性较差,一旦数据包发出,无法知道对方是否收到。
为了解决这个问题,提高网络可靠性,TCP 协议就诞生了。这个协议非常复杂,但可以近似认为,它就是有确认机制的 UDP 协议,每发出一个数据包都要求确认。如果有一个数据包遗失,就收不到确认,发出方就知道有必要重发这个数据包了。
因此,TCP 协议能够确保数据不会遗失。它的缺点是过程复杂、实现困难、消耗较多的资源。
TCP 数据包和 UDP 数据包一样,都是内嵌在 IP 数据包的”数据”部分。TCP 数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常 TCP 数据包的长度不会超过 IP 数据包的长度,以确保单个 TCP 数据包不必再分割。
六、应用层(Application Layer)
应用程序收到”传输层”的数据,接下来就要进行解读。由于互联网是开放架构,数据来源五花八门,必须事先规定好格式,否则根本无法解读。
“应用层”的作用,就是规定应用程序的数据格式。
举例来说,TCP 协议可以为各种各样的程序传递数据,比如 Email、WWW、FTP 等等。那么,必须有不同协议规定电子邮件、网页、FTP 数据的格式,这些应用程序协议就构成了”应用层”。
这是最高的一层,直接面对用户。它的数据就放在 TCP 数据包的”数据”部分。因此,现在的以太网的数据包就变成下面这样。

至此,整个互联网的五层结构,自下而上全部讲完了。这是从系统的角度,解释互联网是如何构成的。下一次,我反过来,从用户的角度,自上而下看看这个结构是如何发挥作用,完成一次网络数据交换的。
七、一个小结
先对前面的内容,做一个小结。
我们已经知道,网络通信就是交换数据包。电脑A向电脑B发送一个数据包,后者收到了,回复一个数据包,从而实现两台电脑之间的通信。数据包的结构,基本上是下面这样:

发送这个包,需要知道两个地址:
对方的 MAC 地址
对方的 IP 地址
有了这两个地址,数据包才能准确送到接收者手中。但是,前面说过,MAC 地址有局限性,如果两台电脑不在同一个子网络,就无法知道对方的 MAC 地址,必须通过网关(gateway)转发。

上图中,1 号电脑要向 4 号电脑发送一个数据包。它先判断 4 号电脑是否在同一个子网络,结果发现不是(后文介绍判断方法),于是就把这个数据包发到网关A。网关A通过路由协议,发现 4 号电脑位于子网络B,又把数据包发给网关B,网关B再转发到 4 号电脑。
1号电脑把数据包发到网关A,必须知道网关A的 MAC 地址。所以,数据包的目标地址,实际上分成两种情况:
场景
数据包地址
同一个子网络
对方的 MAC 地址,对方的 IP 地址
非同一个子网络
网关的 MAC 地址,对方的 IP 地址
发送数据包之前,电脑必须判断对方是否在同一个子网络,然后选择相应的 MAC 地址。接下来,我们就来看,实际使用中,这个过程是怎么完成的。
八、用户的上网设置
8. 1 静态 IP 地址
你买了一台新电脑,插上网线,开机,这时电脑能够上网吗?
通常你必须做一些设置。有时,管理员(或者 ISP)会告诉你下面四个参数,你把它们填入操作系统,计算机就能连上网了:
本机的 IP 地址
子网掩码
网关的 IP 地址
DNS 的 IP 地址
下图是 Windows 系统的设置窗口。

这四个参数缺一不可,后文会解释为什么需要知道它们才能上网。由于它们是给定的,计算机每次开机,都会分到同样的 IP 地址,所以这种情况被称作”静态 IP 地址上网”。
但是,这样的设置很专业,普通用户望而生畏,而且如果一台电脑的 IP 地址保持不变,其他电脑就不能使用这个地址,不够灵活。出于这两个原因,大多数用户使用”动态 IP 地址上网”。
8. 2 动态 IP 地址
所谓”动态 IP 地址”,指计算机开机后,会自动分配到一个 IP 地址,不用人为设定。它使用的协议叫做 DHCP 协议。
这个协议规定,每一个子网络中,有一台计算机负责管理本网络的所有 IP 地址,它叫做”DHCP 服务器”。新的计算机加入网络,必须向”DHCP 服务器”发送一个”DHCP 请求”数据包,申请 IP 地址和相关的网络参数。
前面说过,如果两台计算机在同一个子网络,必须知道对方的 MAC 地址和 IP 地址,才能发送数据包。但是,新加入的计算机不知道这两个地址,怎么发送数据包呢?
DHCP 协议做了一些巧妙的规定。
8. 3 DHCP 协议
首先,它是一种应用层协议,建立在 UDP 协议之上,所以整个数据包是这样的:

(1)最前面的”以太网标头”,设置发出方(本机)的 MAC 地址和接收方(DHCP 服务器)的 MAC 地址。前者就是本机网卡的 MAC 地址,后者这时不知道,就填入一个广播地址:FF-FF-FF-FF-FF-FF。
(2)后面的”IP 标头”,设置发出方的 IP 地址和接收方的 IP 地址。这时,对于这两者,本机都不知道。于是,发出方的 IP 地址就设为0.0.0.0,接收方的 IP 地址设为 255.255.255.255。
(3)最后的”UDP 标头”,设置发出方的端口和接收方的端口。这一部分是 DHCP 协议规定好的,发出方是 68 端口,接收方是 67 端口。
这个数据包构造完成后,就可以发出了。以太网是广播发送,同一个子网络的每台计算机都收到了这个包。因为接收方的 MAC 地址是 FF-FF-FF-FF-FF-FF,看不出是发给谁的,所以每台收到这个包的计算机,还必须分析这个包的 IP 地址,才能确定是不是发过自己的。当看到发出方 IP 地址是0.0.0.0,接收方是 255.255.255.255,于是 DHCP 服务器知道”这个包是发过我的”,而其他计算机就可以丢弃这个包。
接下来,DHCP 服务器读出这个包的数据内容,分配好 IP 地址,发送回去一个”DHCP 响应”数据包。这个响应包的结构也是类似的,以太网标头的 MAC 地址是双方的网卡地址,IP 标头的 IP 地址是 DHCP 服务器的 IP 地址(发出方)和 255.255.255.255(接收方),UDP 标头的端口是 67(发出方)和 68(接收方),分配给请求端的 IP 地址和本网络的具体参数则包含在 Data 部分。
新加入的计算机收到这个响应包,于是就知道了自己的 IP 地址、子网掩码、网关地址、DNS 服务器等等参数。
8. 4 上网设置:小结
这个部分,需要记住的就是一点:不管是”静态 IP 地址”还是”动态 IP 地址”,电脑上网的首要步骤,是确定四个参数。这四个值很重要,值得重复一遍:
本机的 IP 地址
子网掩码
网关的 IP 地址
DNS 的 IP 地址
有了这几个数值,电脑就可以上网”冲浪”了。接下来,我们来看一个实例,当用户访问网页的时候,互联网协议是怎么运作的。
九、一个实例:访问网页
9. 1 本机参数
我们假定,经过上一节的步骤,用户设置好了自己的网络参数:
本机的 IP 地址:192.168.1.100
子网掩码:255.255.255.0
网关的 IP 地址:192.168.1.1
DNS 的 IP 地址:8.8.8.8
然后他打开浏览器,想要访问 Google,在地址栏输入了网址:www.google.com

这意味着,浏览器要向 Google 发送一个网页请求的数据包。
9. 2 DNS 协议
我们知道,发送数据包,必须要知道对方的 IP 地址。但是,现在,我们只知道网址 www.google.com,不知道它的 IP 地址。
DNS 协议可以帮助我们,将这个网址转换成 IP 地址。已知 DNS 服务器为 8.8.8.8,于是我们向这个地址发送一个 DNS 数据包(53端口)。

然后,DNS 服务器做出响应,告诉我们 Google 的 IP 地址是 172.194.72.105。于是,我们知道了对方的 IP 地址。
9. 3 子网掩码
接下来,我们要判断,这个 IP 地址是不是在同一个子网络,这就要用到子网掩码。
已知子网掩码是 255.255.255.0,本机用它对自己的 IP 地址 192.168.1.100,做一个二进制的 AND 运算(两个数位相同,结果为1,否则为0),计算结果为 192.168.1.0;然后对 Google 的 IP 地址 172.194.72.105 也做一个 AND 运算,计算结果为 172.194.72.0。这两个结果不相等,所以结论是,Google 与本机不在同一个子网络。
因此,我们要向 Google 发送数据包,必须通过网关 192.168.1.1 转发,也就是说,接收方的 MAC 地址将是网关的 MAC 地址。
9. 4 应用层协议
浏览网页用的是 HTTP 协议,它的整个数据包构造是这样的:

HTTP 部分的内容,类似于下面这样:
GET / HTTP/1.1
Host: www.google.com
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 6.1) ……
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip,deflate,sdch
Accept-Language: zh-CN,zh;q=0.8
Accept-Charset: GBK,utf-8;q=0.7,*;q=0.3
Cookie: … …
我们假定这个部分的长度为 4960 字节,它会被嵌在 TCP 数据包之中。
9. 5 TCP 协议
TCP 数据包需要设置端口,接收方(Google)的 HTTP 端口默认是 80,发送方(本机)的端口是一个随机生成的 1024-65535 之间的整数,假定为 51775。
TCP 数据包的标头长度为 20 字节,加上嵌入 HTTP 的数据包,总长度变为 4980 字节。
9. 6 IP 协议
然后,TCP 数据包再嵌入 IP 数据包。IP 数据包需要设置双方的 IP 地址,这是已知的,发送方是 192.168.1.100(本机),接收方是 172.194.72.105(Google)。
IP 数据包的标头长度为 20 字节,加上嵌入的 TCP 数据包,总长度变为 5000 字节。
9. 7 以太网协议
最后,IP 数据包嵌入以太网数据包。以太网数据包需要设置双方的 MAC 地址,发送方为本机的网卡 MAC 地址,接收方为网关 192.168.1.1 的 MAC 地址(通过 ARP 协议得到)。
以太网数据包的数据部分,最大长度为 1500 字节,而现在的 IP 数据包长度为 5000 字节。因此,IP 数据包必须分割成四个包。因为每个包都有自己的 IP 标头(20字节),所以四个包的 IP 数据包的长度分别为 1500、1500、1500、560。

9. 8 服务器端响应
经过多个网关的转发,Google 的服务器 172.194.72.105,收到了这四个以太网数据包。
根据 IP 标头的序号,Google 将四个包拼起来,取出完整的 TCP 数据包,然后读出里面的”HTTP 请求”,接着做出”HTTP 响应”,再用 TCP 协议发回来。
本机收到 HTTP 响应以后,就可以将网页显示出来,完成一次网络通信。

这个例子就到此为止,虽然经过了简化,但它大致上反映了互联网协议的整个通信过程。
http://www.ruanyifeng.com/blog/2012/05/internet_protocol_suite_part_i.html

vbox 与 kvm 的区别

vbox 与 kvm 的区别:
vbox 是由 qemu 改写而成,包含大量 qemu 代码。可以使用于 不支持 虚拟化的cpu。值得说的一点:vbox 在图形方面比较好,能进行2D 3D加速。cpu控制不理想(估计是因为图形支持的缘故)。操作上有独立的图形界面,易于上手。
kvm 是linux内核包含的东西,使用qemu作为上层管理(命令行)。cpu 必须支持虚拟化。性能,作为服务器很好,可是图形能力十分的差。即使放电影,图像也是像刷油漆一样,一层一层的。cpu使用率控制很好。 控制上比较简洁,功能比较丰富:比如使用 “无敌功能”所有更改指向内存,你的镜像永远保持干净。 “母镜像”功能让你拥有n个独立快照点。 还有很多参数。另外,kvm作为内核级的虚拟机,刚开始发展关注的公司比较多——但是还没有达到商业应用的水平。
总体而言:在支持 虚拟化的情况下,vbox 和 kvm 的性能差不多,主要是面向对象不同:kvm使用于服务器,vbox使用于桌面应用。
***********************************************
关于kvm:
kvm是开源软件,全称是kernel-based virtual machine(内核级虚拟机)。是x86架构且硬件支持虚拟化技术(如 intel VT 或 AMD-V)的linux 全虚拟化 解决方案。它包含一个为处理器提供底层虚拟化 可加载的核心模块kvm.ko(kvm-intel.ko 或 kvm-AMD.ko)。
kvm还需要一个经过修改的QEMU软件(qemu-kvm),作为虚拟机上层控制和界面。
kvm能在不改变linux或windows镜像的情况下同时运行多个虚拟机,(ps:它的意思是多个虚拟机使用同一镜像)并为每一个虚拟机配置个性化硬件环境(网卡、磁盘、图形适配器……)。
在主流的linux内核,如2.6.20以上的内核均包含了kvm核心。
KVM官方地址: http://kvm.qumranet.com/kvmwiki
KVM的Changelog: http://kvm.qumranet.com/kvmwiki/ChangeLog, 可以知道最新的版本是多少,做了那些改变。
KVM下载地址在sourceforge.net上: http://sourceforge.net/project/showfile … _id=180599
KVM的Howto文档: http://kvm.qumranet.com/kvmwiki/HOWTO
Kqemu: http://sourceforge.net/projects/kqemu/
Qemu: http://fabrice.bellard.free.fr/qemu/index.html
**************************入门篇(基于ubuntu9.10)
基本知识:
qemu是独立虚拟软件,能独立运行虚拟机(根本不需要kvm)。kqemu是该软件的加速软件。kvm并不需要qemu进行虚拟处理,只是需要它的上层管理界面进行虚拟机控制。虚拟机依旧是由kvm驱动。
所以,大家不要把概念弄错了,盲目的安装qemu和kqemu。
安装准备:
查看你的硬是否支持虚拟化。
命令:
egrep ‘(vmx|svm)’ /proc/cpuinfo
要有 vmx 或 svm 的标识才行。总的说来,AMD在虚拟化方面作得更好一些。
使用intel cpu的朋友还需要进入bios进行设置——因为我的是AMD,所以设置方法不敢乱说。
安装kvm:
打开新立得软件库,安装kvm。系统会自动安装相关的软件包,包括qemu-kvm。什么kvm-AMD 或 kvm-intel模式系统都自动处理好了。现在大多文章都是2008年写的,已经过时了,可惜好多人只知道复制,好多设置已经不需要了,有些跟官方的完全冲突。
创建虚拟镜像:
命令(先cd 到你要保存镜像的位置):
kvm-img create xxx.img 2G
由于是要安装xp精简系统,2G已经足够大了(安装下来只要700M)。xxx 代表名字,想取什么都可以。最好是连续的英文.默认格式为raw,当然你可以自己设定,比如(-f qcow2)加在 create 后面即可。(.img这个后缀是我随便编的,kvm对后缀名没有要求)
其它格式如下:
Supported formats: cow qcow vmdk cloop dmg bochs vpc vvfat qcow2 parallels nbd host_cdrom host_floppy host_device raw tftp ftps ftp https http
安装虚拟机系统:
命令(先cd 到你要保存镜像的位置):
kvm -hda xxxx.img -cdrom /path/to/boot-media.iso -boot d -m 512
说明几点:/path/to/boot-media.iso 只是个举例。具体为你的系统盘镜像位置。-m 为虚拟机内存大小,单位是M默认(不写这个选项)为128M。当然,自己看着给吧。
建议如果虚拟的是xp系统,把页面缓存给关了。
使用虚拟机最简单的命令:
命令(先cd 到你要保存镜像的位置):
kvm -m 1024 -hda xxx.img
由于默认内存是128M,所以不得不指定一下,要不连-m 1024都可以省了。此时是没有声卡的,当然也可加上声音选项。cpu默认是一颗,网络默认启动(为net-内部端口映射)(可以上网,但是主机识别不了,它也无法连接主机)。
你可以使用:
kvm -m 1024 -hda /xxx/xxx/xxx.img
你也可以把它作为桌面“创建启动器”的命令使用。每次轻轻一点就可使用了。
****************************中级篇
命令:
kvm –help
命令:
kvm-img –help
看看具体的选项说明,需要什么功能就在“最简单命令”后面加就是了——特别简单、功能又很多。用的满意了,可以做成“程序启动器”。或者打开gedit,把命令保存进去,把文件名改为xxx.sh。再把属性改为“可执行”,要用就点击。
比如:kvm -m 1024 -hda xxx.img -xxx xx -xxxx xxx -xxxxxx -xxx
现在分功能讲解
1,文件共享
我们希望虚拟机能和主机对一些文件夹进行共享操作。类似于vbox的共享文件夹。
首先安装 samba 。这是linux的共享功能软件,支持windows系统的访问。记住不是samba4
然后,新建一个文件夹,属性。共享选项,把所有选项开启。应用。接受系统的权限的更改。
好了,默认在虚拟机的网上邻居,就能找见了。没有?看看整个网络(侧边任务)。
简单吧,kvm早已升级了。根本不需要什么配置。
关于权限:你是否有“无法访问,权限不够……”的问题?主机无法修改共享文件“你不是该文件的创建者”?
那是因为linux的权限相当的严格,必须要放权别人才能访问、修改。
如果上级文件夹(无论哪个)不让读取(比如: 其它;文件夹访问 无),那么就会出现无法访问的情况。你要设置上级文件夹权限为(其它;文件夹访问 访问文件)就可以了,不必完全放权。
因为安全考虑,我的用户文件夹(其它;文件夹访问 无)。所以一开始就出了权限问题。我的解决办法是使用命令:
sudo gnome-open /home/
在home中再新建一个文件夹,在属性上,把创建者改为非root(改为经常使用的普通用户),组群:sambashare。权限全为:创建和删除。
经测试,外网虽然能显示共享文件夹,却无法访问——保证只有虚拟机可以访问。(我使用了ufw防火墙)
windows虚拟机在共享文件夹中创建的文件,主机是无法更改的。要设置权限:
我的电脑-打开-工具-文件夹选项-查看
把“使用简单的文件共享”选项去掉。在文件(夹)属性——安全:知道怎么弄了吧。
linux的文件夹系统权限作的十分的好。比如你把其它非受权文件夹的链接复制到共享文件夹,依然无法访问。windows那种权限的随意性,看见就想哭。
多说一点:我的电脑右键,可以把共享文件夹设置为网络硬盘。相当于移动硬盘,可以方便的安装软件,保存资料。
2。无敌模式(-snapshot)
-snapshot write to temporary files instead of disk image files
意思是不更改镜像文件,启动后的所有改动均不会往镜像文件上写。临时文件存放在内存中了,具体是cached。
同样的功能,在vbox要独立安装软件。效率可想而知……
在命令后面空格加上:
-snapshot
即可
3.高速网络(-net nic,model=virtio -net user)
表 2. 虚拟网络模块的性能差异
虚拟网络模块 网络传输速度(ssh) 客户机操作系统 网络状态
rtl8029 200-300KB/s SLES10SP2 (kernel 2.6.16-60) 不稳定
e1000 4.8-5.4MB/s SLES10SP2 (kernel 2.6.16-60) 稳定
virtio 10.6-11.1MB/s SLES11 (kernel 2.6.27-19) 稳定
驱动下载地址:
http://sourceforge.net/projects/kvm/files/
名字是 kvm-driver-disc 的 NETKVM-20081229.iso
具体可能有变化,使用命令:
kvm -m 1024 -hda xp.img -cdrom /home/cat650/linux/kvm/NETKVM-20081229.iso -enable-kvm -net nic,model=virtio -net user
其中:-cdrom是加载光驱的意思。网络默认设置是 (-net nic -net user) 这里由于要指定virtio模块所以要把命令加上。然后自动安装驱动就行了。听说速度接近真实网卡——明显是为打造虚拟服务器配置的。
以后在启动虚拟机命令后面加上-net nic,model=virtio -net user就可以了。
4.高速虚拟
VirtIO paravirtual 是 Linux 虚拟机平台上统一的虚拟 IO 接口驱动。通常主机为了让客户机像在真实环境中一样运行,需要为客户机创建各式各样的虚拟设备,如磁盘,网卡,显卡,时钟,USB 等。这些虚拟设备大大降低了客户机的性能。如果客户机不关注这些硬件设备,就可以用统一的虚拟设备代替他们,这样可以大大提高虚拟机的性能。这个统一的标准化接口在 Linux 上就是 VirtIO 。需要注意的是 VirtIO 运行在 kernel 2.6.24 以上的版本中才能发挥它的性能优势。另外 KVM 项目组也发布了 Windows 平台上的 VirtIO 驱动,这样 windows 客户机的网络性能也可以大大提高了。
下载地址:http://www.linux-kvm.org/page/WindowsGuestDrivers/Download_Drivers
viostor是磁盘的虚拟驱动。
带图片的参考:http://www.linux-kvm.org/page/WindowsGuestDrivers/viostor/installation
命令:把-hda xxx.img 替换为-drive file=/home/cat650/virt/xp.img,if=virtio,boot=on
意思是使用virtio磁盘系统,并作为启动盘(默认是boot=off,作为附加的第二硬盘)。第一次使用的时候记得挂载viostorXXXX.img,来安装驱动。
5.使用金手指“母镜像”功能
要求,镜像格式为 qcow2 。作用:在“母镜像”的基础上,建立一个新的镜像。虚拟机操作这个新镜像时不会对“母镜像”进行任何更改(只读“母镜像”),新镜像只保存由于操作产生的与“母镜像”的数据差异(大小很小)。由此实现超越“快照”“还原点”的金手指功能(数量没有限制)。
命令(先cd 到你要保存镜像的位置):
kvm-img create -b xp.img -f qcow2 xp.test
其中xp.img是“母镜像”(参数 -b xxx),xp.test是新镜像——只能用 qcow2 格式。
新镜像的使用:正常使用即可。
6.镜像格式转换,镜像信息查询
能转换的格式有:raw,qcow2,qcow,cow,vmdk,cloop
如果你记不清你创建的镜像是什么格式的,可以使用命令(先cd 到你要保存镜像的位置):
kvm-img info xxx.img
关于格式的优缺点,请参看高级篇
转换命令(先cd 到你要保存镜像的位置):
kvm-img convert -f raw -O qcow2 xp.img xp.qco
注意:-O是字母o的大写。
这条命令举例的意思是:把名为xp.img格式为raw的镜像转换成新镜像xp.qco格式为qcow2
其它格式”vmdk”是 VMware 3 / 4 兼容镜像格式。
*******************************深入了解
1.kvm-img 命令
用法:kvm-img 后续命令 [命令选项]
后续命令如下
check [-f fmt] filename
create [-F base_fmt] [-b base_image] [-f fmt] [-o options] filename [size]
commit [-f fmt] filename
convert [-c] [-f fmt] [-O output_fmt] [-o options] [-B output_base_image] filename [filename2 […]] output_filename
info [-f fmt] filename
snapshot [-l | -a snapshot | -c snapshot | -d snapshot] filename
部分内容详解:
filename
镜像的文件名(比如:xp.img cat.raw……后缀名随便取,或者不取)
base_image
只读的镜像——有点像“母镜像”。在“母镜像”基础上创建的镜像只储存对“母镜像”的修改。
output_base_image
forces the output image to be created as a copy on write image of
the specified base image; “output_base_image” should have the same
content as the input’s base image, however the path, image format,
etc may differ
base_fmt
base_image(母镜像) 的格式. 参考 fmt
fmt
指镜像格式。建议大多数情况让系统自动选择(不使用该选项)。
主要格式如下:
“raw”
Raw disk image format (默认).该格式精简,易被多种虚拟机接受。
如果你的系统支持 holes (如 linux 的 ext2 ext3 ext4? windows 的 NTFS),那么它将有效节约空间(比如你创建的磁盘是2G,虚拟系统只使用了800M,那么它实际也只占用800M的空间)。使用命令“kvm-img info 镜像文件名”,将显示实际使用的大小。linux用户还可以使用“ls -ls”命令直接查看。
“qcow2”
QEMU 镜像格式, 使用最多的格式. 创建的镜像比较小(用多少就占多少),对于系统文件不支持 holes 的(比如windows系统下使用qemu)很有帮助。可进行AES加密,zlib基本压缩,并支持多种VM的快照(snapshots)。
“qcow”
古老的 QEMU 镜像格式. Left for compatibility.
“cow”
User Mode Linux Copy On Write image format. Used to be the only
growable image format in QEMU. It is supported only for
compatibility with previous versions. It does not work on
win32.不能运行win32.
“vmdk”
VMware 3 / 4 兼容镜像格式
“cloop”
Linux Compressed Loop image, useful only to reuse directly
compressed CD-ROM images present for example in the Knoppix CD-
ROMs.
size
镜像文件的大小比特. 一般单位使 “M” (megabyte, 1024k) 、 “G” (gigabyte, 1024M)、 T (terabyte, 1024G) 。 “b” is ignored.
output_filename
生成的镜像文件名
output_fmt
生成的镜像文件格式

linux下用rpm安装mysql

下载地址:http://dev.mysql.com/downloads/mysql/5.1.html,打开网址,找到linux generic项,里面找到5.5.25_x86_64版本下载,需下载两个文件:
MySQL-client-5.5.25a-1.linux2.6.x86_64
MySQL-server-5.5.25a-1.linux2.6.x86_64
1、安装server端:
[root@host127 mysql_5.5.25]# rpm -ivh MySQL-server-5.5.25a-1.linux2.6.x86_64.rpm
Preparing… ########################################### [100%]
ls: cannot access /var/lib/mysql/*.err: No such file or directory
ls: cannot access /var/lib/mysql/*.err: No such file or directory
1:MySQL-server ########################################### [100%]
有以上信息显示为数据库安装成功。
测试是否成功可运行netstat看Mysql端口是否打开,如打开表示服务已经启动,安装成功。Mysql默认的端口是3306。
[root@host127 mysql]# netstat -nat
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:55982 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:5672 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
tcp 0 248 172.21.48.127:22 172.21.35.203:1930 ESTABLISHED
tcp 0 0 172.21.48.127:22 172.21.35.203:2163 ESTABLISHED
tcp 0 0 :::111 :::* LISTEN
tcp 0 0 :::35056 :::* LISTEN
tcp 0 0 :::22 :::* LISTEN
tcp 0 0 ::1:631 :::* LISTEN
tcp 0 0 :::12865 :::* LISTEN
2、安装client端
[root@host127 mysql_5.5.25]# rpm -ivh MySQL-client-5.5.25a-1.linux2.6.x86_64.rpm
Preparing… ########################################### [100%]
package MySQL-client-5.5.25a-1.linux2.6.x86_64 is already installed
有以上信息,也表示数据库client端安装成功。
3、登陆Mysql
用下面的命令连接mysql,测试是否成功。
登陆Mysql的命令是mysql,mysql的初始管理账号是root,没有密码。
[root@host127 mysql_5.5.25]# mysql
Enter password:
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 3
Server version: 5.5.25a MySQL Community Server (GPL)
Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type ‘help;’ or ‘h’ for help. Type ‘c’ to clear the current input statement.
mysql>

linux下安装JDK

1、通过官网下载软件
版本:jdk-6u31-linux-x64-rpm.bin
2、在cd /usr下生成jdk1.6.0_31文件夹,并将软件上传到此文件夹
给jdk-6u31-linux-x64-rpm.bin添加执行权限:chmod +x jdk-6u31-linux-x64-rpm.bin
执行文件:./jdk-6u31-linux-x64-rpm.bin
生成文件:jdk-6u31-linux-amd64.rpm
给jdk-6u31-linux-amd64.rpm添加执行权限:chmod +x jdk-6u31-linux-amd64.rpm
安装jdk-6u31-linux-amd64.rpm,提示安装成功。(默认的安装位置,在/usr/java/下,即/usr/java/jdk1.6.0_31)
3、设置环境变量
#vi /etc/profile
在最后面加入:
JAVA_HOME=/usr/java/jdk1.6.0_31
PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export JAVA_HOME PATH
保存后退出。
4、重启
reboot后,通过java -version查看版本
[root@host127 ~]# java -version
java version “1.6.0_31”
Java(TM) SE Runtime Environment (build 1.6.0_31-b04)
Java HotSpot(TM) 64-Bit Server VM (build 20.6-b01, mixed mode)
表明JDK安装成功。
5、卸载JDK
找到JDK安装目录的_uninst子目录;
在shell终端执行./uninstall.sh即可卸载JDK。

Linux下安装tomcat

Linux下安装tomcat
先从官网下载安装包:apache-tomcat-6.0.32.tar
1、在usr下建文件夹为tomcat6.0.23,将tar文件放入文件夹中。然后进行解压缩:
tar -zxvf apache-tomcat-6.0.32.tar
解压后生成文件夹tomcat-6.0.23
2、设置环境变量
设置两个环境变量CATALINA_HOME和CATALINA_BASE。
vi ~/.bashrc,加入export CATALINA_BASE=/usr/tomcat6.0.23/tomcat-6.0.23
export CATALINA_HOME=/usr/tomcat6.0.23/tomcat-6.0.23
3、保存后重启
查看下是否设置成功:
[root@127]# echo $CATALINA_HOME
/usr/tomcat6.0.23/tomcat-6.0.23
[root@127]# echo $CATALINA_BASE
/usr/tomcat6.0.23/tomcat-6.0.23
4、运行tomcat
[root@127]# cd /usr/tomcat6.0.23/tomcat-6.0.23/bin
在此目录下,执行startup.sh文件
[root@host127 bin]# ./startup.sh
Using CATALINA_BASE: /usr/tomcat6.0.23/tomecat-6.0.32
Using CATALINA_HOME: /usr/tomcat6.0.23/tomecat-6.0.32
Using CATALINA_TMPDIR: /usr/tomcat6.0.23/tomecat-6.0.32/temp
Using JRE_HOME: /usr/java/jdk1.6.0_31
Using CLASSPATH: /usr/tomcat6.0.23/tomecat-6.0.32/bin/bootstrap.jar
5、验证tomcat
登陆http://localhost:8080查看是否可以登陆tomcat的web界面。

Top5 things the cloud is not

It’s clear that the technology industry is moving from the PC era to the cloud era in several significant ways. While cloud represents a new way for IT to deliver — and end users to consume — IT applications and services, this transition also represents a significant change in how applications, services and systems are defined. The move to cloud computing is the most important technology disruption since the transition from mainframe to client-server, or even since Al Gore invented the internet. While industry veterans like Oracle’s commander in chief declared it a fad, this is a decade-long trend that is here to stay, and one that will define the next generation of IT.
The movement itself has been in play for the last decade, however there continues to be a lot of (mis)information in the marketplace about the cloud. So much so that it is difficult for organizations to figure out what is real and what is not to help them develop a successful cloud strategy, or simply learn about technologies that have been specifically designed and purpose-built to meet this dramatic shift in technology. While it’s important to know what the cloud is, it’s just as important to separate the wheat from the chaff, and for IT to understand what cloud is not.
To this end, I encourage you not to add yet another definition of the cloud to your glossary, but to truly understand the top 5 things the cloud is not.
1. Cloud is not a place. People often talk about moving to the cloud as if they were moving to another city. But the cloud is not a place. In fact, the cloud can be anywhere, in your data center or someone else’s. Organizations that believe they are moving to a strategy that leaves legacy apps and systems behind are in for a rude awakening. The single most important way for enterprise organizations to prepare themselves for the cloud is to understand that the cloud is a radically new way of delivering, consuming and adopting IT services in a far more agile, efficient, and cost-effective manner, which will spread throughout the ether and be a mix of public, private, managed or hybrid clouds. By looking holistically at the cloud, organizations can optimize its benefits for their budgets, privacy needs, geographies and overall business needs.
2. Cloud is not server virtualization. Despite what many believe, and what many will tell you, the cloud is not the same as next-gen server virtualization. It doesn’t surprise me that many believe that by virtualizing their data center they will create a private cloud. Some vendors are intentionally trying to blur that line, aiming to convince customers that their vCenter clusters somehow deliver a private cloud. On the contrary, that is a gross exaggeration of the term cloud.
If you take a look at the way Amazon has built its cloud architecture, it becomes very clear that there are some fairly stark differences between a server virtualization environment and a true cloud architecture. While Amazon starts with Xen virtualization technology, the brains of its architecture comes with a new layer of software that Amazon built in an effort to create a new control plane, a new cloud orchestration layer that can manage all the infrastructure resources (compute, storage, networking) across all of their data centers. This is at the heart of the cloud’s technology disruption. Some analysts refer to this as the “hypervisor of hypervisors,” or a “new software category of cloud system software.”
The fact of the matter is that some of the major players are doing cloud without server virtualization. Take Google for example. They have deployed a cloud architecture that is not using server virtualization, but rather a bare metal infrastructure. So while virtualization can be an important ingredient of cloud, it is not always a requirement.
3. Cloud is not an island. Depending on what you’re reading, you’ll hear a lot about public clouds versus private clouds, and it may feel as if enterprises must make a wholesale decision on which way to go. But the cloud is not an island, it is not a place where you put all of your IT services, and then lose all interconnectivity and access. The recent Amazon outages have proven this to be an important point for any organization leveraging the cloud. The right cloud strategy will be one that enables you to have a hybrid approach with the ability to easily connect private and public clouds. Even the recent move by NASA to include Amazon Web Services as part of its cloud rollout after a significant investment in the build-out of its own technology proves that the market is moving to open, interoperable multi-cloud environments.
4. Cloud is not top-down. The cloud has up-ended the traditional IT approach to delivering services. The lines of business have been leading the charge in making the decision to move to cloud computing. With specific needs to get to market quickly, functional business leaders are consuming cloud services to avoid traditional IT processes. But we don’t need surveys to clarify this movement. The reality is that with the simple swipe of a credit card and the creation of an account, end users can gain instant access to infinite pools of IT resource to help test out a new idea, get their job done or even become more agile in their daily work. This is part of why this revolution is so powerful. The Consumerization of IT is driving this new movement. Users are already there and the C-level offices are just now trying to catch up with them. Those that embrace this move sooner rather than later will learn how to use the cloud as a strategic weapon before their competitors do. So the cloud is not top down, but rather a bottoms-up phenomenon.
5. Cloud is not hype. As I started this piece, I wrote about the (mis)information that has flooded the market and slowed progression and adoption of the cloud for some organizations. I’ve spoken with people in many organizations who are still skeptical of the cloud and believe that it is something that is very far off into the future. No doubt there is a lot of noise in the market with many claiming early victory in the hearts and minds of developers, with open source momentum, or beta products. The reality is that the cloud is ready now, and Citrix has more than 100 organizations that are running clouds in production today. Companies like AutoDesk, Edmunds.com, Nokia, Chatham Financial and others, already reaping the benefits.
My words of advice to companies considering a move to the cloud – learn from others who have already built highly scalable, successful clouds that have helped them transform the way they deliver and consume IT resources.
This is just the beginning of the discussion. There are many more topics that we will continue to talk about in the coming weeks, months, years (such as, cloud is not only an infrastructure and cloud is not just for service providers). All with the goal of helping organizations and the market understand what the cloud is and what it is not.
 
http://www.wired.com/cloudline/2012/06/top-5-things-the-cloud-is-not/

kvm中的virtio的安装

依赖条件
内核版本>=2.6.25
操作步骤
创建一个磁盘,并通过附加”-hda “参数创建一个虚拟机并安装操作系统。
在Guest OS中,更新内核至2.6.25版本以上。(包含virtio dirvers)
在Guest OS中,修改/boot/grub/device.map文件的”(hd0) /dev/sda” 至”(hd0) /dev/vda”。
在Guest OS中,修改/boot/grub/menu.lst文件的”root=/dev/sda1″ 至”root=/dev/vda1″。如果root使用了UUID,则不需要执行此步骤。
通过改变”-hda ,if=virtio,boot=on”使半虚拟化生效。
参考网址
http://www.linux-kvm.org/page/Virtio
http://www.linux-kvm.org/page/Boot_from_virtio_block_device