内容简介:Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术)。是基于硬件的完全虚拟化。虚拟化是云计算的基础。虚拟化可以满足在一台物理的服务器上运行多个虚拟机。虚拟机共享物理机的 CPU、内存、IO 硬件资源,但逻辑上虚拟机之间是相互隔离的。
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
环境准备
确认开启虚拟化
[root@ken ~]# 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
第一步:下载相关软件
[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
[root@ken ~]# systemctl restart libvirtd
第三步:创建磁盘
[root@ken ~]# qemu-img create -f raw /ken/centos7-x86_64.raw 10G Formatting '/ken/centos7-x86_64.raw', fmt=raw size=10737418240
第四步:创建虚拟机
[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
第七步:启动虚拟机
[root@ken ~]# virsh start Centos7-x86_64 Domain Centos7-x86_64 started [root@ken ~]# virsh list --all Id Name State ---------------------------------------------------- 2 Centos7-x86_64 running
第八步:使用VNC再次连接
现在就可以登录进去我们创建的虚拟机里面去了
第九步:ssh连接
宿主机上连接
首先查看新建虚拟机IP地址
宿主机进行连接
[root@ken ~]# 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. root@192.168.122.198's password: Last login: Mon Mar 18 21:06:27 2019 [root@localhost ~]# 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虚拟机里面执行如下的命令
[root@localhost ~]# grubby --update-kernel=ALL --args="console=ttyS0"
第二步:重启KVM虚拟机
第三步:使用virsh console登录登录虚拟机
执行virsh console 虚拟机名称
[root@ken ~]# 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 [root@localhost ~]#
第四步:退出KVM虚拟机
按这两个组合键,按ctrl加上中括号的右边: ctrl+]
[root@ken ~]# 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 [root@localhost ~]# [root@ken ~]#
克隆虚拟机
第一步:关闭虚拟机
[root@ken ~]# virsh shutdown Centos7-x86_64 Domain Centos7-x86_64 is being shutdown [root@ken ~]# virsh list --all Id Name State ---------------------------------------------------- - Centos7-x86_64 shut off
第二步: 创建磁盘位置
[root@ken ~]# mkdir /ken/img
第三步:使用virt-clone克隆新的虚拟机
[root@ken ~]# 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.
第四步:查看虚拟机
[root@ken ~]# virsh list --all Id Name State ---------------------------------------------------- - Centos7-x86_64 shut off - centos7_test shut off
第五步:启动虚拟机
[root@ken ~]# virsh start centos7_test Domain centos7_test started [root@ken ~]# virsh list --all Id Name State ---------------------------------------------------- 3 centos7_test running
第六步:进入虚拟机
[root@ken ~]# 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 [root@localhost ~]# 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通信
第一步:创建脚本并执行
[root@ken ~]# 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 #添加网关
第二步:查看网络
第三步:测试外网连通性
[root@ken ~]# 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
第四步:编辑虚拟机
修改如下的三处位置即可
[root@ken ~]# virsh edit Centos7-x86_64
第五步: 启动KVM虚拟机并进入KVM虚拟机编辑网卡
配置一个与物理主机同网段的网络
[root@localhost ~]# 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 [root@localhost ~]# 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 [root@localhost ~]# 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
以上所述就是小编给大家介绍的《KVM虚拟化使用详解》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 详解GPU虚拟化技术
- 详解:Linux网络虚拟化技术
- 虚拟化生态系统及实现从虚拟化走向云端
- KVM虚拟化技术(一)虚拟化简介以及按安装
- 云计算技术分享之桌面虚拟化中的3D虚拟化解决方案经验总结
- 虚拟化技术介绍
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Ant Colony Optimization
Marco Dorigo、Thomas Stützle / A Bradford Book / 2004-6-4 / USD 45.00
The complex social behaviors of ants have been much studied by science, and computer scientists are now finding that these behavior patterns can provide models for solving difficult combinatorial opti......一起来看看 《Ant Colony Optimization》 这本书的介绍吧!