我们已经设计了一个基于qemu的watchdog了。下一步工作就是创建一个含有我们的watchdog的虚拟计算机器了。

准备工作:

1. 使用virt-manager或者virsh创建一个虚拟机器。

2. 并安装一个操作系统。我选择了ubuntu12.04

3. 保存这个虚拟机的镜像。

为虚拟机器创建一个网络

比较流行的网络可以是bridge网络,macvtap网络,和NAT网络。当然还有一些高级的,open-vswitch等等。

为了将问题简单化,我们将利用libvirt的default network网络. 该网络是一个NAT的网络。

参考:libvirt的default network网络

我们的目的不是配置NAT,有关NAT的资料请参考netfilter的官网,howto 相关的文章。

1. 查看 defualt network的信息。

$ sudo virsh net-dumpxml default |grep bridge

  <bridge name='virbr2' stp='on' delay='0'/>
2. 查看defualt network的网段

$ sudo virsh net-dumpxml default |grep "ip address"
  <ip address='192.168.122.1' netmask='255.255.255.0'>

bridge 也可以手动创建。

brctl addbr virbr2

ifconfig virbr2 192.168.122.1  netmask 255.255.255.0 up

如果将eth0加到这个bridge的话, 需要设置

添加 # iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 原来的IP

echo "1" > /proc/sys/net/ipv4/ip_forward

# 也可以 /etc/sysctl.conf 修改net.ipv4.lp_forward=1,执行一下 sysctl -p生效

iptables -t nat -A POSTROUTING -s 192.168.122.0/24 -o eth0 -j MASQUERADE

使用qemu启动虚拟机

使用 virt-manager 启动qemu 安装guest

qemu的参数很多,我们需要$ man qemu 来弄清楚qemu的每个参数, 比较好的办法是先用virt-manager启动,然后挑选我们需要的qemu的各种参数。

$ ps -ef |grep qemu
qemu     13670     1 13 Jun19 ?        06:11:05 /usr/bin/qemu-system-x86_64 -machine accel=kvm -name ubuntu12.04 -S -machine pc-i440fx-1.6,accel=kvm,usb=off -m 1024 -realtime mlock=off -smp 1,sockets=1,cores=1,threads=1 -uuid 1631a77d-f447-4f74-92a6-bce68ae52f9f -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/ubuntu12.04.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -drive file=/home/shhfeng/iso/image/ubuntu.12.04.img,if=none,id=drive-virtio-disk0,format=qcow2,cache=none -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x5,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1 -drive file=/home/shhfeng/iso/ubuntu-12.04.4-desktop-amd64.iso,if=none,id=drive-ide0-1-0,readonly=on,format=raw -device ide-cd,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0,bootindex=2 -netdev tap,fd=25,id=hostnet0 -device rtl8139,netdev=hostnet0,id=net0,mac=52:54:00:6e:ae:39,bus=pci.0,addr=0x3 -spice port=5900,addr=0.0.0.0,disable-ticketing,seamless-migration=on -device cirrus-vga,id=video0,bus=pci.0,addr=0x2 -device intel-hda,id=sound0,bus=pci.0,addr=0x4 -device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x6
上面的蓝色部分是启动虚拟机器所需要的参数,除了netdev,其他的的参数都可以直接使用。

使用qemu直接启动 guest安装 guest。

$ x86_64-softmmu/qemu-system-x86_64 -enable-kvm -m 1024 -smp 1,sockets=1,cores=1,threads=1 -device cstl-watchdog -drive file=/home/shhfeng/iso/image/ubuntu.12.04.img,if=none,id=drive-virtio-disk0,format=qcow2,cache=none -device virtio-blk-pci,scsi=off,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1 -drive file=/home/shhfeng/iso/ubuntu-12.04.4-desktop-amd64.iso,if=none,id=drive-ide0-1-0,readonly=on,format=raw -device ide-cd,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0,bootindex=2 -spice port=5900,addr=0.0.0.0,disable-ticketing,seamless-migration=on -device cirrus-vga,id=video0 -chardev stdio,id=mon0 -mon chardev=mon0,mode=readline

