virt-manager创建虚拟机

摘要:
接下来,您需要告诉virt管理器映像的位置。单击“浏览器”将图像文件上载到系统中的主机,并将其放置在/var/lib/libvirt/images/目录中。这是KVM默认搜索图像文件的位置。同时,我们还可以使用命令virsh来管理虚拟机,例如在主机上查看虚拟机:2.远程管理kvm虚拟机。在上面的部分中,我们通过virt管理器在本地主机上创建和管理KVM虚拟机。事实上,virt管理器还可以管理其他主机上的虚拟机。
一、virt-manager创建虚机
(1)首先通过命令 virt-manager 启动图形界面:
点下面的图标创建虚机
(2)给虚机命名为 kvm1,这里选择从哪里启动虚机。如果是安装新的 OS,可以选择第一项。如果已经有安装好的镜像文件,选最后一项(如下图)。
 (3)接下来需要告诉 virt-manager 镜像的位置,点击 “Browser”
(4)需要在系统中上传一个镜像文件到宿主机上,放到 /var/lib/libvirt/images/ 目录下,这是 KVM 默认查找镜像文件的地方。
(5)为虚拟机分配 CPU、内存和磁盘
        
(6)为虚拟机命名,并在安装前配置硬件参数,点击“Finish”。网络选 择创建的br0网桥,点击绿色“对勾”开始安装
(7)控制台弹出如下图,安装linux安装步骤安装即可:
virt-manager 可以对虚机进行各种管理操作,界面直观友好,很容易上手。 同时我们也可以用命令 virsh 管理虚机,比如查看宿主机上的虚机:
 
二、远程管理kvm虚机
 
(1)上一节我们通过 virt-manager 在本地主机上创建并管理 KVM 虚机。其实 virt-manager 也可以管理其他宿主机上的虚机。只需要简单的将宿主机添加进来,如下图:
接下来,我们就可以像管理本地虚机一样去管理远程宿主机上的虚机了
(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
三、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
创建一个大小为 9G 的格式为 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
 四、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连接的虚拟机li
         按 ctrl+] 组合键退出virsh console
2、对于centos7
(1)在虚机里运行
  [root@localhost ~]# grubby --update-kernel=ALL --args="console=ttyS0"
(2)重启虚机
  [root@localhost ~]# reboot
  即可
3、VNC Viewer 远程管理kvm主机
(1)在window中安装VNC Viewer 软件,一直下一步完成
(2)打开vnc viewer 软件连接kvm主机
(3)点击Continue,即可连接里面的虚机
五、KVM虚拟化透传
KVM 虚拟化需要处理器对虚拟化技术的支持,当我们需要进行虚拟机嵌套虚拟机时,我们需要让虚拟机中处理器对 VT 功能的支持达到透传的效果。
 
nested 虚拟机嵌套( kvm on kvm ):nested 技术,简单的说,就是在虚拟机上跑虚拟机。
 
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是否支持虚拟化
 

免责声明:文章转载自《virt-manager创建虚拟机》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇2节点vSAN 6.6升级至6.7操作步骤多种方式C#实现生成(条码/二维码)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

配置远程服务器,使hyper-v能够连接网络

一般远程服务器只有一个网卡和IP,如果你要在服务器上装虚拟机,那么要使虚拟机能够连接网络,必须要创建虚拟交换机。 如果创建虚拟交换机并桥接,那么就会改变IP地址,改变IP地址,就连接不上远程服务器。造成了一个死循环。 怎么解决呢,下面说一个方法,可以不桥接的方法,使hyper-v连接上网络 1.打开Hyper-v管理器--》  选择虚拟交换机管理器--创建...

Linux命令行:对内容进行大小写字符转换 ​​​​

如果有一个字符串要确保全部是大写的,只需通过tr命令替换: [root@localhost ~]# echo "Hello World" | tr [:lower:] [:upper:] HELLO WORLD 下面是在脚本中使用此命令的示例,需要确保添加到文件中的所有文本都是大写,以保持一致性: #!/bin/bash read -p "Enter...

ucosiii任务管理相关知识

只要学习和理解:任务状态 任务堆栈 任务控制块 任务就绪表 任务调度和切换 关于任务状态: 任务堆栈是任务的重要部分,堆栈是在RAM中按照“先进先出(FIFO)”的原则组织的一块连续的内存空间。为了满足任务切换和相应中断时保存CPU寄存器中的内容及任务调用其他函数时的需要,每个任务都应该有自己的堆栈。 1、任务堆栈的创建: UCOSIII中任务堆栈的创建...

Linux学习之路--shell学习

shell基础知识 什么是Shell Shell是命令解释器(command interpreter),是Unix操作系统的用户接口,程序从用户接口得到输入信息,shell将用户程序及其输入翻译成操作系统内核(kernel)能够识别的指令,并且操作系统内核执行完将返回的输出通过shell再呈现给用户,下图所示用户、shell和操作系统的关系: Shell也...

ubuntu linux修改文件所属用户(owner属主)和组(groud属组、用户组)

使用chown命令可以修改文件或目录所属的用户: 命令格式:sudo chown 用户 目录或文件名 例如:sudo chown -R griduser /home/dir1 (把home目录下的dir1目录的拥有者改为griduser用户) 参数 -R 是递归设置各级子目录 使用chgrp命令可以修改文件或目录所属的组: 命令:chgrp组 目录或文...

轻松简单搭建Linux下的C#开发环境&amp;lt;转&amp;gt;

先看看本篇文章最终效果:在 Ubuntu 里跑的开 发环境 MonoDevelop   [图 片:MonoDevelop1.png]如 果平时主要开发控制台类、组件、后端服务等程序,可以尝试在Linux类操作系统下搭建C#.Net开发环境,好处是在Linux环境里你不用担心朋友或 同事拿你的电脑来玩魔兽世界或者一不小心被装了一大堆流氓软件 ;-)1、Lin...