ova转raw

使用工具: qemu-img、libguestfs-tools、libguestfs-winsupport

# 从vmware导出ova文件, tar 解压导出来的ova文件

$ tar xvf /root/UCarApp1_clone.ova -C $(pwd)
$ ls
UCarApp1_clone-disk1.vmdk UCarApp1_clone.mf UCarApp1_clone.ovf

# 利用qemu-img将vmdk转换成raw既可以

$ qemu-img convert -f vmdk -O raw UCarApp1_clone-disk1.vmdk UCarApp1_clone-disk1.raw
$ ls
UCarApp1_clone-disk1.raw UCarApp1_clone-disk1.vmdk UCarApp1_clone.mf UCarApp1_clone.ovf

# 查看镜像分区使用情况

$ virt-df -h UCarApp1_clone-disk1.raw
文件系统 大小 已用空间 可用空间 使用百分比%
UCarApp1_clone-disk1.raw:/dev/sda1 497M 180M 316M 37%
UCarApp1_clone-disk1.raw:/dev/centos/home
441G 49G 392G 12%
UCarApp1_clone-disk1.raw:/dev/centos/root
50G 9.2G 41G 19%
管理镜像[可直接跳过]

# 使用guestfish管理镜像

$ guestfish -a UCarApp1_clone-disk1.raw
><fs> run
100% ⟦▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒⟧ 00:00
><fs>
><fs> list-filesystems
/dev/sda1: xfs
/dev/centos/home: xfs
/dev/centos/root: xfs
/dev/centos/swap: swap
><fs> list-devices
/dev/sda
><fs> list-partitions
/dev/sda1
/dev/sda2

可使用ntfsresize-size压缩镜像分区大小

ntfsresize-size /dev/sda1 15G

退出后可使用qemu-img resize -f raw UCarApp1_clone-disk1.raw压缩镜像文件

检查虚拟机状态[可直接跳过]

# 使用virt-install工具启动虚拟机看看是否正常, 正常则执行下一步进行迁移

$ virt-install --name demo-guest1 --memory 2048 --vcpus 2 --os-variant rhel8.0 --graphics vnc,listen=0.0.0.0 --import --disk UCarApp1_clone-disk1.raw,bus=ide
# 如果disk类型为sda或hda,则bus=ide
# 如果disk类型为vda,则bus=virtio
迁移步骤

# 使用rbd 替换块存储,完成迁移

# 1、把UCarApp1_clone-disk1.raw 传到ceph-mon节点,且服务器要有足够的可用空间。
$ scp UCarApp1_clone-disk1.raw ceph-monNode:/root/ # 2、openstack 平台image注入hw_disk_bus=ide元数据。
$ openstack image set e954deb1-a3b0-486b-917e-a4adc2307fdd --property hw_disk_bus=ide # 3、利用上述的image, 在openstack平台创建一台虚拟机,虚拟机的磁盘大小要等同于UCarApp1_clone-disk1.raw磁盘大小,创建好后关机。
$ qemu-img info UCarApp1_clone-disk1.raw
virtual size: 500G (536870912000 bytes) # 磁盘大小为500G
$ 创建虚拟机步骤自己脑补 # 4、找到要替换虚拟机磁盘的id[自己找],利用rbd 找到相应的块设备。并记录起来, 后面删除块设备和导入新数据要用。
$ 本环境磁盘id=46db91bb-3786-4501-9c05-e74735942a83
$ 本环境虚拟机所在后端存储池[自己找]=pool-1e54f53e1ea64a3ebb1d9045cea154f9
$ rbd -p pool-1e54f53e1ea64a3ebb1d9045cea154f9 ls | grep 46db91bb-3786-4501-9c05-e74735942a83
volume-46db91bb-3786-4501-9c05-e74735942a83 # 5、删除相应的rbd块设备
$ rbd -p pool-1e54f53e1ea64a3ebb1d9045cea154f9 rm volume-46db91bb-3786-4501-9c05-e74735942a83 # 5、导入新的数据
$ rbd import -p pool-1e54f53e1ea64a3ebb1d9045cea154f9 UCarApp1_clone-disk1.raw volume-46db91bb-3786-4501-9c05-e74735942a83 # 6、导入完成开启虚拟机验证虚拟机是否正常,数据是否正常。

