详解Openstack使用ubuntu镜像启动虚拟机实例

一般情况下OpenStack环境搭建好了之后,就是测试启动虚拟机。通常我们会使用一个最基本的镜像cirros-0.3.3-x86_64-disk.img来作为镜像,使用glance命令行或者horizon的图形化界面将镜像上传,启动虚拟机的时候直接指定该镜像就可以启动虚拟机实例。有时候我们不像使用cirros而是想自己上传一个redhat或者ubuntu的镜像,这个时候就需要制作一个这样的镜像,说是制作,还不太准确,准确的说是安装一个镜像,然后利用这个安装好的镜像上传到openstack的glance镜像管理中。

以ubuntu为例,我们通过网络下载的镜像一般是iso格式,例如ubuntu-14.04.2-server-amd64.iso,这种镜像是不能直接用虚拟化软件打开的,我们通过vmware创建虚拟机,需要利用这个iso镜像,然后设置他安装时所需要的内存、硬盘、cpu个数等。最后通过一步一步的设置安装,安装好的镜像才可以被vmware打开,openstack创建虚拟机也是一样,需要已经安装好的操作系统镜像。

在命令行下安装操作系统使用kvm-qemu的命令virt-install,可以指定cpu个数、操作系统名称、内存设置、系统镜像位置、使用何种网络、是否开启图形化界面、虚拟机安装的位置等,基本就是和在vmware中安装操作系统差不多的参数。这个安装过程很漫长,需要加载很多包还需要人为干预,填写用户名密码,设置系统语言等。

1、上传安装好的ubuntu系统镜像,指定磁盘格式和容器格式,分别是raw,ovf

2、命令行下查看已经上传的镜像,发现多了刚刚上传的ubuntu镜像,使用这个镜像就可以用来启动虚拟机了。

3、云主机类型中默认没有1G内存的虚拟机,可以自定义一个1G内存10G磁盘空间的云主机类型flavor.可以利用这个自定义的云主机类型启动刚刚上传的ubuntu镜像虚拟机,结果如图,在命令行下可以看到,虚拟机实例启动成功。

ubuntu系统虚拟机就被创建了。

通过浏览器打开虚拟机实例控制台。

4、使用安装时自己填写的用户名和密码登录虚拟机

通过查看内存和磁盘使用情况可以验证确实为我们通过virt-install命令安装的操作系统。

