百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

Ubuntu24-04 server版本OpenStack虚拟机镜像制作

nanshan 2025-08-01 19:26 6 浏览 0 评论

说明:此镜像制作主要针对使用Docker 部署的Openstack机器制作镜像,比如我们用于创建的节点IP为10.250.0.99,此次虚拟机磁盘为100GB。

准备Ubuntu24-04 Server版本镜像iso文件

#将ubuntu-24.04.2-live-server-amd64.iso 文件上传到/var/log/kolla目录

创建磁盘文件和网络

#进入nova_libvirt 容器
docker exec -it nova_libvirt bash

#进入目录/var/log/kolla创建磁盘文件保证物理机根空间大于100GB
cd /var/log/kolla/
qemu-img create -f raw /var/log/kolla/ubuntu2404-02-server-100G-admin@123.raw 100G

#创建虚拟机使用的test网络,此网络使用ovs 名称为test
ovs-vsctl add-br test

编辑虚拟机配置文件

#依然再nova_libvirt 这个容器里面
cd /var/log/kolla/

#编辑配置文件,其它linux操作系统只需要修改ubuntu2404,/var/log/kolla/ubuntu2404-02-server-100G-admin@123.raw
#和/var/log/kolla/ubuntu-24.04.2-live-server-amd64.iso三个地方即可
vi ubuntu2404.xml

<domain type='kvm'>
  <name>ubuntu2404</name>
  <memory unit='MiB'>8192</memory>
  <currentMemory unit='MiB'>8192</currentMemory>
  <vcpu>4</vcpu>
  <os>
    <type arch='x86_64' machine='pc'>hvm</type>
    <boot dev='cdrom'/>
 </os>
 <features>
    <acpi/>
    <apic/>
    <pae/>
 </features>
 <clock offset='localtime'/>
 <on_poweroff>destroy</on_poweroff>
 <on_reboot>restart</on_reboot>
 <on_crash>destroy</on_crash>
 <devices>
   <emulator>/usr/libexec/qemu-kvm</emulator>
   <disk type='file' device='disk'>
     <driver name='qemu' type='raw'/>
     <source file='/var/log/kolla/ubuntu2404-02-server-100G-admin@123.raw'/>
     <target dev='vda' bus='virtio'/>
   </disk>
   <interface type='bridge'>
      <source bridge='test'/>    
      <virtualport type='openvswitch'/>
   </interface>
   <disk type='file' device='cdrom'>
     <source file='/var/log/kolla/ubuntu-24.04.2-live-server-amd64.iso'/>
     <target dev='hdb' bus='ide'/> 
   </disk>
  <input type='mouse' bus='ps2'/>
  <graphics type='vnc' port='-1' autoport='yes' listen = '0.0.0.0' keymap='en-us'/>
  <serial type='pty'>
    <target port='0'/>
  </serial>
  <console type='pty'>
    <target type='serial' port='0'/>
  </console>
 </devices>
</domain>

启动虚拟机

#在容器nova_libvirt操作,启动虚拟机
cd /var/log/kolla

#启动虚拟机
virsh define ubuntu2404.xml
virsh start ubuntu2404

#查看ubuntu2404 虚拟机vnc端口,以下port 5901 为vnc接口
virsh dumpxml ubuntu2404| grep vnc
    <graphics type='vnc' port='5901' autoport='yes' listen='0.0.0.0' keymap='en-us'>

使用vnc viewer软件连接vnc安装操作系统

vnc viewer连接主机

设置语言

选择Done

选择ubuntu Server,选择Done

设置网卡

将网卡ens3设置IP 地址自动获取

设置ens3网卡IP地址自动获取,Save保存

选择Continue without network

proxy选择Done

设置源

选择Done继续

磁盘分区

选择Done继续

将/ Unmount

将/boot Umount

不使用自动分区,使用手动分区,删除ubuntu-lv

重新创建lv

/boot 给2G,点击Create

剩余所有空间都给 /

点击Done

选择Continue

配置ubuntu主机登录用户和密码

选择Continue

配置安装SSH Server

操作系统开始安装

等待操作系统安装完成

以下代表操作系统安装完成

关闭虚拟机

#在容器nova_libvirt操作,关闭虚拟机
virsh destroy ubuntu2404
virsh undefine ubuntu2404

将镜像上传到OpenStack 镜像仓库

将镜像上传到Openstack中启动虚拟机

#将镜像上传到OpenStack 镜像仓库,进入主机系统
#进入虚拟环境
source /root/kolla/bin/activate

#使用账号密码
source /etc/kolla/admin-openrc.sh

#上传镜像
openstack image create --disk-format raw --public --progress --file /var/log/kolla/ubuntu2404-02-server-100G-admin@123.raw ubuntu0703 --progress

使用OpenStack Dashboard创建虚拟机

设置虚拟机的名称为ubuntu

选择镜像,不创建新卷

选择实例类型

选择网络

不使用安全组

点击创建实例,实例创建成功

修改ubuntu镜像,允许root直接登录

进入系统vi /etc/ssh/sshd_config

#将PermitRootLogin 设置为
PermitRootLogin yes

#重启服务
systemctl restart ssh

查看ubuntu使用的rbd磁盘

#登录主机操作系统进入nova_libvirt容器
docker exec -it nova_libvirt bash

#获取rdb磁盘信息,磁盘信息为vms/9a4685b3-45af-4f42-85e0-81f5cf375f28_disk
virsh dumpxml instance-00000032 | grep disk
        <nova:disk>120</nova:disk>
    <disk type='network' device='disk'>
      <source protocol='rbd' name='vms/9a4685b3-45af-4f42-85e0-81f5cf375f28_disk' index='1'>
      <alias name='virtio-disk0'/>
    </disk>

