Qemu虚拟化PowerPc
由于工作需要,需要需要虚拟出一个PowerPc64的系统,在介绍之前,先Qemu、Kvm、vmWare。之前对这三者虚拟化特点并没有特别关注。
是否基于硬件平台 |
是否全虚拟化 |
与宿主主机CPU一致 |
性能 |
|
Kvm |
是 |
是 |
是 |
高 |
VmWare |
是 |
否(半虚拟化) |
是 |
高 |
Qemu |
否,纯软件模拟 |
是 |
否(在x86上可以模拟powerpc) |
差 |
各个虚拟化对比表
Kvm与QEMU关系:
Kvm是基于linux kernel的,它已经成为linux的一部分,但是只有内核部分是不行的,必有用户层软件支持才可以管理虚拟机,因此kvm选择了比较成熟Qemu作为用户层管理工具,它对Qemu进行部分修改(具体修改啥我也不知道)。
从QEMU角度来看,它是完全独立的虚拟化方案,和kvm没有半毛钱关系。
VmWare就不介绍了,这个比较封闭(商业软件),很多技术表层知识,网上一大箩筐。。。
【环境部署】
Host主机系统是Centos7.1,X86-64架构。需要下载qemu源码、编译、安装三个步骤:
[root@localhost ~]# wget https://download.qemu.org/qemu-2.11.1.tar.xz
[root@localhost ~]# tar xvJf qemu-2.11.1.tar.xz
[root@localhost ~]# cd qemu-2.11.1
[root@localhost ~]# ./configure
[root@localhost ~]# make && make install
【系统安装】
1、温馨提示,安装虚拟机系统时,Host主机最好有图形界面,网上也有说开启vnc,但是vnc有时候会有分辨率问题,导致界面显示不全。
2、创建磁盘
qemu-img create -f qcow2 CentOS-ppc64.qcow2 20G
创建一个qcow2类型的磁盘,名称是Centos-ppc64,大小是20G
3、安装系统
qemu-system-ppc64 -hda /home/qemu-ppc/CentOS-ppc64.qcow2 -cdrom /home/qemu-ppc/CentOS-7-AltArch-ppc64-Minimal-1708.iso -boot d -m 4096 -smp 16,sockets=2,cores=8,threads=1
参数 |
含义 |
-boot |
启动方式 d:cd方式启动 c:磁盘方式启动 |
-m |
内存大小。图形界面方式方式内存至少要4096 |
-hda |
指定系统磁盘 |
-smp (多处理器) |
sockets 槽数 cores cpu核心数 thread一个cpu可运行多少线程 Sockets*cores*threads = smp后面的数字 |
-cdrom |
设置镜像径路 |
-cpu |
指定cpu类型。这个地方最好指定一下,否则会出现非法指令错误。支持的类型可以通过 -cpu help查看支持的所有cpu类型。 |
后面出现如下界面:
说明:
1)第二张界面,会耗费一定的时间,请耐心等待
2)由于是QEMU纯软件虚拟化,因此安装过程非常慢(系统安装后运型也很慢),大概花了一个晚上的时间才安装完毕。
4、安装完成,启动系统
启动的命令行与安装系统的命令行,类型去掉cdrom且将boot改成c,具体如下:
qemu-system-ppc64 -hda /home/qemu-ppc/CentOS-ppc64.qcow2 -cdrom /home/qemu-ppc/CentOS-7-AltArch-ppc64-Minimal-1708.iso -boot d -m 4096 -smp 16,sockets=2,cores=8,threads=1
【进阶】
虚拟创建完成之后,接下来的重要问题就是网络问题。这样启动虚拟机,我们进入系统之后,只有lo(环回网卡),因此需要接入网络,最起码是局域网。接下介绍一些,通过dhcp方式接入局域网(私有网络),不能访问外网。
1、创建网卡配置文件
文件内容:/etc/sysconfig/network-scripts/qemu-ifup
#!/bin/bash
# qemu-ifup script for QEMU/KVM with NAT netowrk mode# set your bridge name
BRIDGE=virbr0 //默认虚拟网卡
IFNAME=eno2 //物理网卡,如果主机有多个物理,可以选则一个不用的。
# Network information
NETWORK=192.168.122.0
NETMASK=255.255.255.0
# GATEWAY for internal guests is the bridge in host
GATEWAY=192.168.122.1
DHCPRANGE=192.168.122.2,192.168.122.254# Optionally parameters to enable PXE support
TFTPROOT=
BOOTP=function check_bridge()
{if brctl show | grep "^$BRIDGE" &> /dev/null; thenreturn 1elsereturn 0fi
}function create_bridge()
{brctl addbr "$BRIDGE"brctl stp "$BRIDGE" onbrctl setfd "$BRIDGE" 0ifconfig "$BRIDGE" "$GATEWAY" netmask "$NETMASK" up
}function enable_ip_forward()
{echo 1 > /proc/sys/net/ipv4/ip_forward
}function add_filter_rules()
{iptables -t nat -A POSTROUTING -s "$NETWORK"/"$NETMASK" \! -d "$NETWORK"/"$NETMASK" -j MASQUERADE -o $IFNAME
}function start_dnsmasq()
{# don't run dnsmasq repeatedlyps -ef | grep "dnsmasq" | grep -v "grep" &> /dev/nullif [ $? -eq 0 ]; thenecho "Warning:dnsmasq is already running. No need to run it again."return 1fidnsmasq \--strict-order \--except-interface=lo \--interface=$BRIDGE \--listen-address=$GATEWAY \--bind-interfaces \--dhcp-range=$DHCPRANGE \--conf-file="" \--pid-file=/var/run/qemu-dnsmasq-$BRIDGE.pid \--dhcp-leasefile=/var/run/qemu-dnsmasq-$BRIDGE.leases \--dhcp-no-override \${TFTPROOT:+"--enable-tftp"} \${TFTPROOT:+"--tftp-root=$TFTPROOT"} \${BOOTP:+"--dhcp-boot=$BOOTP"}
}function setup_bridge_nat()
{check_bridge "$BRIDGE"if [ $? -eq 0 ]; thencreate_bridgefienable_ip_forwardadd_filter_rules "$BRIDGE"start_dnsmasq "$BRIDGE"
}# need to check $1 arg before setup
if [ -n "$1" ]; thensetup_bridge_natifconfig "$1" 0.0.0.0 upbrctl addif "$BRIDGE" "$1"exit 0
elseecho "Error: no interface specified."exit 1
fi
文件内容/etc/sysconfig/network-scripts/qemu-ifdown
!/bin/bash
# qemu-ifdown script for QEMU/KVM with NAT network mode# set your bridge name
BRIDGE="virbr0"if [ -n "$1" ]; thenecho "Tearing down network bridge for $1" > /tmp/temp-nat.logip link set $1 downbrctl delif "$BRIDGE" $1ip link set "$BRIDGE" downbrctl delbr "$BRIDGE"iptables -t nat -Fexit 0
elseecho "Error: no interface specified" > /tmp/temp-nat.logexit 1
fi
注:
1) ifup需要指定虚拟网桥以及物理网卡,如上注释内容。
2) 指定DHCP范围。
2、启动虚拟机
qemu-system-ppc64 -hda /home/qemu-ppc/CentOS-ppc64.qcow2 -boot c -m 4096 -smp 16,sockets=2,cores=8,threads=1 \
-device e1000,netdev=mytap,mac=52:54:00:12:34:22 \
-netdev type=tap,id=mytap,ifname=tap0,script=/etc/sysconfig/network-scripts/qemu-ifup,downscript=/etc/sysconfig/network-scripts/qemu-ifdown
参数 |
含义 |
-device |
1、网卡类型e1000,是因特尔一种网卡类型。可以指定其他类型 2、mac地址,设置虚拟机网卡的mac地址 3、netdev指定网络id |
-netdev |
1、type是tap类型,可以指定其他类型,如bridge。 2、id,唯一标识,必须参数。 3、ifname,host主机中生成的接口名称,与虚拟中网卡,互相成为peer端口。该端口并没有ip地址。 4、Script指定虚拟机网络激活/去激活网卡的脚本,如果没有可以指定no |
3、验证,需要手动启动一下dhcp client,是网卡重新获取ip地址
Qemu虚拟化PowerPc相关推荐
- 【虚拟化qemu】(二)--- qemu 虚拟化软件使用
[虚拟化qemu](二)- qemu 虚拟化软件使用 本文主要用于记录关于 qemu 虚拟化软件的常用指令和功能. Qemu 运行环境 关于 qemu 的运行环境上篇中已经详细的介绍了. 本机安装环境 ...
- 【虚拟化qemu】(一)--- qemu 虚拟化软件介绍与安装
[虚拟化qemu](一)- qemu 虚拟化软件介绍与安装 本文主要用于记录关于 qemu 虚拟化软件的介绍和安装. 关于 qemu qemu(quick emulator)是一款可执行硬件虚拟化的( ...
- android kvm linux,GitHub - QEMUINANDROID/QEMUARMLINUXANDROID: 移植linux上的qemu虚拟化软件到android...
QEMUARMLINUX&ANDROID QEMU简介: QEMU(简称快速仿真器)是一个免费的开源系统管理程序托管执行硬件虚拟化(不要与硬件辅助虚拟化相混淆). QEMU是一个托管的虚拟机监 ...
- QEMU虚拟化加速方案 - KVM
QEMU执行引擎除了缺省TCG即时翻译外,还支持硬件加速方案kvm[1]及HAXM[2].硬件加速方案对操作系统.硬件体系结构的要求总结: * Linux + [Intel VT-d | AMD-V ...
- qemu虚拟化-pci设备模拟
pci设备算是学习qemu必须要掌握的一类设备的模拟,单独提出来说一下.这里以qemu的pci教学程序为基础讲解,源码路径:hw/misc/edu.c 1.设备的定义 typedef struct { ...
- 使用 QEMU 进行系统仿真
QEMU 是一个面向完整 PC 系统的开源仿真器.除了仿真处理器外,QEMU 还允许仿真所有必要的子系统,如连网硬件和视频硬件.它还允许实现高级概念上的仿真(如对称多处理系统(多达 255 个 CPU ...
- KVM,QEMU,libvirt入门学习笔记【转】
转自:http://blog.csdn.net/julykobe/article/details/27571387 注:本文内容均来自网络,我只是在此做了一些摘抄和整理的工作,来源均有注明. 0.虚拟 ...
- 使用QEMU创建虚拟机
解决办法: 执行:yum upgrade device-mapper-libs yum -y install avahi /etc/init.d/messagebus restart /etc/ini ...
- 云计算之KVM虚拟化实战
1 基础环境规划 1.1 主机环境规划 系统版本 主机名 IP地址 内存 磁盘 CentOS6.9 kvm-node1 10.0.0.200 2G 20G CentOS6.9 kvm-node2 10 ...
最新文章
- android 背景切换动画效果代码,关于Android shape gradient背景渐变
- hdu1863 畅通工程---MST连通
- Django的静态文件的配置
- Python入门100题 | 第062题
- Spring注解之@Transactional对于事务异常的处理
- C++binary exponent二元指数算法的实现(附完整源码)
- 【XML DOM】解析XML Dom
- CGAL window 10安装、Demo使用步骤以及问题解决记录
- poj2441状态压缩dp基础
- Python实现感知器的逻辑电路(与门、与非门、或门、异或门)
- linux b权限开头的文件夹,linux文件权限与目录配置
- 7.3.Zeng_Cache(4) --- 后端
- go语言中输入的方式,获取用户的输入信息
- 万兆网口和千兆网口区别_万兆网卡的安装以及注意事项
- 国内外计算机视觉领域优秀研究团队汇总
- Pandas:写了一个简易的销量异常检测器
- 化工原理少学时答案解析_化工原理(少学时)题库 及答案
- java 自定义控件_自定义控件的开发
- Text Mesh Pro 1.4.0实现图片组合伤害数字
- python大数快速判断质数与分解质因数
热门文章
- 一个SAPer的网络日志-连载一-看,内部订单都能用来干啥
- android平台opengl es读取纹理数据并保存图片
- C语言——一元多项式定义求和 [单链表] (数据结构)
- Swift5.1 语言指南(三) 快速之旅
- 后台服务架构高性能设计之道
- Python数据挖掘课程 五.线性回归知识及预测糖尿病实例
- 变形金刚3:月黑之时1280超清迅雷下载
- 职业生涯规划计算机专业100,计算机专业职业生涯规划书.doc
- 取消关闭计算机怎么弄,win7自动关机命令怎么设置和取消
- 拥有一台云服务器可以干什么?