首页 资讯频道 互联频道 智能频道 网络 数据频道 安全频道 服务器频道 存储频道

详解KVM虚拟化”使用说明书“

2020-02-01 12:53:34 来源 : 今日头条

Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。

KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术)。是基于硬件的完全虚拟化。

虚拟化是云计算的基础。虚拟化可以满足在一台物理的服务器上运行多个虚拟机。虚拟机共享物理机的 CPU、内存、IO 硬件资源,但逻辑上虚拟机之间是相互隔离的。

物理机我们一般称为宿主机(Host),宿主机上面的虚拟机称为客户机(Guest)。

虚拟化分类

虚拟化分为两种:1型虚拟化和2型虚拟化。

1型虚拟化

Hypervisor 直接安装在物理机上,多个虚拟机在 Hypervisor 上运行。Hypervisor 实现方式一般是一个特殊定制的 Linux 系统。Xen 和 VMWare 的 ESXi 都属于这个类型。

2型虚拟化

物理机上首先安装常规的操作系统,比如 Redhat、Ubuntu 和 Windows。Hypervisor 作为 OS 上的一个程序模块运行,并对管理虚拟机进行管理。KVM、VirtualBox 和 VMWare Workstation 都属于这个类型。

理论上讲:

1型虚拟化一般对硬件虚拟化功能进行了特别优化,性能上比2型要高;

2型虚拟化因为基于普通的操作系统,会比较灵活,比如支持虚拟机嵌套。嵌套意味着可以在KVM虚拟机中再运行KVM。

部署KVM

环境准备

确认开启虚拟化

[[email protected]~]#grep-E"(vmx)|(svm)"/proc/cpuinfo

flags:fpuvmedepsetscmsrpaemcecx8apicsepmtrrpgemcacmovpatpse36clflushmmxfxsrssesse2syscallnxmmxextfxsr_optpdpe1gbrdtscplmconstant_tscartrep_goodnopltsc_reliablenonstop_tscextd_apicidaperfmperfeagerfpupnipclmulqdqssse3fmacx16sse4_1sse4_2x2apicmovbepopcntaesxsaveavxf16crdrandhypervisorlahf_lmsvmextapiccr8_legacyabmsse4amisalignsse3dnowprefetchosvwretpoline_amdvmmcallfsgsbasebmi1avx2smepbmi2rdseedadxsmapxsaveoptclzeroirperfxsaveerptribpbaratnptsvm_locknrip_savevmcb_cleanflushbyasiddecodeassists

***步:下载相关软件

[[email protected]~]#yuminstalllibvirtvirt-installqemu-kvm-y

libvirt : KVM 的管理工具。Libvirt 包含 3 个东西:后台 daemon 程序 libvirtd、API 库和命令行工具 virsh

qemu-kvm:KVM 和 QEMU 的核心包,提供 CPU、内存和 IO 虚拟化功能

virt-install是一个命令行工具,它能够为KVM、Xen或其它支持libvrit API的hypervisor创建虚拟机并完成GuestOS安装

第二步:启动libvirt

[[email protected]~]#systemctlrestartlibvirtd

第三步:创建磁盘

[[email protected]~]#qemu-imgcreate-fraw/ken/centos7-x86_64.raw10G

Formatting'/ken/centos7-x86_64.raw',fmt=rawsize=10737418240

第四步:创建虚拟机

[[email protected]~]#virt-install--virt-typekvm--nameCentos7-x86_64--ram1024--cdrom=/tmp/CentOS-7.3-x86_64-Minimal-1511.iso--diskpath=/ken/centos7-x86_64.raw--networknetwork=default--graphicsvnc,listen=0.0.0.0--noautoconsole

注意:需要上传一个镜像到/tmp目录下,其他目录也可以,上面指定即可

第五步:快速使用VNC进行连接

ip地址输入虚拟机ip

开始安装系

定制化系统

开始安装

第六步:查看已经创建的虚拟机

[[email protected] ~]# virsh list --all

Id Name State

- Centos7-x86_64 shut off

第七步:启动虚拟机

[[email protected]~]#virshstartCentos7-x86_64

