文章目录

  • Cloud Computing 云计算基础
    • 1.云计算概述
      • 1.1 IT发展趋势
        • 1.1.1 什么是IT
          • 1.1.1.1 我们身边的IT
          • 1.1.1.2 IT的核心
        • 1.1.2 传统 IT 面临的挑战
          • 1.1.2.1 信息大爆炸已经加速到来
          • 1.1.2.1 传统 IT 面临的挑战
        • 1.1.3 IT 的发展趋势
      • 1.2 云计算简介
        • 1.2.1 计算机发展史
          • 1.2.1.1 什么是计算机
          • 1.2.1.2 计算机发展史
        • 1.2.2 虚拟化技术发展史
          • 1.2.2.1 什么是虚拟化
          • 1.2.2.2 虚拟化发展史
        • 1.2.3 云计算的发展史
          • 1.2.3.1 什么是云计算
          • 1.2.3.2 生活中的云计算
          • 1.2.3.3 工作中的云计算
          • 1.2.3.4 云计算的发展
        • 1.2.4 云计算的价值
          • 1.2.4.1 按需自助服务
          • 1.2.4.2 广泛的网络接入
          • 1.2.4.3 资源池化
          • 1.2.4.4 快速部署、弹性伸缩
          • 1.2.4.5 可计量服务
        • 1.2.5 云计算的服务和部署模式
          • 1.2.5.1 云计算的服务模式
          • 1.2.5.2 云计算的部署模式
      • 1.3 主流云计算技术
        • 1.3.1 AWS
        • 1.3.2 VMware
          • 1.3.2.1 VMware 概述
        • 1.3.3 天翼云
          • 1.3.3.1 了解天翼云
    • 2.服务器基础
      • 2.1 服务器介绍
        • 2.1.1 什么是服务器
          • 2.1.1.1 服务器定义和特点
          • 2.1.1.2 服务器的使用场景
        • 2.1.2 服务器的发展历程
        • 2.1.3 服务器类型
          • 2.1.3.1 服务器分类方式—硬件形态
          • 2.1.3.2 服务器分类—服务规模
        • 2.1.4 服务器硬件介绍
          • 2.1.4.1 服务器的硬件结构
          • 2.1.4.2 CPU
            • 2.1.4.2.1 CPU 定义和组成
            • 2.1.4.2.2 CPU 频率
          • 2.1.4.3 内存
          • 2.1.4.4 硬盘
          • 2.1.4.5 RAID 卡
            • 2.1.4.5.1 RAID 概述
            • 2.1.4.5.2 RAID 热备和重构概念
            • 2.1.4.5.3 RAID 的实现—硬件方式
            • 2.1.4.5.4 RAID 的实现—软件方式
            • 2.1.4.5.5 RAID 的实现—两者比较
          • 2.1.4.6 网卡
          • 2.1.4.7 电源和风扇
        • 2.1.5 服务器关键技术
          • 2.1.5.1 BMC 介绍
          • 2.1.5.1.1 什么是 IPMI
          • 2.1.5.1.2 BMC 介绍
          • 2.1.5.2 BIOS
    • 3.存储技术基础
      • 3.1 存储基础介绍
        • 3.1.1 什么是存储
        • 3.1.2 存储发展历程
          • 3.1.2.1 存储的发展
          • 3.1.2.2 存储发展历程:从附属于服务器到剥离成独立系统
          • 3.1.2.3 存储发展历程:从独立系统到网络共享存储
        • 3.1.3 主流硬盘类型
        • 3.1.4 存储组网类型
          • 3.1.4.1 DAS 存储简介
          • 3.1.4.2 NAS 存储简介
          • 3.1.4.3 SAN 存储简介
            • 3.1.4.3.1 FC-SAN 简介
            • 3.1.4.3.2 IP-SAN 简介
            • 3.1.4.3.3 三种存储组网总结对比
        • 3.1.5 存储形态简介
          • 3.1.5.1 集中式存储
          • 3.1.5.2 分布式存储
          • 3.1.5.3 存储业务类型
            • 3.1.5.3.1 块存储
            • 3.1.5.3.2 文件存储
            • 3.1.5.3.3 对象存储
            • 3.1.5.3.4 块存储、文件存储以及对象存储总结
      • 3.2 存储关键技术
        • 3.2.1 RAID 技术
          • 3.2.1.1 RAID 基本概念
          • 3.2.1.2 RAID 的数据组织形式
          • 3.2.1.3 RAID 的数据保护方式
          • 3.2.1.4 RAID 热备和重构概念
          • 3.2.1.5 常见 RAID 级别介绍
            • 3.2.1.5.1 RAID 0
            • 3.2.1.5.2 RAID 1
            • 3.2.1.5.3 RAID 3
            • 3.2.1.5.4 RAID 5
            • 3.2.1.5.5 RAID 6
          • 3.2.1.6 RAID 2.0 技术介绍
          • 3.2.1.7 RAID 2.0+块虚拟化技术原理
        • 3.2.2 存储协议
          • 3.2.2.1 SCSI 协议
          • 3.2.2.2 iSCSI 协议
            • 3.2.2.2.1 什么是iSCSI 协议
            • 3.2.2.2.2 iSCSI 协议
          • 3.2.2.3 FC 协议与 TCP 协议融合
            • 3.2.2.3.1 iFCP 协议
            • 3.2.2.3.2 iFCP 协议栈
            • 3.2.2.3.3 FCoE 协议
            • 3.2.2.3.4 FCoE 协议封装
    • 4网络技术基础
      • 4.1 IP 地址基础
        • 4.1.1 什么是 IP 地址
        • 4.1.2 IP 地址表示
        • 4.1.3 IP 地址构成
        • 4.1.4 IP 地址分类(有类编址)
        • 4.1.5 公网/私网 IP 地址
        • 4.1.6 特殊 IP 地址
        • 4.1.7 子网掩码及主机可用地址
        • 4.1.8 IP 地址计算
        • 4.1.9 子网划分
      • 4.2 网络技术介绍
        • 4.2.1 网络基础
          • 4.2.1.1 网络通信基本概念
          • 4.2.1.2 信息传递过程
          • 4.2.1.3 什么是网关
          • 4.2.1.4 通信网络基本组成架构
          • 4.2.1.5 网络设备 - 交换机
          • 4.2.1.6 网络设备 - 路由器
          • 4.2.1.7 网络设备 - 防火墙
        • 4.2.2 网络参考模型和数据封装
          • 4.2.2.1 OSI 参考模型
          • 4.2.2.2 TCP/IP 参考模型
          • 4.2.2.3 发送方数据封装
          • 4.2.2.4 中间网络数据传输
          • 4.2.2.5 接收方数据解封装
        • 4.2.3 常用协议介绍
          • 4.2.3.1 TCP/IP 常见协议
          • 4.2.3.2 TCP 协议
          • 4.2.3.3 UDP 协议
          • 4.2.3.4 TCP VS UDP
          • 4.2.3.5 Telnet 协议
          • 4.2.3.6 SSH 协议
          • 4.2.3.7 Telnet VS SSH
      • 4.3 交换技术基础
        • 4.3 交换技术基础
          • 4.3.1.1 以太网协议
          • 4.3.1.2 以太网二层交换机
          • 4.3.1.3 MAC 地址表
          • 4.3.1.4 交换机的 3 种数据帧处理行为
          • 4.3.1.5 交换机的工作原理
        • 4.3.2 VLAN 技术基础
          • 4.3.2.1 VLAN 产生的原因
          • 4.3.2.2 VLAN 技术的目标
          • 4.3.2.3 什么是 VLAN
          • 4.3.2.4 VLAN 的帧格式
          • 4.3.2.5 VLAN 的划分方式
          • 4.3.2.6 基于接口的 VLAN 划分
          • 4.3.2.7 VLAN 的接口类型
        • 4.3.3 VLAN 基础配置
          • 4.3.3.1 VLAN 的基础配置命令
            • 4.3.3.1.1 创建 VLAN
            • 4.3.3.2 Access 接口的基础配置命令
            • 4.3.3.3 Trunk 接口的基础配置命令
          • 4.3.3.4 Hybrid 接口的基础配置命令
      • 4.4 路由技术基础
        • 4.4.1 路由基础原理
          • 4.4.1.1 路由
          • 4.4.1.2 路由信息介绍
          • 4.4.1.3 路由表
          • 4.4.1.4 查看 IP 路由表
          • 4.4.1.5 路由转发流程
        • 4.4.2 静态和缺省路由
          • 4.4.2.1 静态路由介绍
          • 4.4.2.2 静态路由配置举例
          • 4.4.2.3 缺省路由
          • 4.4.2.4 缺省路由应用场景
    • 5.操作系统基础
      • 5.1 操作系统基础
        • 5.1.1 操作系统的定义
          • 5.1.1.1 操作系统的定义及作用
        • 5.1.2 操作系统的组成
        • 5.1.3 操作系统的分类
          • 5.1.3.1 常用服务器操作系统
      • 5.2 Linux 基础
        • 5.2.1 Linux 系统介绍
          • 5.2.1.1 Linux 操作系统特性
          • 5.2.1.2 Linux 文件目录结构
        • 5.2.2 Ctyun 简介
          • 5.2.2.1 Ctyun出现的背景
          • 5.2.2.2 Ctyun 操作系统介绍
          • 5.2.2.3 Ctyun 和主流 OS 系的关系
        • 5.2.3 Ctyun 文件系统简介
          • 5.2.3.1 文件系统概述
          • 5.2.3.2 Ctyun 文件系统
        • 5.2.4 Ctyun 基础操作
          • 5.2.4.1 Linux 命令行基础知识
            • 5.2.4.1.1 Linux 的 GUI 与 CLI
            • 5.2.4.1.2 为什么要使用 Linux 命令行
            • 5.2.4.1.3 Linux 命令行操作技巧
            • 5.2.4.1.4 如何登录 Linux
            • 5.2.4.1.5 修改密码
            • 5.2.4.1.6 Linux 用户分类
            • 5.2.4.1.7 Linux 用户创建及删除
          • 5.2.4.2 Ctyun 基础命令
            • 5.2.4.2.1 电源命令:关机与重启
            • 5.2.4.2.2 文件路径表示
            • 5.2.4.2.3 文件的查看
            • 5.2.4.2.4 文件的创建
            • 5.2.4.2.5 文件的复制
            • 5.2.4.2.6 文件的移动和重命名
            • 5.2.4.2.7 文件的删除
            • 5.2.4.2.8 命令如何获取帮助
          • 5.2.4.3 CTyun 的文本处理
            • 5.2.4.3.1 Linux 文本编辑器—vim
            • 5.2.4.3.2 vim 编辑器命令模式
            • 5.2.4.3.3 vim 命令模式常见操作
            • 5.2.4.3.4 vim 编辑器插入模式
            • 5.2.4.3.5 vim 编辑器底行模式
          • 5.2.4.4 CTYUN 的网络管理
            • 5.2.4.4.1 CTYUN 系统网络重要概念
            • 5.2.4.4.3 配置静态 IP 地址
            • 5.2.4.4.4 Linux 系统的路由管理与配置
            • 5.2.4.4.5 route 新增路由
            • 5.2.4.4.6 route 删除路由
            • 5.2.4.4.7 主机名
            • 5.2.4.4.8 设置主机名
            • 5.2.4.4.9 hosts 文件介绍
            • 5.2.4.4.10 修改 hosts 文件
    • 6.虚拟化技术介绍
      • 6.1 虚拟化技术概览
        • 6.1.1 虚拟化技术简介
          • 6.1.1.1 什么是虚拟化
          • 6.1.1.2 虚拟化中的重要概念
          • 6.1.1.3 虚拟化的类型
          • 6.1.1.4 虚拟化的特点
          • 6.1.1.5 虚拟化的优势
          • 6.1.1.6 CPU 虚拟化
            • 6.1.1.6.1 CPU 虚拟化方案
            • 6.1.1.6.2 CPU 与 VCPU 的对应关系
          • 6.1.1.7 内存虚拟化
          • 6.1.1.8 I/O 虚拟化
        • 6.1.2 主流虚拟化技术介绍
          • 6.1.2.1 Xen 虚拟化简介
          • 6.1.2.2 KVM 虚拟化简介
          • 6.1.2.3 KVM 与 QEMU
          • 6.1.2.4 KVM 工作原理
          • 6.1.2.5 虚拟化平台管理工具—Libvirt
          • 6.1.2.6 Xen VS KVM
    • 7 虚拟化平台介绍
      • 7.1 产品介绍
        • 7.1.1 虚拟化套件

Cloud Computing 云计算基础

本文的目的是为了帮助那些对云计算所包括的技术常识、应用架构;服务器/存储/数据通信的基本原理;操作系统/虚拟化技术的实现方式;涉及到实际应用的云服务器、云电脑的方案和概述不甚了解的同事,快速有效的建立正确的概念,方便日常工作。
云计算是一个非常宽泛的概念,它所包含的技术细节纷繁复杂。本文所涉猎的都是非常基础的概念性内容,如有错误不妥之处,还请指正。

1.云计算概述

1.1 IT发展趋势

1.1.1 什么是IT

1.1.1.1 我们身边的IT

IT技术,也就是Internet Technology,互联网技术。它是指在计算机技术的基础上开发建立的一种信息技术 [1] 。互联网技术通过计算机网络的广域网使不同的设备相互连接,加快信息的传输速度和拓宽信息的获取渠道,促进各种不同的软件应用的开发,改变了人们的生活和学习方式。互联网技术的普遍应用,是进入信息社会的标志。
它是信息技术技术行业的统称,也是信息处理的总集,IT 包括了软件、硬件、通信以及它们相关服务等等。
而在我们身边的 IT 技术正在改变我们的生活,例如通过 APP 承接和下发订单的打车软件,通过互联网进行实时语音通话的通讯软件,通过 APP 提供网上购物体验的电子商城等。这些形形色色的 IT 软件和硬件正在颠覆和改变我们的生活和工作。

1.1.1.2 IT的核心


传统的 IT 基础架构由常见的硬件和软件组件构成:设施、数据中心、服务器、网络硬件、桌面计算机,以及企业应用软件解决方案。而新时代下的 IT 架构有了一些新的变化。如图所示,在 IT 基础硬件之上有了云的出现,后续的应用开发以及软件的部署也都将基于云基础设施来进行。云的出现,很大程度上改变了互联网的 IT 基础架构,同时也解决了很多传统 IT面临的挑战。

1.1.2 传统 IT 面临的挑战

1.1.2.1 信息大爆炸已经加速到来

随着移动互联网、全联接时代的到来,越来越多的终端设备被投入使用,每天都会有大量的数据产生,传统的 IT 基础设施也在面临着前所未有的挑战。而互联网的发展阶段,我们大致可以将它分为三个阶段,PC 时代、移动互联网时代以及物联网时代。
PC 时代,人们使用个人电脑通过互联网进行互联。移动时代,大家通过各种移动设备,如手机、Pad 等移动终端进行互联。随着 5G 时代的到来,所有的电脑,手机,智能终端,都能连接到一起,进入万物互联的时代。
万物互联到来后,整个产业的布局和竞争是生态的竞争。从过去的经验看,PC 时代到了移动时代,再到万物互联时代,每个时代形成之后,生态一开始是高速变化的,然后趋于稳态,当稳态的时候很难再改变它。PC 时代是 Windows 系统和 x86 芯片架构为代表的时代,上面有许许多多的应用。到了移动时代,这个时候的 ARM 芯片架构上面有 IOS、安卓系统,它们上面又有各种各样的应用。
互联网经历了两代,现在正在开启第三代,也就是万物互联。每一代互联网相比上一代,从设备的数量和市场的规模,都会有巨大的增长,这是未来的机会所在。 每一代互联网都有掌握产业链的龙头公司,从 PC 时代的英特尔和微软,到今天的 ARM 和 Google,而未来谁能掌握核心芯片和操作系统,就会成为新的产业链霸主。

1.1.2.1 传统 IT 面临的挑战

随着互联网的发展,迅速攀升的互联网普及率给企业带来了大量的流量,用户以及数据。与此同时,为了能够匹配企业高速发展的进度,企业就需要不断地采购传统 IT 设备,时间一长,使用传统 IT 架构的弊端就逐渐显示出来:

  • 由于设备采购周期长等原因,导致新业务系统上线慢。
  • 传统 IT 的集中式架构扩展性差,纵向扩展只能增加单机处理性能。
  • 传统硬件设备孤立存在,可靠性只能依赖软件侧。
  • 设备种类多,厂商多,导致管理十分复杂。
  • 单个设备性能有限。
  • 设备整体利用率不高,企业总成本支出居高不下。

由此可见,传统的 IT 基础架构设施已经无法满足于企业自身业务快速发展的需求。而企业的发展不可能因此而停缓,所以必定需要有新的 IT 架构来满足企业的需求。于是 IT 的架构就开始了它的演进。

1.1.3 IT 的发展趋势


如图所示,企业 IT 架构的演进经历了传统企业 IT 架构—>虚拟化架构—>企业云化 IT 架构。传统 IT 基础架构由通常的硬件和软件组件组成:设施、数据中心、服务器、网络硬件和企业应用软件解决方案。与其他基础架构类型相比,这种基础架构设置通常需要更多的电力、物理空间和资金。而且传统基础架构往往安装在本地,仅供企业自身来进行使用。
虚拟化架构的主要改变是将底层物理硬件先进行虚拟化,然后在虚拟化资源环境中再部署企业的业务系统以及其他基础 IT 应用。虚拟化是指计算机软件应用在虚拟的硬件上运行而不是直接在真实的基础硬件上运行。虚拟化技术可以提升硬件的资源利用率,简化软件的重新配置过程。
云化架构则是在虚拟化基础上的进一步发展,整个企业的基础 IT 架构应用了云的技术,包括了各类虚拟化技术、分布式技术、自动化运维技术等等。云化让整个企业 IT 资源进行整合,资源的使用和调度更加高效,IT 运维更加自动化,IT 的服务更加自助化。

其中,企业数据中心“云化”转型的要点主要有以下几点:

  • 从资源孤岛到真正资源池化;
  • 从集中式向分布式架构转型;
  • 从专用硬件向开放的软件定义模式转型;
  • 从人工处理向自助、自动服务转型;
  • 从分散统计到统一计量转型。

根据某国际权威数据统计机构的报告,自 2015 年开始,全球 IT 产业增长的 1/3 来自云计算相关产业的发展,且其中的增长率百分比都是由云计算产业贡献。传统 IT 基础架构对 IT 产业的贡献几乎陷入了停滞、甚至在近年还有衰退的趋势。
于是,我们不难得出这样一个结论。未来企业 IT 的基础架构都将慢慢被云化的架构所代替,无论这个企业是互联网类型的企业,还是传统行业类型的企业。并且,这个现象也正在全球各地发生着。目前,美国企业 IT 架构云化的比例大概在 70%,国内的比例在 40%左右。这个数字根据统计也是在逐年增长。

1.2 云计算简介

以云计算为基础的相关产业成为 IT 产业主流,而这个平台的基石就是计算机和虚拟化技术,在讲解云计算之前让我们首先来简单了解下计算机和虚拟化技术的发展

1.2.1 计算机发展史

1.2.1.1 什么是计算机

计算机是现代一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能。是能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备。
对于我们自身来说,提到计算机,我们首先想到的就是台式、笔记本电脑以及服务器。并且,上文介绍到的数据中心里的存储设备、网络设备、安全设备等都是计算机设备。

1.2.1.2 计算机发展史
  • 计算工具的演化经历了由简单到复杂、从低级到高级的不同阶段,例如从“结绳记事”中的绳结到算筹、算盘计算尺、机械计算机等。它们在不同的历史时期发挥了各自的历史作用,同时也启发了现代电子计算机的研制思想。
    1889年,美国科学家赫尔曼·何乐礼研制出以电力为基础的电动制表机,用以储存计算资料。
    1930年,美国科学家范内瓦·布什造出世界上首台模拟电子计算机。
    1946年2月14日,由美国军方定制的世界上第一台电子计算机“电子数字积分计算机”(ENIAC ElectronicNumerical And Calculator)在美国宾夕法尼亚大学问世了。ENIAC(中文名:埃尼阿克)是美国奥伯丁武器试验场为了满足计算弹道需要而研制成的,这台计算器使用了17840支电子管,大小为80英尺×8英尺,重达28t(吨),功耗为170kW,其运算速度为每秒5000次的加法运算,造价约为487000美元。ENIAC的问世具有划时代的意义,表明电子计算机时代的到来。在以后60多年里,计算机技术以惊人的速度发展,没有任何一门技术的性能价格比能在30年内增长6个数量级。
  • 第一代计算机:电子管数字机(1946—1958年)
    硬件方面,逻辑元件采用的是真空电子管,主存储器采用汞延迟线、阴极射线示波管静电存储器、磁鼓、磁芯;外存储器采用的是磁带。软件方面采用的是机器语言、汇编语言。应用领域以军事和科学计算为主。
    缺点是体积大、功耗高、可靠性差。速度慢(一般为每秒数千次至数万次)、价格昂贵,但为以后的计算机发展奠定了基础。
  • 第二代计算机:晶体管数字机(1958—1964年)
    软件方面的操作系统、高级语言及其编译程序应用领域以科学计算和事务处理为主,并开始进入工业控制领域。特点是体积缩小、能耗降低、可靠性提高、运算速度提高(一般为每秒数10万次,可高达300万次)、性能比第1代计算机有很大的提高。
  • 第三代计算机:集成电路数字机(1964—1970年)
    硬件方面,逻辑元件采用中、小规模集成电路(MSI、SSI),主存储器仍采用磁芯。软件方面出现了分时操作系统以及结构化、规模化程序设计方法。特点是速度更快(一般为每秒数百万次至数千万次),而且可靠性有了显著提高,价格进一步下降,产品走向了通用化、系列化和标准化等。应用领域开始进入文字处理和图形图像处理领域。
  • 第四代计算机:大规模集成电路计算机(1970年至今)
    硬件方面,逻辑元件采用大规模和超大规模集成电路(LSI和VLSI)。软件方面出现了数据库管理系统、网络管理系统和面向对象语言等。1971年世界上第一台微处理器在美国硅谷诞生,开创了微型计算机的新时代。应用领域从科学计算、事务管理、过程控制逐步走向家庭。
    由于集成技术的发展,半导体芯片的集成度更高,每块芯片可容纳数万乃至数百万个晶体管,并且可以把运算器和控制器都集中在一个芯片上、从而出现了微处理器,并且可以用微处理器和大规模、超大规模集成电路组装成微型计算机,就是我们常说的微电脑或PC机。微型计算机体积小,价格便宜,使用方便,但它的功能和运算速度已经达到甚至超过了过去的大型计算机。另一方面,利用大规模、超大规模集成电路制造的各种逻辑芯片,已经制成了体积并不很大,但运算速度可达一亿甚至几十亿次的巨型计算机。我国继1983年研制成功每秒运算一亿次的银河Ⅰ这型巨型机以后,又于1993年研制成功每秒运算十亿次的银河Ⅱ型通用并行巨型计算机。这一时期还产生了新一代的程序设计语言以及数据库管理系统和网络软件等。
  • 1889 年,美国科学家赫尔曼·何乐礼研制出以电力为基础的电动制表机,用以储存计算资料。
  • 1930 年,美国科学家范内瓦·布什造出世界上首台模拟电子计算机。
  • 1946 年,美国军方定制了世界上第一台电子计算机“电子数字积分计算机”。
  • 1950 年,第一台并行计算机问世,实现了计算机之父“冯.诺伊曼”的两个设想:采用二进制和存储程序。
  • 1954 年,IBM 公司制造的第一台使用晶体管的计算机,增加了浮点运算,使计算能力有了很大提高。
  • 1970 年,IBM S/370,这是 IBM 更新换代的重要产品,采用了大规模集成电路代替磁芯存储,小规模集成电路作为逻辑元件,并使用虚拟存储器技术,将硬件和软件分离开来,从而明确了软件的价值。
  • 1975 年,MITS 制造世界上第一台微型计算机。
  • 1977 年,第一个带有彩色图形的个人计算机。
  • 1998 年,带有 128K 二级高速缓存的赛扬处理器成为广大装机者的最爱,同时 64M 内存和 15 寸显示器开始成为标准配置。
  • 1999 年,部分品牌厂商开始将 Pentium III CPU 作为电脑的一个卖点,64 M 内存和 6.4 G 硬盘开始成为电脑的标准配置。
  • 2001 年至今,Pentium 4 CPU 和 Pentium 4 赛扬 CPU 开始成为电脑的标准配置,内存由 SDRAM 实现了向 DDR 的过渡,同时 17 寸 CRT 显示器或者 15 寸液晶显示器开始成为用户的首选,硬盘逐渐向 40 G 以上的容量发展。

如需要更进一步的了解,请移步 计算机组成原理。

1.2.2 虚拟化技术发展史

1.2.2.1 什么是虚拟化

虚拟化(Virtualization)的含义很广泛。将任何一种形式的资源抽象成另一种形式的技术都是虚拟化,是资源的一种逻辑表示。而对于服务器虚拟化来说,虚拟化就是使得在一台物理服务器上可以跑多台虚拟机,虚拟机共享物理机的 CPU、内存、IO 硬件资源,但逻辑上虚拟机之间是相互隔离的。虚拟化也是云计算实现的重要基础。


在图,我们可以看到左边是虚拟化前的架构形态。企业在购置服务器之后,为服务器安装业务操作系统,然后再部署企业的系统应用以及需要的基础环境。
在这个传统企业 IT 架构中,第一,每台服务器的资源都是独立的,比如服务器 1 的资源比较空闲,服务器 2 的资源很紧张,但它们之间的资源是不能互通有无的,不能让资源得到充分的利用;第二,因为业务操作系统直接部署在硬件之上,操作系统的各种硬件驱动也必须要适配底层的物理服务器,也就是说操作系统与硬件存在一个紧耦合的关系,一旦我们需要将原来的系统应用迁移到其他不同厂家的物理服务器时,会变得非常麻烦,需要考虑各种兼容性问题。
而在虚拟化架构中,企业采购物理服务器后,先在服务器上部署虚拟化层对其进行虚拟化,使得各个服务器的硬件资源变成虚拟化资源并形成资源池。然后再基于这个虚拟化资源池创建虚拟机,让虚拟机成为原先企业业务应用的承载体。这个模式架构中,资源抽象成为了共享资源池,大大提升了资源的利用率,使得资源不再是独立的;物理硬件和业务操作系统之间也隔了一层虚拟化层,使得上层操作系统与硬件解耦,我们只需保持虚拟机的虚拟硬件结构一致即可便捷地进行业务应用移动的需求。

1.2.2.2 虚拟化发展史

虚拟化的发展也有比较长的一段时间了。

  • 1993 年,IBM 推出可升级的 POWER 并行系统,这是第一款采用 RS/6000 技术,基于微处理器的超级计算机。
  • 1998 年,著名的 x86 仿真模拟器 Bochs 发布。
  • 1998 年,VMware 成立,1999 年推出了可以流畅运行的商业虚拟化软件VMware Workstation。从此虚拟化技术终于走下了大型机的神坛。
  • 1999 年,IBM 在 AS/400 上第一次提出了 LPAR(Logical Partition,逻辑分区)虚拟化技术。
  • 2000 年,Citrix(思杰)桌面虚拟化产品发布。
  • 2004 年,IBM 发布了虚拟化解决方案 APV(Advanced Power Virtualization),支持资源共享。该方案在 2008 年改名为 PowerVM。
  • 2005 年,Xen 3.0.0 发布,该版本可以在 32 位服务器上运行,是第一个支持Intel VT-x 的虚拟机监控程序。
  • 2006 年,以色列的创业公司 Qumranet 在完成了虚拟化 Hypervisor 基本功能、动态迁移以及主要的性能优化之后,正式对外宣布了 KVM(Kernel-based Virtual Machine,基于内核的虚拟机)的诞生。
  • 2006 至今,云计算与大数据时代。
  • 2007 年,德国 InnoTek 公司开发了 VirtualBox 虚拟化软件。
  • 2008 年,Linux Container(LXC)发布 0.1.0 版本,可以提供轻量级的虚拟化。
  • 2010 年,红帽发布 RHEL 6.0,这个版本将默认安装的 Xen 虚拟化机制彻底去除,仅提供 KVM 虚拟化机制。
  • 2015 年,Kubernetes v1.0 发布,进入云原生时代。

