zoukankan      html  css  js  c++  java
  • KVM虚拟机管理

    virsh命令下管理虚拟主机

    virsh既有命令行模式,也有交互模式

    命令模式:virsh后头跟命令参数

    交互模式:在命令行直接输入virsh

    语法结构

    virsh <command><domain-id>[OPTIONS]

    列出当前宿主机上处于运行状态的虚拟机

    virsh list 

    列出当前宿主机上所有的虚拟机

    virsh list  - -all 

    开启某一台虚拟机

    virsh start 虚拟机名字 

    正常关闭一台虚拟机

    virsh shutdown 虚拟机名字 

    强制关闭某一台虚拟机

    virsh destroy 虚拟机名字 

    开机自启动某台虚拟机

    virsh autostart 虚拟机名字 

    关闭某一台虚拟机的开机自启

    virsh autostart  - -disable 虚拟机名字 

    编辑某台虚拟机的配置文件

    virsh edit 虚拟机名字 

    列出存储池

    virsh pool-list

    打印帮助

    virsh help 

    从一个 XML 文件附加装置

    virsh attach-device 

    附加磁盘设备

    virsh attach-disk

    获得网络界面

    virsh attach-interface  

    删除一个域

    virsh destroy 

    从一个 XML 文件分离设备

    virsh detach-device 

    分离磁盘设备

    virsh detach-disk 

    分离网络界面

    virsh detach-interface 

    从一个 XML 文件定义(但不开始)一个域

    virsh define 

    删除一个虚机域

    virsh undefined 

    创建一个大小为9G,格式为qcow2的磁盘镜像

    qemu-img create –f qcow2 –o size=9G /export/kvm/命名.qcow2

    查看磁盘信息

    qemu-img info /export/kvm/磁盘名字.qcow2

    virsh命令行模式下创建&&管理虚拟主机

    Virt-install: 命令行下创建虚拟机的命令,不过在它后面需要跟上很多的参数
    
        --name:    虚拟机的名字。
    
        --disk Location: 磁盘映像的位置。
    
        --graphics :     怎样连接 VM ,通常是 SPICE 。
    
        --vcpu :         虚拟 CPU 的数量。
    
        --ram :          以兆字节计算的已分配内存大小。
    
        --location :     指定安装源路径
    
        --network :      指定虚拟网络,通常是 virbr0 或者自己设定的 br0

    例如:

    virt-install --name=test --disk path=/export/kvm/test.qcow2 --ram=1024 --vcpus=1 --graphics spice --location=/export/download/software/iso/CentOS-7.3-x86_64-DVD.iso --network bridge=br0

    克隆一个虚机:

    virt-clone -o vm2 -n vm4 -f /var/lib/libvirt/images/vm4.qcow2

    通过virsh console连接虚拟主机

    新安装一台虚拟机后,是无法通过virsh console 命令连入虚拟机中的,这时我们需要开启虚拟机的console功能。

    1、centos7以下,及其他情况

    (1)添加ttyS0的许可,允许root登陆

     [root@localhost ~]# echo "ttyS0" >> /etc/securetty

    (2)编辑/etc/grub.conf中加入

    console=ttyS0

    (3)编辑/etc/inittab,在最后一行加入内容

    S0:12345:respawn:/sbin/agetty ttyS0 115200

    (4)重启服务器

    reboot

    (5)宿主机上测试

    virsh console vm-name

    (6)退出console连接的虚拟机li

    按 ctrl+] 组合键退出virsh console

    2、对于centos7

    (1)在虚机里运行

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

    (2)重启虚机

    [root@localhost ~]# reboot

    即可

    VNC Viewer 远程管理kvm主

    1 在window中安装VNC Viewer 软件,一直下一步完成

    2 开启虚拟主机

    3 用vnc连接虚拟主机

    kvm虚拟化透传(就是在虚拟机里建虚拟机)

    KVM 虚拟化需要处理器对虚拟化技术的支持,当我们需要进行虚拟机嵌套虚拟机时,我们需要让虚拟机中处理器对 VT 功能的支持达到透传的效果。

    KVM 虚拟机嵌套和 VMWare 原理不同, VMWare第一层是用的硬件虚拟化技术,第二层就是完全软件模拟出来的,所以 VMWare 只能做两层嵌套。

    KVM 是将物理 CPU 的特性全部传给虚拟机,所有理论上可以嵌套 N 多层。

    1、查看一层客户端是否支持 VT

    grep vmx /proc/cpuinfo

    查询未果,证明一层 KVM 的虚拟机,并未将宿主机处理器的 VT 功能成功透传。所以,没有对 VT功能的支持,我们不能实现在该层虚拟机中嵌套KVM 虚拟机。

    2、在物理服务器上为嵌套虚拟机做准备 --- CPU 虚拟化透传

    (1)在文件中添加下面语句

    vim /etc/modprobe.d/kvm-nested.conf
    
    options kvm_intel nested=1

    在宿主机启用 kvm_intel 模块的嵌套虚拟化功能,并且使透传永久有效

    (2)重新加载 kvm 模块

    modprobe -r kvm_intel             #-r参数:remove掉kvm_intel模块
    
    modprobe kvm_intel                #加载kvm_intel模块

    (3)验证是否加载成功

    cat /sys/module/kvm_intel/parameters/nested

    Y ---“Y” 表示 cpu 虚拟化透传功能开启

    3、编辑需要做虚拟化透传的虚拟机的配置文件

    virsh edit centos7 ( Virtual Machine Name )
    
    <cpu mode='host-passthrough'>

    host-passthrough 直接将物理 CPU 暴露给虚拟机使用,在虚拟机上完全可以看到的就是物理 CPU的型号
    4、进入虚拟机中查看cpu是否透传成功

    在一层虚拟机中查看cpu是否支持虚拟化

  • 相关阅读:
    【linux就该这么学】-05
    【linux就该这么学】-04
    【linux就该这么学】-03
    【linux就该这么学】-02
    【linux就该这么学】-01
    【linux就该这么学】-00
    MySQL57安装与设置
    Docker(一) Docker入门教程
    Centos 7.X 安装及常规设置
    删除数组里所有与给定值相同的值
  • 原文地址:https://www.cnblogs.com/shuaiyin/p/10947688.html
Copyright © 2011-2022 走看看