KVM虚拟化使用详解--技术流ken

KVM介绍

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        : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc art rep_good nopl tsc_reliable nonstop_tsc extd_apicid aperfmperf eagerfpu pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw retpoline_amd vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap xsaveopt clzero irperf xsaveerptr ibpb arat nptsvm_lock nrip_save vmcb_clean flushbyasid decodeassists

第一步:下载相关软件

[[email protected] ~]# yum install libvirt virt-install qemu-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] ~]# systemctl restart libvirtd

第三步:创建磁盘

[[email protected] ~]# qemu-img create -f raw /ken/centos7-x86_64.raw 10G
Formatting ‘/ken/centos7-x86_64.raw‘, fmt=raw size=10737418240 

第四步:创建虚拟机

[[email protected] ~]# virt-install --virt-type kvm --name Centos7-x86_64 --ram 1024 --cdrom=/tmp/CentOS-7.3-x86_64-Minimal-1511.iso --disk path=/ken/centos7-x86_64.raw --network network=default --graphics vnc,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] ~]# virsh start Centos7-x86_64
Domain Centos7-x86_64 started

[[email protected] ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 2     Centos7-x86_64                 running

第八步:使用VNC再次连接

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

第九步:ssh连接

宿主机上连接

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

宿主机进行连接

[[email protected] ~]# ssh 192.168.122.198
The authenticity of host ‘192.168.122.198 (192.168.122.198)‘ can‘t be established.
ECDSA key fingerprint is SHA256:t+jpHwwHJk8mo2XZB93H9afhSVy7BCMvLsvqsUF+Obg.
ECDSA key fingerprint is MD5:48:d5:9e:db:f8:bb:5e:56:c1:c8:1d:a2:4b:45:d6:fc.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘192.168.122.198‘ (ECDSA) to the list of known hosts.
[email protected]192.168.122.198‘s password:
Last login: Mon Mar 18 21:06:27 2019
[[email protected] ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:89:17:d7 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.198/24 brd 192.168.122.255 scope global dynamic eth0
       valid_lft 3510sec preferred_lft 3510sec
    inet6 fe80::5054:ff:fe89:17d7/64 scope link
       valid_lft forever preferred_lft forever

登录退出虚拟机

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

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

第二步:重启KVM虚拟机

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

执行virsh console 虚拟机名称

[[email protected] ~]# virsh console Centos7-x86_64
Connected to domain Centos7-x86_64
Escape character is ^]    #到这步再次按回车

CentOS Linux 7 (Core)
Kernel 3.10.0-327.el7.x86_64 on an x86_64

localhost login: root     #输入用户
Password:                 #密码
Last login: Mon Mar 18 22:19:47 on ttyS0
[[email protected] ~]# 

第四步:退出KVM虚拟机

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

[[email protected] ~]# virsh console Centos7-x86_64
Connected to domain Centos7-x86_64
Escape character is ^]

CentOS Linux 7 (Core)
Kernel 3.10.0-327.el7.x86_64 on an x86_64

localhost login: root
Password:
Last login: Mon Mar 18 22:20:44 on ttyS0
[[email protected] ~]#
[[email protected] ~]# 

克隆虚拟机

第一步:关闭虚拟机

[[email protected] ~]# virsh shutdown Centos7-x86_64
Domain Centos7-x86_64 is being shutdown