1.2.3 云计算的发展史

1.2.3.1 什么是云计算

云计算自发展至今,关于云计算的定义,业界的描述是众说纷纭。其中广为接受的说法是美国国家标准与技术研究院(NTSI)的定义:云计算是一种模型,它可以实现随时随地、便捷地、随需应变地从可配置计算资源共享池中获取所需的资源(例如,网络、服务器、存储、应
用及服务),资源能够快速供应并释放,使管理资源的工作量和与服务提供商的交互减小到最低限度。
说明一下定义中的重点:

  1. 云计算不是技术,而是一种模型。
  2. 通过云计算,用户可以使用的资源包括网络、服务器、存储、应用及服务等,这些资源全部属于 IT 领域,云计算的目标就是让大众像获取水电一样获取到 IT 服务。
  3. 资源的使用可以随时随地,前面我们讲过云计算的特点,“随时随地”的前提是网络可达。
  4. 资源能够快速供应并释放对应了云计算快速弹性伸缩的特点,而与服务提供商的交互减小到最低限度对应了按需自助服务。

除了从这种角度来认识云计算之外,还可以从另一个角度来认识云计算。我们可以将云计算拆分为“云”与“计算”来进行理解。“云”其实是网络、互联网的一种比喻说法,即表示互联网与建立互联网所需要的底层基础设施的抽象体。而“计算”指的是能够提供足够强大的计算服务(包括各种功能,资源,存储)的计算资源整合。因此“云计算”可以理解为:通过互联网,我们可以使用由足够强大的“计算机”为用户提供的资源服务,而这种服务的使用量可以使用统一的单位来描述。
虽然云计算的概念众说纷纭,但是云计算确确实实是应用到我们身边的方方面面了。接下来,就为大家介绍我们身边的云计算。

1.2.3.2 生活中的云计算
  • 网易云音乐
  • Icloud
  • 百度网盘

如果没有云计算,我们要实现这些服务就需要手动将文件拷贝到其他的硬盘上,然后再通过这个硬盘分享给别人或者恢复数据。而现在,我们通过客户端工具,无论它是被安装在手机上还是 PC 上,只要连接互联网并指定需要备份的文件夹,数据就会被自动上传到共享资源池中来代替硬盘,这种模式就是云计算。使用了云计算后,资源池是共享的,所以通过分享,其他人很容易就可以将这些数据下载下来,另外,通过一定的技术手段,还可以自动进行数据同步。

1.2.3.3 工作中的云计算
  • 云服务器
  • 云电脑
  • 视频会议
1.2.3.4 云计算的发展


云计算理念从最初诞生至今,企业 IT 架构从传统非云架构,向目标云化架构的演进,总结来说,经历了如下三大里程碑发展阶段:

  • 云计算 1.0:面向数据中心管理员的 IT 基础设施资源虚拟化阶段。该阶段的关键特征体现为通过计算虚拟化技术的引入,将企业 IT 应用与底层的基础设施彻底分离解耦,将多个企业IT 应用实例及运行环境(客户机操作系统)复用在相同的物理服务器上,并通过虚拟化集群调度软件,将更多的 IT 应用复用在更少的服务器节点上,从而实现资源利用效率的提升。
  • 云计算 2.0:面向基础设施云租户和云用户的资源服务化与管理自动化阶段。该阶段的关键特征体现为通过管理平面的基础设施标准化服务与资源调度自动化软件的引入,以及数据平面的软件定义存储和软件定义网络技术,面向内部和外部的租户,将原本需要通过数据中心管理员人工干预的基础设施资源,复杂低效的申请、释放与配置过程,转变为在必要的限定条件下(比如资源配额、权限审批等)的一键式全自动化资源发放服务过程。这个转变大幅提升了企业 IT 应用所需的基础设施资源的快速敏捷发放能力,缩短了企业 IT 应用上线所需的基础设施资源准备周期,将企业基础设施的静态滚动规划转变为动态资源的弹性按需供给过程。这个转变同时为企业 IT 支撑其核心业务走向敏捷,更好地应对瞬息万变的企业业务竞争与发展环境奠定了基础。云计算 2.0 阶段面向云租户的基础设施资源服务供给,可以是虚拟机形式,可以是容器 (轻量化虚拟机)形式,也可以是物理机形式。该阶段的企业 IT 云化演进,暂时还不涉及基础设施层之上的企业 IT 应用与中间件、数据库软件架构的变化。
  • 云计算 3.0:面向企业 IT 应用开发者及管理维护者的企业应用架构的分布式微服务化和企业数据架构的互联网化,重构及大数据智能化阶段。该阶段的关键特征体现为企业 IT 自身的应用架构逐步从(依托于传统商业数据库和中间件商业套件,为每个业务应用领域专门设计的、烟囱式的、高复杂度的、有状态的、规模庞大的)纵向扩展应用分层架构体系,走向(依托开源增强的、跨不同业务应用领域高度共享的)数据库、中间件平台服务层以及(功能更加轻量化解耦、数据与应用逻辑彻底分离的)分布式无状态化架构,从而使得企业 IT 在支撑企业业务敏捷化、智能化以及资源利用效率提升方面迈上一个新的高度和台阶,并为企业创新业务的快速迭代开发铺平了道路。

针对上述三大云计算发展演进里程碑阶段而言,云计算 1.0 普遍已经是过去式,但是它仍然是云计算的基石。此外,一部分行业、企业客户已完成初步规模的云计算 2.0 建设商用,正在考虑该阶段的进一步扩容,以及面向云计算 3.0 的演进;而另一部分客户则正在从云计算 1.0 走向云计算 2.0,甚至同步展开云计算 2.0 和 3.0 的演进评估与实施。

1.2.4 云计算的价值

1.2.4.1 按需自助服务

提到按需自助的特点,大家最先想到的可能就是超市,每个顾客在超市里都可以按照自己的需求挑选需要的商品,如果是同类商品,可以自己查看说明、价格、品牌,按照性价比或者其他因素来决定购买哪一款。同样的,用户可以根据自己的需求下载不同 APP购买需要的服务,在整个下载或者购买过程中,基本不需要他人帮忙,可以自行完成下载或者购买。

按需自助的前提是了解自己的需求,并知道哪款产品能够解决这个需求。在超市中,有很多的商品,在云计算提供商的官网上也一样有很多类型的云产品,如图,在购买以前,用户需要购买哪种产品,就像去超市以前,顾客需要知道洗衣液是用来洗衣服的,咖啡是用来喝的一样。

1.2.4.2 广泛的网络接入

云计算,通俗地讲,就是互联网加计算,所以网络接入是云计算自带的属性。
在当今社会,互联网几乎可以覆盖到全球每一个有人的角落,我们可以通过任意电子设备—PC、Pad、手机等连接到网络中,这也就意味着通过任何电子设备都可以使用云计算,而云计算的载体则更加广泛,在办公室可以使用 PC,在机场车站可以使用手机或者 Pad,没有网线可以用 WiFi 代替,没有 WiFi,用流量也没有问题。
总而言之,只要我们可以通过网络接入到云服务商的资源池,我们就可以随时随地、便捷地使用云上的服务。

1.2.4.3 资源池化

资源池化是实现按需自助服务的前提之一,通过资源池化不但可以把同类商品放在一起,而且还能将商品的单位进行细化。在超市里,我们会看到生鲜区、果蔬区以及其他,这样可以方便顾客快速地找到自己需要的商品,但这种形式不是资源池化,只能算是资源归类,那什么算是资源池化呢?
资源池化除了将同类的资源转换为资源池的形式外,还需要将所有的资源分解到最小单位。方便面,算是很多人生活必需品之一。很多人都有反映一包吃不饱,两包吃不完的情况,这是因为超市中方便面的最小购买单位是“包”,如果使用资源池化的方式,就需要打破“包”这个单位,将所有的面放在一个“池子”里,需要多少买多少。比如自助餐厅就是这样做的,将果汁按照不同的口味分开,客户需要多少就接多少。
资源池化还有一个作用就是可以屏蔽不同资源的差异性,如果餐厅中提供池化了的可乐,里面装的是百事可乐还是可口可乐或者两者都有,顾客是看不出来的。而在云计算中,可以被池化的资源包括计算、存储和网络等资源,计算资源包括 CPU 和内存,如果对 CPU 进行池化,用户端看到的 CPU 最小单位可以是一个核心,而不再体现 CPU 的厂商是 AMD 或者 Intel。

1.2.4.4 快速部署、弹性伸缩

企业的业务时常是会出现一些波动的,为了应对热点事件的突发大流量,自助购买服务器进行扩容。而当热点事件降温后,访问流量趋于下降时,又可以将这些服务器释放进行减容,这种行为就属于典型的快速弹性伸缩。
快速弹性伸缩包括多种类型,除了人为手动扩容或减容,云计算还支持根据预设的策略进行自动扩容或减容,伸缩可以是增加或减少服务器数量,也可以是对单台服务器进行资源的增加或减少。
在云计算中,快速弹性伸缩对用户来说,最大的好处是在保证业务或者应用稳定运行的前提下节省成本。企业在创立初期,可以购买少量的资源,随着企业规模的扩大,可以逐步增加资源方面的投资;另一方面,在特殊时期可以将所有资源集中供给重点业务使用,非特殊时期,将空闲资源转做它用;如果特殊时期资源不足,可以临时增加,度过特殊时期后,再将增加的资源释放。无论是哪种情景,对于用户来说都是很方便的。

1.2.4.5 可计量服务

计量是利用技术和其他手段实现单位统一和量值准确可靠的测量,换句话说,云计算中的服务都是可测量的,有的是根据时间,有的是根据资源配额,还有的是根据流量。服务可测量可以准确地根据客户的业务进行自动控制和优化资源配置。
对于用户来说可以很清晰地看到自己购买服务的使用情况,还可以根据需求来购买相应数量的服务。
这里强调一下,计量不是计费,尽管通过计量可以进行计费。在云计算中,大部分服务都需要付费使用,但也有服务是免费的,比如,弹性伸缩可以作为一个服务为用户开通,大部分时间这个服务是免费的。

1.2.5 云计算的服务和部署模式

1.2.5.1 云计算的服务模式


如图所示,在云计算中,一般我们部署的所有应用都遵循统一的分层结构,应用程序是最终呈现给用户,用户通过应用程序的界面保存或创建出自己的数据,为了保证应用程序的正常运行,需要依赖最底层的硬件资源、运行在硬件资源上的操作系统,以及运行在操作系统之上的中间件和应用程序的运行环境。我们把应用程序在内的所有部分称为软件层,将最底层的硬件资源,包括网络资源、存储资源和计算资源,以及虚拟化层称为基础设施层,运行在操作系统之上、应用程序之下的所有中间部分称为平台层。
如果基础设施层由云服务商提供,其他由用户自营,这种模式称为 IaaS;如果基础设施层和平台层由云服务商提供,其他由用户自营,这种模式称为 PaaS;如果全部由云服务商提供,这种模式称为 SaaS。

1.2.5.2 云计算的部署模式
  • 公有云
    公有云是最先出现的云计算部署模式,也是最被大众熟知的。目前,公有云可以提供给用户众多的服务,用户可以通过互联网像使用水电一样使用 IT 服务。
    公有云通常是由云服务提供商搭建的。从最终用户的角度来说,只需要购买云计算资源或者服务,而云计算所用到的硬件及相应的管理工作都由第三方服务商负责。公有云的资源向公众开放,使用公有云需依赖互联网。
  • 私有云
    私有云通常部署在企业或单位内部,运行在私有云上的数据全部保存在企业自有的数据中心内,如果需要访问这些数据,就需要经过部署在数据中心入口的防火墙,这样可以在最大程度上保护数据。私有云可以基于企业已有的架构进行部署,也可以使用绝大部分已经花了大价钱购买的硬件设备,可以保护客户的现有投资。所有的事情都有两面性,如果企业采用了私有云,可以保证数据的安全,可以利旧设备,但是,随着时间的推移,设备会越来越旧,更换这些设备需要一笔不小的费用。另一方面,为了保证数据的安全,用户之间可共享的东西非常少,就算有,也绝对不会和其他企业或者单位共享。
    近些年,关于私有云还有一种说法,在公有云上购买专属云的服务,这种方式可以将企业的关键业务放到公有云上,保证用户在云上拥有专属的计算和存储资源,并使用高度可靠的隔离网络,满足用户关键应用系统的高可靠、高性能和高安全等要求。
  • 混合云
    混合云是一种比较灵活的云计算模式,它可能包含了公有云、私有云或者后面要讲的行业云中的两种或两种以上的云,用户的业务可以根据需求在这几种云上切换。由于安全和控制原因,并非所有的企业信息都能放置在公有云上,这样大部分已经应用云计算的企业将会使用混合云模式。很多企业将选择同时使用公有云和私有云,有一些也会同时建立公共云。因为公有云只会向用户使用的资源收费,所以公有云将会变成处理需求高峰的一个非常便宜的方式。比如对一些零售商来说,他们的操作需求会随着假日的到来而剧增,或者是有些业务会有季节性的上扬。同时混合云也为其他目的的弹性需求提供了一个很好的基础,比如,灾难恢复。这意味着私有云可以把公有云作为灾难转移的平台,并在需要的时候去使用它。这是一个极具成本效应的理念。另一个好的理念是,使用某一个公有云作为一个选择性的平台,同时选择其他的公有云作为灾难转移平台。
    混合云允许用户利用公共云和私有云的优势。还为应用程序在多云环境中的移动提供了极大的灵活性。此外,混合云模式具有成本效益,因为企业可以根据需要决定使用成本更昂贵的云计算资源。另一方面,由于混合云的设置更加复杂而难以维护和保护,而且由于混合云是不同的云平台、数据和应用程序的组合,因此将其整合可能也是一项挑战。且在开发混合云时,基础设施之间也会出现主要的兼容性问题。

1.3 主流云计算技术

1.3.1 AWS

AWS:Amazon Web Services,美国亚马逊(Amazon)公司的云计算平台服务。AWS 面向用户提供包括弹性计算、存储、数据库、应用程序在内的一整套云计算服务,能够帮助企业降低 IT 投入成本和维护成本。AWS 提供了一整套基础设施和应用程序服务,使用户几乎能够在云中运行一切应用程序:从企业应用程序和大数据项目到社交游戏和移动应用程序。
此外,AWS 还建立了广阔的合作伙伴生态。AWS 合作伙伴通过各种 Program(VMware onAWS、渠道经销商计划、托管服务计划、SaaS 合作伙伴计划、能力计划、试用方案、政府合作伙伴计划、Marketplace、Direct Connect 计划)在 AWS 业务领域获得支持。
其中,AWS 的合作伙伴方向主要分为两类,分别是咨询合作伙伴合作方向和技术合作伙伴合作方向。咨询合作伙伴包括系统集成商、战略咨询公司、代理机构、托管服务提供商以及增值分销商;APN 技术合作伙伴包括独立软件供应商(ISV)、SaaS、PaaS、开发人员工具、管理和安全供应商。AWS 的各项云服务都开放了完整的 API,已经成为业界事实标准。开发者基于 AWS API 构建应用,主要客户:电商、媒体、网站、社交应用等。
而对于 AWS 的整体服务逻辑,可以用以下五点来概括:

  • 云服务低价策略;
  • 更多云服务使用量;
  • 基础设施扩容;
  • 规模经济效益;
  • 通过技术创新和生态圈构建驱动良性循环。

1.3.2 VMware

1.3.2.1 VMware 概述

1998 年,VMware 公司成立,在一年后率先推出针对 x86 平台,可以流畅运行的商业虚拟化软件 VMware Workstation,从此虚拟化技术终于走下了大型机的神坛,VMware 也凭借此举在虚拟化领域扎根成长。2009 年推出业界首款云操作系统 VMware vSphere,随后启动vCloud 计划,开始构建全新云服务。
VMware 凭借私有云、公有云和混合云解决方案及组织实施,支持其云计算解决方案,推动业务选择和可控。
VMware 混合云产品/服务基于软件定义数据中心体系结构构建,利用 VMware 的计算、网络连接和存储虚拟化技术。
VMware Cloud Foundation 提供一个由计算、存储和网络虚拟化构成的原生集成的软件定义数据中心体系,以私有方式运行企业应用程序。
总的来说,VMware 是面向所有应用提供多云服务的领先提供商,可通过企业控制实现数字化创新。VMware 云计算技术利用 VMware 混合云和原生公有云,为 IT 组织提供在任意云中运行、管理、连接和保护的应用。
自 1998 年成立以来,VMware 致力于通过边缘计算、人工智能、区块链,机器学习、Kubernetes 等颠覆性技术来提供客户构建未来所需的灵活性和选择多样性。目前,VMware主要提供四个方向的服务,分别是数字化工作空间、云环境、应用现代化以及电信云。

  • 数字化工作空间:在任何设备上提供安全的消费级用户体验。
  • 云环境:支持在任何云环境中构建、运行、管理、连接和保护所有应用。
  • 应用现代化:对应用开发进行现代化改造,以加快数字化创新。
  • 电信云:支持在任何云环境中构建、运行、管理、连接和保护所有应用。

1.3.3 天翼云

1.3.3.1 了解天翼云
  • 天翼云介绍
  • 天翼云产品

2.服务器基础

服务器是一切服务平台的立命之本,云计算也不例外

2.1 服务器介绍

2.1.1 什么是服务器

2.1.1.1 服务器定义和特点

服务器是计算机的一种。它比普通计算机运行速度更快、负载更高且价格更高。同时,服务器也是为用户提供服务的计算机,通常可以分为文件服务器、数据库服务器和应用程序服务器。
服务器是 20 世纪 90 年代迅速发展的主流计算产品,能为网络用户提供集中计算、信息发布及数据管理等服务,也可以将与其相连的如硬盘、打印机、Modem 等各种专用通讯设备给网络上的用户进行共享。到目前为止,通用服务器仍然是企业中最主流的基础 IT 设备,占了企业 IT 计算设备的 90%,甚至更高。
对于服务器来说,它与我们个人使用的 PC 相似,却又有些不同。服务器通常具有个人 PC 不具备的特点。
服务器的主要特点包括以下五点:

  • R:Reliability—可靠性,能连续正常运行多长时间。
  • A:Availability—可用性,系统正常运行时间和使用时间的百分比。
  • S:Scalability—可扩展性,包括两方面,一方面是硬件的可扩展性,另一方面是软件对操作系统的支持能力。
  • U:Usability—易用性,服务器的硬件和软件易于维护和修复。
  • M:Manageability—可管理性,对服务器运行情况能进行监控,报警,对一些故障的自动智能化处理。

对于一个合规合格的服务器来说,它必须具备上述的五个优良特性。

2.1.1.2 服务器的使用场景


服务器已经广泛应用在电信运营商、政府、金融、教育、企业、电子商务等各个行业领域,为用户提供文件、数据库、邮件、Web 等服务。
如图所示,服务器应用部署架构主要有以下两种:

  • C/S:Client/Server
    通常也称为客户端/服务器架构。服务器端运行服务端程序,客户端安装客户端软件。在此架构里服务端和客户端分别完成不同的任务,客户端处理用户的前端界面和交互操作,服务端处理后台业务逻辑和请求数据,这使得两端的通讯速度和通讯效率大大提高。例如,我们在文件服务器上(服务器端)安装 vsftpd 程序,并启动服务;在用户的计算机中安装 FileZilla 或 WinSCP等客户端工具后,用户就可以通过客户端工具进行文件的上传和下载。
  • B/S:Browser/Server
    通常也称为浏览器/服务器架构。B/S 架构中,用户只需安装浏览器即可,而将应用逻辑集中在服务器和中间件上,可以提高数据处理性能。例如,我们在访问一个网站时,只需要在自己的浏览器中输入网站的域名,如 www.ctyun.cn,就可以看到该网站的后台服务器给我们提供的 Web 服务。而网站的后台服务器端可能有很多服务器提供服务,如数据库服务,代理服务,缓存服务等等,这些都不需要用户关心,用户只需要通过浏览器输入网址就可以看到相应的界面。

2.1.2 服务器的发展历程

服务器发展主要经历了四个阶段:

  • 大型主机、小型机阶段
    20 世纪 40-50 年代,是第一代电子管计算机。经历了电子管数字计算机、晶体管数字计算机、集成电路数字计算机和大规模集成电路数字计算机的发展历程,计算机技术逐渐走向成熟。
    20 世纪 60-70 年代,是对大型主机进行的第一次“缩小化”,可以满足中小企业事业单位的信息处理要求,成本较低,价格可被接受。
  • 微型计算机阶段
    20 世纪 70-80 年代,是对大型主机进行的第二次“缩小化”,1976 年美国苹果公司成立,1977 年就推出了 AppleII 计算机,大获成功。1981 年 IBM 推出 IBM-PC,此后它经历了若干代的演进,占领了个人计算机市场,使得个人计算机得到了很大的普及。
  • x86 服务器时代
    1978 年,英特尔推出第一代 x86 架构处理器—8086 中央处理器。
    1993 年,英特尔正式推出 Pentium(奔腾)系列,该系列的推出,将 x86 架构处理器带上了一个新的性能高度。
    1995 年,英特尔推出 Pentium Pro—为服务器而生的 x86 处理器,从此开启了 x86 的至强时代,其标准化开放性也促成了市场发展,为云计算时代打下了坚实物质基础。
  • 云计算时代
    从 2008 年起,云计算(Cloud Computing)概念逐渐流行起来,它正在成为一个通俗和大众化(Popular)的词语。云计算被视为“革命性的计算模型”,因为它使得超级计算能力通过互联网自由流通成为了可能。企业与个人用户无需再投入昂贵的硬件购置成本,只需要通过互联网来购买租赁计算力,用户只用为自己需要的功能付费。云计算让用户脱离技术与部署上的复杂性而获得应用。云计算囊括了开发、架构、负载平衡和商业模式等,是软件业的未来模式。
    计算产业,历经近半个世纪的发展,持续改变着社会,改变着产业;但计算产业本身,也在不断的进化。
    从最早期的大型机、小型机时代,是专用计算,称之为计算 1.0;到了 x86 时代,在 Intel 的带领下,在摩尔定律的驱动下,计算由专用走向了通用,大量数据中心开始出现,也是当前计算产业所处的阶段,称之为计算 2.0;随着数字化程度的加速发展,世界逐步走向智能化,计算已经不仅仅局限于数据中心,也开始走向全栈全场景,称之为计算 3.0 时代,而这个时代的主要特征就是“智能”,所以也称之为“智能计算”。

2.1.3 服务器类型

2.1.3.1 服务器分类方式—硬件形态
  • 塔式服务器
    有的塔式服务器采用大小与普通立式计算机大致相当的机箱,有的采用大容量的机箱,像个硕大的柜子。通过转换支架可转化成机架式的服务器,ML 系列服务器具有较大的机箱尺寸,因此其内部扩展能力较强,可以安装的扩展板卡以及硬盘的数量都比较多,因此,当用户应用不断递增时,通过添加组件方式提升服务器的处理能力,从而可以有效地满足用户需求的增长,并保护了用户的投资。ML 系列服务器具备有很好的可用性,可以支持多种冗余组件的扩充,避免因为某些组件的故障导致系统宕机。所以这个系列服务器适用范围极广,从低端入门级服务器一直到高端的企业级服务器都有,既可以满足小型企业文件存储与打印的需求 ,也可以为大型企业运行中心数据库应用。
  • 机架服务器
    机架式服务器的外形看起来不像计算机,而像交换机,有 1U(1U=1.75 英寸)、2U、4U 等规格。机架式服务器安装在标准的 19 英寸机柜里面。这种结构的多为功能型服务器。特点是机箱尺寸比较小巧,在机柜中可以同时放置多台服务器,从而获得更高的处理能力。同时 DL系列服务器由于机箱尺寸比较小,所以在设计上已经将许多服务器特性包含进去,例如集成的阵列卡。冗余的网卡配置等。对于需要较大数据存储的应用,可以选择外置扩展存储来满足海量存储的需求。DL 系列服务器比较适合在企业的数据中心以及企业具有多种应用系统的环境下使用,对于关键性业务,集群系统 DL 系列服务器也是首选机型。
  • 刀片服务器
    特点是每个服务器都是一个插板,在插板上配备有处理器、内存、硬盘以及相关组件。由于刀片服务器的特殊架构,所以刀片服务器的使用还需要与刀片服务器的专用机箱结合,通常在一个机箱中可以容纳几个到几十个刀片服务器,所以对于高性能计算、多种应用的前台服务器,应用服务器,以及后台的中心数据库应用都可以满足。
2.1.3.2 服务器分类—服务规模
服务规模 分类
入门级服务器 等同于PC服务器
工作组服务器 低档服务器,小规模服务,服务客户端 ≤50
部门级服务器 中档服务器,服务客户端 ≤100
企业级服务器 高档服务器,服务客户端>100

如图所示,按照服务器所提供的服务规模可分为入门服务器、工作组服务器、部门级服务器以及企业级服务器。

2.1.4 服务器硬件介绍

2.1.4.1 服务器的硬件结构

2.1.4.2 CPU
2.1.4.2.1 CPU 定义和组成

CPU:Central Processing Unit,中央处理器,是一台计算机的运算核心和控制核心。
CPU 作为服务器上的核心处理单元,而服务器是网络中的重要设备,要处理大量的访问需求。因此对服务器具有大数据量的快速吞吐、超强的稳定性、长时间运行等严格要求。所以说CPU 是计算机的“大脑”,是衡量服务器性能的首要指标。
CPU 内部存储器和输入/输出设备是电子计算机三大核心部件。CPU 主要功能是解释计算机指令以及处理计算机软件中的数据。
CPU 由逻辑运算单元、控制单元和存储单元构成。

  • 控制器
    计算机是根据事先存储的程序对全机实行控制,而程序是指能实现某一功能的指令序列。控制器就是根据指令来对各种逻辑电路发布命令的机构,它是计算机的指挥中心,控制整个 CPU 的工作,决定计算机运行过程的自动化。
  • 运算器
    计算机中执行各种算术和逻辑运算操作的部件。运算器的基本操作包括加、减、乘、除四则运算,与、或、非、异或等逻辑操作,以及移位、比较和传送等操作,亦称算术逻辑部件。
  • 寄存器
    寄存器的主要作用是用来暂时存放参与运算的数据和运算结果,具有接收数据、存放数据和输出数据的功能。
2.1.4.2.2 CPU 频率

衡量 CPU 性能通常使用 CPU 的频率参数。CPU 频率的相关参数主要有以下四个

  • 主频
    主频也叫时钟频率,单位是兆赫(MHz)或吉赫(GHz),用来表示 CPU的运算、处理数据的速度。
  • 外频
    外频是 CPU 的基准频率,单位是 MHz。CPU 的外频决定着整块主板的运行速度。
  • 总线频率
    总线频率直接影响 CPU 与内存数据交换的速度
  • 倍频系数
    倍频系数是指 CPU 主频与外频之间的相对比例关系
2.1.4.3 内存


在计算机的组成结构中,有一个很重要的部分就是存储器。存储器是用来存储程序和数据的部件,对于计算机来说,有了存储器,才有记忆功能,才能保证正常工作。存储器按用途可分为主存储器和辅助存储器。主存储器又称内存储器(简称内存),是 CPU 能直接寻址的存储空间。
内存是电脑中的主要部件,它是相对于外存而言的。我们平常使用的程序,如 Windows 操作系统、打字软件、游戏软件等,一般都是安装在硬盘等外存上的,必须把它们调入内存中运行,才能真正使用其功能。我们平时输入一段文字,或玩一个游戏,其实都是在内存中进行的。就好比在一个书房里,存放书籍的书架和书柜相当于电脑的外存,而我们工作的办公桌就是内存。通常我们把要永久保存的、大量的数据存储在外存上,而把一些临时的或少量的数据和程序放在内存上。
内存是计算机中重要的部件之一,它是与 CPU 进行沟通的桥梁。内存由内存芯片、电路板、金手指等部分组成。
此外,服务器上插内存条也需要遵循以下一些原则:

  • 同一台服务器必须使用相同型号
  • CPU1 对应的内存槽位上必须至少配置一根内存条
  • 当服务器配置完全平衡的内存条时,可实现最佳的内存性能。不平衡配置会降低内存性能,因此不推荐使用。
