锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

【云计算学习教程】OCP(开源计算项目)简介

时间:2022-09-22 20:30:00 叠层式电连接器

说到开源软件,我们应该听说过一些软件源代码是公开的,任何人都可以下载和免费使用,并遵循一些开源协议。开源计算项目(Open Compute Project,OCP)它是由开源硬件组成的 Facebook 公司主导,众多 IT 巨头参与了数据中心定制的硬件设计规范,包括机房、机柜、服务器、存储、网络设备和云硬件管理规范。

只要一个人有资金和时间,参考这些规范并购买相应的配件,他也可以单独做非常可靠的事情(如设计合理的机房、服务器、开关等)。您可以参考开源计算项目的官方网站。

开源计算项目针对的是 IT 目前,大型云服务提供商或社交网站热衷于定制自己的数据中心硬件,包括机柜、服务器、存储和网络设备。由于该硬件是根据应用软件的特点定制的,因此计算效率非常高;能耗远低于其他硬件。云硬件发展的另一个趋势是云设备提供商提供的云计算一体机(详见《IT系统组成教程)。

开源计算项目的主板和服务器设计规范包括 ARM、AMD、INTEL 的 CPU 主板设计规范、高可用性服务器、片系统和电源设计规范,并提供物理结构 CAD 设计图纸 1 主板和服务器显示 PenguinComputing 本公司按这些规范生产。

PenguinComputing公司生产的主板和服务器
图 1 PenguinComputing 公司生产的主板和服务器

开源计算项目中子项目的存储分别为冷存储、Fusion-io 发布设计规范,图纸 2 参照本规范设计生产的存储器。


图 2 存储器

此外,还有一些开源存储软件解决方案,比较有名 Openindiana、Nexentastor、FreeNAS、OpenFiler,性能也按顺序排列。当然,如果只是自己用,建议用Oracle Solaris 11 Napp-It 最佳方案,Oracle Solaris 11 可从 https://www.oracle.com/solaris/solaris11/index.html 下载,Napp-It 可从 http://www.napp-it.org/ 下载。这些解决方案的核心都采用了 ZFS 文件系统。

ZFS 最早的文件系统是由 Sun 公司开发的,Oracle 公司收购 Sun 后,从 ZFS 2.8 版本不再开源,闭源 ZFS 加密等新功能增加了很多,但是有人在 ZFS 2.8 继续在版本的基础上开发新功能,使开源代码与正宗代码相匹配 ZFS 代码分道扬镳。

除了这些特殊的存储设备外,在云计算和大数据时代,分布式存储系统还具有更大的优势,由数百台甚至数万台计算机组成,带宽更高 IOPS 还有更好的可用性,容量也有更好的伸缩性。例如 Ceph、Lustre、GlusterFS、pNFS、GPFS,是一些优秀的企业级开源分布式存储项目。

什么是服务器虚拟化组件?

在云中,虚拟化属于基础设施层,包括服务器虚拟化、网络虚拟化和存储虚拟化。虚拟化的目的是池化物理资源。在服务器虚拟化领域,VMware(现已被 EMC 收购)多年来一直在努力控制大部分市场。微软和思杰都想有所突破。

微软推出 Hyper-V 并在短时间内快速更换了版本,与操作系统紧密结合,使微软云计算解决方案的使用成为最简单的商业解决方案。此外,微软拥有从操作系统到应用软件的所有产品线,加上成千上万的基础 Windows 微软在第三方应用软件中具有很强的竞争优势。

思杰自收购以来 XEN 进入虚拟化市场以来,表现平平,被迫开源 XenServer 产品,使得 XEN 回到开源社区。此外,思杰还使用云管理工具 CloudPlatform 卖掉,重回 OpenStack 社区。

在开源社区,美国红帽公司一直在尝试整合开源资源,形成自己的一套云计算产品,其核心是已经融入 Linux 内核的 KVM 虚拟机。

开源社区的另一个不容忽视的成员是 Oracle VM,Oracle 公司有点奇怪,总裁拉力·一方面,埃里森讨厌开源软件,另一方面,开开开源软件,比如他们推出的 Oracle Linux 采用 Linux 内核,推出 Oracle VM 采用开源的 Xen。

