2.4. 为基本操作系统创建数据卷


您必须使用 Red Hat OpenShift Container Platform (RHOCP)集群创建数据卷,以存储 Controller 虚拟机(VM)的基本操作系统镜像。在创建 OpenStackControlPlaneOpenStackVmSet 自定义资源时,您可以使用 baseImageVolumeName 参数指定此数据卷。

先决条件

  • virtctl 客户端工具安装在您的工作站上。要在 Red Hat Enterprise Linux (RHEL)工作站上安装这个工具,请使用以下命令:

    $ sudo subscription-manager repos --enable=cnv-4.12-for-rhel-8-x86_64-rpms
    $ sudo dnf install -y kubevirt-virtctl
  • virt-customize 客户端工具已安装在您的工作站上。要在 RHEL 工作站上安装此工具,请使用以下命令:

    $ dnf install -y libguestfs-tools-c

流程

  1. 将红帽客户门户网站 的产品下载 部分中的 RHEL 9.2 QCOW2 镜像下载到您的工作站。
  2. 可选:添加自定义 CA 证书:

    $ sudo -s
    $ export LIBGUESTFS_BACKEND=direct
    $ virt-copy-in -a <local_path_to_image> <ca_certificate>.pem /etc/pki/ca-trust/source/anchors/

    您可能想要添加自定义 CA 证书来保护身份服务的 LDAP 通信,或者与任何非 RHOSP 系统通信。

  3. 创建一个脚本来自定义镜像来分配可预测的网络接口名称:

    #!/bin/bash
    set -eux
    
    if [ -e /etc/kernel/cmdline ]; then
      echo 'Updating /etc/kernel/cmdline'
      sed -i -e "s/^\(.*\)net\.ifnames=0\s*\(.*\)/\1\2/" /etc/kernel/cmdline
    fi
    
    source /etc/default/grub
    if grep -q "net.ifnames=0" <<< "$GRUB_CMDLINE_LINUX"; then
      echo 'Updating /etc/default/grub'
      sed -i -e "s/^\(GRUB_CMDLINE_LINUX=.*\)net\.ifnames=0\s*\(.*\)/\1\2/" /etc/default/grub
    fi
    if [ "$GRUB_ENABLE_BLSCFG" == "true" ]; then
      echo 'Fixing BLS entries'
      find /boot/loader/entries -type f -exec sed -i -e "s/^\(.*\)net\.ifnames=0\s*\(.*\)/\1\2/" {} \;
    fi
    # Always do this, on RHEL8 with BLS we still need it as the BLS entry uses $kernelopts from grubenv
    echo 'Running grub2-mkconfig'
    grub2-mkconfig -o /etc/grub2.cfg
    grub2-mkconfig -o /etc/grub2-efi.cfg
    rm -f /etc/sysconfig/network-scripts/ifcfg-ens* /etc/sysconfig/network-scripts/ifcfg-eth*
    update-ca-trust extract
  4. 运行镜像自定义脚本:

    $ sudo -s
    $ export LIBGUESTFS_BACKEND=direct
    $ chmod 755 customize_image.sh
    $ virt-customize -a <local_path_to_image> --run customize_image.sh --truncate /etc/machine-id
  5. 使用 virtctl 将镜像上传到 OpenShift Virtualization:

    $ virtctl image-upload dv <datavolume_name> -n openstack \
     --size=<size> --image-path=<local_path_to_image> \
     --storage-class <storage_class> --access-mode <access_mode> --insecure
    • <datavolume_name > 替换为数据卷的名称,如 openstack-base-img
    • &lt;size> 替换为您的环境所需的数据卷的大小,例如 50Gi。最小值为 50GB。
    • <storage_class > 替换为集群中所需的存储类。使用以下命令检索可用的存储类:

      $ oc get storageclass
    • <access_mode > 替换为 PVC 的访问模式。默认值为 ReadWriteOnce
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部