zoukankan      html  css  js  c++  java
  • kvm管理

    KVM管理

    1、可以通过virt-manager在本地宿主机上创建并管理kvm虚拟机,virt-manager也可以管理其他宿主机上的虚机,点击“文件”-“添加连接”用ssh进行连接。

    2、有些情况下,有一个要配置的地方。 因为 KVM(准确说是 Libvirt)默 认不接受远程管理,需要按下面的内容配置被管理宿主机中的两个文件:

    vim /etc/default/libvirt-bin

    start_libvirtd="yes"

    libvirtd_opts="-d -l"

    vim /etc/libvirt/libvirtd.conf

    listen_tls = 0

    listen_tcp = 1

    unix_sock_group = "libvirtd"

    unix_sock_ro_perms = "0777"

    unix_sock_rw_perms = "0770"

    auth_unix_ro = "none"

    auth_unix_rw = "none"

    auth_tcp = "none" 

    3、配置完两个文件后,重启Libvirtd服务就可以远程管理:systemctl restart libvirt-bin 

    virsh 既有命令行模式,也有交互模式,在命令行直接输入 virsh 就进入交互 模式, virsh 后面跟命令参数,则是命令行模式;virsh help  列出命令下的所有参数 help list      列出 list 命令下的参数

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

    virsh list --all 列出当前宿主机上所有的虚拟机

    virsh start vm1 (虚拟机name) 开启某一台虚拟机

    virsh shutdown vm1 (虚拟机name) 正常关闭一台虚拟机

    virsh destroy vm1 强制关闭某一台虚拟机 virsh autostart vm1 开机自启动虚拟机

    vm1 virsh autostart --disable vm1 关闭开机自启动

    virsh edit vm1 编辑某个虚拟机的配置文件

    virsh pool-list 列出存储池

    qemu-img create -f qcow2 -o size=9G /export/kvm/test.qcow2 创建一个大小为 50G 的,格式为 qcow2 的磁盘镜像

               查看磁盘信息: qemu-img info /export/kvm/test.qcow2

              命令行下创建 && 管理虚拟机 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_64DVD.iso --network bridge=br0

    virsh的其他常用命令:

    virsh help 打印帮助

    virsh attach-device 从一个 XML 文件附加装置

    virsh attach-disk 附加磁盘设备

    virsh attach-interface 获得网络界面

    virsh destroy 删除一个域

    virsh detach-device 从一个 XML 文件分离设备

    virsh detach-disk 分离磁盘设备

    virsh detach-interface 分离网络界面

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

    virsh undefine 删除一个虚机域

               克隆一个虚机: virt-clone -o vm2 -n vm4 -f /var/lib/libvirt/images/vm4.qcow2

               宿主机上的虚拟机的配置文件路径:xml:/etc/libvirt/qemu/;磁盘路径:/var/lib/libvirt/images/。

               从新定义备份的虚拟机,输入配置文件的绝对路径;删除虚拟机前,现在/etc/libvirt/qemu/目录进行备份。删除磁盘,信息不会删除

    kvm通过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连接的虚拟机:按下ctrl + ] 组合键退出virsh console

    2、对于centos7 

       1.在虚机里运行 [root@localhost ~]# grubby --update-kernel=ALL --args="console=ttyS0"

       2.重启虚机 ”reboot

    kvm虚拟化穿透

      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是否透传成功

     

  • 相关阅读:
    关于面试总结8-http协议相关面试题
    关于面试总结7-linux篇
    关于面试总结6-SQL经典面试题
    关于面试总结5-python笔试题(递归)
    关于面试总结4-python笔试题
    关于面试总结3-SQL查询
    关于面试总结2-SQL学生表
    关于面试总结1-SQL学生表
    浅谈多变量线性回归中的数据规范化
    浅谈KL散度
  • 原文地址:https://www.cnblogs.com/zxy-5257/p/10107829.html
Copyright © 2011-2022 走看看