红帽与微软类似,拥有从操作系统到应用软件的完整产品线,而且全部是开源的。云计算提供商都是技术性的公司,他们更倾向于采用开源的云计算解决方案,稳定、可靠、低成本注定了红帽公司在未来的云计算市场会有更大的作为。下面对开源的服务器虚拟化组件做简单介绍。

1. XenServer

XenServer 是基于 Xen 直接安装在物理计算节点上的虚拟平台,然后在上面创建更多的虚拟机。XenCenter 它是一个云计算管理平台,通过它管理许多安装 XenServer 服务器(计算节点)、网络、存储和虚拟机。

XenCenter 通过计算节点池管理服务器,属于同一池的服务器共享存储,最好是配置相同的机器。池中的虚拟机存储在共享存储中,允许在池中的任何服务器上运行。

如图 1 显示器池中的每个服务器必须安装三个服务器池 XenServer,这些池是通过一个安装的 XenCenter 集中管理服务器:创建池,将服务器添加到池中或从池中删除,在池中创建虚拟机,创建虚拟机模板,热迁移虚拟机,创建虚拟机快照等。

采用 XenServer 最简单的云是只安装了一个 XenServer 在个人计算机上安装服务器 XenCenter 来管理这台 XenServer 服务器。XenServer 和 XenCenter 都可以从 http://xenserver.org/下载,XenCenter 支持简体中文。


图 1 XenCenter

2. Red Hat Virtualization(RHV)

这是基于红帽公司发布的 KVM 虚拟平台软件。RHV 包括虚拟化管理工具(Red Hat Virtualization Manager,RHVM)、虚拟化软件(Red Hat Virtualization Host,RHVH)和虚拟化存储(Red Hat Virtualization Storage,RHVS)三个主要部件。其中,RHVH 物理计算节点可直接安装 RHVH 上面运行虚拟机,如图所示 2 所示,通过 RHVM 集中管理很多 RHVH 服务器。

从逻辑上讲,首先有数据中心(DataCenter),数据中心包含多个集群(Cluster)、存储池和网络。一个集群由多个集群安装。 RHVH 由服务器组成,在集群上创建虚拟机,允许在集群中的任何服务器上运行。存储是基于数据中心层面的。数据中心是一个逻辑概念,不一定局限于地理位置的机房,也可能是跨机房或多个数据中心。


图 2 RHVH 架构

用户通过 SPICE 协议连接到虚拟机(需要安装) SPICE 访问格式为客户端软件) SPICE:///计算节点 IP>:端口,这里的 IP 宿主服务器是虚拟机的 IP 地址,每台虚拟机在宿主机上对应一个端口,具体内容将在后面的教程中解释。详细介绍参考红帽官方网站。

3. Oracle VM Server

Oracle VM Server 是由 Oracle 公司发行,集成 Linux 内核和 Xen 因此,服务器虚拟软件 XenServer 类似。配套发行。 Oracle VM Manager 采用云管理工具 Java 语言开发,但其视野中的云架构相对复杂。

4. OpenVZ

OpenVZ 容器是一台轻量级虚拟机,是一个完整的操作系统环境,其主要用途是作为虚拟私人服务器,即 VPS。OpenVZ 是在 Linux 宿主机上的操作系统(修改 Linux 内核)创造隔离的运行环境,每个运行环境都有自己的运行环境 IP、Root 用户、根目录和操作库,但共享操作系统的核心,即操作系统不能安装在容器中,允许安装更多的应用软件,如图所示 3 所示。

现在很多的 VPS 几乎所有的租赁公司都用它来创造 Linux 的 VPS。Windows 的 VPS 目前有 Windows Server Container 和 Hyper-V Container。与其他虚拟机软件相比,在相同配置的物理机上使用 OpenVZ 可以运行更多的容器,从而大大降低每个用户的成本。在公共云中,更多的公司倾向于使用容器。还有类似的开源容器 Linux-VServer、LXC、FreeBSD jail、Solaris Containers。


图 3 OpenVZ架构

但是最近出现了 Docker 容器更轻(容器只运行一个应用程序),在谷歌的大力推动下发展迅速,谷歌发布了它 Docker 以上开源 Kubernetes 管理平台使成千上万台计算机上的数十万台管理运行 Docker 容器变得异常轻松和简单。容器和虚拟机的区别如图 4 所示。


