由于工作需要,需要需要虚拟出一个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相关推荐

  1. 【虚拟化qemu】(二)--- qemu 虚拟化软件使用

    [虚拟化qemu](二)- qemu 虚拟化软件使用 本文主要用于记录关于 qemu 虚拟化软件的常用指令和功能. Qemu 运行环境 关于 qemu 的运行环境上篇中已经详细的介绍了. 本机安装环境 ...

  2. 【虚拟化qemu】(一)--- qemu 虚拟化软件介绍与安装

    [虚拟化qemu](一)- qemu 虚拟化软件介绍与安装 本文主要用于记录关于 qemu 虚拟化软件的介绍和安装. 关于 qemu qemu(quick emulator)是一款可执行硬件虚拟化的( ...

  3. android kvm linux,GitHub - QEMUINANDROID/QEMUARMLINUXANDROID: 移植linux上的qemu虚拟化软件到android...

    QEMUARMLINUX&ANDROID QEMU简介: QEMU(简称快速仿真器)是一个免费的开源系统管理程序托管执行硬件虚拟化(不要与硬件辅助虚拟化相混淆). QEMU是一个托管的虚拟机监 ...

  4. QEMU虚拟化加速方案 - KVM

    QEMU执行引擎除了缺省TCG即时翻译外,还支持硬件加速方案kvm[1]及HAXM[2].硬件加速方案对操作系统.硬件体系结构的要求总结: * Linux + [Intel VT-d | AMD-V ...

  5. qemu虚拟化-pci设备模拟

    pci设备算是学习qemu必须要掌握的一类设备的模拟,单独提出来说一下.这里以qemu的pci教学程序为基础讲解,源码路径:hw/misc/edu.c 1.设备的定义 typedef struct { ...

  6. 使用 QEMU 进行系统仿真

    QEMU 是一个面向完整 PC 系统的开源仿真器.除了仿真处理器外,QEMU 还允许仿真所有必要的子系统,如连网硬件和视频硬件.它还允许实现高级概念上的仿真(如对称多处理系统(多达 255 个 CPU ...

  7. KVM,QEMU,libvirt入门学习笔记【转】

    转自:http://blog.csdn.net/julykobe/article/details/27571387 注:本文内容均来自网络,我只是在此做了一些摘抄和整理的工作,来源均有注明. 0.虚拟 ...

  8. 使用QEMU创建虚拟机

    解决办法: 执行:yum upgrade device-mapper-libs yum -y install avahi /etc/init.d/messagebus restart /etc/ini ...

  9. 云计算之KVM虚拟化实战

    1 基础环境规划 1.1 主机环境规划 系统版本 主机名 IP地址 内存 磁盘 CentOS6.9 kvm-node1 10.0.0.200 2G 20G CentOS6.9 kvm-node2 10 ...

最新文章

  1. android 背景切换动画效果代码,关于Android shape gradient背景渐变
  2. hdu1863 畅通工程---MST连通
  3. Django的静态文件的配置
  4. Python入门100题 | 第062题
  5. Spring注解之@Transactional对于事务异常的处理
  6. C++binary exponent二元指数算法的实现(附完整源码)
  7. 【XML DOM】解析XML Dom
  8. CGAL window 10安装、Demo使用步骤以及问题解决记录
  9. poj2441状态压缩dp基础
  10. Python实现感知器的逻辑电路(与门、与非门、或门、异或门)
  11. linux b权限开头的文件夹,linux文件权限与目录配置
  12. 7.3.Zeng_Cache(4) --- 后端
  13. go语言中输入的方式,获取用户的输入信息
  14. 万兆网口和千兆网口区别_万兆网卡的安装以及注意事项
  15. 国内外计算机视觉领域优秀研究团队汇总
  16. Pandas:写了一个简易的销量异常检测器
  17. 化工原理少学时答案解析_化工原理(少学时)题库 及答案
  18. java 自定义控件_自定义控件的开发
  19. Text Mesh Pro 1.4.0实现图片组合伤害数字
  20. python大数快速判断质数与分解质因数

热门文章

  1. 一个SAPer的网络日志-连载一-看,内部订单都能用来干啥
  2. android平台opengl es读取纹理数据并保存图片
  3. C语言——一元多项式定义求和 [单链表] (数据结构)
  4. Swift5.1 语言指南(三) 快速之旅
  5. 后台服务架构高性能设计之道
  6. Python数据挖掘课程 五.线性回归知识及预测糖尿病实例
  7. 变形金刚3:月黑之时1280超清迅雷下载
  8. 职业生涯规划计算机专业100,计算机专业职业生涯规划书.doc
  9. 取消关闭计算机怎么弄,win7自动关机命令怎么设置和取消
  10. 拥有一台云服务器可以干什么?