导图社区 云计算
云计算的相关基础知识总结,包括云计算的概念、主要特点和服务类型、发展任务,关键技术,开源云计算管理平台等。
编辑于2021-11-23 11:00:39云计算
概述
云计算概念
所谓“云”是一种抽象的比喻,表示用网络包裹服务或者资源而隐蔽服务或资源共享的实现细节以及资源位置的一种状态。
主要特点
宽带网络连接,用户需要通过宽带网络接入“云”并获得有关的服务,“云”内节点之间也通过内部的高速网络相连。
快速、按需、弹性的服务,用户可以按照实际需求迅速获取或释放资源,并可以根据需求对资源进行动态扩展。
云计算服务的类型
laaS基础设施即服务
向用户提供计算机能力、存储空间等基础设施方面的服务。这种服务模式需要较大的基础设施投入和长期运营管理经验,但laaS服务单纯出租资源,盈利能力有限。
PaaS平台即服务
向用户提供虚拟的操作系统、数据库管理系统、web应用等平台化的服务。PaaS服务的重点不在于直接的经济效益,而更注重构建和形成紧密的产业生态。
SaaS软件即服务
向用户提供应用软件(如CRK、办公软件等)、组件、工作流等虚拟化软件的服务,SaaS一般采用web技术和SOA架构,通过Internet向用户提供多租户、可定制的应用能力,大大缩短了软件产业的渠道链条,减少了软件升级、定制和运行维护的复杂程度,并使软件提供商从软件产品的生产者转变为应用服务的运营者。
主要发展任务
增强云计算服务能力
提升云计算自主创新能力
探索电子政务云计算发展新模式
加强大数据开发与利用
统筹布局云计算基础设施
提升安全保障能力
关键技术
虚拟化技术
核心思想
利用软件或固件管理程序构成虚拟化层,把物理资源映射为虚拟资源。
服务器虚拟化
将一个或多个物理服务器虚拟成多个逻辑上的服务器,集中管理,能跨越物理平台不受限制。
两个方向
把一个物理的服务器虚拟成若干个独立的逻辑服务器,比如分区。
把若干分散的物理服务器虚拟为一个大的逻辑服务器,比如网格技术。
分类
按虚拟化层实现方式分类
寄居虚拟化
寄居虚拟化的虚拟化层称为虚拟机监控器(VMM)
系统损耗较大,没有独立的Hypervisor层。
裸机虚拟化
直接报VMM安装在服务器硬件设备上
本质上VMM也可以认为是一个操作系统,一般称为Hypervisor
Hypervisor实现从虚拟资源到物理资源的映射
根据解决x86体系缺陷的不同方法分类
全虚拟化
VMM向虚拟机模拟出和真实硬件完全相同的硬件环境
不用修改GuestOS内核
虚拟化平台给处理器带来开销
代表产品:VMware;Virtual PC
半虚拟化
VMM需要操作系统的协助才能够完成对x86敏感特权指令的虚拟化
性能高,能达到与原始系统相近的性能
必须修改GuestOS
代表产品:Xen;Denali
硬件虚拟化
VMM需要硬件的协助才能完成对硬件资源的虚拟
不用修改GuestOS内核
需要硬件支持
代表产品:Inter-VT;AMD-V
底层实现
CPU虚拟化
把COU抽象成虚拟CPU
任意时刻,一个物理CPU只能运行一个虚拟CPU指令
虚拟CPU的正确运行是保证虚拟机指令正确运行,现有的实现技术包括模拟执行和监控执行
调度问题是指VMM决定当前哪个虚拟CPU在物理CPU上运行,要保证隔离性、公平性和性能。
内存虚拟化
内存虚拟化技术把物理内存统一管理,包装成多个虚拟的物理内存提供给若干虚拟机使用,每个虚拟机拥有各自独立的内存空间
与真实的物理机相比,虚拟内存的管理包括三种地址
机器地址(主机物理地址)
物理地址(客户机物理地址)
虚拟地址(客户机虚拟地址)
I/O虚拟化
把真实的设备统一管理起来,包装成多个虚拟设备给若干个虚拟机使用,响应每个虚拟机的设备访问请求和I/O请求
虚拟机迁移
将虚拟机实例从源主机迁移到目标宿主机,并且在目标宿主机上能够将虚拟机运行状态恢复到其在迁移之前相同的状态,以便能够继续完成应用程序的任务。
虚拟机迁移步骤
预迁移 - 预定资源 - 预复制 - 停机复制 - 提交 - 启动
内存迁移(最困难)
Push — Stop-and-Copy — Pull
网络资源的迁移
必要性
虚拟机前置时VM的所有网络设备(协议状态、IP地址)都要随之一起迁移
在局域网内,可以通过发送ARP重定向报,将VM的IP地址与目的机器的MAC地址相绑定,之后的所有包就可以发送到目的机器上。
存储设备的迁移
迁移存储设备的最大障碍在于需要占用大量时间和网络带宽,通常的解决办法是以共享的方式共享数据和文件系统,而非真正迁移。
大多数集群使用NAS作为存储设备共享数据,在局域网环境下NAS已实现异构平台之间的数据集共享
Xen并没有实现存储设备的迁移,实时迁移的对象必须共享文件系统。
虚拟机隔离
虚拟机隔离是指虚拟机之间在没有授权许可的情况下,互相之间不可通信、不可联系的技术。
从软件角度讲,互相隔离的虚拟机之间保持独立,如同一个完整的计算机
从硬件角度讲,被隔离的虚拟机相当于一台物理机,有自己的CPU、内存、硬盘、I/O等,它与宿主机之间保持互相独立的状态。
从网络角度讲,被隔离的虚拟机如同物理机一样,既可以对外提供网络服务,也可以从外界接受网络服务
现有机制
网络隔离
构建虚拟机安全文件防护网
基于访问控制的逻辑隔离机制
通过硬件虚拟,让每个虚拟机无法突破虚拟机管理器给出的资源限制
硬件提供的内存保护机制
进程地址空间的保护机制,IP地址隔离
开源虚拟化软件
开源虚拟机 KVM
KVM (全称是 Kernel-based Virtual Machine) 是 Linux 下 x86 硬件平台上的全功能虚拟化解决方案,包含一个可加载的内核模块 kvm.ko 提供和虚拟化核心架构和处理器规范模块。
使用 KVM 可允许多个包括 Linux 和 Windows 每个虚拟机有私有的硬件,包括网卡、磁盘以及图形适配卡等。
开源虚拟机 Xen
Xen 是一个开放源代码虚拟机监视器,由剑桥大学开发。它打算在单个计算机上运行多达100个满特征的操作系统。操作系统必须进行显式地修改(“移植”)以在Xen上运行(但是提供对用户应用的兼容性)。这使得Xen无需特殊硬件支持,就能达到高性能的虚拟化。
Linux虚拟化技术 OpenVZ
OpenVZ是基于Linux内核和作业系统的操作系统级虚拟化技术。OpenVZ允许物理服务器运行多个操作系统,被称虚拟专用服务器(VPS,Virtual Private Server)或虚拟环境(VE, Virtual Environment)。
与VMware这种虚拟机和Xen这种半虚拟化技术相比,OpenVZ的host OS和guest OS都必需是Linux,不同的虚拟环境里可以用不同的Linux发行版。
OpenVZ是SWsoft, Inc.公司开发的专有软件Virtuozzo的基础。OpenVZ的授权为GPLv2。
OpenVZ由两部分组成,一个经修改过的操作系统核心与及用户工具。
开源虚拟机 VirtualBox
VirtualBox 是一款功能强大的 x86 虚拟机软件,它不仅具有丰富的特色,而且性能也很优异。更可喜的是,VirtualBox 于数日前走向开源,成为了一个发布在 GPL 许可之下的自由软件。
Lguest
Lguest 是由IBM工程师Rusty Russell(澳大利亚开发者)发起的虚拟化项目,是一个只有5000行代码的精简hypervisor(虚拟机管理程序),它已经包括在最近版本的内核里了。和KVM相似,它支持 Intel和AMD芯片的最新虚拟化技术。但又与VMware公司的ESX Server不同,在Lguest创建的虚拟机里的操作系统知道自己是被虚拟出来的。所以在调用CPU周期时它可以直接向真正的硬件发出请求,而不是作为中间媒介而降低了效率,因此这种架构大大提高了效率。Lguest采用GPL授权。
存储虚拟化
将存储网络中各个分散且异构的存储设备按照一定的策略映射成一个统一的连续编址的逻辑存储空间,称为虚拟存储池,并将虚拟存储池的访问接口提供给应用系统。
直连式存储,DAS\SASDirect Attached Storage
DAS(Direct Attached Storage)直接附加存储,直接附加存储是指将存储设备通过总线(SCSI、PCI、IDE、SAS、iSCSI、FC等)接口直接连接到一台服务器上使用。
协议
ATA(IDE)和SATA
SCSI(又分为并行和串行,并行适合内部DAS,串行适合外部DAS)
FC
优点
1、部署简单; 2、成本低; 3、适合本地数据存储。
缺点
扩展性差,服务器本身容易成为系统瓶颈;
服务器发生故障,数据不可访问;依赖服务器主机操作系统进行数据的IO读写和存储维护管理,数据备份和恢复要求占用服务器主机资源(包括CPU、系统IO等)。
管理分散,对于存在多个服务器的系统来说,设备分散,不便管理。
资源浪费,多台服务器使用DAS时,存储空间不能在服务器之间动态分配,可能造成相当的资源浪费;
数据备份操作复杂,数据流需要回流主机再到服务器连接着的磁带机(库),数据备份通常占用服务器主机资源20-30%。
RAID,独立磁盘冗余阵列 Redundant Array of Independent Disks
关键技术
镜像( Mirroring )
镜像是一种冗余技术,为磁盘提供保护功能,防止磁盘发生故障而造成数据丢失。
数据条带( Data Stripping )
RAID 由多块磁盘组成,数据条带技术将数据以块的方式分布存储在多个磁盘中,从而可以对数据进行并发处理。
和数据校验( Data parity )
数据校验是一种冗余技术,它用校验数据来提供数据的安全,可以检测数据错误,并在能力允许的前提下进行数据重构。
RAID等级
JBOD Just a Bunch Of Disks
JBOD不是标准的 RAID 等级,它通常用来表示一个没有控制软件提供协调控制的磁盘集合。 JBOD 将多个物理磁盘串联起来,提供一个巨大的逻辑磁盘。
数据存放机制是由第一块磁盘开始按顺序往后存储,当前磁盘存储空间用完后,再依次往后面的磁盘存储数据。
性能
存储性能完全等同于单块磁盘,而且也不提供数据安全保护。
JBOD 可用存储容量等于所有成员磁盘的存储空间之和。
RAID0条带
一种简单的、无数据校验的数据条带化技术。不是真正的 RAID ,不提供任何形式的冗余策略。
RAID0 将所在磁盘条带化后组成大容量的存储空间,将数据分散存储在所有磁盘中,以独立访问方式实现多块磁盘的并读访问。
N >= 1 , 可用容量为100%
性能
读写性能理论上是单个磁盘性能的 n 倍,但由于总线带宽等多种因素的限制,实际的性能提升低于理论值。
优点
RAID0 具有低成本、高读写性能、 100% 的高存储空间利用率等优点
缺点
不提供数据冗余保护,一旦数据损坏,将无法恢复。
应用
适用于对性能要求严格但对数据安全性和可靠性不高的应用,如视频、音频存储、临时数据缓存空间等。
RAID1镜像
2N(N > 1),磁盘利用率50%。
RAID1 称为镜像,它将数据完全一致地分别写到工作磁盘和镜像磁盘 。
性能
RAID1 在数据写入时,响应时间会有所影响,但是读数据的时候没有影响。
应用
应用于对顺序读写性能要求高以及对数据保护极为重视的应用,如对邮件系统的数据保护。
RAID2
RAID2 称为纠错海明码磁盘阵列,在原始数据中加入若干校验码来进行错误检测和纠正,其中第 2幂次方位( 1, 2, 4, 8, … )是校验码,其他位置是数据码。因此在 RAID2 中,数据按位存储,每块磁盘存储一位数据编码,磁盘数量取决于所设定的数据存储宽度,可由用户设定。
RAID2 的数据宽度越大,存储空间利用率越高,但同时需要的磁盘数量也越多。
优点
具备纠错能力,数据传输性能相当高,设计复杂性要低
缺点
数据冗余开销太大,数据输出性能受阵列中最慢磁盘驱动器的限制。海明码是按位运算, RAID2 数据重建非常耗时。
应用
大部分磁盘驱动器本身都具备了纠错功能,因此 RAID2 在实际中很少应用,没有形成商业产品,目前主流存储磁盘阵列均不提供 RAID2 支持。
RAID3专用奇偶校验条带
N >= 3,(N - 1) / n 。
使用专用校验盘的并行访问阵列,它采用一个专用的磁盘作为校验盘,其余磁盘作为数据盘,不同磁盘上同一带区的数据作 XOR 校验,校验值写入校验盘中。.数据按位可字节的方式交叉存储到各个数据盘中。
性能
RAID3 完好时读性能与 RAID0 完全一致,并行从多个磁盘条带读取数据,同时还提供了数据容错能力。向 RAID3 写入数据时,必须计算与所有同条带的校验值,并将新校验值写入校验盘中。一次写操作包含了写数据块、读取同条带的数据块、计算校验值、写入校验值等多个操作,系统开销非常大,性能较低。
优点
RAID3 只需要一个校验盘,阵列的存储空间利用率高,再加上并行访问的特征,能够为高带宽的大量读写提供高性能,适用大容量数据的顺序访问应用,如影像处理、流媒体服务等。
缺点
如果 RAID3 中某一磁盘出现故障,不会影响数据读取,可以借助校验数据和其他完好数据来重建数据。假如所要读取的数据块正好位于失效磁盘,则系统需要读取所有同一条带的数据块,并根据校验值重建丢失的数据,系统性能将受到影响。
RAID4
N >= 3,(N - 1) / n 。
RAID4 按照块的方式来组织数据, 在不同磁盘上的同级数据块使用 XOR 校验,结果存储在校验盘中。
性能
多个 I/O 请求可以同时得到处理,提高了系统性能。
优点
非常好的读性能,但单一的校验盘往往成为系统性能的瓶颈。
缺点
RAID4 只能一个磁盘一个磁盘地写,并且还要写入校验数据,因此写性能比较差。
随着成员磁盘数量的增加,校验盘的系统瓶颈将更加突出。
应用
AID4 在实际应用中很少见,主流存储产品也很少使用 RAID4 保护。
RAID5分布奇偶校验条带
N >= 3,(N - 1) / n 。
原理与 RAID4 相似,但校验数据分布在阵列中的所有磁盘上,而没有采用专门的校验磁盘。
优点
RAID5 不存在 RAID4 中的并发写操作时的校验盘性能瓶颈问题。
对于数据和校验数据,它们的写操作可以同时发生在完全不同的磁盘上。
RAID5的磁盘上同时存储数据和校验数据,数据块和对应的校验信息存保存在不同的磁盘上,当一个数据盘损坏时,系统可以根据同一条带的其他数据块和对应的校验数据来重建损坏的数据。
RAID5 兼顾存储性能、数据安全和存储成本等各方面因素,可以理解为 RAID0 和 RAID1 的折中方案,是目前综合性能最佳的数据保护解决方案。
缺点
重建数据时, RAID5 的性能会受到较大的影响。
应用
RAID5 基本上可以满足大部分的存储应用需求,数据中心大多采用它作为应用数据的保护方案。
RAID6双重奇偶校验条带
N >= 4,(n - 2) / n
RAID6 不仅要支持数据的恢复,还要支持校验数据的恢复,因此实现代价很高,控制器的设计也比其他等级更复杂、更昂贵。 RAID6 思想最常见的实现方式是采用两个独立的校验算法,假设称为 P 和 Q ,校验数据可以分别存储在两个不同的校验盘上,或者分散存储在所有成员磁盘中。当两个磁盘同时失效时,即可通过求解两元方程来重建两个磁盘上的数据。
RAID6可以保护阵列中同时出现两个磁盘失效时,阵列仍能够继续工作,不会发生数据丢失。 RAID6 等级是在 RAID5 的基础上为了进一步增强数据保护而设计的一种 RAID 方式,它可以看作是一种扩展的 RAID5 等级。
RAID6 具有快速的读取性能、更高的容错能力。但是,它的成本要高于 RAID5 许多,写性能也较差,并有设计和实施非常复杂。因此, RAID6 很少得到实际应用,主要用于对数据安全等级要求非常高的场合。它一般是替代 RAID10 方案的经济性选择。
RAID7:优化的高速数据传送磁盘结构。
RAID10
Raid 10是一个Raid 1与Raid0的组合体,它是利用奇偶校验实现条带集镜像,所以它继承了Raid0的快速和Raid1的安全。更多的情况是从主通路分出两路,做Striping操作,即把数据分割,而这分出来的每一路则再分两路,做Mirroring操作,即互做镜像。
RAID53:高效数据传送磁盘结构。
实现方式
软 RAID
软 RAID 没有专用的控制芯片和 I/O 芯片,完全由操作系统和 CPU 来实现所的 RAID 的功能。现代操作系统基本上都提供软 RAID 支持,通过在磁盘设备驱动程序上添加一个软件层,提供一个物理驱动器与逻辑驱动器之间的抽象层。
操作系统支持的最常见的 RAID 等级有 RAID0 、 RAID1 、 RAID10 、 RAID01 和 RAID5 等。
Windows Server 支持 RAID0 、 RAID1 和 RAID5 三种等级
Linux 支持 RAID0 、 RAID1 、 RAID4 、 RAID5 、 RAID6 等
软 RAID 的配置管理和数据恢复都比较简单,但是 RAID 所有任务的处理完全由 CPU 来完成,如计算校验值,所以执行效率比较低下,这种方式需要消耗大量的运算资源,支持 RAID 模式 较少,很难广泛应用
软 RAID 由操作系统来实现,因此系统所在分区不能作为 RAID 的逻辑成员磁盘,软 RAID 不能保护系统盘 D 。对于部分操作系统而言, RAID 的配置信息保存在系统信息中,而不是单独以文件形式保存在磁盘上。这样当系统意外崩溃而需要重新安装时, RAID 信息就会丢失。另外,磁盘的容错技术并不等于完全支持在线更换、热插拔或热交换,能否支持错误磁盘的热交换与操作系统实现相关,有的操作系统热交换。
硬 RAID
硬 RAID 拥有自己的 RAID 控制处理与 I/O 处理芯片,甚至还有阵列缓冲,对 CPU 的占用率和整体性能是三类实现中最优的,但实现成本也最高的。硬 RAID 通常都支持热交换技术,在系统运行下更换故障磁盘。
硬 RAID 包含 RAID 卡和主板上集成的 RAID 芯片, 服务器平台多采用 RAID 卡。 RAID 卡由 RAID 核心处理芯片( RAID 卡上的 CPU )、端口、缓存和电池 4 部分组成。其中,端口是指 RAID 卡支持的磁盘接口类型,如 IDE/ATA 、 SCSI 、 SATA 、 SAS 、 FC 等接口。
软硬混合 RAID
软 RAID 性能欠佳,而且不能保护系统分区,因此很难应用于桌面系统。而硬 RAID 成本非常昂贵,不同 RAID 相互独立,不具互操作性。因此,人们采取软件与硬件结合的方式来实现 RAID ,从而获得在性能和成本上的一个折中,即较高的性价比。
这种 RAID 虽然采用了处理控制芯片,但是为了节省成本,芯片往往比较廉价且处理能力较弱, RAID 的任务处理大部分还是通过固件驱动程序由 CPU 来完成。
网络存储,FASFabric-Attached Storage
通过网络接口与网络直接相连,由用户通过网络访问,支持即插即用。
网络附加存储,NASNetwork Attached Storage
NAS(Network Attached Storage)网络附加存储。在NAS存储结构中,存储系统不再通过I/O总线附属于某个服务器或客户机,而存储设备通过标准的网络拓扑结构(例如以太网)添加到一群计算机上,由用户通过网络访问。
协议
NFS(Network File System)协议、
CIFS(Common Internet File System)协议,
优点
即插即用
用户通过网络支持协议可进入相同的文档,跨平台文件共享,应用灵活
缺点
备份过程中的带宽消耗。NAS使用网络进行备份和恢复。NAS 存储事务由并行SCSI连接转移到了网络上。
受限的数据库支持,NAS文件服务器不支持需大量依赖于数据库处理结果的应用(块级应用)。
缺乏灵活性,它是一种专用设备。
备份与恢复的实现相当困难。
开源分布式存储软件
开源协议说明
GPL:不允许修改后和衍生的代码做为闭源的商业软件发布和销售,修改后该软件产品必须也采用GPL协议;
GPLV2:修改文本的整体就必须按照GPL流通,不仅该修改文本的源码必须向社 会公开,而且对于这种修改文本的流通不准许附加修改者自己作出的限制;
GPLV3:要求用户公布修改的源代码,还要求公布相关硬件;LGPL:更宽松的GPL
TFS
TFS(Taobao File System)是由淘宝开发的一个分布式文件系统,其内部经过特殊的优化处理,适用于海量的小文件存储,目前已经对外开源;
TFS采用自有的文件系统格式存储,因此需要专用的API接口去访问,目前官方提供的客户端版本有:C++/JAVA/PHP。
特性
1)在TFS文件系统中,NameServer负责管理文件元数据,通过HA机制实现主备热切换,由于所有元数据都是在内存中,其处理效率非常高效,系统架构也非常简单,管理也很方便;
2)TFS的DataServer作为分部署数据存储节点,同时也具备负载均衡和冗余备份的功能,由于采用自有的文件系统,对小文件会采取合并策略,减少数据碎片,从而提升IO性能;
3)TFS将元数据信息(BlockID、FileID)直接映射至文件名中,这一设计大大降低了存储元数据的内存空间;
优点
1)针对小文件量身定做,随机IO性能比较高;
2)支持在线扩容机制,增强系统的可扩展性;
3)实现了软RAID,增强系统的并发处理能力及数据容错恢复能力;
5)支持主从集群部署,其中从集群主要提供读/备功能;
4)支持主备热倒换,提升系统的可用性;
缺点
1)TFS只对小文件做优化,不适合大文件的存储;
2)不支持POSIX通用接口访问,通用性较低;
3)不支持自定义目录结构,及文件权限控制;
4)通过API下载,存在单点的性能瓶颈;
5)官方文档非常少,学习成本高;
应用场景
1)多集群部署的应用
2)存储后基本不做改动
3)海量小型文件
根据目前官方提供的材料,对单个集群节点,存储节点在1000台以内可以良好工作,如存储节点扩大可能会出现NameServer的性能瓶颈,目前淘宝线上部署容量已达到1800TB规模(2009年数据)
安装及使用
· 安装指导
· TFS_配置使用
源代码路径:http://code.taobao.org/p/tfs/src/
参考
http://rdc.taobao.com/blog/cs/?p=128
http://elf8848.iteye.com/blog/1724423
http://baike.baidu.com/view/1030880.htm
http://blog.yunnotes.net/index.php/install_document_for_tfs/
FastDFS
FastDFS是国人开发的一款分布式文件系统,目前社区比较活跃。如上图所示系统中存在三种节点:Client、Tracker、Storage,在底层存储上通过逻辑的分组概念,使得通过在同组内配置多个Storage,从而实现软RAID10,提升并发IO的性能、简单负载均衡及数据的冗余备份;同时通过线性的添加新的逻辑存储组,从容实现存储容量的线性扩容。
文件下载上,除了支持通过API方式,目前还提供了apache和nginx的插件支持,同时也可以不使用对应的插件,直接以Web静态资源方式对外提供下载。
目前FastDFS(V4.x)代码量大概6w多行,内部的网络模型使用比较成熟的libevent三方库,具备高并发的处理能力。
特性
1)在上述介绍中Tracker服务器是整个系统的核心枢纽,其完成了访问调度(负载均衡),监控管理Storage服务器,由此可见Tracker的作用至关重要,也就增加了系统的单点故障,为此FastDFS支持多个备用的Tracker,虽然实际测试发现备用Tracker运行不是非常完美,但还是能保证系统可用。
2)在文件同步上,只有同组的Storage才做同步,由文件所在的源Storage服务器push至其它Storage服务器,目前同步是采用Binlog方式实现,由于目前底层对同步后的文件不做正确性校验,因此这种同步方式仅适用单个集群点的局部内部网络,如果在公网上使用,肯定会出现损坏文件的情况,需要自行添加文件校验机制。
3)支持主从文件,非常适合存在关联关系的图片,在存储方式上,FastDFS在主从文件ID上做取巧,完成了关联关系的存储。
优点
1)系统无需支持POSIX(可移植操作系统),降低了系统的复杂度,处理效率更高
2)支持在线扩容机制,增强系统的可扩展性
3)实现了软RAID,增强系统的并发处理能力及数据容错恢复能力
4)支持主从文件,支持自定义扩展名
5)主备Tracker服务,增强系统的可用性
缺点
1)不支持断点续传,对大文件将是噩梦(FastDFS不适合大文件存储)
2)不支持POSIX通用接口访问,通用性较低
3)对跨公网的文件同步,存在较大延迟,需要应用做相应的容错策略
4)同步机制不支持文件正确性校验,降低了系统的可用性
5)通过API下载,存在单点的性能瓶颈
应用场景
1)单集群部署的应用
2)存储后基本不做改动
3)小中型文件根据
目前官方提供的材料,现有的使用FastDFS系统存储容量已经达到900T,物理机器已经达到100台(50个组)
安装指导_FastDFS
源码路径:https://github.com/happyfish100/fastdfs
参考
https://code.google.com/p/fastdfs/
http://bbs.chinaunix.net/forum-240-1.html
http://portal.ucweb.local/docz/spec/platform/datastore/fastdfs
MooseFS
MooseFS是一个高可用的故障容错分布式文件系统,它支持通过FUSE方式将文件挂载操作,同时其提供的web管理界面非常方便查看当前的文件存储状态。
特性
1)从下图中我们可以看到MooseFS文件系统由四部分组成:Managing Server 、Data Server 、Metadata Backup Server 及Client
2)其中所有的元数据都是由Managing Server管理,为了提高整个系统的可用性,MetadataBackup Server记录文件元数据操作日志,用于数据的及时恢复
3)Data Server可以分布式部署,存储的数据是以块的方式分布至各存储节点的,因此提升了系统的整体性能,同时Data Server提供了冗余备份的能力,提升系统的可靠性
4)Client通过FUSE方式挂载,提供了类似POSIX的访问方式,从而降低了Client端的开发难度,增强系统的通用性
元数据服务器(master):负责各个数据存储服务器的管理,文件读写调度,文件空间回收以及恢复
元数据日志服务器(metalogger):负责备份master服务器的变化日志文件,以便于在master server出问题的时候接替其进行工作
数据存储服务器(chunkserver):数据实际存储的地方,由多个物理服务器组成,负责连接管理服务器,听从管理服务器调度,提供存储空间,并为客户提供数据传输;多节点拷贝;在数据存储目录,看不见实际的数据
优点
1)部署安装非常简单,管理方便
2)支持在线扩容机制,增强系统的可扩展性
3)实现了软RAID,增强系统的 并发处理能力及数据容错恢复能力
4)数据恢复比较容易,增强系统的可用性5)有回收站功能,方便业务定制
缺点
1)存在单点性能瓶颈及单点故障
2)MFS Master节点很消耗内存
3)对于小于64KB的文件,存储利用率较低
应用场景
1)单集群部署的应用
2)中、大型文件
参考
http://portal.ucweb.local/docz/spec/platform/datastore/moosefsh
http://www.moosefs.org/
http://sourceforge.net/projects/moosefs/?source=directory
GlusterFS
GlusterFS是Red Hat旗下的一款开源分布式文件系统,它具备高扩展、高可用及高性能等特性,由于其无元数据服务器的设计,使其真正实现了线性的扩展能力,使存储总容量可轻松达到PB级别,支持数千客户端并发访问;对跨集群,其强大的Geo-Replication可以实现集群间数据镜像,而且是支持链式复制,这非常适用于垮集群的应用场景
特性
1)目前GlusterFS支持FUSE方式挂载,可以通过标准的NFS/SMB/CIFS协议像访问本体文件一样访问文件系统,同时其也支持HTTP/FTP/GlusterFS访问,同时最新版本支持接入Amazon的AWS系统
2)GlusterFS系统通过基于SSH的命令行管理界面,可以远程添加、删除存储节点,也可以监控当前存储节点的使用状态
3)GlusterFS支持集群节点中存储虚拟卷的扩容动态扩容;同时在分布式冗余模式下,具备自愈管理功能,在Geo冗余模式下,文件支持断点续传、异步传输及增量传送等特点
优点
1)系统支持POSIX(可移植操作系统),支持FUSE挂载通过多种协议访问,通用性比较高
2)支持在线扩容机制,增强系统的可扩展性
3)实现了软RAID,增强系统的 并发处理能力及数据容错恢复能力
4)强大的命令行管理,降低学习、部署成本
5)支持整个集群镜像拷贝,方便根据业务压力,增加集群节点
6)官方资料文档专业化,该文件系统由Red Hat企业级做维护,版本质量有保障
缺点
1)通用性越强,其跨越的层次就越多,影响其IO处理效率
2)频繁读写下,会产生垃圾文件,占用磁盘空间
应用场景
1)多集群部署的应用
2)中大型文件根据目前官方提供的材料,现有的使用GlusterFS系统存储容量可轻松达到PB
术语:
brick:分配到卷上的文件系统块;
client:挂载卷,并对外提供服务;
server:实际文件存储的地方;
subvolume:被转换过的文件系统块;
volume:最终转换后的文件系统卷。
参考
http://www.gluster.org/
http://www.gluster.org/wp-content/uploads/2012/05/Gluster_File_System-3.3.0-Administration_Guide-en-US.pdf
http://blog.csdn.net/liuben/article/details/6284551
Ceph
Ceph是一个可以按对象/块/文件方式存储的开源分布式文件系统,其设计之初,就将单点故障作为首先要解决的问题,因此该系统具备高可用性、高性能及可扩展等特点。该文件系统支持目前还处于试验阶段的高性能文件系统BTRFS(B-Tree文件系统),同时支持按OSD方式存储,因此其性能是很卓越的, 因为该系统处于试商用阶段,需谨慎引入到生产环境
特性
1)Ceph底层存储是基于RADOS(可靠的、自动的分布式对象存储),它提供了LIBRADOS/RADOSGW/RBD/CEPHFS方式访问底层的存储系统,如下图所示
2)通过FUSE,Ceph支持类似的POSIX访问方式;Ceph分布式系统中最关键的MDS节点是可以部署多台,无单点故障的问题,且处理性能大大提升
3)Ceph通过使用CRUSH算法动态完成文件inode number到object number的转换,从而避免再存储文件metadata信息,增强系统的灵活性
优点
1)支持对象存储(OSD)集群,通过CRUSH算法,完成文件动态定位, 处理效率更高
2)支持通过FUSE方式挂载,降低客户端的开发成本,通用性高
3)支持分布式的MDS/MON,无单点故障
4)强大的容错处理和自愈能力5)支持在线扩容和冗余备份,增强系统的可靠性
缺点
1)目前处于试验阶段,系统稳定性有待考究
应用场景
1)全网分布式部署的应用
2)对实时性、可靠性要求比较高官方宣传,存储容量可轻松达到PB级别
参考
源码路径:https://github.com/ceph/ceph
http://ceph.com/
MogileFS
开发语言:perl
开源协议:GPL
依赖数据库
Trackers(控制中心):负责读写数据库,作为代理复制storage间同步的数据
Database:存储源数据(默认mysql)
Storage:文件存储
除了API,可以通过与nginx集成,对外提供下载服务
源码路径:https://github.com/mogilefs
参考
https://code.google.com/p/mogilefs/wiki/Start?tm=6
http://blog.csdn.net/qiangweiloveforever/ariticle/details/7566779
http://weiruoyu.blog.51cto.com/951650/786607
http://m.blog.csdn.net/blog/junefsh/18079733
存储区域网络,SANStorage Area Network
FC-SANFC,Fibre Channel光纤通道存储区域网络
通常SAN由磁盘阵列(RAID)连接光纤通道(Fibre Channel)组成(为了区别于IP SAN,通常SAN也称为FC-SAN)。通过光纤通道将一个或多个网络存储设备(如磁盘阵列RAID)和服务器连接起来的专用存储系统。SAN和服务器和客户机的数据通信通过SCSI命令而非TCP/IP,数据处理是“块级”(block level)。
系统组成
FC卡
主要用于主机与FC设备之间的连接。
光通道交换机光模块由光电子器件、功能电路和光接口等组成。光电子器件包括发射和接收两部分。
FC HUB:内部运行仲裁环拓扑,连接到HUB的节点共享100MB/S带宽(或更高)。
FC交换机:内部运行Fabric拓扑,每端口独占100MB/S带宽(或更高)。
FC存储设备
采用FC连接方式,光纤接口可以有一到多个。FC存储设备通常采用光纤的硬盘,也有Fibre to SCSI(Fibre to ATA)的解决方案,使用SCSI(或ATA)的硬盘,在整个配置上较便宜。
存储网络管理软件
存储管理软件主要的功能是自动发现网络拓扑及映射,当在存储网络中增加或减少时自动发现及组态。
架构
应用
关键任务数据库应用,其中可预计的响应时间、可用性和可扩展性是基本要素。
集中的存储备份,其中性能、数据一致性和可靠性可以确保企业关键数据的安全。
高可用性和故障切换环境可以确保更低的成本、更高的应用水平。
可扩展的存储虚拟化,可使存储与直接主机连接相分离,并确保动态存储分区。
改进的灾难容错特性,在主机服务器及其连接设备之间提供光纤通道高性能和扩展的距离。
优点
可扩展性
FC-SAN不必宕机和中断与服务器的连接即可增加存储。
集中管理数据,从而降低了总体拥有成本。
存储资源动态共享
兼容SCSI存储设备
不占用业务网络资源
利用光纤通道传输数据块,传统上用于数据备份的网络带宽可以节约下来用于其他应用。
开放的、业界标准的光纤通道技术还使得FC-SAN非常灵活。
FC-SAN在通信结点(尤其是服务器)上的处理费用开销更少,光纤通道FC-SAN在传送大数据块时非常有效。
缺点
成本和复杂性
光纤通道不成熟,存在互操作性问题。
IP-SAN
IP-SAN(IP存储)以TCP/IP协议为底层传输协议,采用以太网作为承载介质构建起来的存储区域网络架构,而不是光纤通道。
标准
iSCSI标准
iSCSI(Internet SCSI)把SCSI命令和块状数据封装在TCP中在IP网络中传输,基本出发点是利用成熟的IP网络技术来实现和延伸SAN。
FCIP标准
FCIP是Fiber Channeover IP的标准协议。在同一个SAN范围内,TCP/IP数据包再封装FC命令和数据,从而在IP网络上传输FC命令和数据。
iFCP标准
iFCP(Internet Fibre ChanneProtocol)是基于TCP/IP网络运行光纤信道通信的标准,iFCP具备网关功能,它能将光纤信道RAID阵列、交换机以及服务器连接到IP存储网,而不需要额外的基础架构投资。
iSCSI、FCIP、iFCP标准的比较
iSCSI:用于在基于IP的存储设备之间建立连接及管理连接,在现有的IP网络上封装SCSI数据进行传输。
FCIP:用于连接地理上分散的FC SAN。仅仅适用于需要互连时使用IP的两个或多个FC交换的应用。
iFCP:使用IP基础设施来实现FC设备间或FC SAN间的互连。该协议致力于所有的FC交换架构而不仅限于解决距离上的问题。
架构
组件
IP-SAN优点:
接入标准化
不需要专用的HBA卡和光纤交换机,普通的以太网卡和以太网交换机就可以存储和服务器的连接。
传输距离远
理论上IP网络可达的地方就可以使用IP SAN,而IP网络是目前地球上应用最为广泛的网络。
可维护性好
广大的具备IP网络技术的维护人员和强大的IP网络维护工具支撑。
带宽扩展方便
随着10Gb以太网的迅速发展,IP SAN单端口带宽扩展到10Gb已经是发展的必然。
IP-SAN面临的挑战:
数据安全性
数据在传输过程的安全性和在存储设备中的安全性是IP SAN存储面临的严峻问题。
TCP负载
TCP为了完成数据的排序工作需要占用较多的主机CPU资源导致用户业务处理延迟的增加
块数据传输。
IP协议比较适合传输大量的小块消息,对大块数据的传输的效率还有待提高。
IB-SAN
结构设计得非常紧密,大大提高了系统的性能、可靠性和有效性,能缓解各硬件设备之间的数据流量拥塞。
FC-SAN与IP-SAN比较
网络虚拟化
网络虚拟化是让一个物理网络能够支持多个逻辑网络,虚拟化保留了网络设计中原油的层次结构、数据通道和所能提供的服务,使得最终用户的体验和独享牡蛎网络一样,同时网络虚拟化技术还可以高效的利用网络资源如空间、能源、设备容量等。
三个层次
网卡虚拟化(NIC Virtualization)
软件网卡虚拟化
虚拟机-虚拟网卡-虚拟交换机-物理网卡-物理交换机
硬件网卡虚拟化
单根I/O虚拟化(Single Root I/O Virtulization,SR-IOV)
硬件设备虚拟化
在传统的基于x86架构机器上安装特定网络操作系统,实现路由器的功能
传统网络设备的硬件虚拟化
虚拟路由转发(Virtual Routing and Forwarding,VRF)技术
将一台物理设备虚拟化成多台虚拟设备
将多台物理设备虚拟化成一台虚拟设备
链路虚拟化
链路聚合
将多个物理端口虚拟化成一个端口,负载均衡,增加链路带宽,实现链路层。
隧道协议
数据帧重新封装,隐藏中间节点的网络地址,提供数据加密的功能。可隐藏中间地址,可加密。GRE、RPsec。
虚拟网络
层叠网络
充分利用现有资源,不增加成本,提供更多服务。
VPN网络
虚拟专用网通过公用的网络架构来传送内联网的信息。通常利用已加密的隧道协议达到保密、终端保证、信息可信性。可选是否信息加密。
虚拟二层延伸网络
将二层数据报文分装在三层报文中。通常借助隧道。
软件定义网络(SDN)
特性
将网络分为控制层(Control Plane)和数据层(Data Plane)
控制层的控制器软件,通过特定传输通道,统一下达命令给数据层设备
数据层设备仅依靠控制层的命令转发数据包
实现方式
OpenFlow组织主导的开源软件(Google,IBM,Citrix等)
思科主导的应用中心基础设施(Application Centric lnfrastructure,ACI)
VMware主导的NSX
与网络虚拟化的关系
SDN不等于网络虚拟化,只是SDN技术非常适合实现网络虚拟化
网络虚拟化可以在现有的网络中运作,因为它们在服务器运行,并与发送到它们的流量进行交互。
而SDN需要一种新的网络架构,从而分离数据层和控制层。
桌面虚拟化
桌面虚拟化是指将计算机的终端系统(也称作桌面)进行虚拟化,以达到桌面使用的安全性和灵活性。可以通过任何设备,在任何地点,任何时间通过网络访问属于我们个人的桌面系统。
云计算安全技术
可信访问控制
密文检索与处理
数据存在可使用性证明
数据隐私保护
虚拟安全技术
使用虚拟化技术的云计算平台上的云架构提供者必须向其客户提供安全性和隔离保证
虚拟机映像文件的安全,每一个映像文件对应一个客户应用,它们必须具有高完整性,且需要可以安全共享的机制。
云资源访问控制
当用户跨予访问资源是,需设置认证
可信云计算
证明自身行为可信的机制
高可靠性的规划和设计
可用性(availability)
定义
系统能够正常运行的时间比例。经常用两次故障之间的时间长度或在出现故障时系统能够恢复正常的速度来表示
度量
平均无故障时间(MTTF)
系统的可用性越高,平均无故障时间越长
MTTF/(MTTF+MTTR)*100%,系统保持正常运行时间的百分比
战术
错误检测
命令/相应、心跳、异常
错误恢复
表决、主动冗余、被动冗余
错误预防
把可能出错的组件从服务器中删除、引入进程监视器
可靠性(reliability)
定义
软件系统在应用或系统错误面前,在意外或错误使用的情况下维持软件系统的功能特性的基本能力
度量
平均维修时间(MTTR)
系统的可维护性越好,平均维修时间越短
云服务
概述
云服务就是一种商业模式;云服务是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。
计算、存储、网络
优点:规模经济,成本相对较低,中央位置管理方式更方便,升级云应用更方便。
缺点:安全性令人怀疑,云计算宿主离线
IaaS
IaaS所提供的虚拟机通常都会带有一个可以上网的操作系统(如Windous、Linux)。用户通过网络可以登录并操作虚拟机并按照虚拟机的资源配置和使用时间来付费。
基本功能:计算机硬件、网络、存储设备、平台虚拟化环境、效用计费方法、服务级别协议
特点
把IT资源以服务的方式提交给用户
基础设施可以动态扩展,即可以根据应用的需求动态增加或者减少资源
计费服务灵活多变,按实际使用的资源进行计费。
多租户,相同的基础设施资源可以同时提供给多个用户共享使用
企业级的基础设施,不仅仅可以为个人用户提供IT资源,而且可以满足中小企业的IT资源需求,使得他们可以从聚集的计算资源池中获利。
IT基础设施
包括网络、服务器和存储系统等构成企业IT系统的硬件环境
包括操作系统、数据库、中间件等基础软件
由IT系统的硬件环境和基础软件共同构成的平台就是IT基础设施
IT基础设施资源分为:计算资源、存储资源、网络资源、基础软件资源(中间件资源、数据库资源)
Iaas服务
网络和通信系统提供的通信服务
服务器设备提供的计算服务
数据存储空间提供的存储服务
操作系统、通用中间件和数据库等软件服务
核心技术
虚拟化技术
分布式存储技术
高速网络技术
超大规模资源管理技术
云服务计费技术
IaaS技术架构(抽象模型)
服务层
将IaaS的各种资源封装成各种服务
账户管理
管理用户账户
用户的环境配置
用户的使用计费
服务目录
部署服务
子主题
用户报告
管理层
对基础设施服务池的资源进行统一的管理和调度
系统监控
资源管理
负载均衡
虚拟化层
实现对底层物理资源的抽象
硬件虚拟化
应用虚拟化
资源层
包含数据中心中所有的物理设备,以池化概念出现
计算资源
存储资源
网络资源
服务器虚拟化
寄宿虚拟化
虚拟机监视器(Virtual Machine Monitor,VM)是运行在宿主操作系统之上的应用程序,利用宿主操作系统的功能来实现硬件资源的抽象和虚拟机的管理。
实现较易,性能较低
原生虚拟化
在原生虚拟化中,虚拟化平台(Hypervisor)直接运行在硬件之上。虚拟机运行在虚拟化平台上,虚拟化平台提供指令集和设备接口,以提供对虚拟机的支持。
性能较好,实现复杂
特征
多实例
在一个物理服务器上可以运行多个虚拟服务器,即可以支持多个客户操作系统。
隔离性
指一个虚拟机与其他虚拟机完全隔离,就如同几个独立的物理服务器一样。
封装性
指服务器虚拟化将物理机的硬件封装为标准化的虚拟硬件设备,保证兼容性。
高性能
指虚拟机监视器的开销要被控制在可承受的范围之内。
核心技术
CPU虚拟化
本质
以分时复用的方式,让所有的虚拟机能够共享CPU的计算能力。
内存虚拟化
子主题
设备与I/O虚拟化
子主题
网络虚拟化
子主题
PaaS
将软件研发的平台作为服务,以SaaS的模式提交给用户。因此,PaaS也是SaaS模式的一种应用。开发与运行环境、数据库、各类开放服务能力。
中间件、操作系统
中间件技术
定义
在一个分布式系统环境中处于操作系统和应用程序之间的软件
一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机/服务器的操作系统之上,管理计算资源和网络通讯
分类
底层型中间件
主流技术:JVM(Java虚拟机)、CLR(公共语言运行库)、ACE(自适配通信环境)、JDBC(Java数据库连接)和ODBC(开放数据库互连)
代表产品:SUNJVM、MicrosoftCLR
通用型中间件
主流技术:CORBA(公共对象请求代理体系结构)、J2EE、MOM(面向消息的中间件)和COM
代表产品:IONAOrbix、BEAWebLogic、IBMMQSeries
集成型中间件
主流技术:WorkFlow和EAI(企业应用集成)
代表产品:BEAWebLogic、IBMWebSphere
应用
系统底层传输层的集成,可以采用CORBA技术
不同系统间的信息传递,可以采用消息中间件产品
不同硬件和操作系统的集成,可以采用J2EE中间件产品
将一个完整的软件研发和部署平台(包括应用设计、应用开发、应用测试和应用托管,都作为一种服务提供给客户。在这种服务模式中,客户不需要购买硬件和软件,只需要利用Paas平台,就能够创建、测试和部署应用和服务。
特点
应用开发、测试、部署、运行和维护工作都在同一集成环境中进行,降低软件开发、维护成本,降低市场运营和项目风险。
以Web方式提供服务:高质量的用户体验
内建的扩展性、可靠性和安全性,解决用户数据、网络流量、源代码安全问题
支持贯穿整个软件开发生命周期的协作
提供深入的应用程序监控手段
服务
端到端的软件开发环境,包括物理环境、开发环境、测试环境、调试环境、部署环境和运行环境
基于云平台的配套服务,如账户、邮件、数据库消息列表等
基于Web浏览器的使用模式
易于掌握的编程语言和编程环境
安全的沙盒工作环境
动态扩展性
应用程序监控服务(运行日志、访问量、资源使用率等信息)
良好的认证、计费机制,保护用户安全性
核心功能
运营管理系统
用户管理、计费认证、资源监控、程序管理、开发环境、编程接口、编程模型、代码库
分布式技术
分布式存储、分布式计算、分布式数据库、同步机制
服务器集群
SaaS
一种通过Internet提供软件的模式,用户无需购买软件,而是想提供商租用基于Web的软件,来管理企业经营活动。前期成本低、便于维护、快速展开使用。办公应用、信息化应用、通讯应用、互联网应用。
SaaS平台提供商、认证和安全、定位和计费、大规模多租户,开发和定制,SaaS通用功能。
特征
多租户特性。SaaS通常基于一套标准软件系统为成百上千的不同租户提供服务。
互联网特性。SaaS服务通过互联网为用户提供服务。
服务特性。考虑服务合约的签定、服务使用的计量、在线服务质量的保证等问题。
按需付费。用户可以提供需求按需订购软件应用服务。
成本低。客户只要付出个人计算机和互联网服务所需的费用。
开放性。平台提供应用功能的集成、数据接口的集成、组件的集成。
服务
面向企业的服务
通常采用用户预订的销售方式,为各种具有一定规模的企业和组织提供可定制的大型商务解决方案。
适用于启动资金少、业务量不断增长、对业务支持要求不高、开发周期短、开发风险较高的软件项目。
面向个人消费者
软件服务免费提供,通过广告赚取收入。
开源云计算管理平台
OpenStack
背景
OpenStack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。为公共及私有云的建设与管理提供软件。
架构
核心组件
计算服务Nova
提供虚拟主机,通过虚拟化技术实现计算、网络、存储等资源池的构建及应用,将计算能力通过虚拟机的方式交付用户。
nova-api是一个交互接口,管理者可以通过这个接口来管理内部基础设施,也可以通过这个接口向用户提供服务。当然基于web的管理也是通过这个接口,然后向消息队列发送消息,达到资源调度的功能。
Rabbit-mq server是计算资源中的一个消息队列,为各个组件传达消息实现资源调度。
nova-compute是用于处理管理实例生命周期。通过消息队列接收请求,并承担操作工作。
nova-network相当于云计算系统内部的一个路由器,他承担了IP地址的划分以及配置VLAN和安全组的划分。
nova-scheduler是一个拥有把nova-API调用映射为Open Stack功能的组件,会根据诸如CPU构架、可用域的物理距离、内存、负载等作出调度决定。
nova-conductor负责数据库的访问权限控制,避免nova-compute直接访问数据库。
对象存储服务Swift
用于持久性静态数据的长期存储,适用于“一次写入,多次读取,无需修改”的情况,例如图片、视频、邮件附件等海量数据的存储。
镜像服务Glance
主要提供虚拟磁盘镜像的目录分类管理以及镜像库存储管理。
身份认证服务Keystone
为OpenStack所有系统提供统一的授权和身份验证服务。
网络管理服务Neutron
实现了虚拟机的网络资源管理,包括网络连接、子网IP管理、L3的公网映射、后续的负载均衡等。
块存储服务Cinder
为虚拟机提供云硬盘服务。块存储将物理存储根据需要划分成不同的存储空间提供给虚拟机,虚拟机将其识别为新的硬盘。
界面展示服务Horizon
基于OpenStack API接口开发的Web呈现,为各个项目的功能提供Web展示。
Docker
概念
容器工具(包括 Docker)可提供基于镜像的部署模式。这使得它能够轻松跨多种环境,与其依赖程序共享应用或服务组。Docker 还可在这一容器环境中自动部署应用程序(或者合并多种流程,以构建单个应用程序)。
Linux容器是与系统其他部分隔离开的一系列进程,从另一个镜像运行,并由该镜像提供支持进程所需的全部文件。容器提供的镜像包含了应用的所有依赖项,因而在从开发到测试再到生产的整个过程中,它都具有可移植性和一致性。
Docker 技术使用 Linux 内核和内核功能(例如 Cgroups 和 namespaces)来分隔进程,以便各进程相互独立运行。
Docker与传统的 Linux 容器区别
Docker引擎
Server是一个常驻进程
REST API 实现了client和server间的交互协议
CLI 实现容器和镜像的管理,为用户提供统一的操作界面
Docker构架
Docker使用C/S架构,Client 通过接口与Server进程通信实现容器的构建,运行和发布。client和server可以运行在同一台集群,也可以通过跨主机实现远程通信。
核心概念
镜像(image)
Docker 镜像(Image)就是一个只读的模板。
Docker 提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下载一个已经做好的镜像来直接使用。
仓库(repository)
仓库(Repository)是集中存放镜像文件的场所。
仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。
仓库分为公开仓库(Public)和私有仓库(Private)两种形式。最大的公开仓库是 Docker Hub,存放了数量庞大的镜像供用户下载。国内的公开仓库包括 时速云 、网易云 等,可以提供大陆用户更稳定快速的访问。当然,用户也可以在本地网络内创建一个私有仓库。
容器(container)
Docker 利用容器(Container)来运行应用。容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。可以把容器看做是一个简易版的 Linux 环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。
云计算解决方案
Google云计算
Amazon云计算
微软云计算
国内云计算