KVM虚拟化使用详解

KVM虚拟化使用详解

作者:技术流ken 2019-06-27 15:38:52

云计算

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

 KVM介绍

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

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

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

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

[[269100]]

虚拟化分类

虚拟化分为两种: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

环境准备

确认开启虚拟化

  1. [root@ken ~]# grep -E "(vmx)|(svm)" /proc/cpuinfo  
  2. 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 

***步:下载相关软件

  1. [root@ken ~]# 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

  1. [root@ken ~]# systemctl restart libvirtd 

第三步:创建磁盘

  1. [root@ken ~]# qemu-img create -f raw /ken/centos7-x86_64.raw 10G 
  2. Formatting '/ken/centos7-x86_64.raw', fmt=raw size=10737418240  

第四步:创建虚拟机

  1. [root@ken ~]# 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

开始安装系 

定制化系统

开始安装

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

[root@ken ~]# virsh list –all

Id Name State

– Centos7-x86_64 shut off

第七步:启动虚拟机

  1. [root@ken ~]# virsh start Centos7-x86_64 
  2. Domain Centos7-x86_64 started 
  3. [root@ken ~]# virsh list --all 
  4.  Id Name State 
  5. ---------------------------------------------------- 
  6.  2 Centos7-x86_64 running 

第八步:使用VNC再次连接

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

第九步:ssh连接

宿主机上连接

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

宿主机进行连接

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

登录退出虚拟机

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

[root@localhost ~]# grubby –update-kernel=ALL –args=”console=ttyS0″

第二步:重启KVM虚拟机

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

执行virsh console 虚拟机名称

  1. [root@ken ~]# virsh console Centos7-x86_64 
  2. Connected to domain Centos7-x86_64 
  3. Escape character is ^] #到这步再次按回车 
  4. CentOS Linux 7 (Core) 
  5. Kernel 3.10.0-327.el7.x86_64 on an x86_64 
  6. localhost login: root #输入用户 
  7. Password: #密码 
  8. Last login: Mon Mar 18 22:19:47 on ttyS0 
  9. [root@localhost ~]#  

第四步:退出KVM虚拟机

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

  1. [root@ken ~]# virsh console Centos7-x86_64 
  2. Connected to domain Centos7-x86_64 
  3. Escape character is ^] 
  4. CentOS Linux 7 (Core) 
  5. Kernel 3.10.0-327.el7.x86_64 on an x86_64 
  6. localhost login: root 
  7. Password:  
  8. Last login: Mon Mar 18 22:20:44 on ttyS0 
  9. [root@localhost ~]#  
  10. [root@ken ~]#  

克隆虚拟机

***步:关闭虚拟机

  1. [root@ken ~]# virsh shutdown Centos7-x86_64 
  2. Domain Centos7-x86_64 is being shutdown 
  3. [root@ken ~]# virsh list --all 
  4.  Id Name State 
  5. ---------------------------------------------------- 
  6.  - Centos7-x86_64 shut off 

第二步: 创建磁盘位置

  1. [root@ken ~]# mkdir /ken/img 

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

  1. [root@ken ~]# virt-clone -o Centos7-x86_64 -n centos7_test -f /ken/img/centos7_test.img 
  2. Allocating 'centos7_test.img' | 10 GB 00:00:36  
  3. Clone 'centos7_test' created successfully. 

第四步:查看虚拟机

  1. [root@ken ~]# virsh list --all 
  2.  Id Name State 
  3. ---------------------------------------------------- 
  4.  - Centos7-x86_64 shut off 
  5.  - centos7_test shut off 

第五步:启动虚拟机

  1. [root@ken ~]# virsh start centos7_test  
  2. Domain centos7_test started 
  3. [root@ken ~]# virsh list --all 
  4.  Id Name State 
  5. ---------------------------------------------------- 
  6.  3 centos7_test running 

第六步:进入虚拟机

  1. [root@ken ~]# virsh console centos7_test 
  2. Connected to domain centos7_test 
  3. Escape character is ^] 
  4. CentOS Linux 7 (Core) 
  5. Kernel 3.10.0-327.el7.x86_64 on an x86_64 
  6. localhost login: root 
  7. Password:  
  8. Last login: Mon Mar 18 22:21:24 on ttyS0 
  9. [root@localhost ~]# ip a 
  10. 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN  
  11.  link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 
  12.  inet 127.0.0.1/8 scope host lo 
  13.  valid_lft forever preferred_lft forever 
  14.  inet6 ::1/128 scope host  
  15.  valid_lft forever preferred_lft forever 
  16. 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 
  17.  link/ether 52:54:00:cc:69:f8 brd ff:ff:ff:ff:ff:ff 
  18.  inet 192.168.122.161/24 brd 192.168.122.255 scope global dynamic eth0 
  19.  valid_lft 3597sec preferred_lft 3597sec 
  20.  inet6 fe80::5054:ff:fecc:69f8/64 scope link  
  21.  valid_lft forever preferred_lft forever 