2.1.4.4 硬盘

硬盘是计算机最主要的存储设备,也就是外存。
硬盘接口是硬盘与主机系统间的连接部件,作用是在硬盘缓存和主机内存之间传输数据。不同的硬盘接口决定着硬盘与计算机之间的连接速度,直接影响着程序运行快慢和系统性能好坏。

参数 SATA SAS SSD
转速(RPM) 7200 10000/15000 N/A
串行/并行 串行 串行 串行
主流容量 4T~12T 8T~18T 3.2T/6.4T/7.68T
MTBF 1200000 1600000 2000000

常见的硬盘种类有 SATA、SAS、 SSD,对于它们四者的特点具体如表格所示。
其中,表格中的 MTBF 为 Mean Time Between Failure,平均无故障工作时间。该数值越高,代表该硬盘的故障率越低。另外在价格方面,通常来说 SATA硬盘较为便宜,SAS 硬盘较贵一些,SSD 最为昂贵。

2.1.4.5 RAID 卡
2.1.4.5.1 RAID 概述

服务器中通常都会有带 RAID 卡。RAID 卡又名磁盘阵列卡,简称阵列卡。我们要了解 RAID卡首先需要知道什么是 RAID。
RAID:Redundant Array of Independent Disks,独立硬盘冗余阵列,旧称廉价磁盘冗余阵列(Redundant Array of Inexpensive Disks),简称磁盘阵列。利用虚拟化存储技术把多个硬盘组合起来,成为一个或多个硬盘阵列组,目的为提升性能或数据冗余,或是两者同时提升。关于 RAID 具体技术原理,我们会在后续存储基础技术章节中详细讲解,这里了解概念、定义即可。
RAID 卡的作用:

  • 可以将若干硬盘驱动器按照一定要求组成一个整体、由阵列控制器管理的系统。
  • 可以提高磁盘子系统的性能及可靠性。
2.1.4.5.2 RAID 热备和重构概念

热备(Hot Spare)的定义:当冗余的 RAID 组中某个硬盘失效时,在不干扰当前 RAID 系统正常使用的情况下,用 RAID 系统中另外一个正常的备用硬盘自动顶替失效硬盘,及时保证RAID 系统的冗余性。
热备一般分为两种:

  • 全局式:备用硬盘为系统中所有的冗余 RAID 组共享。
  • 专用式:备用硬盘为系统中某一组冗余 RAID 组专用。

而将故障数据盘上的数据恢复到热备盘上的过程即可被称之为重构数据。重构数据通常需要使用到 RAID 中的数据校验机制。
数据校验,利用冗余数据进行数据错误检测和修复。冗余数据通常采用海明码、异或操作等算法来计算获得。利用校验功能,可以很大程度上提高磁盘阵列的可靠性、高性能和容错能力。不过,数据校验需要从多处读取数据并进行计算和对比,会影响系统性能。
一般来说,RAID 不可作为数据备份的替代方案,它对非磁盘故障等造成的数据丢失无能为力,比如病毒、人为破坏、意外删除等情形。此时的数据丢失是相对操作系统、文件系统、卷管理器或者应用系统来说的,对于 RAID 而言,数据都是完好的,没有发生丢失。所以,数据备份、灾备等数据保护措施是非常必要的,与 RAID 相辅相成,保护数据在不同层次的安全性,防止发生数据丢失。

2.1.4.5.3 RAID 的实现—硬件方式

基于硬件的 RAID 是利用硬件 RAID 适配卡来实现的。
硬件 RAID 又可分为内置插卡式和外置独立式磁盘阵列 。
RAID 卡上集成了处理器,能够独立于主机对 RAID 存储子系统进行控制。因为拥有自己独立的处理器和存储器,RAID 卡可以自己计算奇偶校验信息并完成文件定位,减少对主机 CPU 运算时间的占用,提高数据并行传输速度。

2.1.4.5.4 RAID 的实现—软件方式

软件 RAID 是指在操作系统中,通过安装软件的方式来实现 RAID 相应的功能。
软件 RAID 具有以下几个特点:

  • 软件 RAID 不需要昂贵的 RAID 控制卡,提供了廉价的 RAID 解决办法。
  • RAID 功能完全依靠 CPU 执行,主机的 CPU 占用严重,如 RAID 5 的大量异或(XOR)操作。

此外,软件 RAID 与硬件 RAID 相比还有其他一些功能缺陷,比如对以下许多功能都不支持:

  • 硬盘热拔插
  • 硬盘热备份
  • 远程阵列管理
  • 可引导阵列支持
  • 在硬盘上实现阵列配置
  • SMART 硬盘支持
2.1.4.5.5 RAID 的实现—两者比较
方式 软件RAID 内置插卡式RAID 外置独立磁盘阵列RAID
特点 RAID功能依靠CPU执行,主机CPU占用严重,性能下降 减少了密集RAID操作对主机CPU的占用,提高了性能 通过标准控制器与服务器,RAID功能全部由外部RAID存储子系统上的微处理器来实现,独立于操作系统
优点 实现成本低,配置灵活 具有数据保护和高速特点;与软件RAID相比有更高的容错性和更好的性能;与外置相比价格相对低廉;支持可引导阵列 为高端服务器提供超大容量存储系统;可配置双控制器,提高数据吞吐率;支持热插拔;更好的扩展性
2.1.4.6 网卡

网卡,又称为网络适配器或网络接口卡 NIC(Network Interface Card),是构成计算机网络系统中最基本的、最重要的、必不可少的连接设备,计算机主要通过网卡接入网络。
对于服务器来说,网卡提供了以下几个功能:

  • 代表固定的网络地址
  • 数据的发送与接收
  • 数据的封装与解封
  • 链路管理
  • 编码与译码
2.1.4.7 电源和风扇

电源和风扇是支持服务器的电力负载和散热工作。在服务器中它们都是支持冗余部署,保障整体系统的持续运行。
其中电源的冗余具备以下特性:

  • 1+1,两个电源模块时。此时每个模块承担 50%的输出功率,当一个模块拔出时,另一个模块承担 100%输出功率。
  • 2+1,有三个电源模块,每个模块承担输出功率的 1/3,拔出一个模块,其余两个模块各承担 50%的输出功率。

2.1.5 服务器关键技术

2.1.5.1 BMC 介绍
2.1.5.1.1 什么是 IPMI

IPMI:Intelligent Platform Management Interface,智能平台管理接口,是一种开放标准的硬件管理接口规格,定义了嵌入式管理子系统进行通信的特定方法。
IPMI 是管理基于 Intel 结构的企业系统中所使用的外围设备采用的一种工业标准,该标准由英特尔、惠普、NEC、美国戴尔电脑和 SuperMicro 等公司制定。用户可以利用 IPMI 监视服务器的物理健康特征,如温度、电压、风扇工作状态、电源状态等。而且更为重要的是 IPMI 是一个开放的免费标准,用户无需为使用该标准而支付额外的费用。
IPMI 的发展:

  • 1998 年 Intel、DELL、HP 及 NEC 共同提出 IPMI 规格,可以透过网路远端控制温度、电压。
  • 2001 年 IPMI 从 1.0 版改版至 1.5 版,新增 PCI Management Bus 等功能。
  • 2004 年 Intel 发表了 IPMI 2.0 的规格,能够向下兼容 IPMI 1.0 及 1.5 的规格。新增了 Console Redirection,并可以通过 Port、Modem 以及 LAN 远端管理服务器,也加强了安全、VLAN 和刀片服务器的支持性。

IPMI 信息通过基板管理控制器(BMC)进行交流,使用低级硬件智能管理而不使用操作系统进行管理。

2.1.5.1.2 BMC 介绍

BMC:Baseboard Management Controller,主板管理控制单元,是 IPMI 规范的核心,负责各路传感器的信号采集、处理、储存,以及各种器件运行状态的监控。BMC 向机框管理板提供被管理对象的硬件状态及告警等信息,从而实现机框管理模块对被管理对象的设备管理功能。
BMC 主要实现以下功能:

  • 远程控制
  • 告警管理
  • 状态检测
  • 设备信息管理
  • 散热控制
  • 支持 ipmitool 工具
  • 支持 Web 界面管理
  • 支持集中账号管理
2.1.5.2 BIOS

BIOS:Basic Input/Output System,基本输入输出系统。
BIOS 实际上是固化到计算机中的一组程序,为计算机系统提供最底层的、最直接的硬件控制服务,解决硬件的实时需求。
简单地说,BIOS 是系统内核和硬件层之间桥梁。BIOS 就是主板级别的一个小系统。负责系统(主要是主板)的硬件初始化,例如 CPU,内存,硬盘,键盘,显示卡,网卡等硬件的初始化。初始化是 BIOS 的主要工作。传统的个人电脑上面 BIOS 会有一个 int19 软件中断功能,在初始化完成后,BIOS 会进入 int19 中断,寻找启动介质,如软盘,光盘,硬盘,flash 或者网络等等,读取第一个扇区的内容到内存的 0000:7C00 处,跳入这个地址执行。这里 int19就是一个操作系统引导器,启动引导器。所以 BIOS 具有引导操作系统的功能。当然,目前的BIOS 功能已经被扩充了很多,例如电源管理方面的 ACPI 接口,USB 驱动,PXE 网络引导功能,硬盘加密,TPM 接口,BIOS 配置界面,BIOS 自动恢复等等。
BIOS 主要有以下几个功能:

  • 检测和初始化硬件
  • 操作系统引导
  • 高级电源管理

3.存储技术基础

数据是用户最重要的资产

3.1 存储基础介绍

3.1.1 什么是存储


如图所示,它展现了数据产生、数据处理以及数据管理三部分内容。对于存储来说,主要是在数据管理参与的工作。
对于存储这个概念,它的定义有狭义的,也有广义的。
狭义的存储定义:指的是 CD、DVD、ZIP,磁带,硬盘等具体存储介质。
广义的存储定义:广义的存储主要由以下这四个组成部分构成:

  • 存储硬件系统(包括磁盘阵列,控制器,磁盘柜,磁带库等)
  • 存储软件(包括备份软件,管理软件,快照,复制等增值软件)
  • 存储网络(包括 HBA 卡,光纤交换机,FC/SAS 线缆等)
  • 存储解决方案(包括集中存储,归档,备份,容灾等)

3.1.2 存储发展历程

3.1.2.1 存储的发展

存储架构的发展历程经历了传统存储、外挂存储、存储网络、分布式存储和云存储几个阶段。

  • 传统存储
    传统存储是由单硬盘组成,1956 年 IBM 发明了世界上第一块机械硬盘,这个硬盘有 50 个 24 英寸盘片,容量只有 5 MB。体积与两台冰箱差不多大,重量超过一吨。被用于当时的工业领域,且独立于主机以外。
  • 外挂存储
    外挂存储即直连存储,最早的形态是 JBOD,仅仅是将一些磁盘串联在一起,被称为 JBOD(Just a Bunch Of Disks,磁盘簇),主机看到的就是一堆独立的硬盘,只增加了容量,无法提供安全保障。
  • 存储网络
    SAN 是典型的存储网络,主要使用 FC 网络传输数据,随后出现了 IP存储区域网络。
  • 分布式存储和云存储
    分布式存储采用通用服务器硬件构建存储资源池,更适合云计算的场景。
3.1.2.2 存储发展历程:从附属于服务器到剥离成独立系统

早期,企业存储形态是直接使用服务器内置硬盘。后来随着存储技术的发展,这种形态逐渐暴露出许多的局限性:

  • 服务器硬盘容易成为系统性能瓶颈。
  • 服务器硬盘槽位有限,容量小。
  • 单硬盘存放数据,可靠性差。
  • 存储空间利用率低。
  • 本地存储,数据分散。

为适应新的存储需求,演变出外部硬盘阵列,最早使用的是 JBOD(Just a Bunch Of Disks)技术。多块磁盘简单堆叠,对外提供存储资源。不支持任何的 RAID 策略,最初 JBOD 表示一个没有控制软件提供协调控制的磁盘集合。这种阵列的形式,解决了服务器本身磁盘槽位有限,容量小的问题。
后来随着 RAID 技术的出现,硬盘阵列大多都采用的是 RAID 构成的智能硬盘阵列。RAID 技术很大程度上解决了硬盘容易成为系统性能瓶颈的问题以及单硬盘存放数据,可靠性差等问题。

3.1.2.3 存储发展历程:从独立系统到网络共享存储

上一节提到通过存储引擎直接与服务器互联的方式,也就是使用 RAID 阵列的方式可以解决之前的硬盘槽位有限、单盘存放数据、硬盘接口性能成为系统性能瓶颈等问题。
但无法解决存储空间利用率低、各存储系统之间数据分散管理、各存储系统之间数据文件共享能力弱等问题,网络共享存储可以通过 SAN 和 NAS 两种服务模式解决这些痛点问题,

3.1.3 主流硬盘类型

参数 SATA SAS SSD
转速(RPM) 7200 10000/15000 N/A
串行/并行 串行 串行 串行
主流容量 4T~12T 8T~18T 3.2T/6.4T/7.68T
MTBF 1200000 1600000 2000000

对于硬盘来说,我们还需要了解它的一些参数指标,例如硬盘容量(Disk Capacity)、转速(Rotational Speed)(机械硬盘指标)、平均访问时间(Average Access Time)、数据传输率(Date Transfer Rate)、IOPS(Input/Output Operations Per Second)。

  • 硬盘容量(Disk Capacity):容量的单位为兆字节(MB)或千兆字节(GB)。影响硬盘容量的因素有单碟容量和碟片数量。
  • 转速(Rotational speed):硬盘的转速指硬盘盘片每分钟转过的圈数,单位为RPM(Rotation Per Minute)。一般硬盘的转速都达到 5400 RPM/7200 RPM。SCSI 接口硬盘转速可达 10000 至 15000 RPM。
  • 平均访问时间(Average Access Time)=平均寻道时间+平均等待时间。
  • 数据传输率(Date Transfer Rate):硬盘的数据传输率是指硬盘读写数据的速度,单位为兆字节每秒(MB/s)。硬盘数据传输率包括内部传输率和外部传输率两个指标。
  • IOPS(Input/Output Per Second):即每秒的输入输出量(或读写次数),是衡量磁盘性能的主要指标之一。随机读写频繁的应用,如 OLTP(Online Transaction Processing),IOPS 是关键衡量指标。另一个重要指标是数据吞吐量(Throughput),指单位时间内可以成功传输的数据数量。对于大量顺序读写的应用,如电视台的视频编辑,视频点播等则更关注吞吐量指标。

通常,我们衡量一块硬盘或者一个存储系统的性能的时候,会考虑平均访问时间、数据传输率以及 IOPS 这三个指标。平均访问时间越小、数据传输率和 IOPS 越大,这块磁盘的性能就越好。

3.1.4 存储组网类型

3.1.4.1 DAS 存储简介

DAS(Direct Attached Storage,直接连接存储)是指将存储设备通过 SCSI接口或 FC 接口直接连接到一台计算机上。DAS 不算是网络存储,因为只有它所挂载的主机才可访问它。也就是说,服务器发生故障时,连接在服务器上的 DAS 存储设备中的数据暂时不能被存取。常见的接口有 SCSI,SAS,eSATA,SATA,FC,USB3.0,Thunderbolt 等等。
直连式存储与服务器主机之间的连接通道通常采用 SAS 电缆连接,带宽为 3 Gbit/s、6Gbit/s、12 Gbit/s 等,随着服务器 CPU 的处理能力越来越强,存储硬盘空间越来越大,阵列的硬盘数量越来越多,SAS 通道将会成为 IO 瓶颈;服务器主机 SAS 接口资源有限,SAS 通道的带宽就被限制了。

3.1.4.2 NAS 存储简介


NAS(Network Attached Storage,网络连接存储),是指将存储设备通过标准的网络拓扑结构(例如以太网),连接到一群计算机上。NAS 有文件系统和 IP 地址,可以类似地理解为网上邻居的共享磁盘。
网络飞速发展,大量数据需要共享和交换,出现专用的 NAS 存储设备,成为数据共享与交换的核心。
NAS 的访问方式:多台前端服务器共享后端存储设备,后端 NAS 设备上的存储空间通过 CIFS(Windows 系统)、NFS(类 Unix 系统)协议共享给前端主机,可同时对同一目录或文件进行并发读写。
在 NAS 系统中 Linux 客户端主要使用 NFS,Windows 客户端主要使用 CIFS。NAS 存储系统中的文件系统位于后端存储设备。
NFS(Network File System)是 Sun Microsystems 在 1984 年创建的 Internet 标准协议。开发 NFS 是为了允许在局域网上的系统之间共享文件。
NFS 的工作机制:主要是采用远程过程调用 RPC 机制。

  • RPC 提供了一组与机器、操作系统以及低层传送协议无关的存取远程文件的操作,允许远程客户端以与本地文件系统类似的方式,来通过网络进行访问。
  • NFS 客户端向 NFS 服务器端发起 RPC 请求,服务器将请求传递给本地文件访问进程,进而读取服务器主机上的本地磁盘文件,返回给客户端。

CIFS(Common Internet File System)是一种网络文件系统协议,用于在网络上的机器之间提供对文件和打印机的共享访问。现在主要实现在 Windows 主机之间进行网络文件共享功能。
NAS 是文件级的存储方法,它的重点在于帮助工作组和部门级机构解决迅速增加存储容量的需求。如今用户采用 NAS 较多的功能是用来文档共享、图片共享、电影共享等等。NAS 本身能够支持多种协议(如 NFS、CIFS 等),而且能够支持各种操作系统。通过任何一台工作站,采用 IE 或 Netscape 浏览器就可以对 NAS 设备进行直观方便的管理。

3.1.4.3 SAN 存储简介


SAN:Storage Area Networks,存储区域网络,是通过专用高速网将一个或多个网络存储设备和服务器连接起来的专用存储系统。存储网络是一个用在服务器和存储资源之间的、专用的、高性能的网络体系。SAN 是独立于 LAN 的服务器后端存储专用网络。SAN 采用可扩展的网络拓扑结构连接服务器和存储设备,每个存储设备不隶属于任何一台服务器,所有的存储设
备都可以在全部的网络服务器之间作为对等资源共享。
SAN 作为后续新兴的存储解决方案,以其加快数据传输速度、提供更大灵活性、减少网络复杂性的优势缓解了传输瓶颈对系统的影响,并大大提高了远端灾难备份的效率。
SAN 是一个由存储设备和各种系统部件构成的网络架构,包括要使用存储设备资源的服务器、用于连接各存储设备的主机总线适配器(Host Bus Adapter,HBA)卡以及 FC 交换机等。
在 SAN 网络中,所有与数据存储相关的通信都在一个与应用网络隔离的独立网络上完成,这也意味着数据在 SAN 中传输时,不会对现有的应用系统数据网络产生任何影响,所以,SAN可以在不降低原有应用系统数据网络效率的基础上提高网络整体的 I/O 能力,同时增加了对存储系统的冗余链接,并提供了对高可用集群系统的支持。
随着 SAN 存储网络技术的不断发展,至今形成了提到的三类存储区域网络体系:以 FC 为基础的 FC-SAN 光纤通道存储区域网络、以 IP 为基础的 IP-SAN 存储区域网络和以 SAS 总线为基础的 SAS-SAN 网络。这里我们主要了解一下 FC-SAN 和 IP-SAN。

3.1.4.3.1 FC-SAN 简介


如图所示,在 FC-SAN 中,存储服务器上通常配置两个网络接口适配器:一个用于连接业务 IP 网络的普通网卡(Network Interface Card,NIC),服务器通过该网卡与客户机交互;另一个网络接口适配器是与 FC-SAN 连接的主机总线适配器(Host Bus Adaptor,HBA),服务器通过该适配器与 FC-SAN 中的存储设备通信。

3.1.4.3.2 IP-SAN 简介


IP-SAN 是近年来十分流行的一种网络存储技术。在早期的 SAN 环境中,数据以块为基本访问单位在光纤通道中传播,即早期的 SAN 都是 FC-SAN。由于 FC 协议与 IP 协议不兼容,要实现 FC-SAN,必须单独采购部署 FC-SAN 的设备和组件,其高昂的价格、复杂的配置也让众多中小用户望而却步。因此,FC-SAN 主要应用于对性能、冗余度和可用性等都有较高要求的中高端存储需求。为了提高 SAN 的普及程度和应用范围,并充分利用 SAN 本身所具备的架构优势,SAN 的发展方向开始考虑与已经普及并且相对廉价的 IP 网络进行融合。因此,使用已有IP 网络构架的 IP-SAN 应运而生,IP-SAN 是标准的 TCP/IP 协议和 SCSI 指令集相结合的产物,是基于 IP 网络来实现块级数据存储的方式。
IP-SAN 与 FC-SAN 的区别在于传输协议和传输介质不同。常见的 IP-SAN 协议有 iSCSI、FCIP、iFCP 等,其中,iSCSI 是发展最快的协议标准,平时我们所说的 IP-SAN 是指基于 iSCSI协议的 SAN。
基于 iSCSI 的 SAN 的目的就是要使用本地 iSCSI Initiator(启动器,通常为服务器)通过 IP 网络与 iSCSI Target(目标器,通常为存储设备)来建立 SAN 网络连接。

3.1.4.3.3 三种存储组网总结对比
参数 DAS NAS FC-SAN IP-SAN
传输类型 SCSI、FC、SAS IP/FC FC IP
数据类型 块级 文件级 块级 块级
典型应用 任何 文件服务器 数据库应用 视频监控
优点 易于理解;兼容性好 易于安装;成本低 高扩展性、高性能、高可用性 高扩展性、成本低
缺点 难管理,扩展性低,存储空间利用率低 性能较低 昂贵,配置复杂 性能较低

3.1.5 存储形态简介

3.1.5.1 集中式存储


所谓集中式,指的是所有的资源都集中在某一个中心,然后通过统一接口向外提供服务。集中式存储指的是将所有的物理磁盘集中在硬盘框中,然后通过控制器向外提供存储服务,这里的集中式存储主要指的是磁盘阵列。
集中式存储按照技术架构可以分为 SAN 和 NAS,其中 SAN 又可以细分为 FC-SAN、IPSAN、FCoE-SAN。目前 FC-SAN 和 IP-SAN 技术都比较成熟,FCoE-SAN 目前还处于发展初期。
磁盘阵列将多个磁盘组成一个逻辑上更大的磁盘,当做单一的存储资源来使用。在外形上,磁盘阵列包括了控制框和硬盘框两大部分。控制框与硬盘框两者有机结合共同为用户提供一个高可用、高性能和大容量的智能化存储空间。

3.1.5.2 分布式存储


与目前常见的集中式存储技术不同,分布式存储技术并不是将数据存储在某个或多个特定的节点上,而是通过网络将企业每台机器上的磁盘空间集中起来,并将这些分散的存储资源构成一个虚拟的存储设备,数据分散地存储在企业的各个角落。
如图 所示,分布式存储使用的设备一般是普通服务器,而非存储设备。分布式存储没有控制框和硬盘框,所有的硬盘存储资源都来自于通用的 x86 架构服务器,对硬盘的识别和管理都需要分布式存储本身提供的客户端,这些客户端负责数据路由的建立、I/O 读写的执行等
等。
采用分布式存储客户端的方式,既有优势,也有一定的劣势。首先在扩容方面,只要给 x86架构服务器安装了客户端,它就可以成为分布式存储的一份子,所以这种方式有极大的可扩展性;但是,除了服务器本身所承载的应用外,安装在服务器上的客户端软件也需要一定的计算资源,因此在规划分布式存储时,需要在提供存储资源的服务器上预留一定的计算资源,所以这种方式对服务器的硬件资源有一定的要求;最后,在传统的集中式存储中,I/O 读写都是通过控制器来完成,然而控制器的数量有限,在分布式存储中,安装了客户端的服务器可以进行I/O 读写,从而可以突破传统集中式存储控制器数量的限制,在一定程度上也能提高 I/O 读写速度,但是每次读写时都需要计算数据读写的路径,如果客户端太多的话,计算路径就会比较复杂,因此客户端并不是越多越好,达到性能最优时,增加客户端的数量是无法继续提升性能的。
为了保证数据的高可用性和安全性,集中式存储使用的是 RAID 技术,RAID 可以通过硬件和软件的方式来实现,无论是软 RAID 或者硬 RAID,所有的硬盘都需要在一个服务器内(硬RAID 需要统一 RAID 卡,软 RAID 需要统一操作系统),由于分布式存储的硬盘分布在不同的服务器上,所以无法再使用 RAID 机制。
因此,分布式存储是通过副本机制来实现数据的高可靠性的。副本机制是指将数据复制成多份一模一样的内容,并分别保存在不同的服务器上,当某台服务器出现故障后,数据并不会丢失。

3.1.5.3 存储业务类型
3.1.5.3.1 块存储

块存储是一种通过网络方式连接存储设备和应用服务器的存储架构,这个网络专用于主机和存储设备之间的访问。当有数据的存取需求时,数据可以通过 SAN 在服务器和后台存储设备之间高速传输。对于客户端来说,块存储就是一块磁盘,可以对其格式化、创建文件系统并挂
载。它和文件存储最大的区别就是块存储只提供存储空间,而把文件系统的抽象交给客户端来管理。
块存储常用来存储结构化数据,数据在块存储中被表示为同等大小的块,块存储不赋予这些比特位任何含义。当应用需要严格控制数据的结构时,块存储往往很有用。这种块存储的常见用途是数据库,数据库可以使用原始块设备高效地读写结构化数据。
目前常用的块存储结构根据协议和连接器的不同,主要实现形式有光纤通道 FC SAN 和 IP SAN。光纤通道块存储使用光纤信道协议在服务器(或主机)和存储设备之间传输数据。IP SAN 使用 IP 协议进行通讯。FC 技术主要用于满足日益增长的服务器和大容量数据系统之间的
高速数据传输需求。FC SAN 使用光纤通道协议(Fibre Channel Protocol,FCP),能实现通道技术中的低协议开销,具备高速数据传输的优点,同时又具有网络技术的扩展性。
关键优势有以下几点:

  • 在较长距离上保持高传输带宽,同时保持较低的传输误码率。
  • 支持网络上大量的可寻址设备,利用 SAN 架构进行数据整合,多台服务器可以通过存储网络同时访问存储系统,不必为每台服务器单独购买存储设备,降低存储设备异构化程度,提高存储资源利用率。
  • 传输协议可在主机总线适配卡上以硬件方式实现,从而减少对服务器 CPU 的占用。

传统块存储环境中,数据是以块 I/O 的形式在光纤通道上传输,但发挥 FC SAN 的优势需要额外的成本用于购买 FC 组件(如 HBA 卡和交换机)。企业通常会有一个基于 IP 网络的架构,技术的发展实现了块 I/O 在 IP 网络上传输,称为 IP SAN。现有的网络基础设施可以被复用,这远比投资一个新的 SAN 硬件和软件环境更加经济。许多远程、容灾解决方案正在利用 IP 网络,借此技术,用户还可以扩展其存储基础设施的地理范围。
iSCSI(Internet SCSI)、FCIP(Fibre Channel over IP)和 FCoE(Fibre Channel overEthernet)是现行主要的基于 IP 传输网络的 IP SAN 协议。

  • iSCSi 协议实现了将 SCSI I/O 封装在 IP 报文中通过 TCP/IP 传输,iSCSI 因其相对成本较低且易于实施(特别是在没有 FC SAN 的环境中),广泛用于服务器和存储之间的连接。
  • FCIP 协议允许 FCIP 实体(如 FCIP 网关)在 IP 网络上实现 FC 交换,它结合了 FCSAN 和成熟广泛部署的 IP 基础设施二者的优势,让企业有了一个更好的方式来利用现有的投资和技术进行数据的保护、存储和迁移。
  • FCoE 最大的优势是实现了 I/O 的合并。通常来说,数据中心的服务器都会配置 2-4 个网卡和冗余的 HBA 卡,如果数据中心有上百台服务器,那么就需要大量的适配器、线缆和交换机,这会让环境变得复杂,难于管理和扩展。FCoE 通过 FCoE交换机和聚合网络适配器(Converged Network Adapters,CNA)来实现 I/O 合并的情况。聚合网络适配器替代了服务器中的 HBA 和 NIC,将 IP 流量和 FC 流量
    合并,服务器不再需要多种网络适配器连接多个独立网络,减少了对于适配器、线缆和交换机的需求,极大降低了成本和管理开销。