图 4 容器和虚拟机的区别

5. VirtualBox

这是 Oracle 发布的虚拟机软件,单机版,是 VMware Workstation 可安装的替代品 Windows、Linux、Mac OX X 和 Solaris 在操作系统上 VirtualBox 创的虚拟机上,可以安装 Windows、Linux、FreeBSD 操作系统。VirtualBox 支持虚拟机快照、睡眠和分组、虚拟机导入导出、虚拟机克隆等。

常见开源操作系统有哪些?

开源的意思是系统的源代码是面向用户开放的,可以遵循开源协议(GNU)进行使用、编译和再发布。在遵守 GNU 协议的前提下,任何人都可以免费使用,随意控制软件的运行方式。最著名的开源操作系统是 linux。

开源系统相对于不开源的操作系统,如 Windows 和 Mac,开源操作系统最大的特点就是开放源代码和自由定制,但也会因为使用者的技术水平等关系出现很多不可预知的情况及维护问题,并且由于多数硬件和软件厂商并不支持开源软件。所以在驱动和软件源方面有很大困难,这就要求个人用户在选择系统时需要注意根据自己的实际情况来选择,这也是目前个人使用开源操作系统较为困难的最主要原因。

开源系统的分类:

  • Unix-like 类:Linux(这一族开发者众多,发行版本以千计,覆盖所有平台,并支持所有文件格式和所有网络协议)、FreeBSD、OpenBSD、NetBSD(覆盖所有平台)、DrangonflyBSD、Darwin/OpenDarwin/PureDarwin、Minix、GNU Mach/GNU Hurd、L4/Fiasco/Pistachio、syllable、禅OS
  • Unix 类:Opensolaris、AuroraUX、Plan9、Inferno-Plan 9。
  • dos 类:Freedos
  • windows-like 类:ReactOS
  • 原创类:House、KolibriOS、MenuetOS、HelenOS、Openvms
  • 还有其他的开源操作系统有:XFree86、ReactOS。

1)Linux 内核

Linux 内核诞生于 1991 年,目前已超过 1500 万行代码,价值达数百亿美元。以它为核心推出的操作系统发行版最为流行的有 RedHat、Suse、Ubuntu、Android、Centos、Debian 等,大概有上百种(具体可参考排行网站 http://distrowatch.com)。如果不特别指定,这些发行版统称为 Linux 操作系统。

Linux 操作系统开源免费、稳定可靠、病毒少、性能高,作为平台软件,被广泛应用在云端、数据中心。目前除微软外,全部云中心都采用 Linux 操作系统。CentOS 是 RedHat 的克隆版,应用比较广泛,网上具有丰富的资料和社区人气,现已被红帽收购。

2)FreeBSD

FreeBSD 是由美国加州大学伯克利分校开发的免费开源的操作系统,号称世界上最稳定、最高效、最安全、版权限制最少的操作系统。其他公司或者个人可以下载源代码,进行修改后不开源,比如一些网络设备生产商修改源代码后集成到自己的产品中,修改后的代码不开源是不违法的,这点与 Linux 操作系统不同。

FreeBSD 是最理想的网络服务器操作系统之一,可以从 http://www.freebsd.org/zh_CN/where.html 网站下载。鼎鼎有名的开源 NAS 项目 FreeNAS 就是采用了这个操作系统。

3)Illumos 内核

Oracle 收购 Sun 公司之后,关闭了 OpenSolaris 开源项目,推出闭源的 Solaris 11 操作系统和一个简化版的 Solaris 11 Express。Solaris 11 可以从官方网站下载,如果商用,就需要购买服务,个人和实验室可以免费使用。

OpenSolaris 的原班人马几乎都离开了 Oracle 公司,分别加入了以 illumos 为核心的各个厂商,一时间发布了许多个开源版本,如 Napp-it to GO、NexentaStor、OmniOS、SmartOS、StormOS、illumian、OpenIndiana,可分别应用于后台服务器、桌面计算机、存储、嵌入式等领域。这些发行版都以 illumos 为核心,这一点类似于各种 Linux 发行版,如红帽、乌班图、Debian 等 Linux 操作系统发行版都是以 Linux 为核心的。

利用 Napp-it to GO 自己搭建 NAS 存储是一个低成本的存储解决方案,其中核心是 ZFS 文件系统。但是开源的各个操作系统版本中 ZFS 文件系统只到 2.8 版本,更高的版本被 Oracle 公司闭源了,Oracle 公司现在已经推出了 ZFS 3.4 版本。如果自己使用,则可以采用 Solaris 11+Napp-it 组件企业级的 NAS 存储系统。不过 Napp-it 的界面太过复杂,用户体验非常糟糕。

常用数据库有哪些(附带数据库排名)?

表 1 所示列出了每一类数据库的前 3~5 名,排名会不断变化,实时的排名参见 http://db-engines.com/en/ranking 网站。

大类 类别 前3~5名 说明
SQL 关系数据库 Oracle、MySQL/MariaDB、SQL Server、PostgrcSQL、 DB2 遵循“表一记录”模型。按行存储在文件中(先第 1 行,然后第 2 行……)
NoSQL 时序数据库 InfluxDB、RRDtool、Graphite、OpcnTSDB、Kdb+ 存储时间序列数据,每条记录都带有时间戳。如存储从感应器采集到的数据
键/值数据库 Redis、Memcached、Riak KV、Hazelcast、Ehcache 遵循“键——值”模型,是最简单的数据库管理系统
文档数据库 MongoDB、Couchbase、Amazon DynamoDB、CouchDB、MarkLogic 无固定结构,不同的记录允许有不同的列数和列类型。列允许包含多值,记录允许嵌套
图数椐库 Neo4j、OrientDB、Titan、Virtuoso、ArangoDB 以“点——边”组成的网络(图结构)来存储数据
搜索引擎 Elasticsearch、Solr、Splunk、MarkLogic、Sphinx 存储的目的是为了搜索,主要功能是搜索
对象数据库 Caché、db4o、Versant Object Database、ObjcctStore、Matisse 受面向对象编程语言的启发,把数据定义为对象并存储在数据库中,包括对象之问的关系,如继承
宽列数据库 Cassandra、HBase、Accumulo 按照列(由“键——值”对组成的列表)在数据文件中记录数据,以获得更好的请求及遍历效率。一行中的列数允许动态变化,且列的数目可达数百万,每条记录的关键码不同,支持多值列。

下面对排名靠前的开源数据库做一些简单介绍。

1. MySQL/MariaDB

2008 年美国 Sun 公司花费 10 亿美元收购 MySQL,一年后 Oracle 公司又花费 60 亿美元收购了 Sun 公司,从此 Sun 公司的服务器、操作系统、MySQL 等产品线全部归属 Oracle 公司。

拉力·艾立森奉行的经营哲学是“竞争不过它,我就买了它”。竞争不过,说明竞争对手的产品更具优势,所以收购它,从而变成自己的优势。几十年来,Oracle 从一家小型数据库公司变成今天覆盖硬件、平台软件、数据库、中间件、应用软件各个层次产品线的 IT 巨无霸,靠的就是美国的良好环境和总裁奉行的收购策略。

MySQL 数据库占据中小型数据库应用市场的半壁江山,在这块市场,Oracle 数据库明显占下风,巅峰时世界上超过 70% 的网站后台都采用 MySQL 数据库。但是自从被 Oracle 公司收购后,MySQL 发展明显趋缓,是继续开源还是闭源,Oracle 公司一直没下定论。于是 MySQL 的原班人马陆续离开 Oracle 公司,另立炉灶,推出了 MariaDB 开源数据库。

MariaDB 继承了 MySQL 小巧精悍、简洁高效、稳定可靠的特征,并与 MySQL 保持兼容。时至今日,已有 Google、Facebook 等知名企业把应用从 MySQL 切换到了 MariaDB 上,各种 Linux 发行版的操作系统默认数据库都开始采用 MariaDB;而 Apple 公司反应更快,当 Oracle 公司收购 Sun 公司时,就切换到了 PostgreSQL 数据库。

截至 2014 年年末的数据库综合排名,MySQL 继续位居第二名,但是其表现出来的颓势较明显,而 MariaDB 却具备强劲的生命力。

