openstack将iso镜像转换成qcow2格式

前言

openstack中启动一个实例需要是centos6.8系统的,glance上是没有的。所以将从网上down下来的ISO镜像,直接上传到openstack上是没法正常创建虚机的,需要将其转换成qcow2格式的镜像,然后使用这个镜像就可以正常创建了。
这篇文章就是将ISO镜像转换成qcow2格式的内容!!!


提示:以下是本篇文章正文内容,下面案例可供参考

一、过程:

首先,网上down下来的ISO镜像上传到openstack作为镜像创建实例是无法成功的,所以需要将iso转换成qcow2格式镜像,使用它来创建实例就没问题了。
大致过程:

  • 上传ISO镜像
  • 使用ISO镜像创实例
  • 创建卷,添加实例上
  • 进实例,引导安装系统
  • 将卷摘下来,做成qcow2镜像

二、使用步骤

1.上传ISO镜像

将我们从网上down下来的ISO镜像上传到glance

#openstack image create --container-format bare --disk-format iso --public --file rhel-server-6.8-x86_64-dvd.iso rhel-server-6.8-x86_64-dvd.iso

在这里插入图片描述


2.使用ISO创建实例

查看ISO镜像的信息

在这里插入图片描述
将yaml文件中镜像的位置修改为我们刚才上传的镜像的位置

在这里插入图片描述
yaml文件内容:

description: 5GC
heat_template_version: '2015-04-30'
parameters:
  AZ_HOST: {default: '', description: Where to deploy, label: Deploy, type: string}
  Prefix: {default: Moshell01_, description: A prefix to be added to all objects names,
    label: Prefix, type: string}
resources:
  Moshell:
    properties:
      availability_zone: nova
      config_drive: 'true'
      flavor: 2vcpu_2GBmem_50GBdisk
      image: rhel-server-6.8-x86_64-dvd.qcow2
      metadata: {ha-policy: managed-on-host, orch: hot}
      name:
        str_replace:
          params:
            $prefix: {get_param: Prefix}
          template: $prefixMoshell
      networks:
      - port: {get_resource: Moshell-OAM-VNIC}
      - port: {get_resource: Moshell-TRAFFIC_1-VNIC}
    type: OS::Nova::Server
#  Moshell-OAM-VN:
#    properties:
#      networks: 3th_floor_interaction_oam_new
##      name:
##        str_replace:
##          params:
##            $prefix: {get_param: Prefix}
##          template: $prefixMoshell-OAM-VN
##      network_type: vlan
##      physical_network: default
##      segmentation_id: 964
#    type: OS::Neutron::ProviderNet
  Moshell-OAM-VNIC:
    properties:
      name:
        str_replace:
          params:
            $prefix: {get_param: Prefix}
          template: $prefixMoshell-OAM-VNIC
#      network_id: {get_resource: Moshell-OAM-VN}
      network_id: 37044cf8-445e-4326-9667-68e3f85c5f7a
    type: OS::Neutron::Port
#  Moshell-OAM-VN_subnet:
#    properties:
#      cidr: 172.28.48.117/28
#      enable_dhcp: false
#      name:
#        str_replace:
#          params:
#            $prefix: {get_param: Prefix}
#          template: $prefixMoshell-OAM-VN_subnet
##      network_id: {get_resource: Moshell-OAM-VN}
#      network_id: 37044cf8-445e-4326-9667-68e3f85c5f7a
#    type: OS::Neutron::Subnet
  Moshell-TRAFFIC_1-VN:
    properties:
      name:
        str_replace:
          params:
            $prefix: {get_param: Prefix}
          template: $prefixMoshell-TRAFFIC_1-VN
      network_type: vlan
      physical_network: default
      segmentation_id: 1364
    type: OS::Neutron::ProviderNet
  Moshell-TRAFFIC_1-VNIC:
    properties:
      name:
        str_replace:
          params:
            $prefix: {get_param: Prefix}
          template: $prefixMoshell-TRAFFIC_1-VNIC
      network_id: {get_resource: Moshell-TRAFFIC_1-VN}
    type: OS::Neutron::Port
  Moshell-TRAFFIC_1-VN_subnet:
    properties:
      cidr: 10.185.255.250/29
      enable_dhcp: false
      name:
        str_replace:
          params:
            $prefix: {get_param: Prefix}
          template: $prefixMoshell-TRAFFIC_1-VN_subnet
      network_id: {get_resource: Moshell-TRAFFIC_1-VN}
    type: OS::Neutron::Subnet