块存储是一种高性能的网络存储方案,但是块存储不能实现数据在多个主机之间的共享,企业出于协作目的,可能需要多个不同类型的客户端之间共享数据或文件,这是块存储无法实现的。

3.1.5.3.2 文件存储

文件存储提供了面向客户端的文件级数据访问,它基于局域网,按照 TCP/IP 协议进行通信,以文件 I/O 方式进行数据传输。文件 I/O 是一个指明了访问文件的高等级请求。例如,一个客户端可以通过指明文件名、位置或其他属性来访问这个文件。NAS 操作系统记录文件在磁盘
中的位置,然后将客户端的文件 I/O 转换为块级 I/O 以获取数据。
文件存储也是桌面用户经常接触到的一种存储系统。当你在计算机中打开和关闭一个文档时,就使用了文件系统。客户端可以访问文件存储上的文件系统(上传和下载文件),客户端和存储之间使用的协议有 CIFS(SMB)、NFS 等网络文件共享协议。文件存储在提供文件共享的同时,也提供对文件的其他管理,如可靠性维护和文件操作权控制等。尽管文件存储在其实现的管理操作上有很多不同于对本地文件操作的步骤,然而对用户而言,文件存储就是一个目录,对文件存储的操作与对本机文件的操作是没有区别的。
NAS 访问需要经过文件系统格式转换,所以并不适合块级的应用,尤其是要求使用裸设备的数据库系统应用。
文件存储优势:

  • 支持全面信息存取:使得文件共享更加高效,本地的目录和文件可以在局域网上提供给其他计算机上的用户使用,若干个端点用户基于共同文件(如项目文档、源代码)可展开协同工作。
  • 较好的灵活性:NAS 同时兼容 Linux 和 Windows 平台的客户端。
  • 低成本:NAS 使用常见且成本较低的以太网组件。
3.1.5.3.3 对象存储

经常访问互联网和使用移动设备的用户会经常用到对象存储技术,对象存储文件系统的核心是将数据通路和控制通路分离,对象存储不提供对原始块的访问,也不提供基于文件的访问,它提供的是对整个对象数据的访问,一般来说是通过系统特定的 API 接口。对象可以通过基于
HTTP/REST 协议的 URL(Uniform Resource Locator)进行访问,与浏览器访问 Web 网站的方式类似。对象存储将存储位置抽象为 URL,以便能够以一种与底层存储机制无关的方式扩展规模,这使得对象存储成为构建大规模和高并发系统的理想方式。
随着系统规模的扩大,对象存储仍然能够提供单一的命名空间。这意味着应用程序或者用户不需要关心也不应该关心现在正在使用哪个存储系统。不像文件系统需要管理多个存储卷,对象存储极大地减轻了运维人员的负担。
在应对非结构化数据方面,基于对象存储设备与传统存储方案相比有很多优势。对象存储结合了 SAN 和 NAS 两者的优势。它提供了平台无关性和位置无关性,同时也提供了扩展性、安全和数据共享特性。
对象存储的主要优点之一是它能够分发面向大规模存储集群服务器的对象请求。这为海量数据提供了一种低成本、可靠、可扩展的存储系统。对象存储的其他优点包括:

  • 安全性:数据一致性和内容真实性。对象存储使用特别的算法生成具有很好加密属性的对象。对象存储中的请求验证是在存储设备中进行的,而不是通过外部的验证机制实现的。
  • 平台无关性:对象是抽象的数据(包括元数据和其他属性)容器。这一属性使得对象可以在本地或远程的异质平台间共享。这种平台无关性让对象存储成为云计算环境下最佳选择。
  • 扩展性:因为使用了扁平地址空间,基于对象存储能够在不影响性能的情况下存储大量的数据。存储和 OSD 节点都可以在性能和容量两个纬度上单独扩展。

管理性和可靠性:OSD 拥有管理和保护对象的智能,它保护和复制对象的能力是可以自愈的,以更低的代价提供了数据冗余的能力,在分布式对象存储系统中一个或多个节点失效的情况下,数据依然可访问。这时候由于是 3 台数据节点同时对外传输数据,所以传输的速度就加快了。当数据节点服务器数量越多,这种读写速度的提升就越大,通过这种方式,提升了性能。

3.1.5.3.4 块存储、文件存储以及对象存储总结

在块存储中,文件系统位于应用服务器上,应用程序是直接操作存储块,通常使用适合存储数据传输的光纤通道协议,传输效率比文件存储所用的局域网 TCP/IP 协议效率高。TCP/IP 中的每个协议数据单元的头比光纤通道协议数据帧的头大两倍,其次,光纤通道协议中数据帧的最大长度也比以太网大。但是块存储不能实现数据在多个主机之间的共享,企业出于协作目的,可能需要多个不同类型的客户端之间共享数据或文件,这是块存储无法实现的。另外,块存储需要购买光纤通道设备和主机适配卡,复杂度和成本相对较高。
文件存储在存储服务设备中实现文件系统,用户对文件系统进行文件级操作,例如打开、读、写、关闭一个文件,文件存储把对文件的操作映射成对磁盘块的操作,但用户不需要知道文件位于哪个磁盘块。用户和文件存储之间的数据交换可以通过传统的以太网进行,通常是通过常规的局域网传输。文件存储管理简单,基本上是即插即用,将设备连接到局域网上就可以使用,支持全面信息存取:使得文件共享和协作更加高效。但文件存储的访问需要经过文件系统格式转换,是以文件级来访问的,不适合块级的应用,尤其是要求使用裸设备的数据库系统。
对象存储采用了一种创造性的内容寻址系统来简化存储管理,确认存储内容的唯一性,提供了固定内容存储需求(静态数据)从 TB 级至 PB 级的可扩展性。当存储一个数据对象时,系统首先根据所存储数据的二进制内容把这一比特序列转换成一个独特的标识符,所存储数据的内容地址并不是对该数据的目录、文件名或数据类型的简单映像。对象存储优点主要包括确保内容的可靠性,提供了全局唯一、位置独立的标识符,并且具有极强的扩展性。对象存储更擅长存储非事务性数据,特别是静态数据,所以非常适用于归档、备份、海量文件共享、科学和研究数据,以及数字媒体等应用场景。

3.2 存储关键技术

3.2.1 RAID 技术

3.2.1.1 RAID 基本概念

RIAD 全称是 Redundant Arrays of Independent Disks,冗余磁盘阵,RAID 技术将多个单独的物理硬盘以不同的方式组合成一个逻辑硬盘,从而提高了硬盘的读写性能和数据安全性。RAID 技术经过不断的发展,现在已拥有了 RAID 0~RAID 6 共 7 种基本的 RAID 级别。另外,还有一些基本 RAID 级别的组合形式,如 RAID 10(RAID 1 与 RAID 0 的组合)、RAID50(RAID 5 与 RAID 0 的组合)等。不同 RAID 级别代表不同的存储性能、数据安全性和存储成本。

3.2.1.2 RAID 的数据组织形式


在 RAID 的实现过程中,RAID 会将阵列中的硬盘进行条带化,即将硬盘空间按照设定的大小分为多个条带,数据写入时也按照条带的大小来划分数据模块。其中涉及的到几个概念

  • 条带(strip):硬盘中单个或者多个连续的扇区构成一个条带,是组成分条的元素。
  • 分条(stripe):同一硬盘阵列中的多个硬盘驱动器上的相同“位置”(或者说是相同编号)的条带。
  • 分条宽度:指一个磁盘组在进行分条时所使用的磁盘的个数,例如一个由 3 个成员盘组成的磁盘组,其分条宽度为“3”。
  • 分条深度:指一个分条的容量大小。
3.2.1.3 RAID 的数据保护方式

RAID 技术通常有 2 种不同的方式进行数据保护:

  • 镜像(Mirroring):在另一块冗余的硬盘上保存数据的副本,提高可靠性,并可以提高读性能。
  • 奇偶校验算法(XOR):使用奇偶校验算法。奇偶校验码是使用用户数据计算出的额外信息。对于使用奇偶校验的 RAID 类型,它意味着需要额外的校验硬盘。奇偶校验采用的是异或(XOR 的计算符号⊕)算法。
    其中 XOR 运算广泛地使用在数字电子和计算机科学中。XOR 校验的算法:相同为假,相异为真:0⊕0=0;0⊕1=1;1⊕0=1;1⊕1=0
3.2.1.4 RAID 热备和重构概念

热备(Hot Spare)的定义:当冗余的 RAID 组中某个硬盘失效时,在不干扰当前 RAID 系统正常使用的情况下,用 RAID 系统中另外一个正常的备用硬盘自动顶替失效硬盘,及时保证RAID 系统的冗余性。
热备一般分为两种:

  • 全局式:备用硬盘为系统中所有的冗余 RAID 组共享。
  • 专用式:备用硬盘为系统中某一组冗余 RAID 组专用。
    而将故障数据盘上的数据恢复到热备盘上的过程即可被称之为重构数据。重构数据通常需要使用到 RAID 中的数据校验机制。
    数据校验,利用冗余数据进行数据错误检测和修复。冗余数据通常采用海明码、异或操作等算法来计算获得。利用校验功能,可以很大程度上提高磁盘阵列的可靠性、高性能和容错能力。不过,数据校验需要从多处读取数据并进行计算和对比,会影响系统性能。
    一般来说,RAID 不可作为数据备份的替代方案,它对非磁盘故障等造成的数据丢失无能为力,比如病毒、人为破坏、意外删除等情形。此时的数据丢失是相对操作系统、文件系统、卷管理器或者应用系统来说的,对于 RAID 而言,数据都是完好的,没有发生丢失。所以,数据备份、灾备等数据保护措施是非常必要的,与 RAID 相辅相成,保护数据在不同层次的安全性,防止发生数据丢失。
3.2.1.5 常见 RAID 级别介绍
3.2.1.5.1 RAID 0


RAID 0 是一种简单的、无数据校验的数据条带化技术。实际上不是一种真正的 RAID,因为它并不提供任何形式的冗余策略。RAID 0 将所在磁盘条带化后组成大容量的存储空间(如图所示),将数据分散存储在所有磁盘中,以独立访问方式实现多块磁盘的并读访问。由于可以并发执行 I/O 操作,总线带宽得到充分利用。再加上不需要进行数据校验,RAID 0 的性能在所有 RAID 等级中是最高的。理论上讲,一个由 n 块磁盘组成的 RAID 0,它的读写性能是单个磁盘性能的 n 倍,但由于总线带宽等多种因素的限制,实际的性能提升低于理论值。
RAID 0 具有低成本、高读写性能、100%的高存储空间利用率等优点,但是它不提供数据冗余保护,一旦数据损坏,将无法恢复。因此,RAID 0 一般适用于对性能要求严格但对数据安全性和可靠性不高的应用,如视频、音频存储、临时数据缓存空间等。

3.2.1.5.2 RAID 1


RAID 1 又称为 Mirror 或 Mirroring(镜像),其目的是最大限度地保证用户数据的可用性和可修复性。RAID 1 的原理是把用户写入硬盘的数据百分之百地自动复制到另外一个硬盘上。
RAID 1 在主硬盘上存放数据的同时,也在镜像硬盘上写同样的数据。当主硬盘损坏时,镜像硬盘代替主硬盘的工作。因为有镜像硬盘做数据备份,所以 RAID 1 的数据安全性是所有RAID 级别中最好的。但是无论用多少磁盘做 RAID 1,有效数据空间大小仅为单个磁盘容量,是所有 RAID 级别中磁盘利用率最低的一个。
如图所示,为 RAID 1 的示意图,图中有 Disk 1 和 Disk 2 两个磁盘,在储存数据时,将要储存的内容(D1,D2……)储存进主磁盘 Disk 1,同时在 Disk 2 中再次将数据储存一遍,以达到数据备份的目的。
RAID 1 是所有 RAID 级别中单位存储成本最高的,但因其提供了几乎最高的数据安全性和可用性,所以 RAID 1 适用于读操作密集的 OLTP 以及其他要求数据具有较高读写性能和可靠性的应用,如电子邮件、操作系统、应用程序文件和随机存取环境等。

3.2.1.5.3 RAID 3


RAID 3 是使用专用校验盘的并行访问阵列,它采用一个专用的磁盘作为校验盘,其余磁盘作为数据盘,数据按位和字节的方式交叉存储到各个数据盘中。RAID 3 至少需要三块磁盘,不同磁盘上同一带区的数据作 XOR 校验,校验值写入校验盘中。RAID 3 完好时读性能与 RAID 0 完全一致,并行从多个磁盘条带读取数据,性能非常高,同时还提供了数据容错能力。向RAID 3 写入数据时,必须计算与所有同条带的校验值,并将新校验值写入校验盘中。一次写操作包含了写数据块、读取同条带的数据块、计算校验值、写入校验值等多个操作,系统开销非常大,性能较低。
如果 RAID 3 中某一磁盘出现故障,不会影响数据读取,可以借助校验数据和其他完好数据来重建数据。假如所要读取的数据块正好位于失效磁盘,则系统需要读取所有同一条带的数据块,并根据校验值重建丢失的数据,系统性能将受到影响。当故障磁盘被更换后,系统按相同的方式重建故障盘中的数据至新磁盘。
RAID 3 只需要一个校验盘,阵列的存储空间利用率高,再加上并行访问的特征,能够为高带宽的大量读写提供高性能,适用大容量数据的顺序访问应用,如影像处理、流媒体服务等。目前,RAID 5 算法不断改进,在大数据量读取时能够模拟 RAID 3,而且 RAID 3 在出现坏盘时性能会大幅下降,因此常使用 RAID 5 替代 RAID 3 来运行具有持续性、高带宽、大量读写特征的应用。

3.2.1.5.4 RAID 5


RAID 5 是 RAID 0 和 RAID 1 的折中方案。RAID 5 具有和 RAID 0 相近似的数据读取速度,只是多了一个奇偶校验信息,写入数据的速度比对单个磁盘进行写入操作稍慢。同时由于多个数据对应一个奇偶校验信息,RAID 5 的磁盘空间利用率要比 RAID 1 高,存储成本相对较低,是目前运用较多的一种解决方案。
RAID 5 把数据和相对应的奇偶校验信息存储到组成 RAID 5 的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上,其中任意 N-1(N 表示组成 RAID 磁盘的数量)块磁盘上都存储完整的数据,也就是说有相当于一块磁盘容量的空间用于存储奇偶校验信息。
因此当 RAID 5 的一个磁盘发生损坏后,不会影响数据的完整性,从而保证了数据安全。当损坏的磁盘被替换后,RAID 还会自动利用剩下奇偶校验信息去重建此磁盘上的数据,来保持RAID 5 的高可靠性。
做 RAID 5 阵列所有磁盘容量必须一样大,当容量不同时,会以最小的容量为准。最好硬盘转速一样,否则会影响性能,而且可用空间=磁盘数 N-1,Raid 5 没有独立的奇偶校验盘,所有校验信息分散放在所有磁盘上,只占用一个磁盘的容量。
RAID 5 的磁盘上同时存储数据和校验数据,数据块和对应的校验信息存保存在不同的磁盘上,当一个数据盘损坏时,系统可以根据同一条带的其他数据块和对应的校验数据来重建损坏的数据。与其他 RAID 等级一样,重建数据时,RAID 5 的性能会受到较大的影响。
RAID 5 兼顾存储性能、数据安全和存储成本等各方面因素,它可以理解为 RAID 0 和 RAID 1的折中方案,是目前综合性能最佳的数据保护解决方案。RAID 5 基本上可以满足大部分的存储应用需求,数据中心大多采用它作为应用数据的保护方案。

3.2.1.5.5 RAID 6

RAID 6 突破了磁盘冗余局限。


以前,两块盘同时坏的情况是小概率事件,几乎不可能发生。但是近来随着光纤(FC)盘和SATA 盘的容量和密度不断增加,使得 RAID 5 的重建时间也不断增加。两块硬盘同时损坏的概率也大幅增加,在企业级存储上,这种风险必须得到重视。所以 RAID 6 应需诞生了。
前面所述的各个 RAID 等级都只能保护因单个磁盘失效而造成的数据丢失。如果两个磁盘同时发生故障,数据将无法恢复。RAID 6(如图 3-21)引入双重校验的概念,它可以保证阵列中同时出现两个磁盘失效时,阵列仍能够继续工作,不会发生数据丢失。RAID 6 等级是在 RAID
5 的基础上为了进一步增强数据保护而设计的一种 RAID 方式,它可以看作是一种扩展的RAID 5 等级。
RAID 6 不仅要支持数据的恢复,还要支持校验数据的恢复,因此实现代价很高,控制器的设计也比其他等级更复杂、更昂贵。RAID 6 思想最常见的实现方式是采用两个独立的校验算法,假设称为 P 和 Q,校验数据可以分别存储在两个不同的校验盘上,或者分散存储在所有成员磁盘中。当两个磁盘同时失效时,即可通过求解两元方程来重建两个磁盘上的数据。
RAID 6 还有一种就是 DP 的工作原理:

  • RAID 6 DP 也有两个独立的校验数据块。第一个校验信息与 RAID 6 P+Q 的第一个校验值是相同的,第二个不同于 RAID 6 P+Q,采用的是斜向异或运算得到行对角奇偶校验数据块。行奇偶校验值是同一分条的用户数据异或运算获得到的,如图所示:P0 是由分条 0 上的 D0,D1,D2 和 D3 异或运算得到,P1 由分条1 上的 D4,D5,D6,D7 异或运算得到。所以,P0 = D0 ⊕D1⊕ D2⊕D3,P1 = D4⊕D5⊕D6⊕D7,如此类推。
  • 第二个校验数据块是由阵列的对角线数据块进行异或运算。数据块的选择过程比较复杂。DP0 是由硬盘 1 的分条 0 上的 D0,硬盘 2 的分条 1 上的 D5,硬盘 3 上的分条 2 的 D10,和硬盘上 4 分条 3 上的 D15 异或操作得到。DP1 是对硬盘 2的分条 0 上的 D1,硬盘 3 的分条 1 上的 D6,硬盘 4 上分条 2 的 D11,和第一块校验硬盘分条 3 上的 P3 进行异或运算得到。DP2 是硬盘 3 分条 0 上的 D2,硬盘 4 上的分条 1 的 D7,奇偶硬盘分条 2 的 P2,和硬盘 1 分条 3 上的 D12 进行异或运算得到。所以,DP0 = D0⊕D5⊕D10⊕D15,DP1 = D1⊕D6⊕D11⊕P3,如此类推。

RAID 6 具有快速的读取性能、更高的容错能力。但是,它的成本要高于 RAID 5 许多,写性能也较差,并有设计和实施非常复杂。因此,RAID 6 很少得到实际应用,主要用于对数据安全等级要求非常高的场合。它一般是替代 RAID 10 方案的经济性选择。

3.2.1.6 RAID 2.0 技术介绍
  • RAID 2.0
    增强型 RAID 技术,有效解决了机械硬盘容量越来越大,重构一块机械硬盘所需时间越来越长,传统 RAID 组重构窗口越来越大而导致重构期间又故障一块硬盘而彻底丢失数据风险的问题。
  • RAID 2.0+
    在 RAID 2.0 的基础上提供了更细粒度(可以达几十 KB 粒度)的资源颗粒,形成存储资源的标准分配及回收单位,类似计算虚拟化中的虚拟机,我们称之为虚拟块技术。
3.2.1.7 RAID 2.0+块虚拟化技术原理


RAID 2.0+块虚拟化技术实现原理如图所示:

  • 多块硬盘组成一个存储池。
  • 存储系统将存储池中的每个 SSD 硬盘划分为固定大小的 CK(通常大小为 4MB)进行逻辑空间管理。
  • 来自不同 SSD 硬盘的 CHUNK 按照用户在 DeviceManager 上设置的“RAID 策略”组成CKG。
  • CKG 再被划分为更细粒度的 Grain(通常为 8KB)。用户创建 LUN 时,存储系统以 Grain 为单位映射到 LUN,实现对存储资源的精细化管理。

相比传统 RAID 机制,RAID2.0+具备如下优势:

  • 业务负载均衡,避免热点。数据打散到资源池内所有硬盘上,没有热点,硬盘负荷平均,避免个别盘因为承担更多的写操作而提前达到寿命的上限。
  • 快速重构,缩小风险窗口。当硬盘故障时,故障盘上的有效数据会被重构到资源池内除故障盘外的所有盘上,实现了多对多的重构,速度快,大幅缩短数据处于非冗余状态的时间。
  • 全盘参与重构。资源池内所有硬盘都会参与重构,每个盘的重构负载很低,重构过程对上层应用无影响。

3.2.2 存储协议

3.2.2.1 SCSI 协议


计算机与存储系统之间的通信是通过总线来完成的。总线就是从源设备传输数据到目标设备的路径。在最简单的情况下,控制器的高速缓存作为源,将数据传输给目标磁盘。控制器首先向总线处理器发出请求使用总线的信号。该请求被接受之后,控制器高速缓存就开始执行发送操作。在这个过程中,控制器占用了总线,总线上所连接的其他设备都不能使用总线。由于总线具备中断功能,所以总线处理器可以随时中断这一传输过程并将总线控制权交给其他设备,以便执行更高优先级的操作。
计算机中布满了总线—从一个位置向另一个位置传输信息和电力的高速通道。例如,将 MP3或数码相机连接到计算机时,用户可能会使用通用串行总线(USB)端口。对于存储图片、音乐等的小型电子设备,USB 端口完全可以胜任传输数据和充电的工作。但是,这种总线还不足以同时支持整台计算机和服务器以及其他许多设备。
在这种情况下,就需要使用 SCSI 这样的总线。SCSI 直译为小型计算机系统专用接口(Small Computer System Interface)是一种连接主机和外围设备的接口,支持包括磁盘驱动器、磁带机、光驱、扫描仪在内的多种设备。它由 SCSI 控制器进行数据操作,SCSI 控制器相当于一块小型 CPU,有自己的命令集和缓存。SCSI 是一种特殊的总线结构,可以对计算机中的多个设备进行动态分工操作,对于系统同时要求的多个任务可以灵活机动地适当分配,动态完成。
SCSI(小型计算机接口)指的是一个协议体系,目前为止经历了 SCSI-1/SCSI-2/SCSI-3 变迁。SCSI 协议定义了一套不同设备(磁盘、处理器、网络设备等)利用该框架进行信息交互的模型和必要指令集。

3.2.2.2 iSCSI 协议
3.2.2.2.1 什么是iSCSI 协议

iSCSI:Internet SCSI,把 SCSI 命令和块状数据封装在 TCP 中在 IP 网络中传输,基本出发点是利用成熟的 IP 网络技术来实现和延伸 SAN。

通过 SCSI 控制卡的使用可以连接多个设备,形成自己的“网络”,但是这个“网络”仅局限于与所附加的主机进行通信,并不能在以太网上共享。那么,如果能够通过 SCSI 协议组成网络,并且能够直接挂载到以太网上,作为网络节点和其他设备进行互联共享,那么 SCSI 就可
以得到更为广泛的应用。所以,经过对 SCSI 的改进,就推出了 iSCSI 这个协议。基于 iSCSI 协议的 IP-SAN 是把用户的请求转换成 SCSI 代码,并将数据封装进 IP 包内在以太网中进行传输。
iSCSI 方案最早是由 Cisco 和 IBM 两家发起,并且由 Adaptec、Cisco、HP、IBM、Quantum等公司共同倡导。它提供基于 TCP 传输,将数据驻留于 SCSI 设备的方法。iSCSI 标准草案在2001 年推出,并经过多次论证和修改,于 2002 年提交 IETF,在 2003 年 2 月,iSCSI 标准正式发布。iSCSI 技术的重要贡献在于其对传统技术的继承和发展:其一,SCSI(Small Computer System Interface,小型计算机系统接口)技术是被磁盘、磁带等设备广泛采用的存储标准,从 1986 年诞生起到现在仍然保持着良好的发展势头;其二,沿用 TCP/IP协议,TCP/IP 在网络方面是最通用、最成熟的协议,且 IP 网络的基础建设非常完善。这两点为 iSCSI 的无限扩展提供了坚实的基础。
IP 网络的普及性将使得数据可以通过 LAN、WAN 或者是通过 Internet 利用新型 IP 存储协议传输,iSCSI 既是在这个思想的指导下进行研究和开发的。iSCSI 是基于 IP 协议的技术标准,实现了 SCSI 和 TCP/IP 协议的融合,对众多的以太网用户而言,只需要极少的投资,就可以方便、快捷地对信息和数据进行交互式传输和管理。

3.2.2.2.2 iSCSI 协议

iSCSI 的通信体系仍然继承了 SCSI 的部分特性,在 iSCSI 通信中,具有一个发起 I/O 请求的启动器设备(Initiator)和响应请求并执行实际 I/O 操作的目标器设备(Target)。在 Initiator和 Target 建立连接后,Target 在操作中作为主设备控制整个工作过程。

  • iSCSI Initiator:iSCSI 启动器,可分为三种,即软件 Initiator 驱动程序、硬件的TOE(TCP Offload Engine,TCP 卸载引擎)卡以及 iSCSI HBA 卡。就性能而言,软件 Initiator 驱动程序最差、TOE 卡居中、iSCSI HBA 卡最佳。
  • iSCSI Target:iSCSI 目标器,通常为 iSCSI 磁盘阵列、iSCSI 磁带库等。

iSCSI 协议为 Initiator 和 Target 定义了一套命名和寻址方法。所有的 iSCSI 节点都是通过其 iSCSI 名称被标识的。这种命名方式使得 iSCSI 名称不会与主机名混淆。
iSCSI 使用 iSCSI Name 来唯一鉴别启动设备和目标设备。地址会随着启动设备和目标设备的移动而改变,但是名字始终是不变的。建立连接时,启动设备发出一个请求,目标设备接收到请求后,确认启动设备发起的请求中所携带的 iSCSI Name 是否与目标设备绑定的 iSCSI Name 一致,如果一致,便建立通信连接。每个 iSCSI 节点只允许有一个 iSCSI Name,一个iSCSI Name 可以被用来建立一个启动设备到多个目标设备的连接,多个 iSCSI Name 可以被用来建立一个目标设备到多个启动设备的连接。
总的来说,iSCSI 的发起端和目标端的具体功能如下:

  • 发起端(Initiator)

SCSI 层负责生成 CDB(命令描述符块),将 CDB 传给 iSCSI。
iSCSI 层负责生成 iSCSI PDU(协议数据单元),并通过 IP 网络将 PDU 发给 Target。

  • 目标器(Target)

iSCSI 层收到 PDU,将 CDB 传给 SCSI 层。
SCSI 层负责解释 CDB 的意义,必要时发送响应。

3.2.2.3 FC 协议与 TCP 协议融合

从现有的情况来看,以太网技术和 FC 技术都在飞速发展,IP-SAN 和 FC-SAN 在很长的一段时间内都将是并存且互为补充的。
其中 TCP/IP 网络承载 FC 信道方式主要有以下几种:

  • iFCP:Internet Fibre Channel Protocol,Internet 光纤信道协议,是一种网关到网关的协议,为 TCP/IP 网络上的光纤设备提供光纤信道通信服务。iFCP 使用 TCP 提供拥塞控制、差错监测与恢复功能。iFCP 主要目标是使现有的光纤信道设备能够在 IP 网络上以线路速率互联与组网。此协议及其定义的帧地址转换方法允许通过透明网关(Transparent Gateway)将光纤信道存储设备附加到基于 IP 的网络结构。
  • FCoE:Fibre Channel over Ethernet,利用以太网路,传送光纤通道(FibreChannel)的信号,让光纤通信的资料可以在 10 Gigabit 以太网路网络骨干中传输,但仍然是使用光纤通道的协定。
3.2.2.3.1 iFCP 协议