启动完成时候,我们可以安装guest的OS。注意:这个guest没有指定网卡。

为guest指定一个网卡

这里给guest创建基于nat网络的tap网卡。

自行创建/启动一个tap设备

$ sudo tunctl -t tap0
Set 'tap0' persistent and owned by uid 0

$ ifconfig tap0 0.0.0.0 promisc up

in guest OS

$ sudo ifconfig tap0 192.168.122.254  hw ether 52:54:00:6e:ae:39 up

in guest OS

$ cat /etc/network/interfaces

# configue eth0 
auto eth0 
iface eth0 inet static
address 192.168.123.145
netmask 255.255.255.0

将该设备加入到default 的network中 virbr2

$ sudo brctl addif virbr2 tap0

以上是手动模式,我们也可以创建一个虚拟机,使用up和down的script脚本自动完成tap的创建和配置。参考: centos6.5下kvm网络配置之NAT

$ x86_64-softmmu/qemu-system-x86_64 -enable-kvm -m 1024 -smp 1,sockets=1,cores=1,threads=1 -device cstl-watchdog -device virtio-blk-pci,scsi=off,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1 -drive file=/home/shhfeng/iso/image/ubuntu.12.04.img,if=none,id=drive-virtio-disk0,format=qcow2,cache=none -chardev stdio,id=mon0 -mon chardev=mon0,mode=readline  -net nic,model=virtio,macaddr=52:54:00:6e:ae:39 -net tap,ifname=tap0,script=no,downscript=no -spice port=5900,addr=0.0.0.0,disable-ticketing,seamless-migration=on -device cirrus-vga,id=video0,bus=pci.0,addr=0x2

通过qemu-bridge-helper创建一个tap设备。

以上创建guest的网卡过程比较复杂, 使用-net bridge参数可以简化工作。

-net bridge,br=virbr2,helper=/home/shhfeng/qemu/debug/qemu-bridge-helper -net nic,model=virtio
该参数, qemu会自动的创建一个tap设备,并且将该tap设备直接连接到libvirt的default bridge “virbr2”

/home/shhfeng/qemu/ 是我们编译qemu是设置的prefix路径。

$ sudo x86_64-softmmu/qemu-system-x86_64 -enable-kvm -m 1024 -smp 1,sockets=1,cores=1,threads=1 -device cstl-watchdog -device virtio-blk-pci,scsi=off,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1 -drive file=/home/shhfeng/iso/image/ubuntu.12.04.img,if=none,id=drive-virtio-disk0,format=qcow2,cache=none -chardev stdio,id=mon0 -mon chardev=mon0,mode=readline  -net bridge,br=virbr2,helper=/home/shhfeng/qemu/debug/qemu-bridge-helper -net nic,model=virtio -spice port=5900,addr=0.0.0.0,disable-ticketing,seamless-migration=on -device cirrus-vga,id=video0

转载于:https://www.cnblogs.com/shaohef/p/3801514.html