DomainCentos7-x86_64started

[[email protected]~]#virshlist--all

IdNameState

----------------------------------------------------

2Centos7-x86_64running

第八步:使用VNC再次连接

现在就可以登录进去我们创建的虚拟机里面去了

第九步:ssh连接

宿主机上连接

首先查看新建虚拟机IP地址

宿主机进行连接

[[email protected]~]#ssh192.168.122.198

Theauthenticityofhost'192.168.122.198(192.168.122.198)'can'tbeestablished.

ECDSAkeyfingerprintisSHA256:t+jpHwwHJk8mo2XZB93H9afhSVy7BCMvLsvqsUF+Obg.

ECDSAkeyfingerprintisMD5:48:d5:9e:db:f8:bb:5e:56:c1:c8:1d:a2:4b:45:d6:fc.

Areyousureyouwanttocontinueconnecting(yes/no)?yes

Warning:Permanentlyadded'192.168.122.198'(ECDSA)tothelistofknownhosts.

[email protected]'spassword:

Lastlogin:MonMar1821:06:272019

[[email protected]~]#ipa

1:lo:mtu65536qdiscnoqueuestateUNKNOWN

link/loopback00:00:00:00:00:00brd00:00:00:00:00:00

inet127.0.0.1/8scopehostlo

valid_lftforeverpreferred_lftforever

inet6::1/128scopehost

valid_lftforeverpreferred_lftforever

2:eth0:mtu1500qdiscpfifo_faststateUPqlen1000

link/ether52:54:00:89:17:d7brdff:ff:ff:ff:ff:ff

inet192.168.122.198/24brd192.168.122.255scopeglobaldynamiceth0

valid_lft3510secpreferred_lft3510sec

inet6fe80::5054:ff:fe89:17d7/64scopelink

valid_lftforeverpreferred_lftforever

登录退出虚拟机

***步:在创建的KVM虚拟机里面执行如下的命令

[[email protected] ~]# grubby --update-kernel=ALL --args="console=ttyS0"

第二步:重启KVM虚拟机

第三步:使用virsh console登录登录虚拟机

执行virsh console 虚拟机名称

[[email protected]~]#virshconsoleCentos7-x86_64

ConnectedtodomainCentos7-x86_64

Escapecharacteris^]#到这步再次按回车

CentOSLinux7(Core)

Kernel3.10.0-327.el7.x86_64onanx86_64

localhostlogin:root#输入用户

Password:#密码

Lastlogin:MonMar1822:19:47onttyS0

[[email protected]~]#

第四步:退出KVM虚拟机

按这两个组合键,按ctrl加上中括号的右边: ctrl+]

[[email protected]~]#virshconsoleCentos7-x86_64

ConnectedtodomainCentos7-x86_64

Escapecharacteris^]

CentOSLinux7(Core)

Kernel3.10.0-327.el7.x86_64onanx86_64

localhostlogin:root

Password:

Lastlogin:MonMar1822:20:44onttyS0

[[email protected]~]#

[[email protected]~]#

克隆虚拟机

***步:关闭虚拟机

[[email protected]~]#virshshutdownCentos7-x86_64

DomainCentos7-x86_64isbeingshutdown

[[email protected]~]#virshlist--all

IdNameState

----------------------------------------------------

-Centos7-x86_64shutoff

第二步: 创建磁盘位置

[[email protected]~]#mkdir/ken/img

第三步:使用virt-clone克隆新的虚拟机

[[email protected]~]#virt-clone-oCentos7-x86_64-ncentos7_test-f/ken/img/centos7_test.img

Allocating'centos7_test.img'|10GB00:00:36

Clone'centos7_test'createdsuccessfully.

第四步:查看虚拟机

[[email protected]~]#virshlist--all

IdNameState

----------------------------------------------------

-Centos7-x86_64shutoff

-centos7_testshutoff

第五步:启动虚拟机

[[email protected]~]#virshstartcentos7_test

Domaincentos7_teststarted

[[email protected]~]#virshlist--all

IdNameState

----------------------------------------------------

3centos7_testrunning