iFCP 作为一种网关到网关协议,为 TCP/IP 网络中的光纤通道设备提供光纤通道通信服务,实现端到端 IP 连接。FC 存储设备、HBA 卡和交换机可以与 iFCP 网关直连。iFCP 协议通过 TCP协议提供流量控制、错误检测和错误恢复功能。iFCP 的目的是使当前的光纤通道设备在 IP 网络上以线路速率互连和网络。
iFCP 协议定义的帧地址转换方法,允许 FC 存储设备通过透明网关加入到 TCP/ IP 网络中。iFCP 可以替代光纤通道,通过 iFCP 设备连接和分组光纤通道设备。但 iFCP 不支持独立 SAN的合并,因此无法形成逻辑 SAN。iFCP 的突出之处在于支持 SAN 互联和网关分区,允许隔离故障区域,打破点对点隧道的限制。同时,iFCP 实现了光纤通道设备之间的端到端连接。因此,TCP 连接中断只会对通信对产生影响。采用 iFCP 的 SAN 能够实现故障隔离和安全管理,比采用 FCIP 的 SAN 具有更高的可靠性。

3.2.2.3.2 iFCP 协议栈


原先 FC 只能在本地进行数据的传输。而 iFCP 经过了 IP 报头的封装,那么就说明它传送的数据可以行走在我们已经建立好的 IP 网络之上,通过路由器的路由进行远程跨 WAN 传输。这样企业用户就能够借助现有的存储设备和网络构架,使得存储资源为更多的应用所共享,突破传统 DAS 和 SAN 存储网络架构的地理限制,且无需对现有的存储协议进行更改。

3.2.2.3.3 FCoE 协议

FCoE:Fibre Channel over Ethernet,以太网光纤通道。FCoE 允许在一根通信线缆上传输LAN 和 FC SAN 通信,融合网络可以支持 LAN 和 SAN 数据类型,减少数据中心设备和线缆数量,同时降低供电和制冷负载,收敛成一个统一的网络后,需要支持的点也跟着减少了,有助于降低管理负担。
FCoE 把 FC 帧封装在以太网帧中,允许 LAN 和 SAN 的业务流量在同一个以太网中传送。从 FC 协议的角度来看,FCoE 就是把 FC 承载在一种新型的链路上,即以太网二层链路;从以太网的角度来看,FCoE 仅是其承载的另外一种上层协议(类似于 IP/IPX)。

3.2.2.3.4 FCoE 协议封装


光纤通道协议栈有五层。FC-0 定义了媒体类型,FC-1 定义了帧编解码方式,FC-2 定义了帧划分协议和流量控制机制,FC-3 定义了通用业务,FC-4 定义了上层协议到光纤通道的映射。而FCoE 将 FC-2 及以上层的内容封装成以太网报文进行传输。

4网络技术基础

网络技术是一切平台、服务互联的基础

4.1 IP 地址基础

4.1.1 什么是 IP 地址

IP地址就像现实中的地址,可以标识网络中的一个节点,数据就是通过它来找到目的地

IP 地址是指在网络中用于标识发送或接收数据报文设备的唯一逻辑地址。
在 IP 网络上,如果用户要将一台计算机连接到 Internet 上,就需要申请一个 IP 地址。IP 地址就像现实中的地址,可以标识网络中的一个节点,数据就是通过它来找到目的地的。即我们通过 IP 地址实现全球范围内的网络通信。
IP 地址是网络设备接口的属性,不是网络设备本身的属性。当我们说给某台设备分配一个 IP地址时,实质上是指给这台设备的某个接口分配一个 IP 地址。如果设备有多个接口,通常每个接口都至少需要一个 IP 地址(需要使用 IP 地址的接口,通常是路由器和计算机的接口)。

4.1.2 IP 地址表示

  • IP 地址表示:
    IP 地址的长度是 32 bit,由 4 个字节组成。为了阅读和书写方便,IP 地址通常采用点分十进制数来表示。
  • 点分十进制表示法:
    IP 地址表现形式能够帮助我们更好地使用和配置网络,但通信设备在对 IP 地址进行计算时使用的是二进制的操作方式,因此掌握十进制、二进制的转换运算非常有必要。
  • IPv4 地址范围:
    0.0.0.0~255.255.255.255

4.1.3 IP 地址构成


如图所示,IPv4 地址由如下两部分组成:

  • 网络部分(网络号):用来标识一个网络。

    • IP 地址不能反映任何有关主机位置的地理信息,只能通过网络号码字段判断出主机属于哪个网络。
    • 对于网络号相同的设备,无论实际所处的物理位置如何,它们都是处在同一个网络中。
  • 主机部分 (主机号):用来区分一个网络内的不同主机。IP 地址中还需要配合子网掩码(Subnet Mask)一起使用,子网掩码又称网络掩码(Netmask):
    • 网络掩码为 32 bit,与 IP 地址的位数一样,通常也以点分十进制数来表示。
    • 网络掩码不是一个 IP 地址,在二进制的表示上是一堆连续的 1,后面接一堆连续的 0。
    • 通常将网络掩码中 1 的个数称为这个网络掩码的长度。如:掩码 0.0.0.0 的长度是0,掩码 252.0.0.0 的长度是 6。
    • 网络掩码一般与 IP 地址结合使用,其中值为 1 的比特对应 IP 地址中的网络位;值为 0 的比特对应 IP 地址中的主机位,以此来辅助我们识别一个 IP 地址中的网络位与主机位。即网络掩码中 1 的个数就是 IP 地址的网络号的位数,0 的个数就是 IP地址的主机号的位数。

4.1.4 IP 地址分类(有类编址)


为了方便 IP 地址的管理及组网,IP 地址分成五类:

  • A、B、C、D、E 类的类别字段分别是二进制数 0、10、110、1110、1111,通过网络号码字段的前几个比特就可以判断 IP 地址属于哪一类,这是区分各类地址最简单的方法。
  • A、B、C 三类地址是单播 IP 地址(除一些特殊地址外),只有这三类地址才能分配给主机接口使用。
  • D 类地址属于组播 IP 地址。
  • E 类地址专门用于特殊的实验目的。

A、B、C 类地址比较:

  • 使用 A 类地址的网络称为 A 类网络;使用 B 类地址的网络称为 B 类网络;使用 C类地址的网络称为 C 类网络。
  • A 类网络的网络号为 8 bit,个数很少,但所允许的主机接口的个数很多;首位恒定为 0,地址空间为:0.0.0.0~127.255.255.255。
  • B 类网络的网络号为 16 bit,介于 A 类和 C 类网络之间;首两位恒定为 10,地址空间为:128.0.0.0~191.255.255.255。
  • C 类网络的网络号为 24 bit,个数很多,但所允许的主机接口的个数就很少;首三位恒定为 110,地址空间为:192.0.0.0~223.255.255.255。

4.1.5 公网/私网 IP 地址

  • 公网 IP 地址
    IP 地址是由互联网名称与数字地址分配机构(Internet Corporation for Assigned Names and Numbers)统一分配的,以保证任何一个 IP 地址在 Internet 上的唯一性。这里的 IP 地址是指公网 IP 地址。
  • 私网 IP 地址
    实际上一些网络不需要连接到 Internet,比如一个大学的封闭实验室内的网络,只要同一网络中的网络设备的 IP 地址不冲突即可。在 IP 地址空间里,A、B、C 三类地址中各预留了一些地址专门用于上述情况,称为私网 IP 地址。

    • A 类:10.0.0.0~10.255.255.255
    • B 类:172.16.0.0~172.31.255.255
    • C 类:192.168.0.0~192.168.255.255
      为了解决 IP 地址短缺的问题,提出了私有地址的概念。起初私有网络由于使用了私网 IP 地址,是不允许连接到 Internet 的。后来在实际需求的驱动下,许多私有网络也希望能够连接到 Internet 上,从而实现私网与 Internet 之间的通信,以及通过 Internet 实现私网与私网之间的通信。私网与 Internet 的互联,必须使用网络地址转换(NAT)技术实现。

4.1.6 特殊 IP 地址

IP 地址空间中,有一些特殊的 IP 地址,这些 IP 地址有特殊的含义和作用,举例如下:

特殊IP地址 地址范围 作用
有限广播地址 255.255.255.255 可作为目的地址,发往该网段所有主机
任意地址 0.0.0.0 任何网络的网络地址
换回地址 127.0.0.0/8 测试设备自身的软件系统
本地链路地址 169.254.0.0/24 当主机自动获取地址失败后,可使用该网段中的某个地址进行通信
  • 255.255.255.255
    这个地址称为有限广播地址,它可以作为一个 IP 报文的目的 IP 地址使用。
    路由器接收到目的 IP 地址为有限广播地址的 IP 报文后,会停止对该 IP 报文的转发。
  • 0.0.0.0
    如果把这个地址作为网络地址,它的意思就是“任何网络”的网络地址;如果把这个地址作为主机接口地址,它的意思就是“这个网络上主机接口”的 IP 地址。
    例如:当一个主机接口在启动过程中尚未获得自己的 IP 地址时,就可以向网络发送目的 IP 地址为有限广播地址、源 IP 地址为 0.0.0.0 的 DHCP 请求报文,希望 DHCP 服务器在收到自己的请求后,能够给自己分配一个可用的 IP 地址。
  • 127.0.0.0/8
    这个地址为环回地址,它可以作为一个 IP 报文的目的 IP 地址使用。其作用是测试设备自身的软件系统。
    一个设备产生的、目的 IP 地址为环回地址的 IP 报文是不可能离开这个设备本身的。
  • 169.254.0.0/16
    如果一个网络设备获取 IP 地址的方式被设置成了自动获取方式,但是该设备在网络上又没有找到可用的 DHCP 服务器,那么该设备就会使用 169.254.0.0/16 网段的某个地址来进行临时通信。

4.1.7 子网掩码及主机可用地址

我们通常把一个网络号所定义的网络范围称为一个网段。而子网掩码就是用于计算 IP 地址中的网络号和主机号,通常和 IP 地址一起使用。
通常情况下,在一个网段中,它的第一个地址是该网段的网络地址,最后一个地址是该网段的广播地址。网络地址和广播地址不能直接被节点或网络设备所使用。因此,一个网段可用地址数量是整个网段地址减去 2。若一个网段的主机位为 n 位,则 IP 地址数为:2ⁿ,可用 IP 地址数为:2ⁿ-2(减去网络地址和广播地址)。

4.1.8 IP 地址计算

地址计算规则公式如下:

  • 网络地址:将 IP 地址的主机位全设为 0,所得结果是该 IP 地址所在网络的网络地址。
  • 广播地址:将 IP 地址的主机位全设为 1,所得结果是该 IP 地址所在网络的广播地址。
  • IP 地址数:2ⁿ,n 为主机位位数。
  • 可用 IP 地址数:2ⁿ-2,n 为主机位位数。

4.1.9 子网划分

实际生活中,如果将一个 A 类网络分配给一个组织使用,但是这个组织内部的计算机又没有16777214 这么多台,这就会造成大量的 IP 地址闲置与浪费。因此,需要有一种更加灵活的方式根据网络规模的大小来划分网络。思路就是将一个网络再划分为更小的多个子网,以供不同组织使用。这就是子网划分的需求。
这种划分网络的方式所使用的技术就是可变长度子网掩码(VLSM)。可变长度子网掩码在公网与企业内部中都可以使用。VLSM 允许一个组织根据网络规模的大小来划分网络。将一个网络再划分为更小的多个子网,以供不同组织部门使用。
举例:某公司分配到 C 类地址 201.222.5.0。假设需要 20 个子网,每个子网有 5 台主机,我们该如何划分?
在这个例子中,网段地址是一个 C 类地址:201.222.5.0。假设需要 20 个子网,其中每个子网 5 个主机,就要把主机地址的最后一个八位组分成子网部分和主机部分。
子网部分的位数决定了子网的数目。在这个例子中,因为是 C 类地址,所以子网部分和主机部分总共是 8 位,因为 24<20<25,所以子网部分占有 5 位,最大可提供 32(2^5)个子网。剩余 3 位为主机部分 2^3=8。去除主机部分全是 0 的 IP 地址,是子网网络地址;主机部分全是 1 的 IP 地址是本子网的广播地址。这样就剩余 6 个主机地址可以满足需要。
每个网段分别为:
201.222.5.0~201.222.5.7
201.222.5.8~201.222.5.15
201.222.5.16~201.222.5.23
………
201.222.5.232~201.222.5.239
201.222.5.240~201.222.5.247
201.222.5.248~201.222.5.255

4.2 网络技术介绍

4.2.1 网络基础

4.2.1.1 网络通信基本概念

通信:是指人与人、人与物、物与物之间通过某种媒介和行为进行的信息传递与交流。网络通信:是指终端设备之间通过计算机网络进行的通信。

网络通信的例子:

  • A:两台计算机通过一根网线相连,就组成了一个最简单的网络。
  • B:由一台路由器(或交换机)和多台计算机设备组成的小型网络。在这样的网络中,通过路由器的中转,每两台计算机之间都可以自由地传递文件。
  • C:当计算机想从某个网址获取文件时,必须先接入 Internet,然后才能下载。

Internet(译名:英特网、互联网、网际网等),是目前世界上规模最大的计算机网络,其前身诞生于 1969 年的 ARPAnet(Advanced Research Projects Agency Network)。Internet的广泛普及和应用是当今信息时代的标志性内容之一。

4.2.1.2 信息传递过程


虚拟的信息传递与真实的物品传递过程有许多相似之处,我们可以将快递过程与网络通信过程的对比:

  • 需要快递的物品:

    • 应用程序生成需要传递的信息(或数据)。
  • 物品被包装起来形成包裹,并粘贴含有收货人姓名、地址的快递单:
    • 应用程序将数据打包成原始的“数据载荷”,并添加“头部”和“尾部”形成报文,报文中的重要信息是接收者的地址信息,即“目的地址”。
    • 在一个信息单元的基础上,增加一些新的信息段,使其形成一个新的信息单元,这个过程称为“封装”。
  • 包裹被送到集散中心,集散中心对包裹上的目的地址进行分检,去往同一个城市的物品被放入同一架飞机,并飞向天空:
    • 报文通过网线到达“网关”,网关收到报文后,对其“解封装”,读取目的地址,再重新封装,并根据目的地址不同,送往不同的“路由器”,通过网关及路由器的传递,报文最终离开本地网络,进入 Internet 的干道进行传输。
    • 其中,网线所起的作用跟公路一样,它是信息传输的介质。
  • 飞机抵达目的机场后,包裹被取出进行分检,去往同一地区的包裹,被送到了同一集散中心:
    • 报文经过 Internet 干道的传输,到达目的地址所在的本地网络,本地网络的网关或路由器对报文进行解封装和封装,并根据目的地址决定发往相应的下一台路由器,最终到达目的计算机所在网络的网关。
  • 集散中心根据包裹上的目的地址进行分检,快递员送包裹上门,收件人拆开包裹,确认物品完好无损后收下。整个快递过程完成。
    • 报文到达目的计算机所在网络的网关,解封装和封装,然后根据目的地址发往相应的计算机。计算机收到报文后,对报文进行校验处理,校验无误后,接收下报文,并将其中的数据载荷交由相应的应用程序进行处理。一次完整的网络通信过程就结束了。
4.2.1.3 什么是网关


网关(Gateway)又称网间连接器、协议转换器。默认网关在网络层以上实现网络互连。大家都知道,从一个房间走到另一个房间,必然要经过一扇门。同样,从一个网络(网段)向另一个网络(网段)发送信息,也必须经过一道“关口”,这道关口就是网关。
网关主要意义:

  • 网关设备主要意义:在主机(无论是 PC、服务器、路由器还是防火墙,这里统称主机)想要访问另一网段地址时,负责反馈 ARP 报文,并接收、转发随后而来的数据报文。
  • 网关配置主要意义:在主机上生成默认路由,下一跳指向网关设备。
4.2.1.4 通信网络基本组成架构

以企业数据中心网络为例,企业对于数据中心的主体需求主要是业务运行与计算、数据存储以及服务访问。
那么围绕这几点需求,数据中心网络的主体作用就是提供设备与设备、用户与设备之间的互联并提供业务的外部访问能力。其中,就需要接入交换机设备连接各办公区的用户主机,汇聚交换机汇聚接入交换机侧的流量,路由器负责不同办公区、内部与外部不同网络间的通信转发,防火墙负责不同安全等级的区域、内部与外部网络的安全接入与访问控制。每种网络设备在整体架构中各司其职,共同完成整个数据中心网络的通信需求。
由此可知,通信网络主要是由路由器、交换机、防火墙,以及个人电脑、网络打印机、服务器等设备构成。通信网络实现的基本功能是实现数据互通。

4.2.1.5 网络设备 - 交换机

在园区网络中,交换机一般来说是距离终端用户最近的设备,接入层的交换机一般为二层交换机,又称为以太网交换机,二层是指 TCP/IP 参考模型的数据链路层。用于终端用户接入网络、对数据帧进行交换等。
交换机具备以下几个主要功能:

  • 实现终端设备(PC、服务器等)的网络接入
  • 隔离冲突域
  • 广播转发未知报文
  • MAC 地址学习、维护 MAC 地址表
  • 基于 MAC 地址表转发报文
4.2.1.6 网络设备 - 路由器

路由器是网络层设备,可以在因特网中进行数据报文转发。路由器根据所收到的报文的目的地址选择一条合适的路径,将报文传送到下一个路由器或目的地,路径中最后的路由器负责将报文送交目的主机。
路由器在网络中主要有以下几个功能:

  • 实现同类型网络或异种网络之间的通信
  • 隔离广播域
  • 维护路由表(Routing Table)、运行路由协议
  • 路径(路由信息)选择、IP 报文转发
  • 广域网接入、网络地址转换
  • 连接通过交换机组建的二层网络
4.2.1.7 网络设备 - 防火墙

防火墙是网络安全设备,用于控制两个网络之间的安全通信。防火墙是位于两个信任程度不同的网络之间(如企业内部网络和 Internet 之间)的设备,它对两个网络之间的通信进行控制,通过强制实施统一的安全策略,防止对重要信息资源的非法存取和访问,以达到保护系统
安全的目的。
防火墙在网络中具有以下功能:

  • 隔离不同安全级别的网络
  • 实现不同安全级别的网络之间的访问控制(安全策略)
  • 用户身份认证
  • 实现远程接入功能
  • 实现数据加密及虚拟专用网业务
  • 执行网络地址转换
  • 其他安全功能

4.2.2 网络参考模型和数据封装

4.2.2.1 OSI 参考模型

为了解决网络之间兼容性的问题,帮助各个厂商生产出可兼容的网络设备,国际标准化组织ISO(International Standards Organization)于 1984 年提出了开放系统互连参考模型 OSI/RM(Open System Interconnection Reference Model),它很快成为计算机网络通信的基础模型。


OSI 参考模型又被称为七层模型,由下至上依次为:

  • 物理层:在设备之间传输比特流,规定了电平、速度和电缆针脚等物理特性。
  • 数据链路层:将比特组合成字节,再将字节组合成帧,使用链路层地址(以太网使用 MAC 地址)来访问介质,并进行差错检测。
  • 网络层:定义逻辑地址,供路由器确定路径,负责将数据从源网络传输到目的网络。
  • 传输层:提供面向连接或非面向连接的数据传递以及进行重传前的差错检测。
  • 会话层:负责建立、管理和终止表示层实体之间的通信会话。该层的通信由不同设备中的应用程序之间的服务请求和响应组成。
  • 表示层:提供各种用于应用层数据的编码和转换功能,确保一个系统的应用层发送的数据能被另一个系统的应用层识别。
  • 应用层:OSI 参考模型中最靠近用户的一层,为应用程序提供网络服务。
4.2.2.2 TCP/IP 参考模型

因为 OSI 协议栈比较复杂,且 TCP 和 IP 两大协议在业界被广泛使用,所以 TCP/IP 参考模型成为了互联网的主流参考模型。
TCP/IP 模型在结构上与 OSI 模型类似,采用分层架构,同时层与层之间联系紧密。
TCP/IP 标准参考模型将 OSI 中的数据链路层和物理层合并为网络接入层,这种划分方式其实是有悖于现实协议制定情况的,故融合了 TCP/IP 标准模型和 OSI 模型的 TCP/IP 对等模型被提出,后面的讲解也都将基于这种模型。
TCP/IP 起源于 60 年代末美国政府资助的一个分组交换网络研究项目,到 90 年代已发展成为计算机之间最常用的组网形式。它是一个真正的开放系统,因为协议族的定义及其多种实现,可以不用花钱或花很少的钱就可以公开得到。它成为被称作“全球互联网”或“因特网(Internet)”的基础。
与 OSI 参考模型一样,TCP(Transfer Control Protocol)/IP(Internet Protocol)协议(传输控制协议/网际协议)也分为不同的层次开发,每一层负责不同的通信功能。但是,TCP/IP协议简化了层次设计,只有五层:应用层、传输层、网络层、数据链路层和物理层。TCP/IP 协议栈与 OSI 参考模型有清晰的对应关系,覆盖了 OSI 参考模型的所有层次。应用层包含了 OSI 参考模型所有高层协议。
因为 TCP/IP 协议栈支持所有标准的物理层和数据链路层协议,而且物理层和数据链路层在前面已经做过简述,所以本章不对 TCP/IP 协议的物理层和数据链路层做进一步的描述。关于这两层协议和标准的深入细节,在后续章节会有讲解。
OSI 参考模型与 TCP/IP 协议栈的异同点:

  • 相同点

    • 都是分层结构,并且工作模式一样,都要求层和层之间具备很密切的协作关系。
    • 有相同的应用层,传输层,网络层,数据链路层,物理层
    • 都使用包交换技术(Packet-Switched)。
    • 网络工程师必须都要了解这两个模型。
  • 不同点
    • TCP/IP 把表示层和会话层都归入了应用层。
    • TCP/IP 的结构比较简单,因为分层少。
    • TCP/IP 标准是在 Internet 网络不断发展中建立的,基于实践,有很高的信任度。相比较而言,OSI 参考模型是基于理论的,是作为一种向导。
4.2.2.3 发送方数据封装

假设你正在通过网页浏览器访问天翼云官网,当你输入完网址,敲下回车后,计算机内部会发生下列事情:

  • IE 浏览器(应用程序)调用 HTTP(应用层协议),完成应用层数据的封装
  • HTTP 依靠传输层的 TCP 进行数据的可靠性传输,将封装好的数据传递到 TCP 模块。
  • TCP 模块给应用层传递下来的 Data 添加上相应的 TCP 头部信息(源端口、目的端口等)。此时的 PDU 被称作 Segment(段)。
  • 在 IPv4 网络中,TCP 模块会将封装好的 Segment 传递给网络层的 IPv4 模块(若在 IPv6 环境,会交给 IPv6 模块进行处理)。
  • IPv4 模块在收到 TCP 模块传递来的 Segment 之后,完成 IPv4 头部的封装,此时的 PDU 被称为 Packet(包)。
  • 由于使用了 Ethernet 作为数据链路层协议,故在 IPv4 模块完成封装之后,会将Packet 交由数据链路层的 Ethernet 模块(例如以太网卡)处理。
  • Ethernet 模块在收到 IPv4 模块传递来的 Packet 之后,添加上相应的 Ethernet 头部信息和 FCS 帧尾,此时的 PDU 被称为 Frame(帧)。
  • 在 Ethernet 模块封装完毕之后,会将数据传递到物理层。
  • 根据物理介质的不同,物理层负责将数字信号转换成电信号,光信号,电磁波(无线)信号等。
  • 转换完成的信号在网络中开始传递。
4.2.2.4 中间网络数据传输

封装好的完整数据,将会在网络中被传递。
一般情况下:

  • 网络中的二层设备(如以太网交换机)只会解封装数据的二层头部,根据二层头部的信息进行相应的“交换”操作。
  • 网络中的三层设备(如路由器)只会解封装到三层头部,并且根据三层头部的信息进行相应的“路由”操作。
4.2.2.5 接收方数据解封装


如图所示,在经过中间网络传递之后,数据最终到达目的服务器。根据不同的协议头部信息,数据将被一层层地解封装并做相应的处理和传递,最终交由 WEB 服务器上的应用程序进行处理。

4.2.3 常用协议介绍

4.2.3.1 TCP/IP 常见协议

TCP/IP 的一些常见协议有:

  • HTTP:Hypertext Transfer Protocol,超文本传输协议,用来访问在网页服务器上的各种页面。
  • FTP:File Transfer Protocol,文件传输协议,为文件传输提供了途径,它允许数据从一台主机传送到另一台主机上。
  • DNS:Domain Name Service,域名称解析服务,用于实现从主机域名到 IP 地址之间的转换。
  • TCP:Transmission Control Protocol,传输控制协议,为应用程序提供可靠的面向连接的通信服务。目前,许多流行的应用程序都使用 TCP。
  • UDP:User Datagram Protocol,用户数据报协议,提供了无连接通信,且不对传送数据包进行可靠性的保证。
  • IP:Internet Protocol,互联网协议,将传输层的数据封装成数据包并完成源站点到目的站点的转发,提供无连接的、不可靠的服务。
  • IGMP:Internet Group Management Protocol,因特网组管理协议,负责 IP 组播成员管理的协议。它用来在 IP 主机和与其直接相邻的组播路由器之间建立、维护组播组成员关系。
  • ICMP:Internet Control Message Protocol,网际报文控制协议,基于 IP 协议在网络中发送控制消息,提供可能发生在通信环境中的各种问题反馈。通过这些信息,使管理者可以对所发生的问题作出诊断,然后采取适当的措施解决。
  • ARP:Address Resolution Protocol,地址解析协议,是根据 IP 地址获取数据链路层地址的一个 TCP/IP 协议,其主要功能:将 IP 地址解析为 MAC 地址、维护 IP地址与 MAC 地址的映射关系的缓存(ARP 表)、实现网段内重复 IP 地址的检测。
4.2.3.2 TCP 协议

TCP 传输控制协议作为传输层的协议,它为应用程序提供可靠的、面向连接的服务。
TCP 通过如下几方面提供其可靠性:

  • 面向连接的传输:TCP 的任何一方进行数据传输之前必须在双方之间建立连接。
  • MSS(最大报文段长度):表示 TCP 发往另一端的最大报文段长度。当一个连接建立时,连接的双方都要通告各自的 MSS,以充分利用带宽资源。
  • 传输确认机制:当 TCP 传输一个数据段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到目的端的确认报文,TCP 将重传该数据段。
  • 首部和数据的检验和:TCP 将保持首部和数据的检验和,这是一个端到端的检验。目的是检测数据在传输过程中的变化。如果收到段的检验和有所差错,TCP将丢弃该报文段并不确认收到此报文段。因此 TCP 将启动重传机制。
  • 流量控制:TCP 还能提供流量控制。TCP 连接的每一方都有一个固定大小的缓冲空间。TCP 接收端只允许另一端发送接收缓冲区所能够容纳的数据。这能够防止较快的主机致使较慢的主机缓冲区溢出。
4.2.3.3 UDP 协议

UDP 与 TCP 一样都是传输层的协议,但 UDP 为应用程序提供面向无连接的服务,所以在传数据之前源端和目的端之间不必要像 TCP 一样需要事先建立连接。正由于 UDP 是基于无连接的传输协议,所以 UDP 不需要去维护连接状态和收发状态,因此服务器可同时向多个客户端
传输相同的消息。
UDP 适用于对传输效率要求高的应用,应用层能提供可靠性的保障。如常用于认证计费的Radius 协议、RIP 路由协议都是基于 UDP 的。

4.2.3.4 TCP VS UDP

由于,TCP 和 UDP 都是作为传输层的协议,为应用层的数据传输提供服务。因此,这两者通常会进行比较。

TCP UDP
面向连接 面向无连接
可靠传输,采用流量控制和拥塞控制 不可靠传输,报文可靠性依靠上层应用保证
头部封装20-60B 头部封装小,8B
适用于要求可靠传输的应用,比如文件传输等 适用于实时应用,例如视频会议等

TCP 协议可靠,但也是因为它的可靠机制,导致它传输报文效率不高,封装开销也较高。
UDP 面向无连接,不可靠,但传输效率相对较高。
故而两者并没有谁优谁劣之分,只是各自适用于不同的场景罢了。

4.2.3.5 Telnet 协议