[虚拟化/云][全栈demo] 为qemu增加一个PCI的watchdog外设(三)相关推荐

  1. 解析华为云全栈PaaS全景图,释放云原生计算大未来

    在云技术堆栈中,最能体现软件能力之一的就是PaaS平台及服务,在2018中国软件百强企业榜单中,华为已经连续十六年获得第一.华为云基于华为软件能力30年经验的积累,自2016年以来华为云企业应用服务就 ...

  2. 灵雀云全栈云原生开放平台ACP登陆VMware云市场

    近日,国内企业级云原生解决方案的领军企业灵雀云,携全栈云原生开放平台ACP(Alauda Container Platform)正式登陆VMware云市场. VMware云市场(Cloud Marke ...

  3. 6大新品重磅发布,华为云全栈云原生技术能力持续创新升级

    本文分享自华为云社区<HDC.Cloud 2021 | 华为云发布重磅新品,全栈云原生技术能力持续创新升级>,原文作者:技术火炬手 . 4月25日,在华为开发者大会(Cloud)2021上 ...

  4. Spring Boot+Vue全栈开发实战——花了一个礼拜读懂了这本书

    很幸运能够阅读王松老师的<Spring Boot+Vue全栈开发实战>这本书!之前也看过Spring Boot与Vue的相关知识,自己也会使用了Spring Boot+Vue进行开发项目. ...

  5. 新IT运维模式下,全栈溯源助你解应用性能监控难题

    [51CTO.com原创稿件]2016年,Gartner对APM的定义将原来的五个维度定义修改成了三个维度,即:数字化体验监控(DEM),应用发现.追踪和诊断(ADTD),以及应用分析(AA).此外, ...

  6. 打造数字原生引擎,易捷行云EasyStack发布新一代全栈信创云

    作为新基建的基石,信息技术应用创新产业正迎来黄金发展期.作为企业数字化转型的核心平台, 信创云对下承载包括芯片.整机.操作系统等软硬件基础设施,对上支撑大数据.人工智能.物联网.5G等新一代企业级应用 ...

  7. 想客户之所想 华为全栈云加速行业云化创新

    如今,行业用户从"想上云"到"真正将业务和数据迁移到云上",这中间一直存在一条鸿沟.无论是运营商.金融行业,还是政府.大中型企业,他们都拥有一套比较成熟的IT体 ...

  8. 天翼云推出全栈政务混合云 支持私有化运行

    9月29日,"5G+天翼云+AI 与城市共成长"天翼云全栈政务混合云交流会在安徽合肥开幕,中国电信云计算分公司副总经理李云庄,中国电信安徽公司副总经理郑家升等出席本次大会并参加&q ...

  9. 全栈工程师之路-Node.js

    2019独角兽企业重金招聘Python工程师标准>>> 全栈工程师之路-Node.js 高可用架构专用 原文[高可用架构] https://mp.weixin.qq.com/s?__ ...

最新文章

  1. 寒门出贵子,传递正能量
  2. We Chall-Training: Get Sourced-Writeup
  3. 信息检索(IR)的评价指标介绍-准确率、召回率、F1、mAP、ROC、AUC
  4. 路由器下交换机下计算机不能共享,路由器下接交换机,路由下的电脑和交换机下的电脑如何实现打印机共享?...
  5. Python爬虫进阶三之Scrapy框架安装配置
  6. jdeveloper_适用于JDeveloper 11gR2的Glassfish插件
  7. python中不包不包括_Unittest-断言列表中的一组项包含在(或不包含在)另一个lis中...
  8. 为什么面试总喜欢考算法题?
  9. python编程(gevent入门)
  10. jsch 长连接_广濑连接器DF13
  11. Day 4 列表,元组,range
  12. 无责任书评——DOOM启示录 BORLAND传奇
  13. php保存必应壁纸,README.md · 墨涩/自动下载每日必应壁纸到指定文件夹php源码 - Gitee.com...
  14. kivy python_另一款带有Kivy,Python的Android蛇
  15. 2548. 大胖子走迷宫 (时间bfs)
  16. 【网络技术题库梳理6】无线局域网设备安装与调试
  17. javascript高级一
  18. C++ typename的起源与用法
  19. [肖哥]网络工程师入门技术-玩转 win10版视频教程-肖宗鹏-专题视频课程
  20. rtl8211 smi读取_DM8148+RTL8211网卡uboot调试

热门文章

  1. Java 启动参数大全
  2. 位域(Bit-fields)分析
  3. 1034. 有理数四则运算(20)-PAT乙级真题
  4. 蓝桥杯 ALGO-21算法训练 装箱问题(动态规划,01背包)
  5. 【汇编】addr dw number number dw Y的意思:在ADDR单元中存放着数Y的地址
  6. 计算机信息管理是学什么课程设计,毕业论文计算机专业学生信息管理系统(数据库课程设计)...
  7. android 串口调试助手_Arduino入门 第八节-串口通讯(基础篇)
  8. 一个非常标准的Java连接Oracle数据库的示例代码
  9. java连接远程带有密码的mongodb数据库
  10. Java 程序连接 Informix 数据库方法实例介绍