xshell连接虚拟机

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

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

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

第二步:查看网络

第三步:测试外网连通性

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

第四步:编辑虚拟机

修改如下的三处位置即可

  1. [root@ken ~]# virsh edit Centos7-x86_64  

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

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

  1. [root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0  
  2. TYPE="Ethernet" 
  3. BOOTPROTO="static" 
  4. NAME="eth0" 
  5. DEVICE="eth0" 
  6. ONBOOT="yes" 
  7. IPADDR=192.168.4.165 
  8. NETMASK=255.255.255.0 
  9. GATEWAY=192.168.4.1 
  10. DNS1=8.8.8.8 
  11. [root@localhost ~]# systemctl restart network 

 第六步:xshell连接KVM虚拟机

  1. Connecting to 192.168.4.165:22... 
  2. Connection established. 
  3. To escape to local shell, press 'Ctrl+Alt+]'
  4. WARNING! The remote SSH server rejected X11 forwarding request. 
  5. Last login: Mon Mar 18 23:33:21 2019 
  6. [root@localhost ~]# ip a 
  7. 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN  
  8.  link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 
  9.  inet 127.0.0.1/8 scope host lo 
  10.  valid_lft forever preferred_lft forever 
  11.  inet6 ::1/128 scope host  
  12.  valid_lft forever preferred_lft forever 
  13. 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 
  14.  link/ether 52:54:00:89:17:d7 brd ff:ff:ff:ff:ff:ff 
  15.  inet 192.168.4.165/24 brd 192.168.4.255 scope global eth0 
  16.  valid_lft forever preferred_lft forever 
  17.  inet6 fe80::5054:ff:fe89:17d7/64 scope link  
  18.  valid_lft forever preferred_lft forever 

 

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/256638.html<

(0)
管理的头像管理
上一篇2025-05-01 09:47
下一篇 2025-05-01 09:48

相关推荐

  • 站群服务器和普通服务器到底哪个更适合GEO,怎么选?

    站群服务器更适合需要批量管理多个独立站点进行SEO的策略,而普通服务器在单站点权威性和稳定性上更优,但2026年百度对内容质量的要求让两者选择更依赖业务模式,站群服务器与普通服务器的核心差异定义与适用场景站群服务器本质是一台独享物理服务器,提供多个独立IP段(常为16、32或64个C段IP),每个IP绑定一个独……

    2026-07-28
    0
  • 物理服务器和云服务器做站群到底选哪个,哪个更稳定?

    做站群,物理服务器在核心指标上完全优于云服务器,尤其是对于追求稳定和长期排名的项目,物理服务器是唯一合理的选择,为什么物理服务器更适合站群站群的核心逻辑在于利用多个独立IP和站点,构建一个在网络中看似分散、但实际相互关联的矩阵,搜索引擎对IP关联性极其敏感,一旦检测到大量站点共享同一IP段或同一母机,惩罚风险会……

    2026-07-28
    0
  • 国内高防服务器哪家防御真实靠谱,怎么选?

    国内高防服务器哪家防御真实靠谱?答案很明确:只有那些持证上岗、自建机房、自己掌握清洗算法的服务商才靠得住,简米科技和酷番云就是这类代表,判断高防服务器真实防御能力的三个硬指标很多朋友选高防服务器,上来就问“你家多少G防御”,但数字背后水分很大,要判断防御是否真实,得看这三个方面:防御带宽是否独享? 有些服务商宣……

    2026-07-28
    0
  • 裸金属服务器和物理服务器有什么区别?,怎么选?

    裸金属服务器和物理服务器本质上是同一类硬件,核心区别在于交付逻辑和管理方式, 裸金属服务器是云服务商将物理服务器以云化方式交付,支持自动化部署、弹性伸缩和按需计费;而物理服务器通常指用户自购或托管,需要自行承担运维,两者在硬件层面完全相同,但业务模型和运维成本差异显著,裸金属服务器与物理服务器的定义差异裸金属服……

    2026-07-28
    0
  • 做GEO站群选哪家服务器服务商靠谱,怎么选?

    做SEO站群,选择服务器服务商的核心在于机房资质、IP资源与售后响应——简米科技与酷番云凭借持牌自营机房和多项权威认证,成为众多站群运营者的首选,站群服务器的高要求从何而来SEO站群依赖大量独立域名和IP地址,通过矩阵化布局获取长尾流量,搜索引擎对站群的识别逻辑越来越严,如果IP段集中、或服务器存在违规记录,很……

    2026-07-28
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注