Telnet 是数据网络中提供远程登录服务的标准协议,为用户提供了在本地计算机上完成远程设备工作的能力,其数据采用明文方式传输。Telnet 协议的优势在于通过它可以远程登录到网络设备上,对网络设备进行配置,为网络管理员异地管理网络设备提供了极大的方便。
用户通过 Telnet 客户端程序连接到 Telnet 服务器。用户在 Telnet 客户端中输入命令,这些命令会在服务器端运行,就像直接在服务端的控制台上输入一样。
但是,Telnet 协议也存在一些弊端,例如:

  • 数据传输采用明文方式,传输的数据没有任何机密性可言。
  • 认证机制脆弱。用户的认证信息在网络上以明文方式传输,很容易被窃听;Telnet 只支持传统的密码认证方式,很容易被攻击。
  • 客户端无法真正识别服务器的身份,攻击者很容易进行“伪服务器欺骗”。SSH 协议正是为了克服 Telnet 协议存在的问题而诞生的。
4.2.3.6 SSH 协议

与 Telnet 协议作用相似的还有 SSH 协议。SSH 协议是一种在不安全的网络环境中,通过加密和认证机制,实现安全远程访问以及文件传输等业务的网络安全协议。
为解决 Telnet 协议安全性上的不足,SSH 协议应运而生,为用户安全接入远端设备管理提供了保障。
SSH 协议采用客户端/服务器架构,分为传输层、认证层和连接层。
SSH 协议层:

  • 传输层:主要用来在客户端和服务器之间建立一条安全的加密通道,为用户认证、数据交互等对数据传输安全性要求较高的阶段提供足够的机密性保护。
  • 认证层:运行在传输层协议之上,完成服务器对登录用户的认证。
  • 连接层:负责在加密通道上划分出若干逻辑通道,以运行不同的应用。它运行在认证层协议之上,提供交互会话、远程命令执行等服务。
4.2.3.7 Telnet VS SSH
Telnet SSH
数据传输采用明文方式 数据传输采用密文的方式
认证机制脆弱,用户的认证信息在网络上以明文方式传输 用户的认证信息以密文的方式传输
只支持传统的密码认证方式 除了传统的密码认证,SSH服务器还可以采用多种方式对用户进行认证
客户端无法真正识别服务器的身份 客户端和服务器端之间通信使用动态生成的加解密密钥
为客户端提供了认证服务器的功能

总的来说,SSH 协议在发送数据时会对数据进行加密操作,数据传输更安全,常用在需要加密认证的场景。但在一些测试、无需加密的场合(如局域网),Telnet 协议仍常被使用。

4.3 交换技术基础

4.3 交换技术基础

4.3.1.1 以太网协议

以太网是当今现有局域网(Local Area Network,LAN)采用的最通用的通信协议标准,该标准定义了在局域网中采用的电缆类型和信号处理方法。
以太网从早期的 HUB 组网演变到现在交换机组网:

  • 早期的以太网:以太网是建立在 CSMA/CD 机制上的广播型网络。冲突的产生是限制以太网性能的重要因素,早期的以太网设备如集线器 HUB 是物理层设备,不能隔绝冲突扩散,限制了网络性能的提高。
  • 交换机组网:交换机做为一种能隔绝冲突的二层网络设备,极大地提高了以太网的性能,并替代 HUB 成为主流的以太网设备。但是交换机对网络中的广播数据流量不做任何限制,这也影响了网络的性能。
4.3.1.2 以太网二层交换机


如图所示,最下面的交换机就是以太网二层交换机,其主要用来接入用户及终端设备,处在通信网络架构的边缘,属于接入设备。以太网二层交换机转发数据的端口都是以太网口,并且只能够针对数据的二层头部(以太网数据帧头)中的 MAC 地址进行寻址并转发数据。
在园区网络中,交换机一般来说是距离终端用户最近的设备,用于终端接入园区网,接入层的交换机一般为二层交换机。二层交换设备工作在 TCP/IP 对等模型的第二层,即数据链路层,它对数据包的转发是建立在 MAC(Media Access Control)地址基础之上的。在图 4-24 中,二层交换机之上的是三层交换机。一般来说不同局域网之间的网络互通需要由路由器来完成。但随着数据通信网络范围的不断扩大,网络业务的不断丰富,网络间互访的需求越来越大,而路由器由于自身成本高、转发性能低、接口数量少等特点无法很好地满足网络发展的需求。因此出现了三层交换机这样一种能实现高速三层转发的设备。

4.3.1.3 MAC 地址表

每台交换机中都有一个 MAC 地址表,存放了 MAC 地址与交换机端口编号之间的映射关系。
对于交换机来说,MAC 地址表记录了交换机学习到的其他设备的 MAC 地址与接口的对应关系。交换机在转发数据帧时,根据数据帧的目的 MAC 地址查询 MAC 地址表。如果 MAC 地址表中包含与该帧目的 MAC 地址对应的表项,则直接通过该表项中的出接口转发该报文;如果 MAC 地址表中没有包含该帧目的 MAC 地址对应的表项时,交换机将采取泛洪方式在除接收接口外的所有接口发送该报文。

4.3.1.4 交换机的 3 种数据帧处理行为

交换机会通过传输介质将进入其端口的每一个帧都进行转发操作,交换机的基本作用就是用来转发数据帧。
交换机对帧的处理行为一共有三种:泛洪(Flooding),转发(Forwarding),丢弃(Discarding)。

  • 泛洪:交换机把从某一端口进来的帧通过所有其他的端口转发出去(注意,“所有其他的端口”是指除了这个帧进入交换机的那个端口以外的所有端口)。
  • 转发:交换机把从某一端口进来的帧通过另一个端口转发出去(注意,“另一个端口”不能是这个帧进入交换机的那个端口)。
  • 丢弃:交换机把从某一端口进来的帧直接丢弃。

交换机对接收的数据帧处理情况:

  • 泛洪行为:若交换机接收的数据帧目的 MAC 为广播 MAC 或者目的 MAC 在 MAC地址表中没有匹配记录,则进行泛洪。
  • 转发:若交换机接收的数据帧目的 MAC 为单播 MAC,且该 MAC 在 MAC 地址表中有匹配记录且与接收该数据帧的端口不同,则进行转发。
  • 丢弃:若交换机接收的数据帧目的 MAC 为单播 MAC,且该 MAC 在 MAC 地址表中有匹配记录且与接收该数据帧的端口相同,则进行丢弃。
4.3.1.5 交换机的工作原理

二层交换机工作在数据链路层,它对数据帧的转发是建立在 MAC 地址基础之上的。交换机不同的接口发送和接收数据是独立的,各接口属于不同的冲突域,因此有效地隔离了网络中的冲突域。
二层交换设备通过学习以太网数据帧的源 MAC 地址来维护 MAC 地址与接口的对应关系(保存 MAC 与接口对应关系的表称为 MAC 地址表),通过其目的 MAC 地址来查找 MAC 地址表决定向哪个接口转发。

如图所示,交换机的工作原理如下:

  • 主机 1 发出一个单播的数据帧,目的 MAC 为主机 2 的 MAC 地址。
  • 交换机的 G0/0/1 接口接收到该数据帧,交换机将进行学习,即将 G0/0/1 接口与MAC1 的对应关系记录到 MAC 地址表。
  • 交换机再根据该数据帧的目的 MAC 在自身的 MAC 地址表中进行查询,根据查询结果决定转发、泛洪还是丢弃。

4.3.2 VLAN 技术基础

4.3.2.1 VLAN 产生的原因

传统的以太网交换机在转发数据时,采用源地址学习的方式,自动学习各个端口连接的主机的 MAC 地址,形成转发表,然后依据此表进行以太网帧的转发,整个转发的过程自动完成,所有端口都可以互访,维护人员无法控制端口之间的转发,例如实现 B 主机不能访问 A 主机。该网络存在如下缺陷:

  • 网络的安全性差。由于各个端口之间可以直接互访,增加了用户进行网络攻击的可能性。
  • 网络效率低。用户可能收到大量不需要的报文,这些报文同时消耗网络带宽资源和客户主机 CPU 资源,例如不必要的广播报文。
  • 业务扩展能力差。网络设备平等地对待每台主机的报文,无法实现有差别的服务,例如无法优先转发用于网络管理的以太网帧。

总而言之,由于以太网缺少转发控制手段,广播影响范围广。而 VLAN 的出现很好地解决了这一问题。

4.3.2.2 VLAN 技术的目标


如图所示,VLAN 技术把用户划分成多个逻辑的网络(组),组内可以通信,组间不允许通信,二层转发的单播、组播、广播报文只能在组内转发。同时,VLAN 技术可以很容易地实现组成员的添加或删除。
简而言之,VLAN 技术提供了一种管理手段,控制交换机连接的终端之间的互通。如图,组 1 和组 2 的 PC 无法进行二层的相互通信。

4.3.2.3 什么是 VLAN

VLAN(Virtual Local Area Network)即虚拟局域网,是将一个物理的 LAN 在逻辑上划分成多个广播域(多个 VLAN)的通信技术。
VLAN 内的主机间可以直接通信,而 VLAN 间不能直接互通,从而将广播报文限制在一个VLAN 内。由于 VLAN 间不能直接互访,从而提高了网络安全性。例如,同一个写字楼的不同企业客户,若建立各自独立的 LAN,企业的网络投资成本将很高;若共用写字楼已有的LAN,又会导致企业信息安全无法保证。采用 VLAN,可以实现各企业客户共享 LAN 设施,同时保证各自的网络信息安全。

4.3.2.4 VLAN 的帧格式


如图所示,VLAN 标签长 4 个字节,直接添加在以太网帧头中,IEEE802.1Q 文档对 VLAN 标签作出了说明。
TPID:Tag Protocol Identifier,2 字节,固定取值,0x8100,是 IEEE 定义的新类型,表明这是一个携带 802.1Q 标签的帧。
TCI:Tag Control Information,2 字节。帧的控制信息,详细说明如下:

  • Priority:3 比特,指示以太网帧的优先级。一共有 8 种优先级,0-7,用于提供有差别的转发服务。
  • CFI:Canonical Format Indicator,1 比特。用于令牌环/源路由 FDDI 介质访问中指示地址信息的比特次序信息,即先传送的是低特位还是高比特位。
  • VLAN Identifier:VLAN ID,12 比特,取值从 0 到 4095。结合交换机端口的VLAN 配置,能够控制以太网帧的转发。

使用 VLAN 标签后,在交换网络环境中,以太网的帧有两种格式:没有加上这四个字节标志的,称为标准以太网帧(untagged frame);有四字节标志的以太网帧,称为带有 VLAN 标记的帧(tagged frame)。

4.3.2.5 VLAN 的划分方式

在网络中,计算机发出的数据帧不带任何标签。对已支持 VLAN 特性的交换机来说,当计算机发出的 Untagged 帧一旦进入交换机后,交换机必须通过某种划分原则把这个帧划分到某个特定的 VLAN 中去。
VLAN 的划分包括如下 5 种方法:

  1. 基于接口划分:根据交换机的接口来划分 VLAN。

    • 网络管理员预先给交换机的每个接口配置不同的 PVID,当一个数据帧进入交换机时,如果没有带 VLAN 标签,该数据帧就会被打上接口指定 PVID 的标签,然后数据帧将在指定 VLAN 中传输。
  2. 基于 MAC 地址划分:根据数据帧的源 MAC 地址来划分 VLAN。
    • 网络管理员预先配置 MAC 地址和 VLAN ID 映射关系表,当交换机收到的是Untagged 帧时,就依据该表给数据帧添加指定 VLAN 的标签,然后数据帧将在指定 VLAN 中传输。
  3. 基于 IP 子网划分:根据数据帧中的源 IP 地址和子网掩码来划分 VLAN。
    - 网络管理员预先配置 IP 地址和 VLAN ID 映射关系表,当交换机收到的是Untagged 帧,就依据该表给数据帧添加指定 VLAN 的标签,然后数据帧将在指定 VLAN 中传输。
  4. 基于协议划分:根据数据帧所属的协议(族)类型及封装格式来划分 VLAN。
    - 网络管理员预先配置以太网帧中的协议域和 VLAN ID 的映射关系表,如果收到的是 Untagged 帧,就依据该表给数据帧添加指定 VLAN 的标签,然后数据帧将在指定 VLAN 中传输。
    5. 基于策略划分:根据配置的策略划分 VLAN,能实现多种组合的划分方式,包括接口、MAC 地址、IP 地址等。
    - 网络管理员预先配置策略,如果收到的是 Untagged 帧,且匹配配置的策略时,给数据帧添加指定 VLAN 的标签,然后数据帧将在指定 VLAN 中传输。
4.3.2.6 基于接口的 VLAN 划分

基于接口的 VLAN 划分的划分规则、特点如下:

  • 划分原则:将 VLAN ID 配置到交换机的物理接口上,从某一个物理接口进入交换机的、由终端计算机发送的 Untagged 数据帧都被划分到该接口的 VLAN ID 所表明的那个 VLAN。
  • 特点:这种划分原则简单而直观,实现容易,是目前实际网络应用中最为广泛的划分 VLAN 的方式。当计算机接入交换机的端口发生变化时,该计算机发送的帧的 VLAN 归属可能会发生变化。
  • 缺省 VLAN,PVID(Port VLAN ID):是接口上的缺省 VLAN,取值范围是1~4094。每个交换机的接口都应该配置一个 PVID,到达这个端口的 Untagged帧将一律被交换机划分到 PVID 所指代的 VLAN。
4.3.2.7 VLAN 的接口类型


如图所示,基于接口的 VLAN 划分依赖于交换机的接口类型。

  • Access 接口:Access 接口一般用于和不能识别 Tag 的用户终端(如用户主机、服务器等)相连,或者不需要区分不同 VLAN 成员时使用。也就是说,Access 接口所连接的这些设备的网卡往往只收发无标记帧。而且 Access 接口只能加入一个VLAN。
  • Trunk 接口:Trunk 接口允许多个 VLAN 的数据帧通过,这些数据帧通过 802.1QTag 实现区分。Trunk 接口一般用于连接交换机、路由器、AP 以及可同时收发Tagged 帧和 Untagged 帧的语音终端。
  • Hybrid 接口:Hybrid 接口与 Trunk 接口类似,也允许多个 VLAN 的数据帧通过,这些数据帧通过 802.1Q Tag 实现区分。用户可以灵活指定 Hybrid 接口在发送某个(或某些)VLAN 的数据帧时是否携带 Tag。因此,Hybrid 接口既可以用于连接不能识别 Tag 的用户终端(如用户主机、服务器等),也可以用于连接交换机、路由器以及可同时收发 Tagged 帧和 Untagged 帧的语音终端、AP。

4.3.3 VLAN 基础配置

4.3.3.1 VLAN 的基础配置命令
4.3.3.1.1 创建 VLAN
[SW] vlan vlan-id
  • 通过此命令创建 VLAN 并进入 VLAN 视图,如果 VLAN 已存在,直接进入该VLAN 的视图。
  • vlan-id 是整数形式,取值范围是 1~4094。
[SW] vlan batch { vlan-id1 [ to vlan-id2 ] }

通过此命令批量创建 VLAN。其中:

  • batch:指定批量创建的 VLAN ID。
  • vlan-id1:表示第一个 VLAN 的编号。
  • vlan-id2:表示最后一个 VLAN 的编号。
4.3.3.2 Access 接口的基础配置命令
  • 配置接口类型
[Huawei-GigabitEthernet0/0/1] port link-type access

在接口视图下,配置接口的链路类型为 Access。

  • 配置 Access 接口的缺省 VLAN
[Huawei-GigabitEthernet0/0/1] port default vlan vlan-id

在接口视图下,配置接口的缺省 VLAN 并同时加入这个 VLAN。

4.3.3.3 Trunk 接口的基础配置命令
  • 配置接口类型
[Huawei-GigabitEthernet0/0/1] port link-type trunk

在接口视图下,配置接口的链路类型为 Trunk。

  • 配置 Trunk 接口加入指定 VLAN
[Huawei-GigabitEthernet0/0/1] port trunk allow-pass vlan { { vlan-id1 [ to vlan-id2 ] } | all }

在接口视图下,配置 Trunk 类型接口加入的 VLAN。

  • 配置 Trunk 接口的缺省 VLAN
[Huawei-GigabitEthernet0/0/1] port trunk pvid vlan vlan-id

在接口视图下,配置 Trunk 类型接口的缺省 VLAN。

4.3.3.4 Hybrid 接口的基础配置命令
  • 配置接口类型
[Huawei-GigabitEthernet0/0/1] port link-type hybrid

在接口视图下,配置接口的链路类型为 Hybrid。

  • 配置 Hybrid 接口加入指定 VLAN
[Huawei-GigabitEthernet0/0/1] port hybrid untagged vlan { { vlan-id1 [ to vlan-id2 ] } | all }

在接口视图下,配置 Hybrid 类型接口加入的 VLAN,这些 VLAN 的帧以 Untagged 方式通过接口。

[Huawei-GigabitEthernet0/0/1] port hybrid tagged vlan { { vlan-id1 [ to vlan-id2 ] } | all }

在接口视图下,配置 Hybrid 类型接口加入的 VLAN,这些 VLAN 的帧以 Tagged 方式通过接口。

  • 配置 Hybrid 接口的缺省 VLAN
[Huawei-GigabitEthernet0/0/1] port hybrid pvid vlan vlan-id

在接口视图下,配置 Hybrid 类型接口的缺省 VLAN。

4.4 路由技术基础

4.4.1 路由基础原理

4.4.1.1 路由


首先,我们需要了解路由的一些相关概念。

  • 路由是指导报文转发的路径信息,通过路由可以确认转发 IP 报文的路径。
  • 路由设备是依据路由转发报文到目的网段的网络设备,最常见的路由设备:路由器。
  • 路由设备维护着一张路由表,保存着路由信息。

如图所示,网关以及中间节点(路由器)根据收到的 IP 报文的目的地址选择一条合适的路径,并将报文转发到下一个路由器。在路径中的最后一跳路由器二层寻址将报文转发给目的主机。这个过程被称为路由转发。
中间节点选择路径所依赖的表项称为路由表。
路由条目包含明确的出接口以及下一跳,这两项信息指导 IP 报文转发到相应的下一跳设备上。

4.4.1.2 路由信息介绍

路由中包含以下信息:

  • 目的网络:标识目的网段
  • 掩码:与目的地址共同标识一个网段
  • 出接口:数据包被路由后离开本路由器的接口
  • 下一跳:路由器转发到达目的网段的数据包所使用的下一跳地址

通过路由中包含的信息,路由设备可以转发 IP 报文到相应的路径。
其中目的地址、掩码用于识别 IP 报文目的地址,路由设备将 IP 报文匹配到相应的路由之后,根据路由的出接口、下一跳确认转发的路径。

4.4.1.3 路由表


路由器依据路由表信息转发报文。而路由表是由一条条详细的路由条目组成。
路由表由路由条目组成,但不代表路由表中保存了所有路由,路由表中只会保存“最优的”路由。路由器对路由表中路由条目的管理实际上就是路由器维护、管理路由信息的具体实现。

4.4.1.4 查看 IP 路由表


如图所示,这是摘取自路由器的路由表配置信息,其各项参数信息如下:

  • Destination/Mask:表示此路由的目的网络地址与网络掩码。将目的地址和子网掩码“逻辑与”后可得到目的主机或路由器所在网段的地址。例如:目的地址为1.1.1.1,掩码为 255.255.255.0 的主机或路由器所在网段的地址为 1.1.1.0。
  • Proto(Protocol):该路由的协议类型,即路由器是通过什么协议获知该路由的。
  • Pre(Preference):表示此路由的路由协议优先级。针对同一目的地,可能存在不同下一跳、出接口等多条路由,这些不同的路由可能是由不同的路由协议发现的,也可以是手工配置的静态路由。优先级最高(数值最小)者将成为当前的最优路由。
  • Cost:路由开销。当到达同一目的地的多条路由具有相同的路由优先级时,路由开销最小的将成为当前的最优路由。
  • NextHop:表示对于本路由器而言,到达该路由指向的目的网络的下一跳地址。该字段指明了数据转发的下一个设备。
  • Interface:表示此路由的出接口。指明数据将从本路由器的哪个接口转发出去。
4.4.1.5 路由转发流程


如图所示,来自 10.0.1.0/24 网段的 IP 报文想要去往 40.0.1.0/24 网段,首先到达网关,网关查找路由表项,确定转发的下一跳、出接口,之后报文转发给 R2。报文到达 R2 之后,R2 通过查找路由表项转发给 R3,R3 收到后查找路由表项,发现 IP 报文目的 IP 属于本地接口所在网段,直接本地转发。

4.4.2 静态和缺省路由

4.4.2.1 静态路由介绍


静态路由是由网络管理员手动配置路由条目,配置方便,对系统要求低,适用于拓扑结构简单并且稳定的小型网络。
缺点是不能自动适应网络拓扑的变化,需要人工干预。
RTA 上转发目的地址属于 20.1.1.0/24 的报文,在只有直连路由的情况下没有路由匹配。此时可以通过手动配置静态路由,使 RTA 发送前往 20.1.1.0/24 网段的报文交给下一跳 10.0.0.2 转发。

4.4.2.2 静态路由配置举例


如图所示,RTA 与 RTC 上配置静态路由,实现 10.0.0.0/24 与 20.1.1.0/24 的互通。
因为报文是逐跳转发的,所以每一跳路由设备上都需要配置到达相应目的地址的路由。
另外需要注意通信是双向的,针对通信过程中的往返流量,都需关注途径设备上的路由配置。

4.4.2.3 缺省路由


缺省路由是一种特殊的路由,当报文没有在路由表中找到匹配的具体路由表项时才使用的路由;如果报文的目的地址不能与路由表的任何目的地址相匹配,那么该报文将选取缺省路由进行转发。
缺省路由在路由表中的形式为 0.0.0.0/0,缺省路由也被叫做默认路由。

4.4.2.4 缺省路由应用场景

缺省路由一般用于企业网络出口,配置一条缺省路由让出口设备能够转发前往 Internet 上任意地址的 IP 报文。

5.操作系统基础

操作系统在用户与计算机之间的连接中扮演着重要的角色

5.1 操作系统基础

5.1.1 操作系统的定义

5.1.1.1 操作系统的定义及作用


操作系统(Operating System,简称 OS),是一种控制计算机的特殊计算机程序,在计算机和用户之间起到连接的作用,并对硬件资源进行协调管理。这些资源包括 CPU、磁盘、内存和打印机等,用户运行程序时需要访问这些资源。
主流操作系统
根据应用领域来划分,可分为:

  • 桌面操作系统
  • 服务器操作系统
  • 主机操作系统
  • 嵌入式操作系统
    根据源码开放程度,可分为:
  • 开源操作系统(Linux、Unix)
  • 闭源操作系统(Windows、Mac OS)

5.1.2 操作系统的组成

通常站在用户角度,操作系统由内核和各种应用程序组成。即系统分为用户空间和内核空间。用户空间即上层应用程序活动的空间。
内核本质上是一种软件程序,用来管理计算机硬件资源并提供上层应用程序运行所需要的系统调用接口。
内核、系统调用、函数库以及 Shell 等应用程序完整构成一个操作系统:

  1. 系统调用:应用程序的执行必须依托于内核提供的资源,包括 CPU、存储、I/O 资源等,为了使上层应用能够访问到这些资源,内核必须为上层应用提供访问接口—系统调用。(如果写一个汉字代表一个上层应用,那么一个系统调用更像是汉字的一个笔画)。
  2. 库函数:通过库函数实现对系统调用的封装,将简单的业务逻辑接口呈现给用户,方便用户调用。对于简单的操作我们可以直接调用系统调用来访问资源,对于复杂操作,可以借助库函数来实现(库函数更像是汉字的偏旁)。
  3. Shell:是一个特殊的应用程序(俗称命令行),本质上是一个命令解释器,它可以执行符合 Shell 语法的文本(脚本),实际上这些 Shell 语句通常就是对系统调用做了一层封装,方便客户使用。
  4. 内核:向下控制硬件资源,向内管理操作系统资源,向上则向应用程序提供系统调用的接口:
  • 进程调度和管理:内核负责创建和销毁进程,处理它们与外部世界的联系。
  • 内存管理:内核为所有的进程在有限的可用资源上建立一个虚拟地址空间。
  • 文件系统管理:Linux 在很大程度上基于文件系统的概念,几乎 Linux 中的任何东西都可看作一个文件.。内核在非结构化的硬件之上建立了一个结构化的文件系统。
  • 设备驱动管理:内核中需要嵌入系统中出现的每个外设的驱动, 从硬盘驱动到键盘和磁带驱动器.。
  • 网络资源管理:所有的路由和地址解析动作都在内核中实现。

总的来说,用户态应用程序可以通过三种方式访问内核态资源:系统调用、Shell 脚本以及库函数。

5.1.3 操作系统的分类

5.1.3.1 常用服务器操作系统

在服务器上常用的三大类操作系统:

  • UNIX

    • 一种多用户、多进程的计算机操作系统。
    • 支持大型文件系统服务,数据服务应用
    • 功能强大,稳定性和安全性好
    • 常见有
      • HP-UX
      • IBM-AIX
      • Solaris
      • Apple UNIX
  • GNU/Linux
    • Linux是类Unix计算机操作系统的统称。
    • Linux系统比较成熟,拥有着一套完整的权限机制
    • 安全性与稳定性很高
    • 常见有
      • SUSE
      • Kylin
      • Centos
      • Ctyun
      • Redhat
      • OpenEuler

其中 Linux 和 Unix 还有一段渊源:

  • Linux 是一个类似 UNIX 的操作系统,并在功能和用户体验上进行优化,所以 Linux 模仿了 UNIX,使得 Linux 在外观和交互上与 UNIX 非常类似。
  • Linux 内核最初是由李纳斯•托瓦兹(Linus Torvalds)在赫尔辛基大学读书时出于个人爱好而编写的,当时他觉得教学用的迷你版 UNIX 操作系统 Minix 太难用了,于是决定自己开发一个操作系统。第 1 个版本于 1991 年 9 月发布,当时仅有 10000 行代码。
  • UNIX 系统大多是与硬件配套的,也就是说,大多数 UNIX 系统如 AIX、HP-UX 等是无法安装在 x86 服务器和个人计算机上的,而 Linux 则可以运行在多种硬件平台上。
  • UNIX 是商业软件,而 Linux 是开源软件,是免费、公开源代码的。

在上述的服务器操作系统中,我们接下来着重进行 Linux 操作系统的介绍。

5.2 Linux 基础

5.2.1 Linux 系统介绍

5.2.1.1 Linux 操作系统特性

Linux 操作系统是一种非常流行的多任务、多用户操作系统,应用非常广泛。Linux 的主要特点为:

  • 多任务(Multi-tasking):Linux 是一个多任务操作系统,在它内部允许有多个任务同时运行。而 DOS 操作系统是单任务的操作系统,不能同时运行多个任务。系统在执行多任务时,CPU 在某一时刻只能执行一个任务,但 Linux 操作系统将 CPU 时间分片,并把这些时间片分别安排给多个进程。因为 CPU 运行很快,在操作者看来,所有程序(进程)都在同时运行。
  • 多用户(Multi-users):Linux 又是一个多用户操作系统,它允许多个用户同时使用。在 Linux 中,每位用户运行自己的或公用的程序,好像拥有一台单独的机器。DOS 操作系统是单用户的操作系统,只允许一个用户同时使用。
  • 管道:Linux 允许一个程序的输出作为另外一个程序输入,多个程序串起来好像一条管道一样。通过各个简单任务的组合,就可以完成比较复杂的任务,并极大提高了操作的方便性。晚期版本的 DOS 操作系统也借鉴并提供了这种机制。
  • 功能强大的 Shell:Linux 的命令解释器由 Shell 实现。Linux 提供了多种功能强大的 Shell,每种 Shell 本身就是一种解释型高级语言,通过用户编程就可创造无数命令,使用方便。
  • 安全保护机制:Linux 提供了非常强大的安全保护机制,防止系统及其数据未经许可而被非法访问。
  • 完全兼容 POSIX1.0 标准:POSIX,可移植操作系统接口(Portable Operating System Interface,缩写为 POSIX),是 IEEE 为要在各种 UNIX 操作系统上运行的软件,而定义 API 的一系列互相关联的标准的总称,其正式称呼为 IEEE 1003,而国际标准名称为 ISO/IEC 9945。它基本上是 Portable Operating System Interface(可移植操作系统接口)的缩写,而 X 则表明其对 Unix API 的传承。
