70、云与虚拟化服务的配置与管理

云与虚拟化服务的配置与管理

1. 云初始化工具 cloud-init

1.1 cloud-init 命令选项

cloud-init 是一个用于本地虚拟机和基于云的虚拟机的引导工具。它有以下常用命令选项:
| 选项 | 描述 |
| ---- | ---- |
| --version , -v | 显示程序的版本号并退出 |
| --file FILES , -f FILES | 使用额外的 YAML 配置文件 |
| --debug , -d | 显示额外的预操作日志(默认:False) |
| --force | 即使未找到数据源也强制运行(使用时需谨慎) |

1.2 cloud-init 子命令

cloud-init 还有多个子命令,用于不同的操作:
| 子命令 | 描述 |
| ---- | ---- |
| init | 初始化 cloud-init 并执行初始模块 |
| modules | 使用给定的配置键激活模块 |
| single | 运行单个模块 |
| query | 从命令行查询标准化的实例元数据 |
| dhclient-hook | 运行 dhclient 钩子以记录网络信息 |
| features | 列出定义的功能 |
| analyze | 开发工具:分析 cloud-init 日志和数据 |
| devel | 运行开发工具 |
| collect-logs | 收集并打包所有 cloud-init 调试信息 |
| clean | 删除日志和工件,以便 cloud-init 可以重新运行 |
| status | 报告 cloud-init 状态或等待完成 |

1.3 cloud-init 使用场景

你只能在创建虚拟机的主机上使用 cloud-init 命令。对于基于云的虚拟化服务,如 AWS 或 Microsoft Azure,你可以通过其虚拟化管理界面提供用户数据文件或信息来引导新创建的虚拟机。

2. 虚拟存储问题探索

2.1 虚拟磁盘的供应方式

在创建虚拟机时,选择磁盘存储量并非简单地选择大小,虚拟磁盘有厚供应和薄供应两种方式:
- 厚供应 :这是一种静态设置,选择虚拟磁盘大小后,会在物理磁盘上预先分配相应大小的物理文件。例如,选择 700GB 的虚拟磁盘大小,物理驱动器上会消耗 700GB 的空间。一些虚拟机管理程序(VMM)有不同版本的厚供应,如延迟零厚供应,这会对性能产生影响。
- 薄供应 :动态增长,虚拟机管理程序仅消耗虚拟驱动器实际使用的磁盘空间。例如,选择 700GB 的虚拟磁盘大小,但只向虚拟驱动器写入 300GB 的数据,物理驱动器上仅消耗 300GB 的空间。随着向虚拟驱动器写入更多数据,物理驱动器上的空间使用量会增加,直到达到 700GB 的设置。需要注意的是,从虚拟驱动器删除数据时,物理驱动器上的磁盘空间不会自动释放。薄供应通常用于允许过度供应,即虚拟分配的磁盘空间超过物理可用空间,可根据需要扩展物理存储。

2.2 持久卷

许多虚拟化产品,如 OpenStack 和 Kubernetes,使用持久卷的概念。本质上,虚拟化的持久卷在操作方式上类似于物理磁盘,数据会一直保存在磁盘上,直到系统或用户覆盖它。无论虚拟机是否运行,数据都会保留在磁盘上,在某些虚拟化产品中,即使使用它的虚拟机被销毁,数据仍然可以保留。

2.3 Blob 存储

Blob 存储是 Microsoft Azure 云平台的术语,用于存储大型非结构化数据,可通过.NET 代码进行操作。Blob 数据项通常包括图像、流媒体视频和音频、大数据等。Blob 存储有三种类型:
- 块 Blob :由文本和二进制数据块组成,各个 Blob 独立处理,大小限制为 4.7TB。
- 追加 Blob :也是文本和二进制数据块,但存储方式经过优化,便于高效追加操作,常用于日志记录数据。
- 页面 Blob :是随机访问文件,最大可达 8TB,也用作 Azure 虚拟机的虚拟磁盘。

3. 虚拟网络配置考虑

3.1 网络虚拟化概念

网络虚拟化近年来不断发展,现在不仅包括 OSI 第 2 层和第 3 层的交换机和路由器虚拟化,还可以包括防火墙、服务器负载均衡等更高 OSI 层的功能。一些云提供商甚至提供网络即服务(NaaS)。基本的网络虚拟化概念有虚拟局域网(VLAN)和覆盖网络:

graph LR
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
    A(网络虚拟化):::process --> B(VLAN):::process
    A --> C(覆盖网络):::process
  • VLAN :要理解 VLAN,先了解局域网(LAN)。LAN 中的系统和设备通常位于小范围内,共享通信线路或无线链路,网络流量速度相对较快。VLAN 也由 LAN 中的系统和设备组成,但这些系统和设备可以物理分布在不同的 LAN 子网中。VLAN 基于逻辑和虚拟化连接,使用第 2 层广播消息,通过第 3 层的路由器实现 LAN 虚拟化。
  • 覆盖网络 :是一种网络虚拟化方法,使用封装和通信通道带宽隧道技术。网络的通信介质(有线或无线)被虚拟分割成不同的通道,每个通道分配给特定的服务或设备。数据包在通道中传输时先被封装在另一个数据包中,接收端收到封装的数据包后,将其解封装并处理。覆盖网络由应用程序管理网络基础设施,除了典型的网络硬件外,还使用虚拟交换机、隧道协议和软件定义网络(SDN)。SDN 由 SDN 控制器程序以及南北向两个应用程序编程接口组成,网络上的其他应用程序将 SDN 视为逻辑网络交换机。覆盖网络比非虚拟化网络解决方案具有更好的灵活性和利用率,还能降低成本并提供显著的可扩展性。

3.2 虚拟网卡(NIC)配置

虚拟网卡(适配器)有时直接连接到主机系统的物理 NIC,有时连接到虚拟交换机,配置虚拟网卡时有多种选择:
| 配置类型 | 描述 | 优点 |
| ---- | ---- | ---- |
| 仅主机 | 仅主机适配器(有时称为本地适配器)连接到虚拟机主机系统内的虚拟网络,与主机系统所连接的外部物理(或虚拟)网络没有连接。这种配置可提高速度,因为虚拟机之间的网络流量在主机系统的 RAM 中进行,无需通过物理线路或无线传输。同时,它还提供增强的安全性,例如,一个虚拟机可以作为代理服务器,使用不同的 NIC 配置访问外部网络,而使用仅主机适配器的其他虚拟机通过该代理服务器发送/接收 Web 请求,从而增加保护。 | 速度快、安全性高 |
| 桥接 | 桥接 NIC 使虚拟机像主机系统所连接的 LAN 或 VLAN 上的一个节点,虚拟机获得自己的 IP 地址并可在网络上被看到。在这种配置中,虚拟 NIC 连接到主机的物理 NIC,直接向/从外部物理(或虚拟)网络传输自己的流量。 | 可作为网络节点访问外部网络 |
| NAT | 网络地址转换(NAT)适配器配置类似于物理世界中的 NAT 操作。在物理网络中,NAT 使用网络设备(如路由器)隐藏 LAN 计算机系统的 IP 地址,将所有 LAN 系统的 IP 地址转换为一个单一的 IP 地址发送到外部网络。在虚拟化中,NAT 表由虚拟机管理程序维护,主机系统的 IP 地址作为发送到外部网络的单一 IP 地址,每个虚拟机在主机系统的虚拟网络内有自己的 IP 地址。物理和虚拟系统的 NAT 都具有增强安全性的优点,可将内部 IP 地址对外部网络保密。 | 增强安全性 |
| 双宿主 | 在物理世界中,双宿主系统(有时称为多宿主系统)是具有一个或多个活动网络适配器的计算机,通常物理主机配置多个 NIC 以提供冗余和外部网络流量的负载均衡。在虚拟世界中,许多虚拟机根据虚拟网络环境的配置和目标采用双宿主甚至多宿主配置。例如,虚拟代理服务器可以是双宿主的,一个内部网络 NIC(仅主机)用于与受保护的虚拟机通信,一个桥接适配器用于在外部网络上传输和接收数据包。 | 冗余、负载均衡 |

4. 云与虚拟化服务配置总结

4.1 关键要点回顾

配置云与虚拟化环境需要了解网络和存储选项,掌握快速启动大量虚拟机以及引导新虚拟机的方法,同时辨别各种虚拟和云机器工具也很重要。以下是对关键概念的总结:
| 类别 | 要点 |
| ---- | ---- |
| VM 工具 | 包括 libvirt 库(提供 API、libvirtd 守护进程和 virt-install、virsh 等命令行实用程序)、virsh 外壳(用于管理系统的虚拟机)和 Virtual Machine Manager(可通过 virt-manager 命令启动的轻量级桌面应用程序,用于创建和管理虚拟机) |
| 引导实用程序 | 不同 Linux 发行版有不同的引导方法,如 Red Hat 系使用 kickstart 安装方法,Ubuntu 使用 preseed,openSUSE 使用 AutoYaST,Canonical 的 cloud-init 可用于本地虚拟机和基于云的虚拟机 |
| 虚拟存储选项 | 虚拟磁盘可厚供应或薄供应,磁盘可以是持久的或临时的,Blob 存储是 Microsoft Azure 云平台上的非结构化数据存储,有块、追加和页面三种类型 |
| 虚拟网络配置 | 包括覆盖网络(使用封装和带宽隧道技术,涉及虚拟交换机、隧道协议和 SDN)和多种虚拟网卡配置(仅主机、桥接、NAT、双宿主) |

4.2 实际应用案例分析

以下通过几个实际案例进一步说明上述概念的应用:
- 案例一:虚拟代理服务器配置

graph LR
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
    A(主机系统):::process --> B(虚拟代理服务器):::process
    B --> C(受保护虚拟机1):::process
    B --> D(受保护虚拟机2):::process
    B --> E(外部网络):::process
    C --> F(仅主机虚拟 NIC):::process
    D --> F
    B --> G(桥接虚拟 NIC):::process
    G --> E
    B --> H(仅主机虚拟 NIC):::process
    H --> F

在这个案例中,虚拟代理服务器是双宿主的,一个仅主机虚拟 NIC 用于与受保护的虚拟机通信,一个桥接虚拟 NIC 用于与外部网络通信。受保护的虚拟机使用仅主机适配器,通过虚拟代理服务器访问外部网络,增强了安全性。
- 案例二:磁盘存储选择
Ms. Danvers 的主机使用 LVM,只有 1TB 的磁盘空间,而她的三个虚拟机目前需要 200GB 的磁盘空间,预计明年每个虚拟机将增长到 300GB。在这种情况下,她应该选择薄供应存储,因为薄供应可以根据实际使用情况动态分配磁盘空间,避免了厚供应可能导致的空间浪费,同时可以在需要时扩展物理存储。
- 案例三:网络虚拟化应用
Mr. Fury 为学生的实验室使用虚拟机,学生将在整个学期内创建一个程序。为了确保学生的数据在虚拟机重启或关闭后仍然可用,最好选择持久存储。同时,为了提高网络的灵活性和可扩展性,可以考虑使用覆盖网络。

5. 总结与建议

5.1 总结

配置云与虚拟化环境是一个复杂的过程,需要综合考虑网络、存储、引导等多个方面的因素。了解各种工具和技术的特点和适用场景,能够帮助我们做出更合理的选择,从而提高系统的性能、安全性和可扩展性。

5.2 建议

  • 对于初学者 :建议先从基本的概念和工具入手,如了解 libvirt 库、cloud-init 等工具的基本使用方法,掌握虚拟磁盘供应和虚拟网卡配置的基本原理。
  • 对于有一定经验的用户 :可以深入研究网络虚拟化和存储管理的高级技术,如 SDN、LVM 等,以优化系统性能和资源利用率。
  • 在实际应用中 :根据具体的需求和场景选择合适的配置方案,如对于安全性要求较高的应用,可以选择仅主机或 NAT 配置;对于需要与外部网络进行大量通信的应用,可以选择桥接配置。同时,要定期监控系统的性能和资源使用情况,及时调整配置以满足业务需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值