[[email protected] ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 -     Centos7-x86_64                 shut off

第二步: 创建磁盘位置

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

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

[[email protected] ~]# virt-clone -o Centos7-x86_64 -n centos7_test -f /ken/img/centos7_test.img
Allocating ‘centos7_test.img‘                                                                                  |  10 GB  00:00:36     

Clone ‘centos7_test‘ created successfully.

第四步:查看虚拟机

[[email protected] ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 -     Centos7-x86_64                 shut off
 -     centos7_test                   shut off

第五步:启动虚拟机

[[email protected] ~]# virsh start centos7_test
Domain centos7_test started

[[email protected] ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 3     centos7_test                   running

第六步:进入虚拟机

[[email protected] ~]# virsh console centos7_test
Connected to domain centos7_test
Escape character is ^]

CentOS Linux 7 (Core)
Kernel 3.10.0-327.el7.x86_64 on an x86_64

localhost login: root
Password:
Last login: Mon Mar 18 22:21:24 on ttyS0
[[email protected] ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:cc:69:f8 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.161/24 brd 192.168.122.255 scope global dynamic eth0
       valid_lft 3597sec preferred_lft 3597sec
    inet6 fe80::5054:ff:fecc:69f8/64 scope link
       valid_lft forever preferred_lft forever

xshell连接虚拟机

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

第一步:创建脚本并执行

[[email protected] ~]# cat bridg.sh
#!/bin/bash
brctl addbr br0  #创建桥接网卡
brctl addif br0 eth0 #把eth0加入到br0中
ip a d 192.168.4.190/24 dev eth0 #删除eth0的IP地址
ifconfig br0 192.168.4.190/24 up  #启动br0网络
route add default gw 192.168.4.1  #添加网关

第二步:查看网络

第三步:测试外网连通性

[[email protected] ~]# ping www.baidu.com
PING www.a.shifen.com (119.75.217.26) 56(84) bytes of data.
64 bytes from 119.75.217.26 (119.75.217.26): icmp_seq=1 ttl=54 time=6.08 ms
64 bytes from 119.75.217.26 (119.75.217.26): icmp_seq=2 ttl=54 time=9.20 ms
64 bytes from 119.75.217.26 (119.75.217.26): icmp_seq=3 ttl=54 time=8.58 ms
^C
--- www.a.shifen.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 6020ms
rtt min/avg/max/mdev = 6.087/7.957/9.201/1.346 ms

第四步:编辑虚拟机

修改如下的三处位置即可

[[email protected] ~]# virsh edit Centos7-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] ~]# systemctl restart network

第六步:xshell连接KVM虚拟机

Connecting to 192.168.4.165:22...
Connection established.
To escape to local shell, press ‘Ctrl+Alt+]‘.

WARNING! The remote SSH server rejected X11 forwarding request.
Last login: Mon Mar 18 23:33:21 2019
[[email protected] ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:89:17:d7 brd ff:ff:ff:ff:ff:ff
    inet 192.168.4.165/24 brd 192.168.4.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::5054:ff:fe89:17d7/64 scope link
       valid_lft forever preferred_lft forever

原文地址:https://www.cnblogs.com/kenken2018/p/10550350.html

时间: 2024-08-28 13:54:52

KVM虚拟化使用详解--技术流ken的相关文章

cobbler批量安装系统使用详解-技术流ken

1.前言 cobbler是一个可以实现批量安装系统的Linux应用程序.它有别于pxe+kickstart,cobbler可以实现同个服务器批量安装不同操作系统版本. 2.系统环境准备及其下载cobbler 一.系统环境 系统版本:CentOS release 6.7 (Final) 内网IP:192.168.232.7/24    #用来对内通信,提供cobbler服务 外网IP:10.220.5.166/24      #连接外网 二. 关闭安全服务 [[email protected] ~

NFS企业级实战应用详解-技术流ken

1.简介 在上一篇博文中讲述了samba的实战应用,samba使得window和linux共享文件成为可能.NFS则实现了linux与linux之间的文件共享. 2.系统环境 系统版本:centos6.7 服务器IP: 10.220.5.166/24 客户端IP: 10.220.5.188/24 3.关闭安全服务 [[email protected] ~]# service iptables stop [[email protected] ~]# setenforce 0 4.下载NFS 当nf

samba企业级实战应用详解-技术流ken

1.简介 Samba是一套使用SMB(Server Message Block)协议的应用程序, 通过支持这个协议, Samba允许Linux服务器与Windows系统之间进行通信,使跨平台的互访成为可能. 2.系统环境 系统版本:centos6.7 服务器IP: 10.220.5.166/24 3.关闭安全服务 [[email protected] ~]# service iptables stop [[email protected] ~]# setenforce 0 4. 安装samba

tomcat使用详解--技术流ken

tomcat简介 Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache.Sun和其他一些公司及个人共同开发而成. Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选. Tomcat和Nginx.Apache(httpd).lighttpd等Web服务器一样,具有处理HTML页面的功能,另外它

linux四剑客-grep/find/sed/awk/详解-技术流ken

1.四剑客简介 相信接触过linux的大家应该都学过或者听过四剑客,即sed,grep,find,awk,有人对其望而生畏,有人对其爱不释手.参数太多,变化形式太多,使用超级灵活,让一部分人难以适从继而望而生畏,浅尝辄止即罢.有人熟练掌握,使其四剑客为己所用,在分析日志,分析文本,统计,批量修改中游刃有余,大大提高了工作效率.本篇博文将详细讲解四剑客的参数选项,以及使用案例,相信认真读完本篇博文你也可以使得四剑客真正为己所用. 2.四剑客之grep 1.几个概念 正则表达式:Regular Ex

xshell连接虚拟机详解--技术流ken

xshell连接虚拟机 第一步:网络模式更改为桥接模式 第二步:重启网络 [[email protected] ~]# systemctl restart network 第三步:获取IP地址 输入命令ip a 第四步:修改sshd配置文件 修改38行处允许root远程登录 修改115行处不适用DNS解析 [[email protected] ~]# vim /etc/ssh/sshd_config ... 38 PermitRootLogin yes ... 115 UseDNS no ...

centos7部署KVM虚拟化平台详解

KVM自Linux 2.6.20版本后就直接整合到Linux内核,它依托CPU虚拟化指令集实现高性能的虚拟化支持.它与Linux内核高度整合,因此在性能.安全性.兼容性.稳定性上都有很好的表现.在KVM环境中运行的每个虚拟化操作系统都将表现为单个独立的系统进程.因此它可以很方便地与Linux系统中的安全模块进行整合(SELinux),可以灵活的实现硬件资源的管理和分配,KVM虚拟化的架构图如下: 话不多说,开始搭建KVM虚拟化平台: 1.安装: [[email protected] media]

五分钟彻底学会iptables防火墙--技术流ken

iptables简介 IPTABLES 是与最新的 3.5 版本 Linux内核集成的 IP 信息包过滤系统.如果 Linux 系统连接到因特网或 LAN.服务器或连接 LAN 和因特网的代理服务器, 则该系统有利于在 Linux 系统上更好地控制 IP 信息包过滤和防火墙配置. iptables 组件是一种工具,也称为用户空间(userspace),它使插入.修改和除去信息包过滤表中的规则变得容易.除非您正在使用 Red Hat Linux 7.1 或更高版本,否则需要下载该工具并安装使用它.

实战!基于lamp安装Discuz论坛-技术流ken

1.简介 我前面的博客已经详细介绍了lamp采用yum安装以及编译安装的方式,这篇博客将基于yum安装的lamp架构来实战安装Discuz论坛,你可以任选其一来完成. 2.系统环境 centos7.5 服务器IP:172.20.10.7/28 客户端IP:172.20.10.4/28 3.关闭安全服务 [[email protected] ~]# setenforce 0 4.安装lamp [[email protected] ~]# yum install httpd php php-mysq