5.2.1.2 Linux 文件目录结构


Linux 的哲学核心思想是“一切皆文件”。“一切皆文件”指的是对所有文件(目录、字符设备、块设备、套接字、打印机、进程、线程、管道等)操作,读写都可用fopen()/fclose()/fwrite()/fread()等函数进行处理。
如图所示,Linux 的文件目录结构是树形,“/”称为根目录。
登录 Linux 系统后,在当前命令窗口下输入命令:ls / 你会看到图 5-4 所示的回显信息,那么这些目录的作用是我们需要了解的,以下是对这些目录的解释:

  • /bin:bin 是 Binary 的缩写, 这个目录存放着最经常使用的命令。
  • /boot:这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。
  • /dev:dev 是 Device(设备)的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。
  • /etc:这个目录用来存放所有的系统管理所需要的配置文件和子目录。
  • /lib:这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。
  • /media:Linux 系统会自动识别一些设备,例如 U 盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。
  • /mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
  • /opt:这是给主机额外安装软件所摆放的目录。比如你安装一个 ORACLE 数据库就可以放到这个目录下。默认是空的。

5.2.2 Ctyun 简介

5.2.2.1 Ctyun出现的背景
5.2.2.2 Ctyun 操作系统介绍
5.2.2.3 Ctyun 和主流 OS 系的关系

5.2.3 Ctyun 文件系统简介

5.2.3.1 文件系统概述

文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构,即在存储设备上组织文件的方法。
操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。 在操作系统中,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。文件系统的功能包括:管理和调度文件的存储空间,提供文件的逻辑结构、物理结构和存储方法;实现文件从标识到实际地址的映射,实现文件的控制操作和存取操作,实现文件信息的共享并提供可靠的文件保密和保护措施,提供文件的安全措施。

5.2.3.2 Ctyun 文件系统

Ctyun 内核源于 Linux,Linux 内核支持十多种不同类型的文件系统,比如 Btrfs、JFS、ReiserFS、Ext、Ext2、Ext3、Ext4、ISO9660、XFS、Minix、MSDOS、UMSDOS、VFAT、NTFS、HPFS、SMB、SysV、PROC 等,表格中列举常用几种并做说明。

常用文件系统 说明
Ext 专门为Linux设计的文件系统类型,目前最新版本为Ext4
XFS 一种高性能的日志文件系统,最早于1993年,由Silicon Graphics为他们的IRIX操作系统而开发,之后被移植到Linux内核上,特别擅长处理大文件,同时提供平滑的数据传输。
VFAT VFAT是Linux对DOS,Windows系统下的FAT(FAT16和FAT32)文件系统的一个统称
ISO 9600 该文件系统中光盘所使用的标准文件系统,Linux 对该文件系统也有很好的支持,不仅能读取光盘和光盘ISO映像文件,二期还支持再Linux环境中刻录光盘

5.2.4 Ctyun 基础操作

5.2.4.1 Linux 命令行基础知识
5.2.4.1.1 Linux 的 GUI 与 CLI

在了解 Linux 命令行之前,我们首先需知 GUI 和 CLI 的区别。
GUI:Graphical User Interface,图形用户界面。用户界面的所有元素图形化,主要使用鼠标作为输入工具,使用按钮、菜单、对话框等进行交互,追求易用。
CLI:Command Line Interface,命令行界面。用户界面字符化,使用键盘作为输入工具,输入命令、选项、参数执行程序,追求高效。

5.2.4.1.2 为什么要使用 Linux 命令行

在 Linux 系统中,我们通常都是使用命令行的方式来进行相关管理操作,而不是 GUI。
其主要原因有以下几点:

  • 命令行更高效

    • Linux 系统中使用键盘操作速度要比鼠标更快。
    • 图形化界面不可重复,而命令行可以编写脚本完成所有过程(例如:删除过期日志文件)。
  • 图形化界面开销大
    • 运行图形化界面会占用很多的系统资源,运行命令行可以将系统资源释放给更应该做的事情。
  • 命令行有时候是唯一的选择
    • 大部分服务器操作系统不会安装图形界面(GUI)。
    • 联网设备的维护管理工具本来就没有图形化界面供我们使用。
5.2.4.1.3 Linux 命令行操作技巧

在 Linux 系统中,我们通常也需要熟练使用一些快捷键来帮助我们提高工作效率。例如:

  • Tab 键补全

    • 可以用来自动补全命令或文件名,省时准确。
    • 未输入命令状态下,连按两次“Tab”键列出所有可用命令。
    • 已输入部分命令名或文件名,按“Tab”键自动补全。
  • 光标
    • “up 方向键上”:可以调出输入历史执行记录,快速执行命令。
    • “down 方向键下”:配合“up”选择历史执行记录。
    • “Home”:移动光标到本行开头。
    • “Ctrl + A”:移动光标到行首。
    • “Ctrl + E”:移动光标到行尾。
    • “Ctrl + L”:清理屏幕显示。
5.2.4.1.4 如何登录 Linux

Linux 登录方式主要有如下两种:

  • 本地登录

    • 通过服务器本地键盘、鼠标、显示器实现近端本地登录。
  • 远程登录
    • 可以通过 PuTTY、Xshell 等工具远程登录。
5.2.4.1.5 修改密码

对于 Linux 系统来说,密码关系到系统和数据的安全。为保障系统安全,建议需要做以下的密码安全措施:

  • 初次登录系统时修改密码
  • 定期修改密码
  • 设置高复杂度的密码,如八位以上字符,且包含大写字母、小写字母、数字和特殊字符中三种及以上的字符。
在这里插入代码片
5.2.4.1.6 Linux 用户分类

在 Linux 系统中,我们都需要用用户账号来登录系统,Linux 系统也允许同时存在多个用户。
Linux 使用 UID 来表示不同的用户身份,且每个用户的 UID 是唯一的。
Linux 系统根据用户 UID 的不同,将用户分为以下不同的类型(以 openEuler 为例):
超级用户:也叫超级管理员,其 UID=0,拥有系统所有权限,类似 Windows 的Administrator。
系统用户:也叫程序用户,其 1<=UID<=999,一般都是由程序创建,用于程序或者服务运行时候的身份。
普通用户:一般是由管理员 root 创建,用于对系统进行有限的管理维护操作,1000<=UID<=60000。

5.2.4.1.7 Linux 用户创建及删除

用户操作的常用命令:

  • 用户创建(默认普通用户):useradd username
  • 用户查看:id username
  • 用户切换:su username
  • 用户删除:userdel username
在这里插入代码片
5.2.4.2 Ctyun 基础命令
5.2.4.2.1 电源命令:关机与重启

shutdown 命令的作用是关闭计算机,使用权限是超级用户。shutdown 命令可以安全地将系统关机,使用直接断掉电源的方式来关闭 Linux 系统十分危险。因为 Linux 与 Windows 不同,其后台运行着许多进程,所以强制关机可能会导致进程的数据丢失,使系统处于不稳定的状态,甚至在有的系统中会损坏硬件设备。另外,在系统关机前使用 shutdown 命令,系统管理员会通知所有登录的用户系统将要关闭,并且 login 指令会被冻结,即新的用户不能再登录。
shutdown 命令的主要参数:

  • -h:关机后关闭电源。
  • -r:关机后打开电源(相当于重启)。
  • -p:明确表示将关闭系统并切断主电源。

reboot 命令的作用是重新启动计算机,使用权限是系统管理者。
reboot 命令的主要参数:

  • -w:并不会真的重开机,只是把记录写到/var/log/wtmp 文件里。
  • -d:不把记录写到/var/log/wtmp 文件里。
  • -i:关闭网络设置之后再重新启动系统。
5.2.4.2.2 文件路径表示

在 Linux 系统中文件路径分为绝对路径和相对路径。

  • 绝对路径:指从根“/”路径开始来表示文件,例如:/root/Desktop。
  • 相对路径:指从当前路径开始来表示文件,例如:./Desktop。其中“./或.”表示当前路径;“…/或…”表示当前路径的上一级目录。

查看当前路径命令:pwd
路径切换命令:cd
语法:cd [dir]

  • cd /usr:进入目录/usr 中。
  • cd …:进入(退到)上一层目录,两个点代表父目录。
  • cd .:进入当前目录。
  • cd:不带参数,则默认回到家目录。
  • cd -:进入前一个目录,适用于在两个目录之间快速切换。
  • cd ~:进入家目录。
5.2.4.2.3 文件的查看

在 Linux 系统中对文件信息的查看主要分为对目录文件的查看和对普通文件的查看。

  • 查看目录里的内容:ls
  • 普通文件的查看:cat、tail、head

ls 命令:用于查看目录里的文件:

  • -a:查看所有文件,包含隐藏文件。
  • -l:以长格式显示文件的详细信息。
  • -R:递归列出目录文件中的文件。
  • -t:按文件的修改时间排序列出。

cat 命令:一般用于查看小文件,将文件从第一行到最后一行显示到屏幕。
tail 命令:默认查看文件的后 10 行内容:

  • -n:后面接数字(如 5),表示查看文件的后 5 行,可以省略-n 参数直接接数字。
  • -f:动态显示文件的变化,一般用户查看日志文件。

head 命令:默认查看文件的前 10 行内容。
less 和 more:一般用于查看大文件。“q”表示退出,可以在文件中进行搜索查找,按斜杠 “/”+关键字。

5.2.4.2.4 文件的创建

同样的,在 Linux 中创建文件也是分为目录文件创建和普通文件创建。具体示例如下:
目录(文件夹)创建:mkdir

  • 选项-p:递归级联创建目录

普通文件的创建:touch

5.2.4.2.5 文件的复制

cp 命令:拷贝复制文件或目录

  • 选项-a:此选项通常在复制目录时使用,它保留链接、文件属性并复制目录下的所有文件。
  • 选项-r:若给出的源文件是目录文件,此时将复制该目录下所有子目录和文件,并保留属性信息。

cp 命令用于复制文件或者目录,可以一次复制单个文件,也可以一次复制多个文件(cp 命令属于高危命令,使用不慎就会有丢失数据的危险)。
语法:cp [OPTION]… SOURCE… DIRECTORY:

  • -a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。
  • -p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
  • -r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
  • -l:不复制文件,只是生成链接文件。
  • -s:把目标文件建立为源文件的软链接文件,而不是复制源文件。

以下是对 cp 命令的使用示例:

  • cp f1 f2:把文件 f1 复制一份,新文件名为 f2。
  • cp f1 d1/:复制 f1 到目录 d1 下,新文件名字不变。
  • cp f1 f2 f3 d1/:复制多个文件到同一个目录中。
  • cp -i f1 f2:如果 f2 已经存在,则覆盖之前等用户确认。
  • cp -r d1 d2:复制目录时需要-r 参数。
  • cp -rv d1 d2:-v 参数显示复制的过程。
  • cp -s d1 d2:把目标文件建立为源文件的软链接文件,而不是复制源文件。
  • cp -a f1 f2:-a 参数保留原文件的属性,可用于复制块设备,字符设备,管道文件等。
  • cp 命令默认情况下在覆盖文件之前不会询问用户,所以通常情况下 shell 里面已经对它做了别名,加入了-i 参数。cp 命令的-f 参数不是强制覆盖的意思。
5.2.4.2.6 文件的移动和重命名

mv 命令:移动或重命名文件

  • mv 命令用于移动文件或者目录(高危命令,使用不慎就会有丢失数据的危险)。
  • 若原文件和目标文件在同一个目录里面,则 mv 命令的效果就相当于给文件重命名。

mv 命令用于移动件或者目录(高危命令,使用不慎就会有丢失数据的危险)。如果原文件和目标文件在同一个父目录里面,则 mv 命令的效果就相当于给文件改名。
语法:mv [选项] 源文件或目录 目标文件或目录。

  • -b:若需覆盖文件,则覆盖前先行备份。
  • -f:force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖。
  • -i:若目标文件(destination)已经存在时,就会询问是否覆盖。
  • -u:若目标文件已经存在,且 source 比较新,才会更新(update)。
5.2.4.2.7 文件的删除

rm 命令:删除文件或目录

  • rm 命令属于高危命令,没有一个工具能够 100%恢复 rm 命令删除的文件,rm 命令删除文件时并不是把文件放到类似图形界面的“回收站”里,所以没有“撤销删除”操作可用。

语法:rm [OPTION] file_or_dir

  • -f,–force:忽略不存在的文件,从不给出提示。
  • -i,–interactive:进行交互式删除。
  • -r,-R, --recursive:指示 rm 将参数中列出的全部目录和子目录均递归地删除。
  • -v,–verbose:详细显示进行的步骤。
5.2.4.2.8 命令如何获取帮助

在 Linux 系统中,命令太多,记全几乎不太可能,但是,我们可以通过 help 命令获取帮助。
help 命令:获取命令的简单帮助
语法:command --help 或 help command

  • -d:显示命令简短主题描述。
  • -s:显示命令简短语法描述。
5.2.4.3 CTyun 的文本处理
5.2.4.3.1 Linux 文本编辑器—vim

vim 是从 Vi(VisualEditor)发展出来的一个高度可定制的文本编辑器,在 Vi 原有的基础上改进和增加了很多特性。系统安装后默认没有安装 vim,需要手动安装vim。
如图所示,vim 常用的操作有以下三种:

  • 命令行模式(普通模式):文本复制粘贴、删除、撤销、光标来回跳转等操作。
  • 插入模式(编辑模式):文本的编辑、修改等操作。
  • 底行模式(普通模式的一种):在普通模式下按“:”冒号,可以进行文本的保存、退出、搜索替换等操作。
5.2.4.3.2 vim 编辑器命令模式

在 Linux 系统,默认情况下使用 vim 打开文件就会进入到命令模式(普通模式)下。

在这里插入代码片
5.2.4.3.3 vim 命令模式常见操作

在使用 vim 的命令模式编辑文件时,掌握一些快捷键操作会帮助我们提升编辑效率:
快速移动光标

  • 上下左右键或 k、j、h、l 键上下左右移动光标
  • 0:移动到行首
  • g0:移到光标所在屏幕行行首
  • :n:移动到第 n 行
  • gg:到文件头部
  • G:到文件尾部

数据操作

  • yy or Y:复制整行文本
  • y[n]w:复制一(n)个词
  • d[n]w:删除(剪切)1(n)个单词
  • n] dd:删除(剪切)1(n)行
5.2.4.3.4 vim 编辑器插入模式

在命令行使用 vim filename 打开文件,默认进入命令模式,输入 i/I/a/A/o/O 等命令就会进入到编辑模式。

  • 如果 filename 文件存在,则会打开文件并显示文件内容。
  • 如果 filename 文件不存在,vim 会在下面提示“[New File]”,并且会在第一次保存时创建该文件。

按 Ecs 可以退出插入模式,回到命令模式(普通模式)。

5.2.4.3.5 vim 编辑器底行模式

在使用 vim 编辑器对文件内容进行查找、替换或者保存文件时,则需使用低行模式。

  • 查找

    • :/word:在光标之后查找一个字符串 word,按“n”向后继续搜索,“shift+n”向上搜索。
    • :?word:在光标之前查找一个字符串 word,按“n”向后继续搜索。
  • 替换
    • :1,5s/word1/word2/g:将文档中 1-5 行的 word1 替换为 word2,不加“g”则只替换每行的第一个 word1。
    • %s/word1/word2/gi:将文档所有的 word1 替换为 word2,不区分大小写。
  • 保存退出
    • :w:保存文档不退出
    • :wq:保存文档并退出
    • :q:退出不保存文档
    • :q!:文档修改后退出不保存强制退出
    • :wq!:强制保存退出
5.2.4.4 CTYUN 的网络管理
5.2.4.4.1 CTYUN 系统网络重要概念

我们首先需要掌握 Linux 系统中的网络概念。例如:

  • 主机网络设备:主机内的网卡。
  • 接口:为使用设备,驱动程序在设备上创建了接口。
  • 广播地址:到达本网段上所有主机的地址。
  • 子网掩码:将 IP 地址划分成网络地址和主机地址两部分的掩码。
  • 路由:IP 包跨网段访问时候的下一跳地址。
  • 链路:设备到网络的连接。

5.2.4.4.2 查看 IP 地址相关命令
在 Linux 中可以使用 ip、ifconfig 命令可以查看当前主机的 IP 地址信息
例如查看主机所有网卡信息:

在这里插入代码片

例如查看主机某个接口信息:

在这里插入代码片
5.2.4.4.3 配置静态 IP 地址

在 openEuler 操作系统中,我们配置静态 IP 地址主要有两种方式:修改网卡配置文件和nmcli 命令修改。
若通过修改网卡配置文件来配置静态 IP 地址,我们首先需要知道网卡配置文件所在的路径,例如,/etc/sysconfig/network-scripts/ifcfg-enp0s3。然后使用 vim 命令编辑配置文件。

在这里插入代码片

如图所示为配置 enp0s3 接口的静态 IP 地址:192.168.56.100/24。配置完成后还需要重启网络。例如:

在这里插入代码片

另外一种方式,则是使用 nmcli 命令来实现。以下为使用 nmcli 命令配置案例:

  • 查看当前主机网络连接
在这里插入代码片
  • 配置静态 IP 地址
在这里插入代码片
  • 重启网络
在这里插入代码片
  • 查看 IP
在这里插入代码片
5.2.4.4.4 Linux 系统的路由管理与配置

在 CTYUN 中,使用 route 命令查看、配置、管理本机路由。
除了 route 命令,ip 命令也可以用来管理系统路由。
这些命令作用于系统中的路由表,系统运行时,路由表加载到内存中,由系统内核进行维护。
使用 route 命令查看路由表,如下:

在这里插入代码片
5.2.4.4.5 route 新增路由

在 CTYUN 中新增一条到网段或主机的路由,如下(临时生效):

在这里插入代码片

具体使用示例如下:

在这里插入代码片

其中:

在这里插入代码片

代表新增到 192.168.101.0/24 网段路由,经由 enp3s0 发送出去。

在这里插入代码片

代表新增到 192.168.101.100 主机路由,经由 enp3s0 发送出去。
通过 route 查看路由表可知,到主机的路由优先于到网段的路由。

5.2.4.4.6 route 删除路由

使用 route del 命令删除到网段或者主机的路由。
语法:

在这里插入代码片

举例

在这里插入代码片

其中:

在这里插入代码片

代表删除到 192.168.101.0/24 网段路由。删除网段路由时,网段和掩码这两个参数一定需要携带,dev 参数可以不携带。

在这里插入代码片

代表删除到 192.168.101.100 主机路由。后面的 dev 参数可以不带。
删除 route 文件中的路由,采用 vi 编辑,然后重启网络即可。

5.2.4.4.7 主机名

对于操作系统来说,主机名是用来在一个局域网中标识一台机器的名称。
这台机器不一定是一台物理机器,也可以是一台虚拟机。
主机名信息存放在文件/etc/hostname 中。

在这里插入代码片
5.2.4.4.8 设置主机名

在 openEuler 操作系统中,可以用以下几种方式修改主机名:

  • 临时设置主机名:hostname new-name
  • 永久设置主机名:hostnamectl set-hostname new-name
  • 通过修改文件设置主机名:在/etc/hostname 文件中写入 new-name

使用示例如下:

在这里插入代码片

需要注意的是,主机名设置完成后并不会立即生效,重新登录后才能在命令提示符中看到,或者 source .bashrc。在命令行使用 hostname 命令查看当前系统的主机名。

5.2.4.4.9 hosts 文件介绍

局域网中存在着一些主机,我们可以通过 IP 地址去访问它们。随着局域网中主机数量增加,IP 地址较难记忆,我们希望通过主机名直接访问其他主机。
这时我们可以通过一张记录主机名和 IP 地址对应的表找到这些主机,这张表就是 hosts 文件。hosts 是一个没有扩展名的系统文件,其基本作用就是将一些常用的网址域名与其对应的IP 地址建立一个关联“数据库”。
当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从 hosts 文件中寻找对应的 IP地址,一旦找到,系统就会立即打开对应网页。
如果没有找到,则系统会将网址提交 DNS 域名解析服务器进行 IP 地址的解析。
查看 hosts 文件的命令使用示例如下:

在这里插入代码片
5.2.4.4.10 修改 hosts 文件

如果需要对 hosts 文件内容作调整,可以用编辑器修改 hosts 文件内容,格式:

在这里插入代码片

若想去掉 hosts 文件中的某条记录,加#注释即可,如:

在这里插入代码片

6.虚拟化技术介绍

虚拟化技术是云计算的基础

6.1 虚拟化技术概览

6.1.1 虚拟化技术简介

6.1.1.1 什么是虚拟化


对于虚拟化的基础概念,前文在 1.2.2.1 章节中已经作了相关的阐述,这里就不再赘述。

6.1.1.2 虚拟化中的重要概念


如图所示,服务器(Host Machine)在经过虚拟化之后,它的上一层部署虚拟机监视器 Hypervisor,也称之为 Virtual Machine Monitor,VMM。Hypervisor 是一种运行在基础物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享硬件。简而言之,服务器有了 Hypervisor 就可以将硬件虚拟化,使得在虚拟化资源上创建虚拟机(Guest Machine),然后在创建出来的虚拟机中安装需要的操作系统(Guest OS)。

6.1.1.3 虚拟化的类型
分类 说明
全虚拟化 使用VMM实现CPU、内存、设备I/O的虚拟化,而Guest OS和计算机系统硬件都不需要进行修改。该方式兼容性好,但会给处理器带来额外的开销
半虚拟化 使用VMM实现CPU和内存虚拟化,设备I/O虚拟化由Guset OS实现。需要修改Guest OS,使其能够与VMM协同工作。该方式兼容性差,但性能较好
硬件辅助虚拟化 借助硬件(主要是处理器)的支持来实现高效的全虚拟化。该方式不需要修改Guest OS,兼容性好。该技术将逐渐消除软件虚拟化技术之间的差别,成为未来的发展趋势。

目前虚拟化技术主要有全虚拟化(使用二进制翻译)、半虚拟化(操作系统辅助)和硬件辅助虚拟化这几种。

6.1.1.4 虚拟化的特点

虚拟化主要有分区、隔离、封装以及相对于硬件独立的特点。
分区:分区意味着虚拟化层为多个虚拟机划分服务器资源的能力;每个虚拟机可以同时运行一个单独的操作系统(相同或不同的操作系统),使用户能够在一台服务器上运行多个应用程序;每个操作系统只能看到虚拟化层为其提供的“虚拟硬件”(虚拟网卡、CPU、内存等),使它误以为运行在自己的专用服务器上。分区解决了以下两个方面的问题:

  • 每个分区划分资源配额,防止虚拟化超配额使用资源。
  • 每个虚拟机单独安装操作系统,彼此互不影响。

隔离:通过分区所建立的多个虚拟机之间采用逻辑隔离措施,防止相互影响。隔离解决了以下两个方面的问题:

  • 一个虚拟机的崩溃或故障(例如,操作系统故障、应用程序崩溃、驱动程序故障等等)不会影响同一服务器上的其他虚拟机。
  • 一个虚拟机中的病毒、蠕虫等,与其他虚拟机相隔离,就像每个虚拟机都位于单独的物理机器上一样。

通过隔离,我们可以进行资源控制以提供性能隔离,即为每个虚拟机指定最小和最大的资源使用量,以确保某个虚拟机不会占用所有资源而使同一系统中的其他虚拟机无资源可用;也可以在单一机器上同时运行多个负载/应用程序/操作系统,而不会出现我们刚才讨论的传统 x86 架构服务器的局限性时提到的那些问题(应用程序冲突、DLL 冲突等)。
封装:封装意味着将整个虚拟机(硬件配置、BIOS 配置、内存状态、磁盘状态、CPU 状态)储存在独立于物理硬件的一小组文件中。只需复制几个文件就可以随时随地根据需要复制、保存和移动虚拟机。不少人都用过 VMWare Workstation 这个虚拟化产品,我们创建的虚拟机是可以通过复制一小组虚拟机文件到其他安装有 VMWare Workstation 的电脑上重新打开运行的。对虚拟机的迁移而言,最重要的就是封装特性,封装也是虚拟化所有本质特性中最为重要的特性。这是因为虚拟机成为独立于硬件的文件,那么虚拟机就可以具备迁移和热插拔等特性,这些也都和虚拟机封装特性息息相关。
相对硬件独立:虚拟机封装为独立文件后,虚拟机迁移只需要把虚拟机设备文件和配置文件或磁盘文件复制到另一台主机上运行即可,而不用关心底层的硬件类型是否兼容,这就是相对硬件的独立性。因为底层的硬件设备被其上运行的虚拟机监视器 VMM(Virtual Machine Monitor)屏蔽,运行在 VMM 之上的虚拟机只要关心目的主机是否也存在相同的 VMM,而不用关心底层的硬件规格配置等信息。这就好比我们在 Windows 7 系统上用 office 2007 编辑 word 文件,然后把这个 word 文件复制到另一台 Windows 10 系统的电脑上,这时我们只要关心是否有可以打开文档的 office 2007,而不必关心底层硬件 CPU 是什么型号,内存有多大规格。

6.1.1.5 虚拟化的优势


如图所示,在使用传统物理服务器作用基础 IT 设施的时候,存在着诸多的局限性。例
如,操作系统与物理服务器存在绑定关系;在业务需要时,难以方便地迁移,可靠性难以控制;资源难以扩展,并且整体的资源利用率低;空间占用高,难以管理等。
而在使用了虚拟化服务器之后,上述的问题基本都得以解决。基于虚拟化层—Hypervisor,使得业务操作系统与物理服务器分离,基于虚拟化的颗粒度,使得业务易于迁移、扩展,资源以方便地得到整合;此外,标准化的虚拟硬件由一系列文件组成,易于保护。
在服务器上实现的计算虚拟化主要包括 CPU 虚拟化、内存虚拟化以及 I/O 虚拟化。接下来我们分别来了解这三者的内容。

6.1.1.6 CPU 虚拟化
6.1.1.6.1 CPU 虚拟化方案

在讲 CPU 虚拟化前,我们先简单介绍一下 CPU 的分级保护域,在这种保护模式中,CPU 被分成 4 个环—Ring 0、Ring 1、Ring 2 和 Ring 3,其中 Ring 0 的权限最高,Ring 1 次之,Ring 2 再次之,Ring 3 最低。Ring 0 的权限可以直接操作硬件,一般只有操作系统和驱动会允许拥有此权限。Ring 3 的权限最低,所有程序都可以拥有此权限。为了保护计算机,一些危险的指令只能由操作系统执行,以防止一些恶意软件随意地调用硬件资源,比如某个程序需要开启摄像头就必须向 Ring 0 的驱动程序请求开启,否则会被拒绝此类操作。
主机操作系统所发出的指令一般分为两种类型:特权指令和普通指令。

  • 特权指令:是指用于操作和管理关键系统资源的指令,这些指令只在最高特权级上才能够运行,即必须在 Ring 0 级别上才能运行的指令。
  • 普通指令:与特权指令相对的是普通指令,这些指令在 CPU 普通权限级别上就能够运行,即在 Ring 3 级别上就可以运行的指令。

在虚拟化环境中,还有一种特殊指令被称为敏感指令。敏感指令是指修改虚拟机的运行模式或宿主机状态的指令,也就是说将 Guest OS 中原本需要在 Ring 0 模式下才能运行的特权指令剥夺特权后,交给 VMM 来执行的指令。
虚拟化技术首先出现在 IBM 大型机上,大型机是如何解决 CPU 共享问题的呢?首先我们来了解一下大型机的 CPU 虚拟化方式。大型机 CPU 虚拟化采用的方法是“特权解除(Privilege deprivileging)”和“陷入模拟(Trap-and-Emulation)”,该方法也被称为经典虚拟化方式。它的基本原理是,将 Guest OS 运行在非特权级(即“特权解除”),而将 VMM 运行在最高特权级(即完全控制系统资源)。
这时候就出现了这样一个问题:如果虚拟机 Guest OS 发出特权操作指令怎么执行呢?因为所有虚拟机的系统都被解除了特权,于是“陷入模拟”就发挥作用了,它解除 Guest OS 的特权后,Guest OS 的大部分指令仍可以在硬件上直接运行,只有当执行到特权指令时,才会陷入到 VMM 模拟执行(陷入-模拟)。由 VMM 代替虚拟机向真正的硬件 CPU 发出特权操作指令。
CPU 经典虚拟化方式结合原始操作系统具有的定时器中断机制,完美解决了 CPU 虚拟化的问题。以图为例,虚拟机 1 发送特权指令 1 到虚拟机监视器 VMM,此时触发中断,虚拟机监视器 VMM 会将虚拟机 1 发送的特权指令 1 陷入到虚拟机监视器 VMM 中进行模拟,再转换成 CPU 的特权指令 1’,虚拟机监视器 VMM 根据调度机制调度到硬件 CPU 上执行,并返回结果给虚拟机 1。

