kvm 虚拟化

1. 什么是虚拟化?

虚拟化,通过模拟计算机的硬件,来实现在同一台计算机上同时运行多个不同的操作系统的技术。

2. 为什么要用虚拟化?

1.计算机的硬件配置越来越高,虚拟化可以充分利用计算机的高配置.

3虚拟化的应用场景

  1. 服务器安装各种php,python,go环境,ruby,java
  2. 在同一个服务器上运行同一个服务的不同版本.(php5.5 php7.2等)
  3. 机房的迁移,可以很好的解决硬件和系统的依赖.
  4. openstack环境,软件发布方式

4目前市场常见的虚拟化技术有哪些

目前市场上比较常见的有四种云主机虚拟化技术,分别是Hyper-V、Virtuozzo、Xen和VMware

5.环境准备(宿主机最好是CentOS7.4/7.6)

5.1. 设置宿主机的内存

image.png

5.2. 打开宿主机的虚拟化功能

image.png

5.3. 挂载光盘,创建虚拟机的时候能用到(对镜像没啥要求)

image.png

5.4. 连接宿主机,创建镜像文件()

[root@wyf opt]# cd /opt/
[root@wyf opt]# dd if=/dev/cdrom of=CentOS-7.5-x86_64-DVD-1804.iso

6. kvm虚拟化管理软件的安装

yum install libvirt virt-install qemu-kvm -y

KVM:Kernel-based Virtual Machine

libvirt 作用:虚拟机的管理软件
libvirt: kvm,xen,qemu,lxc....

virt virt-install virt-clone 作用:虚拟机的安装工具和克隆工具

qemu-kvm qemu-img (qcow2,raw)作用:管理虚拟机的虚拟磁盘

虚拟化软件:

qemu 软件纯模拟全虚拟化软件,特别慢!AIX,兼容性好!
xen(半) 性能特别好,需要使用专门修改之后的内核,兼容性差! redhat 5.5 xen
KVM(linux) 全虚拟机,它有硬件支持cpu,基于内核,而且不需要使用专门的内核 centos6 kvm
性能较好,兼容较好

7. 安装一台kvm虚拟机

systemctl start libvirtd.service
systemctl status libvirtd.service
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 1024 --vcpus 1 --disk /opt/centos2.raw,format=raw,size=10 --cdrom CentOS-7.5-x86_64-DVD-1804.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

注释
--virt-type kvm 虚拟化的类型(qemu)
--os-type=linux 系统类型
--os-variant rhel7 系统版本
--name centos7 虚拟机的名字
--memory 1024 虚拟机的内存
--vcpus 1 虚拟cpu的核数
--disk /opt/centos2.raw,format=raw,size=10
--cdrom /opt/CentOS-7-x86_64-DVD-1708.iso
--network network=default 使用默认NAT的网络
--graphics vnc,listen=0.0.0.0
--noautoconsole 加上此参数可以在后台运行

8. Windows 上安装vnc-service

image.png

9. 连接宿主机

image.png

IP是宿主记得IP 端口是5900+

连接上宿主机后会出现CentOS的安装界面

9.1. 选择语言

image.png

image.png

image.png

9.2. 配置磁盘

1.png
2.png
3.png
4.png
5.png
6.png
7.png
8.png
9.png

9.3.关闭KDUMP

10.png
11.png

9.3.关闭KDUMP

12.png

9.4. 配置网络

13.png
14.png

9.5. 配置时区

15.png

9.6. 重启虚拟机

16.png

9.7. 配置root密码

17.png
18.png
19.png

等待安装完成,reboot

到此步一个虚拟机就完成了**