[镜像转换] ova文件转换成raw文件, 导入到openstack的更多相关文章

  1. [python]自动化将markdown文件转成html文件

    *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* ...

  2. Android开发:第四日番外——Assets文件夹和RAW文件夹区别

    话说上回说到SQLite数据库,其中涉及到把已经设计好的数据库打包到APK中,提到可以放置在Assert文件夹或者RAW文件夹中,那么两者到底有什么区别呢?让我们来探究一下. 一.res/raw和as ...

  3. 使用宏批量将多个csv文件转成excel文件

    在一个压缩文件中有100多个csv文件,要求要将此100多个csv文件转成excel文件,名字命名不变,有三种方式: 1. 傻不拉几的复制粘贴法 2. 一个一个打开csv文件,另存为xls文件,工作量 ...

  4. C#.NET常见问题(FAQ)-如何将cs文件编译成dll文件 exe文件 如何调用dll文件

    比如我要把TestDLL.cs文件编译成dll文件,则在命令提示符下,输入下面的命令,生成的文件为TestDLL.dll csc /target:library TestDLL.cs 注意前提是你安装 ...

  5. 将 Python3 文件打包成 exe 文件

    我们用 Python 写好的代码,如何给别人在没有配置 Python 环境的情况下直接使用呢?尤其是面向 windows 众. 因为 Python 是一门解释性的语言,离开了 Python 解释器,P ...

  6. 用gulp把less文件编译成css文件

    第一次使用gulp构建工具,使用gulp将.less文件编译成.css文件并输出.根据视频做了笔记.提供新手和自己以后做参考. HTML文件 <!DOCTYPE html> <htm ...

  7. C#.NET如何将cs文件编译成dll文件 exe文件 如何调用dll文件

    比如我要把TestDLL.cs文件编译成dll文件,则在命令提示符下,输入下面的命令,生成的文件为TestDLL.dll csc /target:library TestDLL.cs 注意前提是你安装 ...

  8. 在JAVA中将class文件编译成jar文件包,运行提示没有主清单属性

    在JAVA中将class文件编译成jar文件包,运行提示没有主清单属性 Maven 项目生成jar运行时提示“没有主清单属性” 新建了一个Maven的项目,mvn compile和mvn packag ...

  9. Android中asset文件夹和raw文件夹区别与用法

    *res/raw和assets的相同点: 1.两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制. *res/raw和assets的不同点:1.res/raw中的文件会被映射到R ...

随机推荐

  1. MCU软件最佳实践——矩阵键盘驱动

    1.矩阵键盘vs独立按键 在mcu应用开发过程中,独立按键比较常见,但是在需要的按键数比较多时,使用矩阵键盘则可以减少io占用,提高系统资源利用率.例如,某mcu项目要求有16个按钮,如果采用独立按键 ...

  2. CSS3 动画3D视角下 旋转圆环

    首先是  transform 属性: transform 属性向元素应用 2D 或 3D 转换.该属性允许我们对元素进行旋转.缩放.移动或倾斜. 加上对应属性则可得到3D透视效果下的形态 本次以圆形( ...

  3. Azure Terraform(十)利用 Azure DevOps 的条件语句选择发布环境

    一,引言 之前我讲过的所有的案例中,都是将整个Azure Resource 部署到同一个订阅下,没有做到灵活的在 Azure Pipeline 在运行前选择需要部署的环境.在实际的项目开发中,我们也会 ...

  4. find -or 用法

    find /opt/IBM/WebSphere85/ -name *loggeter* - or -name *loggetter* | xargs rm -rf

  5. ElementUI常遇到的一些问题

    一.form 下面只有一个 input 时回车键刷新页面 原因是:触发了表单默认的提交行为,给el-form 加上 @submit.native.prevent 就行了. <el-form in ...

  6. python网络爬虫-入门(一)

    前言 1.爬虫程序是Dt(Data Technology,数据技术)收集信息的基础,爬取到目标网站的资料后,就可以分析和建立应用了. 2.python是一个简单.有效的语言,爬虫所需要的获取.存储.整 ...

  7. 女朋友让我深夜十二点催她睡觉,我有Python我就不干

    事情是这样的:今天晚上,女朋友让我十二点催她睡觉. 不过,可是我实在太困了,熬不下去-- 是吧?女朋友哪有睡觉重要? 但,女朋友的命令,我是不敢违抗的-- 但是睡觉也不能缺! 这时候我们该怎么办呢?是 ...

  8. NumPy 秘籍中文第二版·翻译完成

    原文:NumPy Cookbook - Second Edition 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远. 在线阅读 Apache ...

  9. Nginx 路由转发配置(转)

    Nginx 路由转发配置笔记 由于预算有限,只有一台服务器,想要玩的东西不少,所以这个台服务器上会提供多重服务,因此涉及到的nginx转发就必有重要了 由nginx做请求代理,提供多种服务 php搭建 ...

  10. 用Java开发局域网内文件传输软件遇到的一些问题

    项目地址:https://github.com/b84955189/FileTransfer 由于巨懒的我不太喜欢使用U盘操作文件,特此开发一个简易的文件传输程序. 目前仅限局域网内传输,后期会尝试写 ...