通过图形化界面创建虚拟机实例过程中,会遇到创建失败,提示No host found.可能就是磁盘空间设置不足,或者内存不足造成的,增大磁盘空间和内存即可。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • OpenStack 创建windows镜像实现步骤

     OpenStack 创建windows镜像 创建windows镜像 创建一个img文件 kvm-img create -f qcow2 win7.qcow2 30G 下载virtio驱动 wget http://alt.fedoraproject.org/pub/alt/virtio-win/archives/virtio-win-0.1-59/virtio-win-0.1-59.iso wget http://www.linuxwind.org/download/virtio-win-1.1

  • 详解Openstack使用ubuntu镜像启动虚拟机实例

    一般情况下OpenStack环境搭建好了之后,就是测试启动虚拟机.通常我们会使用一个最基本的镜像cirros-0.3.3-x86_64-disk.img来作为镜像,使用glance命令行或者horizon的图形化界面将镜像上传,启动虚拟机的时候直接指定该镜像就可以启动虚拟机实例.有时候我们不像使用cirros而是想自己上传一个redhat或者ubuntu的镜像,这个时候就需要制作一个这样的镜像,说是制作,还不太准确,准确的说是安装一个镜像,然后利用这个安装好的镜像上传到openstack的gla

  • 详解如何用alpine镜像做一个最小的镜像并运行c++程序

    需求 工作中我们如果要制作镜像,一般都是直接pull官方镜像,比如我们要运行一个c++程序我们可能直接pull一个gcc,或者ubuntu镜像就可以了,但是存在一个问题,我们只是要运行一个c++程序却要运行一个ubuntu系统,这是非常消耗资源的,所以就去网上搜了搜发现早期的docker都是使用alpine镜像来做基础镜像,所以就用alpile镜像来制作镜像 dockerfile FROM alpine:3.7 MAINTAINER Rethink #更新Alpine的软件源为国内(清华大学)的

  • 详解如何在Ubuntu 20.04上安装Xrdp服务器(远程桌面)

    Xrdp 是一个微软远程桌面协议(RDP)的开源实现,它允许你通过图形界面控制远程系统.通过 RDP,你可以登录远程机器,并且创建一个真实的桌面会话,就像你登录本地机器一样. 这篇指南讲解如何在 Ubuntu 20.04 上安装和配置 Xrdp 服务器. 一.安装桌面环境 Ubuntu 服务器通常使用命令行进行管理,并且默认没有安装桌面环境.如果你正在运行 Ubuntu 桌面版,忽略这一步. 在 Ubuntu 源仓库有很多桌面环境供你选择.一个选择是安装 Gnome,它是 Ubuntu 20.0

  • 详解六种减小Docker镜像大小的方法

    我从2017年做Vulhub开始,一直在和一个麻烦的问题做斗争:在编写Dockerfile的时候, 如何减小 docker build 生成的镜像大小 ?这篇文章就给大家总结一下我自己使用过的六种减小镜像大小的方法. 1. 使用Alpine Linux Alpine Linux是一个基于BusyBox和Musl Libc的Linux发行版,其最大的优势就是小.一个纯的基础Alpine Docker镜像在压缩后仅有2.67MB. 不少Docker官方镜像都有Alpine版本,比如PHP: 比较之下

  • 详解Android性能优化之启动优化

    1.为什么要进行启动优化 网上流行一种说法,就是8秒定律,意思是说,如果用户在打开一个页面,在8秒的时间内还没有打开,那么用户大概的会放弃掉,意味着一个用户的流失.从这里就可以看出,启动优化的重要性了. 2.启动的分类 2.1 冷启动 先来看看冷启动的流程图 从图中可以看出,APP启动的过程是:ActivityManagerProxy 通过IPC来调用AMS(ActivityManagerService),AMS通过IPC启动一个APP进程,ApplicationThread通过反射来创建App

  • 详解Android壁纸服务的启动过程

    壁纸基础 android中的壁纸分为动态壁纸和静态壁纸两种,两种类型的壁纸都以Service的类型运行在系统后台. 静态壁纸:仅以图片的形式进行展示对于静态壁纸,可以使用WallpaperManager中的getDrawable()等接口获取到当前的bitmap图像. 动态壁纸:显示的内容为动态的内容,同时可以对用户的操作做出响应对于动态壁纸的实时图像,是没办法通过android中原生的接口获取到,需要获取到动态壁纸的图像得自己修改源码. 壁纸实现时涉及的几个主要的类: WallpaperSer

  • 详解Android广播Broadcast的启动流程

    目录 正文 广播的注册 广播的解注册 广播的发送 总结 正文 本文整体阅读下来相对Activity和Service的启动流程较容易,比较贴近我们日常代码开发习惯.我们曾经有个整机项目,多个APP跨进程交互,本来想采用AIDL进行的,但最终考虑到项目工期和其他同事的能力,最终在采用广播方式进行IPC. 那时,自己也在想,这么多个APP相互发信息,数据量也大,对整机性能有影响么?会不会存在丢失和内存问题.一脸茫然,网上也不会有类似信息告诉总结这种情况,本文也不会总结这个答案,因为看完之后心中自然有数

  • 详解Python import方法引入模块的实例

    详解Python import方法引入模块的实例 在Python用import或者from-import或者from-import-as-来导入相应的模块,作用和使用方法与C语言的include头文件类似.其实就是引入某些成熟的函数库和成熟的方法,避免重复造轮子,提高开发速度. python的import方法可以引入系统的模块,也可以引入我们自己写好的共用模块,这点和PHP非常相似,但是它们的具体细节还不是很一样.因为php是在引入的时候指明引入文件的具体路径,而python中不能够写文件路径进

  • 详解 Python 与文件对象共事的实例

    详解 Python 与文件对象共事的实例 Python 有一个内置函数,open,用来打开在磁盘上的文件.open 返回一个文件对象,它拥有一些方法和属性,可以得到被打开文件的信息,以及对被打开文件进行操作. >>> f = open("/music/_singles/kairo.mp3", "rb") (1) >>> f (2) <open file '/music/_singles/kairo.mp3', mode 'r

  • 详解HDFS多文件Join操作的实例

    详解HDFS多文件Join操作的实例 最近在做HDFS文件处理之时,遇到了多文件Join操作,其中包括:All Join以及常用的Left Join操作, 下面是个简单的例子:采用两个表来做left join其中数据结构如下: A 文件: a|1b|2|c B文件: a|b|1|2|c 即:A文件中的第一.二列与B文件中的第一.三列对应:类似数据库中Table的主键/外键 代码如下: import java.io.DataInput; import java.io.DataOutput; imp

随机推荐