3.2. 理解基础镜像
本节包括使用预配置的基础镜像及其配置设置的信息。
3.2.1. 使用自定义基础镜像 复制链接链接已复制到粘贴板!
要手动配置虚拟机(VM),首先创建一个基础(起步)虚拟机镜像。然后,您可以修改配置设置,并添加 VM 在云上操作所需的软件包。您可在上传镜像后为特定应用程序进行额外的配置更改。
要准备 RHEL 的云镜像,请按照以下部分中的说明操作。要准备 RHEL 的 Hyper-V 云镜像,请参阅 从 Hyper-V Manager 准备基于红帽的虚拟机。
3.2.2. 所需的系统软件包 复制链接链接已复制到粘贴板!
要创建并配置 RHEL 的基础镜像,主机系统必须安装了以下软件包。
| 软件包 | 软件仓库 | 描述 |
|---|---|---|
| libvirt | rhel-8-for-x86_64-appstream-rpms | 用于管理平台虚拟化的开源 API、守护进程和管理工具 |
| virt-install | rhel-8-for-x86_64-appstream-rpms | 用于构建虚拟机的命令行工具 |
| libguestfs | rhel-8-for-x86_64-appstream-rpms | 用于访问和修改虚拟机文件系统的库 |
| libguestfs-tools | rhel-8-for-x86_64-appstream-rpms |
虚拟机的系统管理工具;包括 |
3.2.3. Azure VM 配置设置 复制链接链接已复制到粘贴板!
Azure 虚拟机(VM)必须具有以下配置设置。其中一些设置会在初始创建虚拟机期间启用。为 Azure 置备虚拟机镜像时会设置其他设置。在进行操作时请记住这些设置。如有必要,请参阅它们。
| 设置 | 建议 |
|---|---|
| SSH | 必须启用 SSH 来提供 Azure 虚拟机的远程访问。 |
| dhcp | 应该为 dhcp 配置主虚拟适配器(仅限 IPv4)。 |
| 交换空间 |
不要在安装过程中在操作系统(OS)磁盘或存储磁盘上创建专用 |
| NIC |
为主虚拟网络适配器选择 |
| encryption | 对于自定义镜像,使用 Network Bound Disk Encryption(NBDE)在 Azure 上进行全磁盘加密。 |
3.2.4. 在 Azure 上使用 cloud-init 配置 swap 空间 复制链接链接已复制到粘贴板!
要将 swap 空间用于 Microsoft Azure 上的 Red Hat Enterprise Linux (RHEL)虚拟机(VM),您需要在临时磁盘上创建交换分区。仅使用临时磁盘来创建交换分区,而不是操作系统(OS)磁盘或数据(存储)磁盘。由于虚拟机被删除后,临时磁盘也会被删除,因此交换分区也会被删除。
您可以使用 cloud-init 工具在临时磁盘上配置交换分区。临时磁盘是虚拟机的本地存储,而资源磁盘则挂载到虚拟机本身上。两种存储类型都临时存储。删除、移动、停止或失败会导致临时存储在临时或资源磁盘中的数据丢失。
不要将临时磁盘用于持久数据。当虚拟机停止或移动时,所有内容(包括交换分区)都会被删除。
先决条件
-
您已在虚拟机上安装了
cloud-init工具。 您已在 Windows Azure Linux Agent (WALA)中设置
/etc/waagent.conf文件中的参数禁用了 swap 配置:ResourceDisk.Format=n ResourceDisk.EnableSwap=n ResourceDisk.SwapSizeMB=0
ResourceDisk.Format=n ResourceDisk.EnableSwap=n ResourceDisk.SwapSizeMB=0Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 您在虚拟机上有一个临时磁盘。
流程
- 登录到虚拟机。
创建并编辑
/etc/cloud/cloud.cfg.d/00-azure-swap.cfg配置文件,并将以下cloud-init配置添加到文件中:vi /etc/cloud/cloud.cfg.d/00-azure-swap.cfg
# vi /etc/cloud/cloud.cfg.d/00-azure-swap.cfgCopy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此配置:
-
使用 GPT 分区表对临时磁盘(
ephemeral0)进行分区。 -
创建两个分区: 66% 用于文件系统(挂载在
/mnt中)和 33% 用于交换空间。 -
将第一个分区格式化为
ext4,第二个分区格式化为swap。 在引导时配置两个分区的自动挂载。
注意分区布局
[66, [33,82]]将 66% 的磁盘分配给第一个分区,将 33% 分配到第二个分区。第二个分区规格中的82表示 Linux swap 分区类型。您可以根据您的要求调整这些百分比。
-
使用 GPT 分区表对临时磁盘(
验证配置文件是否有任何错误:
cloud-init devel schema --config-file /etc/cloud/cloud.cfg.d/00-azure-swap.cfg
# cloud-init devel schema --config-file /etc/cloud/cloud.cfg.d/00-azure-swap.cfgCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果配置有效,命令不会返回错误。
验证
重启虚拟机后,请通过验证
/etc/fstab文件中的活跃交换空间、交换使用情况和交换分区条目来检查交换分区是否已配置并激活。检查活跃 swap 空间:
swapon -s
$ swapon -sCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出应显示来自
ephemeral0.2的交换分区:Filename Type Size Used Priority /dev/ephemeral0.2 partition 8388604 0 -2
Filename Type Size Used Priority /dev/ephemeral0.2 partition 8388604 0 -2Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查 swap 用法:
free -h
$ free -hCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出应该在
Swap行中显示 swap 空间:total used free shared buffered/cache available Mem: 7.8Gi 1.2Gi 5.8Gi 16MiB 800MiB 6.3Gi Swap: 8.0Gi 0B 8.0Gi
total used free shared buffered/cache available Mem: 7.8Gi 1.2Gi 5.8Gi 16MiB 800MiB 6.3Gi Swap: 8.0Gi 0B 8.0GiCopy to Clipboard Copied! Toggle word wrap Toggle overflow 验证
/etc/fstab文件中是否存在 swap 分区:grep swap /etc/fstab
$ grep swap /etc/fstabCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出应包含 swap 分区的条目,例如:
/dev/ephemeral0.2 none swap sw,nofail,x-systemd.requires=cloud-init.service 0 0
/dev/ephemeral0.2 none swap sw,nofail,x-systemd.requires=cloud-init.service 0 0Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2.5. 从 ISO 镜像创建基础镜像 复制链接链接已复制到粘贴板!
以下流程列出了创建自定义 ISO 镜像的步骤和初始配置要求。配置了镜像后,您可以使用镜像作为模板来创建额外的虚拟机实例。
先决条件
- 确保已为虚拟化启用主机机器。有关信息和流程,请参阅在 RHEL 8 中启用虚拟化。
流程
- 从 红帽客户门户网站 下载最新的 Red Hat Enterprise Linux 8 DVD ISO 镜像。
创建并启动基本 Red Hat Enterprise Linux 虚拟机。有关说明,请参阅 创建虚拟机。
如果使用命令行创建虚拟机,请确保将默认内存和 CPU 设置为您所需的容量。将您的虚拟网络接口设置为 virtio。
例如,以下命令使用
rhel-8.0-x86_64-kvm.qcow2镜像创建一个kvmtest虚拟机:virt-install \ --name kvmtest --memory 2048 --vcpus 2 \ --disk rhel-8.0-x86_64-kvm.qcow2,bus=virtio \ --import --os-variant=rhel8.0# virt-install \ --name kvmtest --memory 2048 --vcpus 2 \ --disk rhel-8.0-x86_64-kvm.qcow2,bus=virtio \ --import --os-variant=rhel8.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果使用 Web 控制台来创建虚拟机,请按照 使用 web 控制台创建虚拟机 中的流程进行操作,包括以下注意事项:
- 不要选择 Immediately Start VM 。
- 将 Memory 大小更改为你希望的设置。
- 在开始安装前,请确保将 Virtual Network Interface Settings 中的 Model 更改为 virtio,并将您的 vCPU 更改为您想要的虚拟机容量设置。
查看以下额外的安装选择和修改。
- 选择带有 standard RHEL 选项的 Minimal Install。
对于 Installation Destination,选择 Custom Storage Configuration。使用以下配置信息进行选择。
- 确保 /boot 至少 500 MB。但是,1 GB 或更多就足够了。
- 对于文件系统,在 boot 和 root 分区中使用 xfs、ext4 或 ext3。
-
在安装过程中,从 OS 磁盘中删除 swap 空间。部署后,在临时磁盘上使用
cloud-init来配置交换空间。
- 在 Installation Summary 屏幕中,选择 Network and Host Name。将 Ethernet 切换到 On。
安装开始:
-
创建
root密码. - 创建管理用户帐户。
-
创建
- 安装完成后,重启虚拟机并登录到 root 帐户。
-
以
root身份登录后,您就可以配置镜像了。