第六步:进入虚拟机

[[email protected]~]#virshconsolecentos7_test

Connectedtodomaincentos7_test

Escapecharacteris^]

CentOSLinux7(Core)

Kernel3.10.0-327.el7.x86_64onanx86_64

localhostlogin:root

Password:

Lastlogin:MonMar1822:21:24onttyS0

[[email protected]~]#ipa

1:lo:mtu65536qdiscnoqueuestateUNKNOWN

link/loopback00:00:00:00:00:00brd00:00:00:00:00:00

inet127.0.0.1/8scopehostlo

valid_lftforeverpreferred_lftforever

inet6::1/128scopehost

valid_lftforeverpreferred_lftforever

2:eth0:mtu1500qdiscpfifo_faststateUPqlen1000

link/ether52:54:00:cc:69:f8brdff:ff:ff:ff:ff:ff

inet192.168.122.161/24brd192.168.122.255scopeglobaldynamiceth0

valid_lft3597secpreferred_lft3597sec

inet6fe80::5054:ff:fecc:69f8/64scopelink

valid_lftforeverpreferred_lftforever

xshell连接虚拟机

现在物理主机是ping不通KVM虚拟机的,只有宿主机可以和KVM通信

***步:创建脚本并执行

[[email protected]~]#catbridg.sh

#!/bin/bash

brctladdbrbr0#创建桥接网卡

brctladdifbr0eth0#把eth0加入到br0中

ipad192.168.4.190/24deveth0#删除eth0的IP地址

ifconfigbr0192.168.4.190/24up#启动br0网络

routeadddefaultgw192.168.4.1#添加网关

第二步:查看网络

第三步:测试外网连通性

[[email protected]~]#pingwww.baidu.com

PINGwww.a.shifen.com(119.75.217.26)56(84)bytesofdata.

64bytesfrom119.75.217.26(119.75.217.26):icmp_seq=1ttl=54time=6.08ms

64bytesfrom119.75.217.26(119.75.217.26):icmp_seq=2ttl=54time=9.20ms

64bytesfrom119.75.217.26(119.75.217.26):icmp_seq=3ttl=54time=8.58ms

^C

---www.a.shifen.compingstatistics---

3packetstransmitted,3received,0%packetloss,time6020ms

rttmin/avg/max/mdev=6.087/7.957/9.201/1.346ms

第四步:编辑虚拟机

修改如下的三处位置即可

[[email protected]~]#virsheditCentos7-x86_64

第五步: 启动KVM虚拟机并进入KVM虚拟机编辑网卡

配置一个与物理主机同网段的网络

[[email protected]~]#cat/etc/sysconfig/network-scripts/ifcfg-eth0

TYPE="Ethernet"

BOOTPROTO="static"

NAME="eth0"

DEVICE="eth0"

ONBOOT="yes"

IPADDR=192.168.4.165

NETMASK=255.255.255.0

GATEWAY=192.168.4.1

DNS1=8.8.8.8

[[email protected]~]#systemctlrestartnetwork

第六步:xshell连接KVM虚拟机

Connectingto192.168.4.165:22...

Connectionestablished.

Toescapetolocalshell,press'Ctrl+Alt+]'.

WARNING!TheremoteSSHserverrejectedX11forwardingrequest.

Lastlogin:MonMar1823:33:212019

[[email protected]~]#ipa

1:lo:mtu65536qdiscnoqueuestateUNKNOWN

link/loopback00:00:00:00:00:00brd00:00:00:00:00:00

inet127.0.0.1/8scopehostlo

valid_lftforeverpreferred_lftforever

inet6::1/128scopehost

valid_lftforeverpreferred_lftforever

2:eth0:mtu1500qdiscpfifo_faststateUPqlen1000

link/ether52:54:00:89:17:d7brdff:ff:ff:ff:ff:ff

inet192.168.4.165/24brd192.168.4.255scopeglobaleth0

valid_lftforeverpreferred_lftforever

inet6fe80::5054:ff:fe89:17d7/64scopelink

valid_lftforeverpreferred_lftforever

相关文章

最近更新