[root@wyf ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 1     centos2                        running
 -     centos7                        shut off
 -     web01                          shut off
 -     web02                          shut off

[root@wyf ~]# virsh start centos7 
Domain centos7 started

[root@wyf ~]# virsh autostart centos7
Domain centos7 marked as autostarted

10. 虚拟机管理命令

查看当前所有虚拟机

virsh list --all

开机


[root@wyf ~]# virsh start web01
Domain web01 started

关机

[root@wyf ~]# virsh shutdown web01 
Domain web01 is being shutdown

断电的方式关机

[root@wyf ~]# virsh destroy centos7
Domain centos7 destroyed

导出虚拟机配置文件


[root@wyf ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 1     centos2                        running
 -     centos7                        shut off
 -     web01                          shut off
 -     web02                          shut off

[root@wyf ~]# virsh dumpxml >centos3.xml
error: command 'dumpxml' requires <domain> option
[root@wyf ~]# virsh dumpxml centos7 >centos3.xml
[root@wyf ~]# ll
total 20
-rw-r--r--  1 root root 5148 May 20 18:18 1.xml
-rw-------. 1 root root 1448 Aug  9  2018 anaconda-ks.cfg
-rw-r--r--  1 root root 3851 May 20 23:49 centos3.xml
-rw-r--r--  1 root root 3851 May 20 23:46 centos7.xml
[root@wyf ~]# virsh undefine centos7
Domain centos7 has been undefined
[root@wyf ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 1     centos2                        running
 -     web01                          shut off
 -     web02                          shut off

导入一个虚拟机

[root@wyf ~]# virsh edit centos7
error: failed to get domain 'centos7'
error: Domain not found: no domain with matching name 'centos7'

[root@wyf ~]# virsh define centos3.xml 
Domain centos7 defined from centos3.xml

[root@wyf ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 1     centos2                        running
 -     centos7                        shut off
 -     web01                          shut off
 -     web02                          shut off

修改虚拟机的磁盘目录(扩容)

[root@wyf ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 1     centos2                        running
 -     centos7                        shut off
 -     web01                          shut off
 -     web02                          shut off

[root@wyf data]# cd /opt/

[root@wyf opt]# ll
total 5677200
-rw------- 1 root root 10737418240 May 20 14:02 centos2.raw
-rw------- 1 root root 10737418240 May 20 23:43 centos3.raw
-rw-r--r-- 1 root root        3851 May 20 23:49 centos3.xml
-rw-r--r-- 1 qemu qemu  4470079488 May 20 13:05 CentOS-7.5-x86_64-DVD-1804.iso
-rw-r--r-- 1 root root      197120 May 20 15:17 oldboy.qcow2

[root@wyf opt]# mv centos3.raw /data/

[root@wyf opt]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 1     centos2                        running
 -     centos7                        shut off
 -     web01                          shut off
 -     web02                          shut off

[root@wyf opt]# virsh start centos7 
error: Failed to start domain centos7
error: Cannot access storage file '/opt/centos3.raw': No such file or directory

[root@wyf opt]# virsh edit centos7
<disk type='file' device='disk'>
      <driver name='qemu' type='raw'/>
      <source file='/opt/centos3.raw'/>
      <target dev='vda' bus='virtio'/>
修改磁盘的路径
 <disk type='file' device='disk'>
      <driver name='qemu' type='raw'/>
      <source file='/data/centos3.raw'/>
      <target dev='vda' bus='virtio'/>
保存退出
启动虚拟机
[root@wyf opt]# virsh edit centos7
Domain centos7 XML configuration edited.

[root@wyf opt]# virsh start centos7 
Domain centos7 started

重命名虚拟机

[root@wyf opt]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 1     centos2                        running
 5     centos7                        running
 -     web01                          shut off
 -     web02                          shut off

[root@wyf opt]# virsh domrename centos7 centos3
error: Requested operation is not valid: cannot rename active domain

[root@wyf opt]# virsh shutdown centos7
Domain centos7 is being shutdown

[root@wyf opt]# virsh domrename centos7 centos3
Domain successfully renamed

挂起虚拟机

[root@wyf opt]# virsh start centos3 
Domain centos3 started

[root@wyf opt]# virsh suspend centos3
Domain centos3 suspended

恢复虚拟机

[root@wyf opt]# virsh resume centos3 
Domain centos3 resumed

查看虚拟机对应的端口

[root@wyf opt]# virsh vncdisplay centos3
:1

上述为第一个端口或5901

wndows vnc-server连接虚拟机


image.png

image.png

image.png

image.png

设置虚拟机开机自启动

原理是利用libvirtd.service开机自启动以后开启虚拟机

[root@wyf opt]# virsh autostart centos3
Domain centos3 marked as autostarted

取消开机自启动

[root@wyf opt]# virsh autostart --disable centos3
Domain centos3 unmarked as autostarted

手动设置虚拟机开机自启动

[root@wyf opt]# cd /etc/libvirt/qemu/
[root@wyf qemu]# ll
total 28
drwxr-xr-x 2 root root   25 May 21 00:13 autostart
-rw------- 1 root root 4418 May 20 15:38 centos2.xml
-rw------- 1 root root 4076 May 21 00:06 centos3.xml
drwx------ 3 root root   42 May 20 13:07 networks
-rw------- 1 root root 4412 May 20 16:44 web01.xml
-rw------- 1 root root 4412 May 20 16:56 web02.xml
[root@wyf qemu]# ln -s /etc/libvirt/qemu
qemu/            qemu.conf        qemu-lockd.conf  
[root@wyf qemu]# ln -s /etc/libvirt/qemu/centos3.xml  /etc/libvirt/qemu/autostart/centos3.xml

[root@wyf qemu]# cd autostart/
[root@wyf autostart]# ll
total 0
lrwxrwxrwx 1 root root 29 May 20 14:05 centos2.xml -> /etc/libvirt/qemu/centos2.xml
lrwxrwxrwx 1 root root 29 May 21 00:16 centos3.xml -> /etc/libvirt/qemu/centos3.xml

设置虚拟机console的控制台


image.png
[root@wyf ~]# ssh root@192.168.122.212
root@192.168.122.212's password: 
Last login: Tue May 21 00:22:13 2019
[root@localhost ~]# grubby --update-kernel=ALL --args="console=ttyS0,115200n8"
[root@localhost ~]# reboot
开机后再次连接
[root@wyf ~]# ssh root@192.168.122.212
root@192.168.122.212's password: 
Last login: Tue May 21 00:22:43 2019 from gateway
[root@localhost ~]# 
[root@localhost ~]# 
[root@localhost ~]# hostname
localhost.localdomain
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,372评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,368评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,415评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,157评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,171评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,125评论 1 297
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,028评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,887评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,310评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,533评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,690评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,411评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,004评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,659评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,812评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,693评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,577评论 2 353

推荐阅读更多精彩内容