接着执行命令进行创建,实例就启动了,

#openstack stack create -t Moshell01.yaml --wait Moshell01

在这里插入图片描述


3、创建volume卷,挂载到实例

#cinder create --name Moshell01-disk 100

在这里插入图片描述

#nova list | grep Moshell
#nova volume-attach fdb8c3f9-891a-4a9a-b7fb-942641eb9ab8 d842cf7b-e2ac-4eab-9c98-6a082dffe376
格式:nova volume-attach SERVER-id VOLUME-id

注意:我们创建卷要注意大小,它后面摘下来是需要上传到glance做成qcow2格式的镜像的,如果太大的话做成的镜像也会很大,我使用的5G,一个系统来说管够了!

在这里插入图片描述

获取实例的url登录方式

#openstack console url show fdb8c3f9-891a-4a9a-b7fb-942641eb9ab8

在这里插入图片描述


4、进实例,按引导装系统

因为选择的是centos6.8版本的ISO,安装过程在另一篇文章。
centos6.8安装操作系统

注意:按照引导顺序安装完软件之后不要点击重启,退出url界面,进入到openstack中手动将实例关机!!!

#nova list | grep Moshell
#nova stop f341590f-5b8e-46d3-b72d-514ac46b646e

在这里插入图片描述

5、将volume卷摘下来,转化成qcow2格式

#cinder list | grep Moshell
#nova volume-detach f341590f-5b8e-46d3-b72d-514ac46b646e 0bfe1480-3be6-4a34-a534-24675a08ada8

在这里插入图片描述
将volume卷上传成qcow2格式的镜像

#openstack image create --disk-format qcow2 --volume 0bfe1480-3be6-4a34-a534-24675a08ada8 rhel-server-6.8-x86_64-dvd.qcow2
#openstack image create --volume 0bfe1480-3be6-4a34-a534-24675a08ada8 rhel-server-6.8-x86_64-dvd.qcow2

注意,两个命令都是可以将volume卷转换成镜像,但是指定格式为qcow2的镜像会比不指定的更小

在这里插入图片描述


6、创建实例

接下来你可以使用步骤2使用的stack方式启动实例了,只需要将yaml文件中的ISO位置指定成生成的qcow2格式的镜像的名字就可以了。

将之前创建的实例删除掉,然后修改yaml文件,重新执行下就可以正常创建实例了,

#openstack stack list | grep Moshell
#openstack stack delete 82191ab7-168c-41cd-b61e-3b0b0a0bc681
#openstack stack list | grep Moshell
#openstack image list | grep rhel-server-6.8-x86_64-dvd.qcow2
#openstack stack create -t Moshell01.yaml --wait Moshell01

在这里插入图片描述

在这里插入图片描述


总结

这就是在openstack中将ISO镜像转换为qcow2格式镜像创建虚机的过程,

其实openstack底层实用的虚拟化技术是kvm,说白了实例就是类似于kvm虚机,这样的话我们完全可以通过创建kvm虚机制作出来一样的qcow2镜像。

  • 在kvm的环境中创建一个虚机,
  • 然后按照引导安装系统,
  • 之后将kvm虚机的image硬盘文件做成镜像,
  • 上传到openstack中一样使用,
    这种方式得到镜像和我们得到的是一样的结果,但是还需要自己另外准备kvm环境,没我们这样直接来简洁。
  • 6
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值