当虚拟机 1 和虚拟机 2 同时发送特权指令到虚拟机监视器 VMM 时,指令都被陷入模拟,虚拟机监视器 VMM 调度机制进行统一调度。首先执行指令1’,然后再执行指令 2’。所以采用定时器中断机制以及特权解除—陷入模拟的方法可以成功实现 CPU 的虚拟化功能。
那么为什么需要中断机制呢?CPU 在程序运行时系统外部、系统内部或当前运行的程序本身若出现紧急事件,CPU 立即中止当前运行的程序,自动转入相应的处理程序(中断服务程序),待处理完后,再返回原来的程序运行,这整个过程称为程序中断。例如你在看视频时,QQ 突然有信息弹出,在这个过程中就会触发中断机制。CPU 会暂停视频播放进程,而去执行QQ 进程。CPU 在处理完 QQ 进程后,继续执行视频播放进程。当然,这个中断时间非常短暂,对用户是无感知的。
随着 x86 主机性能越来越强,如何将虚拟化技术应用到 x86 架构成为实现 x86 服务器虚拟化的主要问题。这时,人们自然而然想到曾经在大型机上使用的 CPU 虚拟化技术。那么大型机使用的 CPU 经典虚拟化方式能否移植到 x86 服务器上呢?答案是否定的,这是为什么呢?要回答这个问题,我们就需要先了解 x86 架构的 CPU 和大型机 CPU 的不同之处。大型机(包括后来发展的小型机)是 PowerPC 架构,即精简指令集 RISC 计算机架构。RISC架构的 CPU 指令集中,虚拟机特有的敏感指令是完全包括在特权指令中的,在虚拟机操作系统解除特权后,特权指令和敏感指令都可以被正常陷入模拟并执行,因为特权指令包含敏感指令,所以 RISC 架构的 CPU 采用特权解除和陷入模拟是没有问题的。但是 x86架构的 CPU 指令集不同于 RISC 架构的 CISC 架构
具体来说,基于 x86 的 CISC 指令集有 19 条敏感指令不属于特权指令的范畴,这部分敏感指令运行在 CPU 的 Ring 1 用户态上。这会带来什么问题呢?显然,当虚拟机发出这 19 条敏感指令时,由于指令不属于特权指令,因而这些敏感指令不能“陷入-模拟”被虚拟机监视器(VMM)捕获,因此 x86 无法使用“解除特权”,“陷入-模拟”的经典虚拟化方式实现 x86架构的虚拟化。这种问题被称为虚拟化漏洞问题。既然基于大型机的 CPU 虚拟化方案无法直接移植到 x86 平台上,那么 x86 应该采用什么方式实现 CPU 虚拟化呢?
聪明的 IT 架构师们想出了解决这个问题的三种方法。它们分别是:全虚拟化、半虚拟化以及硬件厂商提出的硬件辅助虚拟化。

  • 全虚拟化解决方案

经典虚拟化方案不适合 x86 架构的 CPU,其根本原因在于那 19 条超出特权指令的敏感指令。如果识别出这些敏感指令,并使其可以被 VMM 陷入-模拟,那么 CPU 虚拟化就解决了。但是该如何识别出这 19 条指令呢?
有一种类似于“宁可错杀三千,绝不放过一个”的思路,也就是说将所有虚拟机发出的操作系统请求转发到虚拟机监视器(VMM),虚拟机监视器对请求进行二进制翻译(Binary
Translation),如果发现是特权指令或敏感指令,则陷入到 VMM 模拟执行,然后调度到CPU 特权级别上执行;如果只是应用程序指令则直接在 CPU 非特权级别上执行。这种方法由于需要过滤所有虚拟机发出的请求指令,因而被称为全虚拟化方式。全虚拟化的实现方式如图

全虚拟化方案最早是由 Vmware 提出并实现的,运行时虚拟机监视器 VMM 对虚拟机操作系统 Guest OS 二进制代码进行翻译,不修改虚拟机操作系统,虚拟机的可移植性和兼容性较强,但二进制翻译会带来虚拟机监视器(VMM)性能的开销。全虚拟化方式的优点是:不修改虚拟机操作系统,虚拟机的可移植性和兼容性较强,支持广泛的操作系统;但缺点是:运行时修改 Guest OS 二进制代码,性能损耗较大,并且引入了新的复杂性,导致虚拟机监视器(VMM)开发难度较大。正是因为全虚拟化具有上述缺点,因此 Xen 提出了半虚拟化解决方案。

  • 半虚拟化解决方案

    虚拟化漏洞的问题来源于 19 条敏感指令,如果我们可以修改虚拟机操作系统 Guest OS 规避虚拟化漏洞,那么问题就容易解决了。
    半虚拟化如图所示,修改虚拟机操作系统 Guest OS,让虚拟机操作系统能够意识到自己是被虚拟化的,虚拟机操作系统会“超级调用”(Hypercall)Hypervisor 层来替换虚拟化
    中的敏感指令,从而实现虚拟化,而其他应用程序等非敏感或非特权请求则直接在 CPU 非特权级别上执行。半虚拟化所具有的优点是:半虚拟化中的 Guest OS 可以同时支持多个不同的操作系统,并提供与原始系统相近的性能。但缺点是:半虚拟化中的 Host OS 只支持修改开源的操作系统,如 Linux,而对于未开源的如 Windows 系统,则无法实现半虚拟化。此外,被修改过的虚拟机操作系统 Guest OS 可移植性较差。

  • 硬件辅助虚拟化解决方案

    虚拟化漏洞问题的解决,无论是全虚拟还是半虚拟,都默认一个前提,即物理硬件是不具备虚拟化识别功能的,因此必须识别出这 19 条敏感指令,并通过虚拟机监视器 VMM 进行陷入模拟。如果物理 CPU 直接支持虚拟化功能,并且可以识别出敏感指令,那么 CPU 虚拟化方式就将发生革命性的改变。
    幸运的是,目前主流的 x86 主机的 CPU 都支持硬件虚拟化技术,即 Intel 推出了 VT-x(Intel Virtualization Technology)的 CPU,AMD 也推出了 AMD-V 的 CPU。VT-x 和 AMD-V,这两种技术都为 CPU 增加了新的执行模式—root 模式,可以让虚拟机监视器 VMM 运行在 root模式下,而 root 模式位于 CPU 指令级别 Ring 0 下。特权和敏感指令自动在 Hypervisor 上执行,所以无需全虚拟化或半虚拟化技术。这种通过硬件辅助虚拟化解决虚拟化漏洞,简化VMM 的工作,不需要半虚拟化和二进制翻译的方法,被称为 CPU 的硬件辅助虚拟化技术。

6.1.1.6.2 CPU 与 VCPU 的对应关系


vCPU 数量和物理 CPU 对应关系如图所示。
以 RH 服务器使用 2.6 GHz 主频 CPU 为例,单台服务器有 2 个物理 CPU,每颗 CPU 有 8核,又因为超线程技术可以提供每个物理内核两个处理线程,因此每颗 CPU 有 16 线程,总vCPU 数量为 282=32 个 vCPU。总资源为 32*2.6 GHz=83.2 GHz。
虚拟机 vCPU 数量不能超过单台 CNA 节点可用 vCPU 数量。多个虚拟机间可以复用同一个物理 CPU,因此单 CNA 节点上运行的虚拟机 vCPU 数量总和可以超过实际 vCPU 数量。

6.1.1.7 内存虚拟化

CPU 实现了虚拟化之后,与 CPU 关系极为密切的硬件—内存也将发生巨大的变化。为什么CPU 虚拟化后会导致内存虚拟化的出现呢?
随着 CPU 虚拟化的出现和应用,运行在 VMM 层之上的虚拟机取代了物理主机,成为承载业务和应用的载体,并且在一台物理主机上有多台虚拟机同时运行着。那么问题来了,物理主机通常只有一根或几根内存条,面对多个虚拟机对内存的需求,该如何分配内存资源呢?显然,解决问题的办法还是虚拟化技术,因此内存虚拟化技术就出现了。内存虚拟化遇到的一个问题是:如何分配内存地址空间?因为通常情况下,物理主机在使用内存地址空间时,要求满足如下两点要求:

  • 内存地址都是从物理地址 0 开始的。
  • 内存地址空间都是连续分配的。

但很显然,引入虚拟化后就出现了这样的问题:首先是要求内存地址空间都从物理地址 0 开始,因为物理地址为 0 的内存地址空间只有一个,无法同时满足所有虚拟机使用的内存都从 0开始的要求;其次是内存地址连续分配问题。即使可以为虚拟机分配连续的物理地址,但是内存使用效率不高,缺乏灵活性。
解决内存共享问题的思路就在于引入内存虚拟化技术。内存虚拟化就是把物理机的真实物理内存统一管理,包装成多份虚拟的内存给若干虚拟机使用。内存虚拟化技术的核心在于引入一层新的地址空间—客户机物理地址空间,客户机(Guest)以为自己运行在真实的物理地址空间中,实际上它是通过 VMM 访问真实的物理地址的,在 VMM 中保存的是客户机地址空间和物理机地址空间之间的映射表,如图所示。

内存虚拟化的内存地址转换涉及到三种内存地址,即虚拟机内存地址(Guest Virtual
Address,即 GVA)、物理内存地址(Guest Physical Address,即 GPA)和机器内存地址(Host Physical Address,即 HPA)。为了能够在物理主机上运行多个虚拟机,需要实现GVA(虚拟内存)—>GPA(物理内存)—>HPA(机器内存)之间的地址转换。虚拟机 Guest OS 控制虚拟地址到客户内存物理地址的映射(GVA—>GPA),但是虚拟机 Guest OS 不能直接访问实际机器内存,因此 Hypervisor 需要负责映射客户物理内存到实际机器内存(GPA—>HPA)。

6.1.1.8 I/O 虚拟化

由于计算虚拟化的出现,物理服务器上会创建出许许多多的虚拟机,并且每台虚拟机都需要访问物理主机的 I/O 设备。但 I/O 设备的数量毕竟是有限的,为了满足多个虚拟机共同使用 I/O设备的需求,就需要虚拟机监视器 VMM 的参与。VMM 用于截获虚拟机对 I/O 设备的访问请求,再通过软件去模拟真实的 I/O 设备,进而响应 I/O 请求。从而让多个虚拟机访问有限的I/O 资源。实现 I/O 虚拟化的方式主要有三种:全虚拟化、半虚拟化和硬件辅助虚拟化,其中硬件辅助虚拟化技术是目前 I/O 虚拟化的主流技术。

  1. 全虚拟化(全模拟):全虚拟化的实现原理是,通过 VMM 为虚拟机模拟出一个与真实设备类似的虚拟 I/O 设备,当虚拟机对 I/O 设备发起 I/O 请求时,VMM 截获虚拟机下发的 I/O访问请求,再由 VMM 将真实的访问请求发送到物理设备进行处理。这种虚拟化方式的优点是:虚拟机无论使用任何类型的操作系统,操作系统都不需要为 I/O 虚拟化做任何修改,就可以让多个虚拟机直接使用物理服务器的 I/O 设备。但这种方式的缺陷是:VMM 需要实时截获每个虚拟机下发的 I/O 请求,截获请求后模拟到真实的 I/O 设备中。实时监控和模拟的操作都是通过 CPU 运行软件程序来实现的,因此会给服务器带来较严重的性能损耗。
  2. 半虚拟化:半虚拟化方式与全虚拟化方式的明显区别是:它需要建立一个特权级别的虚拟机,即特权虚拟机。半虚拟化方式要求各个虚拟机运行前端驱动程序,当需要访问 I/O 设备时,虚拟机通过前端驱动程序把 I/O 请求发送给特权虚拟机,由特权虚拟机的后端驱动收集每个虚拟机所发出的 I/O 请求,再由后端驱动对多个 I/O 请求进行分时分通道处理。特权虚拟机运行真实的物理 I/O 设备驱动,将 I/O 请求发送给物理 I/O 设备,I/O 设备处理完成后再将结果返回给虚拟机。半虚拟化方式的优点是:主动让虚拟机把 I/O 请求发送给特权虚拟机,再由特权虚拟机访问真实的 I/O 设备,这就减少了 VMM 的性能损耗。但这种方式也有一个缺陷,即需要修改虚拟机操作系统,改变操作系统对自身 I/O 请求的处理方式,将 I/O 请求全部发给特权虚拟机处理。这就要求虚拟机操作系统必须是可以被修改的(通常是 Linux 操作系统)。我们来比较下全虚拟化和半虚拟化两种方式,全虚拟化的 VMM 相当于是一个调查员,他需要收集和归纳每一位客户的意见请求;而半虚拟化的 VMM 则相当于一个意见收纳箱(即特权虚拟机),各个用户自行将意见请求放入收纳箱,再由 VMM 统一处理这些意见请求。由于半虚拟化显著减少了 VMM 的性能损耗,因而能获得更好的 I/O 性能。但我们也注意到,全虚拟化和半虚拟化这两种方式都有一个共同的特点,即 I/O 访问处理都需要由 VMM 介入,这势必会造成虚拟机在访问 I/O 设备时的性能损耗。
  3. 硬件辅助虚拟化:硬件辅助虚拟化不同于前面两种方式,它是将 I/O 设备驱动直接安装在虚拟机操作系统中,不需要对操作系统做任何修改即可使用。这种方式与我们熟悉的传统 PC主机操作系统直接访问硬件是相同的。这就使得虚拟机访问 I/O 硬件所需的时间与传统 PC 机的访问时间相同。按照前面的例子,硬件辅助虚拟化就相当于一个智能的信息收集、处理平台,用户的意见请求可以直接向该平台提交,并自助完成业务处理,无需人工干预。因此硬件辅助虚拟化在 I/O 性能上远远超过全虚拟化和半虚拟化方式。但硬件辅助虚拟化需要特殊的硬件支持。

6.1.2 主流虚拟化技术介绍

6.1.2.1 Xen 虚拟化简介

Xen 最初是剑桥大学 Xensource 的一个开源研究项目,2003 年 9 月发布了首个版本 Xen 1.0,2007 年 Xensource 被 Citrix 公司收购,开源 Xen 转由 www.xen.org 继续推进,该组织成员包括个人和公司(如 Citrix、Oracle 等)。该组织在 2011 年 3 月发布了版本 Xen 4.1。
相对于 ESX 和 Hyper-V 来说,Xen 支持更广泛的 CPU 架构,前两者只支持 CISC 的 x86/x86_64 CPU 架构,Xen 除此之外还支持 RISC CPU 架构,如 IA64、ARM 等。
Xen 支持两种类型的虚拟机,一类是半虚拟化(PV,Paravirtualization),另一类是全虚拟化(Xen 称其为 HVM,Hardware Virtual Machine)。半虚拟化需要特定内核的操作系统,如基于 Linux paravirt_ops(Linux 内核的一套编译选项)框架的 Linux 内核,而 Windows 操作系统由于其封闭性则不能被 Xen 的半虚拟化所支持,Xen 的半虚拟化有个特别之处就是不要求 CPU 具备硬件辅助虚拟化,这非常适用于 2007 年之前的旧服务器虚拟化改造。全虚拟化支持原生的操作系统,特别是针对 Windows 这类操作系统,Xen 的全虚拟化要求 CPU 具备硬件辅助虚拟化,它修改的 QEMU 仿真所有硬件,包括:BIOS、IDE 控制器、VGA 显示卡、USB 控制器和网卡等。为了提升 I/O 性能,全虚拟化特别针对磁盘和网卡采用半虚拟化设备来代替仿真设备,这些设备驱动称之为 PV on HVM,为了使 PV on HVM 有最佳性能,CPU应具备 MMU 硬件辅助虚拟化。
Xen 的 hypervisor直接运行在硬件之上,并先于 Domain0 启动,Domain0 作为 Xen 中的特权域,它可以用来创建新的虚拟机,并访问原生的设备驱动。图 6-16 是最早期的 Xen 的架构,可以看到每个虚拟域都有一个 frontend 的组件,这是 Xen 需要修改客户机操作系统的另一个方面,客户机要想访问设备必须通过frontend 与 Domain0 中的 backend 交互,由 Domain0 代为访问。Xen 的 Hypervisor 层少于 15 万行的代码量,不包含任何物理设备驱动,这一点与 Hyper-V是非常类似的,物理设备的驱动均是驻留在 Dom0 中,可以重用现有的 Linux 设备驱动程序。因此,Xen 对硬件兼容性也是非常广泛的,只要是 Linux 支持的,它就支持。

6.1.2.2 KVM 虚拟化简介

KVM 的全称是 Kernel-based Virtual Machine,字面意思是基于内核的虚拟机。其最初是由 Qumranet 公司开发的一个开源项目。2008 年,Qumranet 被 Red Hat 所收购,但 KVM 本身仍是一个开源项目,由 Red Hat、IBM 等厂商支持。
KVM 之所以叫做基于内核的虚拟机,是因为 KVM 本身是一个 Linux 内核模块,当安装有Linux 系统的物理机安装了这个模块后,就变成了 Hypervisor,而且还不会影响原先在该Linux 上运行的其他应用程序。与 Xen 类似,KVM 支持广泛的 CPU 架构,除了 x86/x86_64 CPU 架构之外,还将会支持大型机(S/390)、小型机(PowerPC、IA64)及 ARM 等。
KVM 充分利用了 CPU 的硬件辅助虚拟化能力,并重用了 Linux 内核的诸多功能,使得 KVM本身是非常瘦小的,KVM 的创始者 Avi Kivity 声称 KVM 模块仅有约 10000 行代码,但我们不能认为 KVM 的 Hypervisor 就是这个代码量,因为从严格意义来说,KVM 本身并不是Hypervisor,它仅是 Linux 内核中的一个可装载模块,其功能是将 Linux 内核转换成一个Hypervisor。
通过 KVM 模块的加载将 Linux 内核转变成 Hypervisor,Linux 本身运行于内核模式,主机进程运行于用户模式,虚拟机则运行于客户模式,使得转变后的 Linux 内核可以将主机进程和虚拟机进行统一的管理和调度,这也是 KVM 名称的由来。

6.1.2.3 KVM 与 QEMU


在 KVM 虚拟化方案中,KVM 主要用于管理 CPU 和内存的虚拟化,IO 设备的虚拟化则由 QEMU 来完成。
QEMU 是一个纯软件实现的开源(模拟)软件,它能够模拟整套虚拟机的实现,包括 CPU、内存、IO 设备、USB、网卡等。
KVM 用来模拟 CPU 的运行,但缺少了对 Network 和 I/O 的支持。QEMU-KVM 是一个完整的模拟器,它基于 KVM 上,提供了完整的 I/O 模拟支持。其中 OpenStack 为了跨 VM 性,所以不会直接控制 QEMU-KVM,而是通过 Libvirt 的库去间接控制 QEMU-KVM,后续我们会对Libvirt 进行介绍。
KVM 离不开 QEMU。KVM 实现初期,为了简化开发和代码重用,在 QEMU 基础上进行了修改,主要是将比较消耗 CPU 性能的 CPU 虚拟化和内存虚拟化部分移交到了内核中实现,保留IO 虚拟化模块在用户空间实现。避免了用户态和内核态的频繁切换,优化使用性能。
QEMU 离不开 KVM。之前我们提到,QEMU 是一个纯软件的实现,运行在用户空间,性能非常低下,所以从 QEMU 的角度可以说是 QEMU 使用了 KVM 的虚拟化功能,为自身虚拟机提供资源与加速。
/dev/kvm 接口是 QEMU 和 KVM 交互的“桥梁”。/dev/kvm 本身是一个设备文件,我们可以通过 ioctl 函数来对该文件进行控制和管理,从而完成用户空间与内核空间的数据交互。KVM 与 QEMU 的通信过程主要就是一系列针对该设备文件的 ioctl 系统调用。

6.1.2.4 KVM 工作原理


KVM 基本结构如图 6-18 所示。KVM 已经是内核模块,被看作是一个标准 Linux 字符集设备(/dev/kvm)。QEMU 通过 Libkvm 应用程序接口,用 fd(文件描述符)通过 ioctl 向设备驱动来发送创建、运行虚拟机命令。设备驱动 KVM 会解析命令。
KVM 模块让 Linux 主机成为了一个虚拟机监视器(VMM),在原有执行模式基础上,增加了客户模式。在虚拟机运行时,三种模式的工作为:

  • 客户模式:执行非 I/O 的客户代码,虚拟机运行在这个模式下。
  • 用户模式:代表用户执行 I/O 指令,QEMU 运行在这个模式下,它用来为虚拟机模拟执行 I/O 类的操作请求。
  • 内核模式:实现客户模式切换,处理因 I/O 或者其他指令引起的从客户模式退出动作(VM-Exit)。KVM 模块工作在这个模式下。此模式下可以真正操作硬件,当Guest OS 执行 I/O 类操作或特权指令操作时,需要向用户模式提交请求,然后由用户模式再次发起硬件操作请求给内核模式,从而真正操作硬件。
6.1.2.5 虚拟化平台管理工具—Libvirt

虚拟化领域针对不同的场景提出了很多虚拟化解决方案(KVM、Xen 等),为了支持更多厂商以及更多领域,很多 IaaS 解决方案需要融合多种虚拟化技术,在这个需求背景下,Libvirt就为用户提供了一个平台类的管理工具 ,同时支持多种虚拟化方案。
Libvirt 是为了更方便地管理平台虚拟化技术而设计的开放源代码的应用程序接口、守护进程和管理工具,它不仅提供了对虚拟化客户机的管理,也提供了对虚拟化网络和存储的管理。
Libvirt 对多种不同的 Hypervisor 的支持是通过一种基于驱动程序的架构来实现的。Libvirt 对不同的 Hypervisor 提供了不同的驱动:对 Xen 有 Xen 的驱动,对 QEMU/KVM 有 QEMU 驱动。
Libvirt 作为中间适配层,让底层 Hypervisor 对上层用户空间的管理工具做到完全透明,因为Libvirt 屏蔽了底层各种 Hypervisor 的细节,为上层管理工具提供了一个统一的、较稳定的接口(API)。

6.1.2.6 Xen VS KVM


总的来说,Xen 平台和 KVM 平台各有千秋。
Xen 平台架构侧重安全性:为保证安全性,各 Domain 之间对共享区域的访问和映射必须通过 Hypervisor 授权。
KVM 平台架构侧重性能:VM 之间以及与 Host Kernel 之间对共享区域的访问和映射无需Hypervisor 进行授权,故整个访问路径较短。使用 Linux Baremetal 内核,无 PVOPS 性能损耗。

7 虚拟化平台介绍

7.1 产品介绍

7.1.1 虚拟化套件

虚拟化套件是业界领先的虚拟化解决方案,能够帮助客户带来如下的价值:

  • 帮助客户提升数据中心基础设施的资源利用率。
  • 帮助客户成倍缩短业务上线周期。
  • 帮助客户成倍降低数据中心能耗。
  • 利用虚拟化基础设施的高可用和强恢复能力,实现业务快速自动化故障恢复,降低数据中心成本和增加系统应用的正常运行时间。
    虚拟化套件通过在服务器上部署虚拟化软件,使一台物理服务器可以承担多台服务器的工作。通过整合现有的工作负载并利用剩余的服务器以部署新的应用程序和解决方案,实现较高的整合率。
    若企业的虚拟化环境为单虚拟化场景时,此时企业只需要采用 FusionCompute 作为统一的操作维护管理平台对整个系统进行操作与维护的应用场景。包含资源监控、资源管理、系统管理等。
    主要负责硬件资源的虚拟化,以及对虚拟资源、业务资源、用户资源的集中管理。它采用虚拟计算、虚拟存储、虚拟网络等技术,完成计算资源、存储资源、网络资源的虚拟化。同时通过统一的接口,对这些虚拟资源进行集中调度和管理,从而降低业务的运行成本,保证系统的安全性和可靠性。

Cloud Computing 云计算基础相关推荐

  1. Seventh5: YAML syntax Ansible Playbook Ansible variables summaries and QQS | Cloud computing

    云计算专题目录 Catalogue | Cloud computing Seventh5: YAML syntax & Ansible Playbook & Ansible varia ...

  2. Third1: Basic Web applications BASIC NFS services triggering mount | Cloud computing

    云计算专题目录 Catalogue | Cloud computing Third1: Basic Web applications & BASIC NFS services & tr ...

  3. Fourth4: NAT VRRP | Cloud computing

    云计算专题目录 Catalogue | Cloud computing Fourth4: NAT & VRRP | Cloud computing 云计算专题目录 1. 配置静态NAT 1.1 ...

  4. Fourth6: Comprehensive project network upgrade | Cloud computing

    云计算专题目录 Catalogue | Cloud computing Fourth6: Comprehensive project & network upgrade | Cloud com ...

  5. Cloud computing application development Topic | Cloud computing

    云计算专题目录 Catalogue | Cloud computing Cloud computing application development Topic | Cloud computing ...

  6. Cloud platform build management Topic | Cloud computing

    云计算专题目录 Catalogue | Cloud computing Cloud platform build management Topic | Cloud computing 云计算专题目录 ...

  7. Twelfth3: Keepalived highly available Ceph deployed distributed storage | Cloud computing

    云计算专题目录 Catalogue | Cloud computing Twelfth3: Keepalived highly available & Ceph deployed distri ...

  8. Twelfth4: Deploy Git version control system optimize Web server | Cloud computing

    云计算专题目录 Catalogue | Cloud computing Twelfth4: Deploy Git version control system & optimize Web s ...

  9. Twelfth2: Website evolution LNP+Mariadb database separation Web server cluster | Cloud computing

    云计算专题目录 Catalogue | Cloud computing Twelfth2: Website evolution & LNP+Mariadb database separatio ...

最新文章

  1. Scala伴生类和伴生对象
  2. (转)网站推广优化教程100条(SEO,网站关键字优化,怎么优化网站,如何优化网站关键字)...
  3. 什么是 CAS 机制
  4. html注释的内容如何修改,如何用自定义元素替换HTML注释
  5. 计算机应用操作题word,计算机应用基础网考模拟练习题Word部分操作题
  6. mfc怎么获取进程的线程数_2020年大厂喜欢这样问线程安全,这些知识点我整理好了
  7. redis 启动无输出_Git Bash 中执行交互式命令无响应
  8. POJ 2502 Subway dij
  9. python调用通达信函数大全_通达信dll开发实例,使用python在通达信里面选股
  10. Qt QLineEdit QLabel 添加clicked事件
  11. python列表元素分割_在Python中分隔列表元素
  12. 计算机专业女生网名,微信名字大全女生_女孩微信网名大全
  13. iis6 增加PHP+MYSQL等时,记得 PHP目录要给EVERYONE权限
  14. OEL6.5+11GR2安装(超级详细版)
  15. Failed to decode response: zlib_decode(): data error Retrying with degraded;
  16. macbook或mac Apple ID 更新提示连接服务器出错
  17. LaTex 希腊字母及特殊字符
  18. vim修改sessions存放目录_不拆机直接修改黑群晖的SN和MAC
  19. MSTP:多生成树协议
  20. wsappx把电脑卡爆了解决办法

热门文章

  1. 五句话足以改变人生 转
  2. Linux添加sudo用户
  3. Nginx常用命令(启动、重启、关闭、检查)
  4. java编程图片显示爱心_java swing画图片爱心
  5. 使用命令提示符运行python文件
  6. JS——遍历对象方法总结
  7. 联想拯救者 Y9000X 2022配置怎么样 值得买吗
  8. ContentResolver系统短信备份
  9. ORA-00918: 未明确定义列(嵌套查询容易犯的错误)
  10. 黑马程序员---c语言 通讯录的实现