MariaDB 是一个开源的免费的关系数据库,截至发稿前的最新版本是 10.0.15,安装包可从 https://downloads.mariadb.org 网站下载。整个安装包大约 200MB,几乎能在所有的操作系统上安装和运行,与 Oracle 数据库、SQL Server、DB2 等商业数据库动辄好几张光盘相比,算是短小精悍了。

另外,也可以从这个网站下载数据库的源代码。对于非数据库型的 SaaS 云提供商来说,云端采用 MariaDB 是最好的选择,而且可以轻松搭建数据库集群。

2. PostgreSQL

PostgreSQL 能被苹果公司大量使用并替换早期的 MySQL 数据库,说明其一定有不俗的表现。在 2014 年年末的数据库排行榜上,PostgreSQL 位居第四位,号称世界上最先进的、最安全的开源数据库,也是面向对象的关系数据库。

华为内部局域网接入控制系统 SPES 也采用 PostgreSQL 数据库,在 Linux 操作系统上运行,极少出问题。经过十多年的磨砺,如今 PostgreSQL 数据库具备如下特点:

PostgreSQL 数据库同时具备很多众多令人振奋的优点,比如在线备份、数据域、表分区、表空间、嵌套事务、时刻点恢复、两段式提交、多版本并发控制、子查询等。

在 PostgreSQL 中,数据库大小没有限制,表大小上限为 32TB,一条记录的大小上限为 1.6TB,字段大小上限是 1GB,一个表包含的记录数没有限制,一条记录的字段数上限为 1600 个,一个表上创建的索引数目没有限制。

另外,SQLite 是一个非常小型的 ACID 兼容的关系数据库,适合嵌入式系统。

3. InfluxDB

InfluxDB 是一个开源的时间序列数据库,能应付极高的写和查询并发数,主要用于存储大规模的时间戳数据(每条记录自动附加时间戳),如 DevOps 监控数据、应用系统运行指标数据、物联网感应器采集的数据及实时分析的结果数据等。InfluxDB 具备如下特征:

对于一个具体的时间序列应用来说,除存储外,还需要集成数据采集、可视化和告警功能。为此,InfluxData 社区相应提供了 Telegraf(数据采集)、Chronograf(数据可视化)、Kapacitor(告警)三个开源项目,再加上 InfluxDB,能部署成一个完整的时间序列应用系统(简称为 TICK)。这四者的关系如图 1 所示。


图 1 数据采集示意图

4. Redis

Redis 是遵循 BSD 开源协议的存储系统,数据存储在内存中,因此具备极高的性能,可用作数据库、缓存和消息中间件。Redis 支持多种类型的数据结构,如字符串、哈希、列表、集合、带范围查询的有序集合、位图、hyperloglogs 和带半径查询的地理空间索引。

Redis 内置了复制、脚本语言编程、最近最少使用(LRU)淘汰、事务以及不同级别的磁盘持久化等功能,通过 Redis Sentinel 和集群自动分区机制实现高可用性。Redis 采用 C 语言编写,能运行在 Windows、MacOS X、Linux、Solaris 等操作系统上,不过 Linux 是其最佳的运行平台,无须第三方依赖,它提供了最广泛的编程语言接口。

5. MongoDB

MongoDB 是排名第一的文档数据库,属于 NoSQL 大类,诞生于 2009 年,正好是云计算兴起的前夜。MongoDB 采用 C++ 语言开发,能运行在 Windows、MacOS X、Linux、Solaris 操作系统上,提供了绝大部分计算机语言的编程接口。保存在 MongoDB 中的一条记录称为一个文档,类似 JSON 语法,例如:

从上面的例子可以看出,一个文档就是“键:值”对的集合。

MongoDB 的主要优势包括:高性能、富查询语言(支持 CRUD、数据聚合、文本搜索和地理空间查询)、高可靠性、自动伸缩架构、支持多存储引擎。MongoDB 适合文档存储、检索和加工的应用场合,如大数据分析。

6. Neo4j

Neo4j 是一个用 Java 语言开发的图数据库,它将结构化数据存储在由“点—边”组成的网络(数学术语叫“图”)上而不是表中。与关系数据库相比,图数据库擅长处理大量复杂、互连接、低结构化的数据。这些数据变化迅速,需要频繁查询,如果使用关系数据库,那么这些查询会导致大量的表连接,因此会产生性能上的问题。