#在OpenStack Dashboard界面将虚拟机关机

将rbd盘导出

#进入主机操作系统,执行以下命令将ubuntu rbd磁盘导出
cd /var/log/kolla
rbd export vms/9a4685b3-45af-4f42-85e0-81f5cf375f28_disk ubuntu-new

#导出后确认导出rbd的磁盘格式
docker exec -it nova_libvirt bash
cd /var/log/kolla

#使用命令确认磁盘格式为raw
qemu-img info ubuntu-new 
image: ubuntu-new
file format: raw
virtual size: 120 GiB (128849018880 bytes)
disk size: 6.07 GiB

#退出nova_libvirt 容器进入主机操作系统,将ubuntu-new导入openstack
#进入虚拟环境
source /root/kolla/bin/activate

#使用账号密码
source /etc/kolla/admin-openrc.sh

#上传镜像
openstack image create --disk-format raw --public --progress --file /var/log/kolla/ubuntu-new ubuntu0703-new --progress

使用新的镜像创建ubuntu虚拟机

使用镜像ubuntu0703-new 在OpenStack Dashboard创建虚拟机,如果虚拟机可以正常创建并进入系统,代表镜像成功,ubuntu-new 就可以做为虚拟机镜像上传到其它OpenStack环境中。

相关推荐

0722-6.2.0-如何在RedHat7.2使用rpm安装CDH(无CM)

文档编写目的在前面的文档中,介绍了在有CM和无CM两种情况下使用rpm方式安装CDH5.10.0,本文档将介绍如何在无CM的情况下使用rpm方式安装CDH6.2.0,与之前安装C5进行对比。环境介绍:...

ARM64 平台基于 openEuler + iSula 环境部署 Kubernetes

为什么要在arm64平台上部署Kubernetes,而且还是鲲鹏920的架构。说来话长。。。此处省略5000字。介绍下系统信息;o架构:鲲鹏920(Kunpeng920)oOS:ope...

生产环境starrocks 3.1存算一体集群部署

集群规划FE:节点主要负责元数据管理、客户端连接管理、查询计划和查询调度。>3节点。BE:节点负责数据存储和SQL执行。>3节点。CN:无存储功能能的BE。环境准备CPU检查JDK...

在CentOS上添加swap虚拟内存并设置优先级

现如今很多云服务器都会自己配置好虚拟内存,当然也有很多没有配置虚拟内存的,虚拟内存可以让我们的低配服务器使用更多的内存,可以减少很多硬件成本,比如我们运行很多服务的时候,内存常常会满,当配置了虚拟内存...

国产深度(deepin)操作系统优化指南

1.升级内核随着deepin版本的更新,会自动升级系统内核,但是我们依旧可以通过命令行手动升级内核,以获取更好的性能和更多的硬件支持。具体操作:-添加PPAs使用以下命令添加PPAs:```...

postgresql-15.4 多节点主从(读写分离)

1、下载软件[root@TX-CN-PostgreSQL01-252software]#wgethttps://ftp.postgresql.org/pub/source/v15.4/postg...

Docker 容器 Java 服务内存与 GC 优化实施方案

一、设置Docker容器内存限制(生产环境建议)1.查看宿主机可用内存bashfree-h#示例输出(假设宿主机剩余16GB可用内存)#Mem:64G...

虚拟内存设置、解决linux内存不够问题

虚拟内存设置(解决linux内存不够情况)背景介绍  Memory指机器物理内存,读写速度低于CPU一个量级,但是高于磁盘不止一个量级。所以,程序和数据如果在内存的话,会有非常快的读写速度。但是,内存...

Elasticsearch性能调优(5):服务器配置选择

在选择elasticsearch服务器时,要尽可能地选择与当前业务量相匹配的服务器。如果服务器配置太低,则意味着需要更多的节点来满足需求,一个集群的节点太多时会增加集群管理的成本。如果服务器配置太高,...

Es如何落地

一、配置准备节点类型CPU内存硬盘网络机器数操作系统data节点16C64G2000G本地SSD所有es同一可用区3(ecs)Centos7master节点2C8G200G云SSD所有es同一可用区...

针对Linux内存管理知识学习总结

现在的服务器大部分都是运行在Linux上面的,所以,作为一个程序员有必要简单地了解一下系统是如何运行的。对于内存部分需要知道:地址映射内存管理的方式缺页异常先来看一些基本的知识,在进程看来,内存分为内...

MySQL进阶之性能优化

概述MySQL的性能优化,包括了服务器硬件优化、操作系统的优化、MySQL数据库配置优化、数据库表设计的优化、SQL语句优化等5个方面的优化。在进行优化之前,需要先掌握性能分析的思路和方法,找出问题,...

Linux Cgroups(Control Groups)原理

LinuxCgroups(ControlGroups)是内核提供的资源分配、限制和监控机制,通过层级化进程分组实现资源的精细化控制。以下从核心原理、操作示例和版本演进三方面详细分析:一、核心原理与...

linux 常用性能优化参数及理解

1.优化内核相关参数配置文件/etc/sysctl.conf配置方法直接将参数添加进文件每条一行.sysctl-a可以查看默认配置sysctl-p执行并检测是否有错误例如设置错了参数:[roo...

如何在 Linux 中使用 Sysctl 命令?

sysctl是一个用于配置和查询Linux内核参数的命令行工具。它通过与/proc/sys虚拟文件系统交互,允许用户在运行时动态修改内核参数。这些参数控制着系统的各种行为,包括网络设置、文件...

取消回复欢迎 发表评论: