[镜像转换] ova文件转换成raw文件, 导入到openstack
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的更多相关文章
- [python]自动化将markdown文件转成html文件
*:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* ...
- Android开发:第四日番外——Assets文件夹和RAW文件夹区别
话说上回说到SQLite数据库,其中涉及到把已经设计好的数据库打包到APK中,提到可以放置在Assert文件夹或者RAW文件夹中,那么两者到底有什么区别呢?让我们来探究一下. 一.res/raw和as ...
- 使用宏批量将多个csv文件转成excel文件
在一个压缩文件中有100多个csv文件,要求要将此100多个csv文件转成excel文件,名字命名不变,有三种方式: 1. 傻不拉几的复制粘贴法 2. 一个一个打开csv文件,另存为xls文件,工作量 ...
- C#.NET常见问题(FAQ)-如何将cs文件编译成dll文件 exe文件 如何调用dll文件
比如我要把TestDLL.cs文件编译成dll文件,则在命令提示符下,输入下面的命令,生成的文件为TestDLL.dll csc /target:library TestDLL.cs 注意前提是你安装 ...
- 将 Python3 文件打包成 exe 文件
我们用 Python 写好的代码,如何给别人在没有配置 Python 环境的情况下直接使用呢?尤其是面向 windows 众. 因为 Python 是一门解释性的语言,离开了 Python 解释器,P ...
- 用gulp把less文件编译成css文件
第一次使用gulp构建工具,使用gulp将.less文件编译成.css文件并输出.根据视频做了笔记.提供新手和自己以后做参考. HTML文件 <!DOCTYPE html> <htm ...
- C#.NET如何将cs文件编译成dll文件 exe文件 如何调用dll文件
比如我要把TestDLL.cs文件编译成dll文件,则在命令提示符下,输入下面的命令,生成的文件为TestDLL.dll csc /target:library TestDLL.cs 注意前提是你安装 ...
- 在JAVA中将class文件编译成jar文件包,运行提示没有主清单属性
在JAVA中将class文件编译成jar文件包,运行提示没有主清单属性 Maven 项目生成jar运行时提示“没有主清单属性” 新建了一个Maven的项目,mvn compile和mvn packag ...
- Android中asset文件夹和raw文件夹区别与用法
*res/raw和assets的相同点: 1.两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制. *res/raw和assets的不同点:1.res/raw中的文件会被映射到R ...
随机推荐
- Spring Boot Admin,贼好使!
Spring Boot Admin(SBA)是一个开源的社区项目,用于管理和监控 Spring Boot 应用程序.应用程序可以通过 http 的方式,或 Spring Cloud 服务发现机制注册到 ...
- 进程池与线程池基本使用、协程理论与实操、IO模型、前端、BS架构、HTTP协议与HTML前戏
昨日内容回顾 GIL全局解释器锁 1.在python解释器中 才有GIL的存在(只与解释器有关) 2.GIL本质上其实也是一把互斥锁(并发变串行 牺牲效率保证安全) 3.GIL的存在 是由于Cpyth ...
- CMake语法—普通变量与函数(Normal Variable And Function)
目录 CMake语法-普通变量与函数(Normal Variable And Function) 1 CMake普通变量与函数示例 1.1 CMakeLists.txt 1.2 执行CMake配置脚本 ...
- Android系统编程入门系列之硬件交互——通信硬件NFC
在上篇文章介绍了接入式USB硬件的简单使用,接下来将介绍不依赖物理连接的硬件通信了.本文的重点是近距离通信的硬件NFC. NFC硬件 应用程序中可以通过NFC硬件读取或发送指定协议的技术实现,在And ...
- IntelliJ IDEA 热部署,修改java文件 不用重启tomcat
详情见大佬:https://www.cnblogs.com/chenweichu/articles/6838842.html
- coredns 安装
coredns简介 CoreDNS是一个DNS服务器,和Caddy Server具有相同的模型:它链接插件.CoreDNS是云本土计算基金会启动阶段项目.CoreDNS是SkyDNS的继任者. Sky ...
- [luogu P1312]Mayan游戏
其实就是一道锻炼码力的简单题-- 看到题目中的\(0<x\leqslant 5\)也就知道是爆搜了吧( 我们仿照写游戏的方法多写几个函数,能够有效降低错误率(确信 我们写出大致的搜索流程来: 如 ...
- LeetCode650
LeetCode每日一题2021.9.19 跳转链接 分析 我们发现每个数字只能由它的因数通过复制而来, 因为复制操作是每次去添加一个相同的个数. 因此我们就可以得出DP方程 dp[i] = min( ...
- 使用gdi+实时绘制picturebox(画个叉)
private void DrawReticle(System.Drawing.Point pt, int size)//画一个透明的前景图片上画十字 { Bitmap bmp = new Bitma ...
- Tomcat启动报错org.apache.catalina.core.StandardContext listenerStart
感谢原文作者:西北码农 原文链接:https://blog.csdn.net/bitree1/article/details/72236633 解决方法: 1.检查配置信息有无异常:如 web.xml ...