Neo4j 重点解决了拥有大量连接的传统关系数据库在查询时出现的性能衰退问题。Neo4j 还提供了非常快的图算法、推荐系统和 OLAP 风格的分析,而这一切在目前的关系数据库系统中都无法实现。Neo4j 提供了广泛使用的 REST 接口,能够方便地集成到基于 Java、PHP、.NET 和 JavaScript 的环境里。

Neo4j 使用 Cypher 语言进行增删改操作,例如:

创建了两个节点:变量“e1”和“e2”,标签“员工”,属性“{……}”。

创建了一条边,最终形成下图,如图 2 所示。


图 2 最终形成

7. Elasticsearch

Elasticsearch 是一个高度可扩展的开源全文搜索和分析引擎,用于存储、搜索和近乎实时地分析大规模数据。Elasticsearch 常被人们用于构建具备复杂搜索功能的应用系统,比如维基百科和优步的搜索,再比如网店中搜索商品、商业智能、日志收集与分析、价格告警等。利用 Elasticsearch 实现的数据采集、存储和可视化套件 ELK(Elasticsearch、Logstash、Kibana)在日志分析领域应用最为广泛。

8. Caché

大概 20 年前,人们提出了后关系型数据库的概念,目前已有不少产品,其中由 InterSystems 公司开发的 Caché 是后关系型数据库中的领头羊,它提供 3 种方式访问数据:对象访问、SQL 访问、直接对多维数据数组访问,而且 3 种访问方式能够并发访问同一数据。多维数据结构和多种数据库访问方式构成了后关系型数据库的基础。

Caché 数据库具备如下一些特点:

1)速度快

Caché 数据库在同等条件下查询相同数据,比 Oracle 等普通数据库要快 7~20 倍。

2)节省存储空间

存储空间可能节省 2/3,而基于 Caché 的应用程序,比原来基于关系型数据库的应用程序运行有可能快 20 倍。

3)使用简单

Caché 数据库支持标准 SQL 语句,因此不太熟悉 M 语言的用户依然可以轻松对数据库中的数据进行操作。

4)接口容易

Caché 数据库支持 ODBC 标准接口,因此在与其他系统进行数据交换时非常容易,同时 Caché 亦可以将数据输出为文本文件格式,以供其他系统访问调用。

5)真正的三层结构

Caché 数据库能够在真正意义上实现 3 层结构,实现真正的分布式服务,便于做横向扩张。

6)对象型编辑

Caché 数据库是真正的对象型数据库,开发时用户可直接用数据库定义自己想要的对象,然后再在其他开发工具中调用该对象的方法和属性即可完成开发工作,非常方便。

7)支持 Web 开发

Caché 数据库提供自带的 Web 开发工具,使用、维护非常方便,符合当今软件业发展的趋势。

8)价格便宜

Caché 数据库的价格比 Oracle 数据库要便宜很多。

Caché 数据库在欧美的医疗系统使用最为普遍,被医疗界公认为首选的数据库,国内中山大学第三附属医院、深圳南山医院、北京安贞医院等也采用 Caché 数据库

9. Cassandra

Cassandra 是在 Google 的 Bigtable 基础上发展起来的 NoSQL 数据库,由脸谱于 2008 年用 Java 语言开发,目前被贡献给 Apache 基金会。Cassandra 被称为“列数据库”,这里的“列”不是指关系数据库中一个表中的列,而是由“键—值”对组成的列表(语法与 Python 语言中的列表相同),如:

Cassandra 中一行数据语法是“一行的键={列,列,…}”,一行可包含上百万列,比如:

Cassandra 中的列族(ColumnFamily)格式是“列族名={若干行}”,一个列族可包含几十亿行,例如:

一个 Cassandra 运行实例管理很多键空间(Keyspace),Keyspace 相当于关系数据库管理系统中的数据库,一个键空间包含很多列族。键空间、列族、行、列的关系如图 3 所示。


图 3 键空间、列族、行、列的关系

所以,Cassandra 中的寻址是一个四维或者五维哈希表:

比如:

返回广东理工职业学院(gdpi)计算机系(computer)张三(zsan)这个学生的年龄。

OpenStack 生态中的 HBase 也是列数据库,目前排名第二。


锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章