kvm虚拟机管理(3)

一、远程管理kvm虚拟机

(1)上一节我们通过 virt-manager 在本地主机上创建并管理 KVM 虚机。其实 virt-manager 也可以管理其他宿主机上的虚机。只需要简单的将宿主机添加进来,如下图:


接下来,我们就可以像管理本地虚机一样去管理远程宿主机上的虚机了


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


1

vim /etc/default/libvirt-bin

start_libvirtd="yes"
libvirtd_opts="-d -l"

1

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 服务就可以远程管理了。


1

systemctl restart libvirt-bin

二、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   #列出存储池


1

2

如:qemu-img create -f qcow2 -o size=9G /export/kvm/test.qcow2

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

  查看磁盘信息:


1

qemu-img info /export/kvm/test.qcow2

  命令行下创建 && 管理虚拟机

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


1

2

例如:

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   #删除一个虚机域

  克隆一个虚拟机:(需关闭虚拟机)


1

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

如果没有virt-clone命令,需要下载virt-install.noarch

[[email protected] ~]# virt-clone --help
usage: virt-clone --original [NAME] ...
复制一个虚拟机,需修改如 MAC 地址,名称等所有主机端唯一的配置。
虚拟机的内容并没有改变:virt-clone 不修改任何客户机系统内部的配置,它只复制磁盘和主机端的修改。所以像修改密码,修改静态 IP 地址等操作都在本工具复制范围内。如何修改此类型的配置,请参考 virt-sysprep(1)。
optional arguments:
  -h, --help            show this help message and exit
  --version             show program‘s version number and exit
  --connect URI         通过 libvirt URI 连接到虚拟机管理程序
通用选项:
  -o ORIGINAL_GUEST, --original ORIGINAL_GUEST
                        原始客户机名称;必须为关闭或者暂停状态。
  --original-xml ORIGINAL_XML
                        将 XML 文件用于原始客户机。
  --auto-clone          从原始客户机配置中自动生成克隆名称和存储路径。
  -n NEW_NAME, --name NEW_NAME
                        新客户机的名称
  --reflink             使用 btrfs COW 轻量副本
存储配置:
  -f NEW_DISKFILE, --file NEW_DISKFILE
                        为新客户机使用新的磁盘镜像文件
  --force-copy TARGET   强制复制设备(例如:如果 ‘hdc‘是只读光驱设备,则使用 --force-copy=hdc)
  --nonsparse           不使用稀疏文件作为克隆的磁盘镜像
  --preserve-data       不克隆存储,通过 --file参数指定的新磁盘镜像将保留不变
  --nvram NEW_NVRAM     New file to use as storage for nvram VARS
联网配置:
  -m NEW_MAC, --mac NEW_MAC
                        为克隆客户机生成新的固定 MAC地址。默认为随机生成 MAC。
其它选项:
  --replace             不检查命名冲突,覆盖任何使用相同名称的客户机。
  --print-xml           打印生成的 XML 域,而不是创建客户机。
  --check CHECK         启用或禁用验证检查。例如:
                        --check path_in_use=off
                        --check all=off
  -q, --quiet           抑制非错误输出
  -d, --debug           输入故障排除信息
请参考 man 手册,以便了解示例和完整的选项语法。

  拓展(冷迁移):也可以使用scp将一台宿主机里的虚拟机配置XML文件及磁盘qcow2文件拷贝到另一台宿主机上,来克隆虚拟机;使用virsh define定义配置文件,安装时如果报错,需要删除虚拟机,修改配置文件信息(disk文件位置和interface类型),再重新使用virsh define定义安装。

三、KVM通过virsh console连入虚拟机

  新安装一台虚拟机后,是无法通过virsh console 命令连入虚拟机中的,这时我们需要开启虚拟机的console功能。
1、centos7以下,及其他情况
(1)添加ttyS0的许可,允许root登陆


1

echo "ttyS0" >> /etc/securetty

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


(3)编辑/etc/inittab,在最后一行加入内容:S0:12345:respawn:/sbin/agetty ttyS0 115200


(4)重启服务器


1

reboot

(5)宿主机上测试


1

virsh console vm-name

(6)退出console连接的虚拟机li
  按 ctrl+] 组合键退出virsh console
2、对于centos7
(1)在虚机里运行


1

grubby --update-kernel=ALL --args="console=ttyS0"

(2)重启虚机


1

reboot

四、KVM虚拟化透传

  KVM 虚拟化需要处理器对虚拟化技术的支持,当我们需要进行虚拟机嵌套虚拟机时,我们需要让虚拟机中处理器对 VT 功能的支持达到透传的效果。
  nested 虚拟机嵌套( kvm on kvm ):nested 技术,简单的说,就是在虚拟机上跑虚拟机。
  KVM 虚拟机嵌套和 VMWare 原理不同, VMWare第一层是用的硬件虚拟化技术,第二层就是完全软件模拟出来的,所以 VMWare 只能做两层嵌套。 KVM 是将物理 CPU 的特性全部传给虚拟机,所有理论上可以嵌套 N 多层。
1、查看一层客户端是否支持 VT


1

grep vmx /proc/cpuinfo

  查询未果,证明一层 KVM 的虚拟机,并未将宿主机处理器的 VT 功能成功透传。所以,没有对 VT功能的支持,我们不能实现在该层虚拟机中嵌套KVM 虚拟机。
2、在物理服务器上为嵌套虚拟机做准备 --- CPU 虚拟化透传
(1)# vim /etc/modprobe.d/kvm-nested.conf (新建配置文件)
  # 在文件中添加下面语句(由于截图问题,实际不需要加空行)


