美文网首页
kvm 虚拟化

kvm 虚拟化

作者: 王亚飞1992 | 来源:发表于2019-05-20 20:55 被阅读0次

    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
    

    相关文章

      网友评论

          本文标题:kvm 虚拟化

          本文链接:https://www.haomeiwen.com/subject/yyyhzqtx.html