kvm虚拟机管理(2)

1、virt-manager建立虚机

(1)首先经过命令 virt-manager 启动图形界面:
点下面的图标建立虚机linux

(2)给虚机命名为 kvm1,这里选择从哪里启动虚机。若是是安装新的 OS,能够选择第一项。若是已经有安装好的镜像文件,选最后一项(以下图)。vim

 (3)接下来须要告诉 virt-manager 镜像的位置,点击 “Browser”centos

(4)须要在系统中上传一个镜像文件到属主机上,放到 /var/lib/libvirt/images/ 目录下,这是 KVM 默认查找镜像文件的地方。服务器

(5)为虚拟机分配 CPU、内存和磁盘网络

       

(6)为虚拟机命名,并在安装前配置硬件参数,点击“Finish”。网络选择三节课建立的br0网桥,点击绿色“对勾”开始安装
dom

(7)控制台弹出以下图,安装linux安装步骤安装便可:tcp

virt-manager 能够对虚机进行各类管理操做,界面直观友好,很容易上手。 同时咱们也能够用命令 virsh 管理虚机,好比查看宿主机上的虚机: 测试

2、远程管理kvm虚机

(1)上一节咱们经过 virt-manager 在本地主机上建立并管理 KVM 虚机。其实 virt-manager 也能够管理其余宿主机上的虚机。只须要简单的将宿主机添加进来,以下图:
ui

接下来,咱们就能够像管理本地虚机同样去管理远程宿主机上的虚机了centos7

(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"

而后重启 Libvirtd 服务就能够远程管理了。
systemctl restart libvirt-bin

3、virsh命令行下管理虚拟机

virsh 既有命令行模式,也有交互模式,在命令行直接输入 virsh 就进入交互模式, virsh 后面跟命令参数,则是命令行模式;


(1)基础操做 --- 命令行下管理虚拟机
  语法结构:
  virsh <command> <domain-id> [OPTIONS]
  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_64-DVD.iso --network bridge=br0

注:以此安装操做以后,会在桌面显示一个 virtviewer ,进入到安装步骤

 

(2)除了这些简单命令,实际在 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

 4、KVM 经过virsh console连入虚拟机

 新安装一台虚拟机后,是没法经过virsh console 命令连入虚拟机中的,这时咱们须要开启虚拟机的console功能。
一、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

二、对于centos7
(1)在虚机里运行
  [root@localhost ~]# grubby --update-kernel=ALL --args="console=ttyS0"
(2)重启虚机
  [root@localhost ~]# reboot
  便可

 

5、KVM虚拟化透传

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

nested 虚拟机嵌套( kvm on kvm ):nested 技术,简单的说,就是在虚拟机上跑虚拟机。

KVM 虚拟机嵌套和 VMWare 原理不一样, VMWare第一层是用的硬件虚拟化技术,第二层就是彻底软件模拟出来的,因此 VMWare 只能作两层嵌套。 KVM 是将物理 CPU 的特性所有传给虚拟机,全部理论上能够嵌套 N 多层。

一、查看一层客户端是否支持 VT
#grep vmx /proc/cpuinfo
查询未果,证实一层 KVM 的虚拟机,并未将宿主机处理器的 VT 功能成功透传。因此,没有对 VT功能的支持,咱们不能实如今该层虚拟机中嵌套KVM 虚拟机。

 

二、在物理服务器上为嵌套虚拟机作准备 --- 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 虚拟化透传功能开启

 

三、编辑须要作虚拟化透传的虚拟机的配置文件
#virsh edit centos7 ( Virtual Machine Name )
<cpu mode='host-passthrough'>


host-passthrough 直接将物理 CPU 暴露给虚拟机使用,在虚拟机上彻底能够看到的就是物理 CPU的型号

四、进入虚拟机中查看cpu是否透传成功

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

相关文章
相关标签/搜索