1

options kvm_intel nested=1

  # 在宿主机启用 kvm_intel 模块的嵌套虚拟化功能,并且使透传永久有效
(2)重新加载 kvm 模块

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

(3)验证是否加载成功


1

cat /sys/module/kvm_intel/parameters/nested

  Y ---“Y” 表示 cpu 虚拟化透传功能开启
3、编辑需要做虚拟化透传的虚拟机的配置文件


1

virsh edit centos7 ( Virtual Machine Name )


1

<cpu mode=‘host-passthrough‘/>

修改之前:

修改之后:

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


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

原文地址:https://www.cnblogs.com/biht/p/12155811.html

时间: 2024-10-11 23:30:48

kvm虚拟机管理(3)的相关文章

烂泥:ubuntu安装KVM虚拟机管理virt-manager

本文由秀依林枫提供友情赞助,首发于烂泥行天下. 打算学习KVM的图形界面管理器virt-manager,但是virt-manager只有linux系统的,没有windows下的.所以只能使用linux桌面系统,在此我选择的是ubuntu系统. 有关ubuntu系统的安装我就不做介绍,下面就介绍有关virt-manager的安装与配置. 其中安装virt-manager的机器不一定要支持虚拟化. 注意virt-manager既有图形界面,也有命令行. 启动ubuntu,并安装virt-manage

KVM虚拟机管理配置——libvirt

一.关于libvirt 1)libvirt简介 Libvirt是目前使用最广泛的虚拟机管理工具和应用程序接口(API),常用的虚拟机管理工具(virsh.virt-install.virt-manager)和云计算架构平台(如:OpenStack.OpenNubula)等在底层都使用libvirt的应用程序接口. Libvirt是一套开源的支持linux下虚拟化工具的函数库,为安全有效的管理各域,libvirt提供的一个公共的稳定软件层. Libvirt由三个部分组成:应用程序接口(API).一

KVM虚拟机管理——虚拟机克隆

1. 概述2. 部署基本操作系统虚拟机3. 配置虚拟机3.1 修改/etc/sysconfig/network3.2 删除/etc/sysconfig/network-scripts/ifcfg-ethx和主机有关信息3.3 删除网卡编号规则文件3.4 编辑/etc/yum.repo.d/3.5 配置console到node99无密码访问3.6 配置sshd配置文件3.7 配置virsh console访问虚拟机4. 克隆虚拟机 1. 概述 通过为KVM虚拟机安装操作系统只是安装最基本的操作系统

kvm虚拟机管理(2)

一.virt-manager创建虚机 (1)首先通过命令 virt-manager 启动图形界面:点下面的图标创建虚机 (2)给虚机命名为 kvm1,这里选择从哪里启动虚机.如果是安装新的 OS,可以选择第一项.如果已经有安装好的镜像文件,选最后一项(如下图). (3)接下来需要告诉 virt-manager 镜像的位置,点击 “Browser” (4)需要在系统中上传一个镜像文件到属主机上,放到 /var/lib/libvirt/images/ 目录下,这是 KVM 默认查找镜像文件的地方.

[转载]kvm libvirt 虚拟机管理

http://www.2cto.com/os/201203/123128.html kvm虚拟机管理 一.环境 role         hostname    ip                  OS kvm_server   target      192.168.32.40/24    rhel6.0_x64 vir_guest1   node4       192.168.32.34/24    rhel5.5_i386 vir_guest2   node5       192.16

kvm libvirt 虚拟机管理

http://www.2cto.com/os/201203/123128.html kvm虚拟机管理一.环境role         hostname    ip                  OSkvm_server   target      192.168.32.40/24    rhel6.0_x64vir_guest1   node4       192.168.32.34/24    rhel5.5_i386vir_guest2   node5       192.168.32.

linux系统下kvm虚拟机的安装

一 KVM虚拟机简介 KVM是kernel-based Virtual Machine的简称,目前已成为学术界的主流VMM之一.KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术) 是基于硬件的完全虚拟化.KVM的安装和使用相对于XEN来说十分的简单和方便,并且功能强大,比较适用于高性能计算服务的云计算环境中作为IAAS层的虚拟化部署工作 不得不提的是甲骨文公司的VirtualBox也很强大,各方面与KVM可以相媲美,但是现在不开源比较昂贵一般的云计算平台很少使用.至于完全虚拟

KVM虚拟机的安装和使用方法

一 KVM虚拟机简介 KVM是kernel-based Virtual Machine的简称,目前已成为学术界的主流VMM之一.KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术),是基于硬件的完全虚拟化.KVM的安装和使用相对于XEN来说十分的简单和方便,并且功能强大,比较适用于高性能计算服务的云计算环境中作为IAAS层的虚拟化部署工作.不得不提的是甲骨文公司的VirtualBox也很强大,各方面与KVM可以相媲美,但是现在不开源比较昂贵一般的云计算平台很少使用.至于完全虚拟

KVM 虚拟机基本管理及常用命令

KVM的基本管理 1.查看KVM虚拟机配置文件 #Kvm虚拟机默认配置文件位置 [[email protected] qemu]# pwd /etc/libvirt/qemu [[email protected] qemu]# ll total 12 -rw------- 1 root root 3863 Nov 6 17:26 CentOS6.5.xml -rw------- 1 root root 3771 Nov 7 00:57 CentOS6u7.xml -rw------- 1 roo