在LinuxOne服务器上安装配置KVM客户机指南.docx
- 文档编号:1787696
- 上传时间:2022-10-24
- 格式:DOCX
- 页数:11
- 大小:1.08MB
在LinuxOne服务器上安装配置KVM客户机指南.docx
《在LinuxOne服务器上安装配置KVM客户机指南.docx》由会员分享,可在线阅读,更多相关《在LinuxOne服务器上安装配置KVM客户机指南.docx(11页珍藏版)》请在冰豆网上搜索。
在LinuxOne服务器上安装配置KVM客户机指南
在LinuxOne服务器上安装配置KVM客户机
前提
IBM LinuxOne服务器基于KVM开源技术提供了强大的虚拟化能力,基于LinuxOne的KVM虚拟机能够充分利用LinuxOne的高容量,高负载,高安全的运行环境,是运行区块链的理想服务器。
下面简单介绍一下怎样在LinuxOne上配置KVM客户机
目标
在基于s390x架构的LinuxOne服务器上 (操作系统是Ubuntu)安装运行KVM客户机,并且配置KVM客户机能够跟外网互通
相关软件介绍
KVM虚拟机架构
什么是KVM
KVM(全称是kernel-basedvirtualmachine基于内核的虚拟机)是基于支持虚拟化扩展的硬件(如intelVT或AMD-V)的linux全虚拟化解决方案。
KVM包含两部分,一个部分是能提供核心虚拟化能力的可加载的Linux内核模块,另一部分是具体硬件处理器相关的模块(kvm-intel.koorkvm-amd.ko)
KVM是开源软件,其内核模块代码已经从Linux 2.6.20合入Linux主线代码,其用户模块代码已经从QEMU 1.3合入QEMU主线代码。
什么是QEMU
QEMU(全称QuickEmulator 快速模拟器) 是独立虚拟软件,QEMU能够独立模拟一整套硬件系统包括处理器及挂载的外围硬件设备。
QEMU的内核模拟加速器是可选的,比如KVM。
kqemu是该软件的加速软件。
KVM和QEMU的关系
KVM只是提供了内核虚拟化能力,不能模拟一整套硬件系统。
QEMU不依赖KVM,能够独立模拟整套硬件系统,并且能够在一种硬件上跑多种操作系统,指令集需要转换,速度慢。
QEMU在Linux操作系统上跑Linux操作系统的虚拟机时,可以和KVM集成,利用KVM提供的虚拟化能力,大部分虚拟机的指令能够以原生的方式在宿主机上跑,不需要转换,性能几乎没有损失。
从KVM来说,KVM并不需要QEMU进行虚拟处理,只是需要QEMU的上层管理界面进行虚拟机控制。
什么是libvirt
libvirt是虚拟化平台的管理层,提供了一套虚拟化平台的管理API, 这些API能够用来执行虚拟机管理的各种任务,比如生命周期的管理:
创建,删除,启动,停止...
软件安装
KVM 内核模块在LinuxOne上是缺省支持的,不需要额外加载
安装qemu-kvm和libvirt
#sudoaptupdate
#sudoapt-getinstallqemu-kvmlibvirt-binbridge-utils
检测libvirt和qemu-kvm安装
#virsh-cqemu:
///systemlist
KVM虚拟机的安装
1. 准备一个基于s390x的Linux操作系统的安装ISO文件, 保存为:
/var/lib/libvirt/images/ubuntu-18.04.2-server-s390x.iso
2. 创建一个qumu 磁盘文件,这个磁盘文件会配置成虚拟机的硬盘
# sudoqemu-imgcreate-fqcow2-opreallocation=metadata,size=120G/var/lib/libvirt/images/qemu-img-file.qcow2
3.使用一个XML文件来定义一个KVM domain, 这个domain可以用来配置一个虚拟机,及定义虚拟机的外围硬件设备,多少个vCPU, 多少内存,网卡,硬盘,光驱....
s390x上一个典型的xml domain (~/kvm-guest.xml)定义如下:
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
4. 使用libvirt的命令行接口工具 "virsh" 来管理虚拟机的生命周期
o创建虚拟机
#virsh define ~/kvm-guest.xml
在后台其实是libvirt调用qemu-kvm, 全命令类似如下:
#qemu-system-s390x-machineaccel=kvm-nameTestVM-S-machinepc-i440fx-1.6,accel=kvm,usb=off-m4000-realtimemlock=off-smp2,sockets=2,cores=1,threads=1-uuid39ac4786-1eca-1092-034c-edb6f93d291c-no-user-config-nodefaults-chardevsocket,id=charmonitor,path=/var/lib/libvirt/qemu/TestVM.monitor,server,nowait-monchardev=charmonitor,id=monitor,mode=control-rtcbase=utc-no-shutdown-devicepiix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2-drivefile=/dev/vms/TestVM,if=none,id=drive-virtio-disk0,format=raw,cache=none,aio=native-devicevirtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=2-netdevtap,fd=27,id=hostnet0,vhost=on,vhostfd=28-devicevirtio-net-pci,netdev=hostnet0,id=net0,mac=52:
54:
00:
a5:
cd:
61,bus=pci.0,addr=0x3,bootindex=1-chardevpty,id=charserial0-deviceisa-serial,chardev=charserial0,id=serial0-deviceusb-tablet,id=input0-vnc127.0.0.1:
2-devicecirrus-vga,id=video0,bus=pci.0,addr=0x2-devicevirtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5
- 启动并安装虚拟机
#virsh start kvm-guest --console
o关闭虚拟机
#virsh shutdown kvm-guest
KVM客户机网络配置
基于NAT的虚拟网路
∙允许KVM客户机访问外部网络,外部网络不能访问KVM客户机- 在同一个Host上运行的KVM客户机可以相互访问文件 "/etc/libvirt/qemu/networks/default.xml"定义了一个私有网路,并且提供了一个DHCP服务器,KVM客户机可以自动获取私有网络地址。
default.xml如下:
∙
∙
∙
∙
∙
∙
∙
∙
∙
∙ 54: 00: ac: 05: 11'/> ∙ ∙ ∙ ∙ ∙ 在Domain的配置XML文件里需要定义网络为default 基于MACVTAP的虚拟网络 基于NAT的虚拟网络,外网不能访问KVM客户机。 s390x上的KVM客户机支持配置MACVTAP网络,可以与外网互通 - 一个MACVTAP端点是一种直接连接Host网络接口的字符设备 - 每个MACVTAP端点必须有自己的MAC地址,不能跟网络中的MAC地址重复,也不能跟Host的网络接口上的MAC地址相同 - 在同一个Host上运行的KVM客户机在"bridge"模式下,能够相互之间直接通信 ∙限制: Host不能与在本Host上运行的KVM客户机之间通信 MACVTAP的网络配置 -检测Host上的macvtap内核模块是否已经加载 #检查内核模块有没有包含macvtap功能: >lsmod|grepmacvtap macvtap163842 macvlan286721macvtap tap245766macvtap,vhost_net #检查内核符号表看看macvtap是不是被直接链接进内核里: >grepmacvtap/proc/kallsyms 000003ff80be01e0tmac
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- LinuxOne 服务器 安装 配置 KVM 客户机 指南