当前位置: 首页 > 编程日记 > 正文

kvm--virsh命令行下管理虚拟机

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


(1)基础操作 --- 命令行下管理虚拟机

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

2)创建新磁盘 

qemu-img create -f qcow2(指定磁盘格式) -o size=9G(指定大小) /var/lib/libvirt/images/haha.qcow2(路径和名称)

/var/lib/libvirt/image/为磁盘镜像的默认路径。

注意注定磁盘大小的时候不能有空格,否则报错

[root@localhost images]# qemu-img create -f qcow2 -o size =9G /var/lib/libvirt/images/haha.qcow2
qemu-img: Invalid image size specified! You may use k, M, G, T, P or E suffixes for 
qemu-img: kilobytes, megabytes, gigabytes, terabytes, petabytes and exabytes.[root@localhost images]# qemu-img create -f qcow2 -o size=9G /var/lib/libvirt/images/haha.qcow2
Formatting '/var/lib/libvirt/images/haha.qcow2', fmt=qcow2 size=9663676416 encryption=off cluster_size=65536 lazy_refcounts=off 
[root@localhost images]# qemu-img info haha.qcow2

3)查看磁盘情况

qemu-img info 磁盘名

[root@localhost images]# qemu-img info /var/lib/libvirt/images/haha.qcow2 
image: haha.qcow2
file format: qcow2
virtual size: 9.0G (9663676416 bytes)
disk size: 196K    #实际占用磁盘196k,最高可用9G
cluster_size: 65536
Format specific information:compat: 1.1lazy refcounts: false

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

 

例如:创建一个磁盘

路径为/var/lib/libvirt/image/ 

指定cpu内存为1g

cpu数量为1

以spice方式连接vm

执行虚拟网络为自设网桥br0

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

注意磁盘路径与磁盘安装源路径的区别。

由于使用virsh命令创建虚拟机同样还需要在图形化界面操作,所以用的不多,了解就行。

 

5)其余重要的一些virsh命令


virsh define   xx.xml                从一个 XML 文件定义、恢复(但不开始)一个域
virsh undefine  xx           删除一个虚机域

 

KVM 通过virsh console连入虚拟机

 

定义:在宿主机上直接能够连通创建的虚拟机并执行操作,功能类似于ssh。

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

我们这里以centos7以上的版本做说明:

 

(1)在被连接的虚机里执行

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

(2)重启此机

[root@localhost ~]# reboot

3)在宿主机上执行

[root@localhost ~]# virsh console vm5
连接到域 vm5
换码符为 ^]            #ctrl ] 退出1、一直hang在这个状态无法连接上虚拟机,这是因为宿主机通过ttyss0连接虚拟机,但被连接主机没有设置或者没有设置成功。
2、或者grubby命令没有下载,yum安装后再次尝试

3、VNC Viewer 远程管理kvm主机

前提是宿主机内的虚拟机状态为开启

(1)在window中安装VNC Viewer 软件,一直点下一步就行。

 

 

 2 )输入宿主机的ip地址。

点击Continue,即可连接里面的虚机

 

 

五、KVM虚拟化透传

 

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

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

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

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


grep vmx(svm) /proc/cpuinfo

如果查询未果,证明一层 KVM 的虚拟机,并未将宿主机处理器的 VT 功能成功透传。

因此我们需要透传。

 

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

注意查看你的虚拟机架构支持的是amd还是intel

[root@localhost ~]# cat /etc/modprobe.d/kvm-nested.conf 
options kvm_amd nested=1

3、在宿主机启用 kvm_amd 模块的嵌套虚拟化功能,并且使透传永久有效
(2)重新加载 kvm 模块
# modprobe -r kvm_amd      -r参数:remove掉kvm_amd模块
# modprobe kvm_amd            加载kvm_amd模块

 

4、验证是否加载成功
#cat /sys/module/kvm_intel/parameters/nested

1或者y证明加载成功。

0和N或者没有返回值证明没加载成功。

重新加载modprobe模块或者查看架构是支持intel还是amd来稍微更改下模块和目录。

[root@localhost ~]# cat /sys/module/kvm_amd/parameters/nested 
1

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

更改下面绿绿的一行即可。

host-passthrough 直接将物理 CPU 暴露给虚拟机使用,在虚拟机上完全可以看到的就是物理 CPU的型号(我们前面介绍过kvm透传就是将宿主机的cpu特性全部传给被透主机)

root@localhost ~]# virsh edit vm4
<domain type='kvm'><name>vm4</name><uuid>98c5d257-6b75-493b-91db-66589b582733</uuid><memory unit='KiB'>1048576</memory><currentMemory unit='KiB'>1048576</currentMemory><vcpu placement='static'>1</vcpu><os><type arch='x86_64' machine='pc-i440fx-rhel7.0.0'>hvm</type></os><features><acpi/><apic/></features><cpu mode='host-passthrough'/>        #删除下面两行<clock offset='utc'><timer name='rtc' tickpolicy='catchup'/>

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

[root@localhost ~]# lsmod | grep kvm
kvm_amd                69849  0 
kvm                   566340  1 kvm_amd
irqbypass              13503  1 kvm

7、在被透传虚拟机中查看cpu是否支持虚拟化

次数大于0证明透传成功,可以开始虚拟机嵌套了。

svm是支持amd架构

vmx支持intel架构

[root@localhost ~]# egrep svm /proc/cpuinfo | wc -l
1

转载于:https://www.cnblogs.com/xiaoxiaotiejiang/p/11082756.html

相关文章:

【java】兴唐第十八节课

1、java接口的关键字&#xff1a;implements,可实现多个接口&#xff0c;接口接口之间使用逗号分隔。 注&#xff1a; 继承只能继承一个&#xff0c;接口可以实现多个 2、在接口里所有的方法都是抽象方法&#xff0c;不用关键字abstract修饰。 3、接口不能定义变量&#xff0…

转换前台javascript传递过来的时间字符串到.net的DateTime

javascript: var datenew Date().toString();得到的结果类似于:Wed Oct 27 2010 08:53:04 GMT0800 如何在C#中把这个字符串转换为DateTime类型呢&#xff1f;DateTime.ParseExact("Wed Oct 27 16:23:44 UTC0800 2010","ddd MMM dd HH:mm:ss UTCzzzzz yyyy"…

树状数组 | 1057

用哈希&#xff0c;把push的数x作为下标给hashTable&#xff08;实则不存在&#xff0c;直接用tree树状数组记录数据&#xff09;1&#xff0c;pop则是以最后一个数x作为下标-1 。 树状数组和其原理不再赘述&#xff0c;需要注意的是最后的二分搜索&#xff08;实则是lower_bou…

7、vue中将token存到cookie

使用js-cookie工具&#xff1a; 1.npm i js-cookie //安装2.import Cookies from js-cookie //引用 // 存入cookie&#xff1a;Cookies.set(token,value) // 获取cookie&#xff1a;Cookies.set(token) //删除cookie:Cookies.remove(token)转载于:https://www.cnblogs.com/xlfd…

MySQL数据库表名、列名、别名区分大小写的问题

MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的&#xff1a; 1、数据库名与表名是严格区分大小写的&#xff1b; 2、表的别名是严格区分大小写的&#xff1b; 3、列名与列的别名在所有的情况下均是忽略大小写的&#xff1b; 4、变量名也是严格区分大小写的&#…

【java】兴唐第十七节课

1、抽象类&#xff1a; 概念:由abstract修饰的类叫抽象类。 特征&#xff1a;在抽象类中有抽象方法 注意&#xff1a; &#xff08;1&#xff09;抽象方法必须定义到抽象类中&#xff0c;即有抽象方法的类一定是抽象类。抽象类的非抽象子类必须实现父类的抽象方法&#xff0c…

条款22: 尽量用“传引用”而不用“传值”

c语言中&#xff0c;什么都是通过传值来实现的&#xff0c;c继承了这一传统并将它作为默认方式。除非明确指定&#xff0c;函数的形参总是通过“实参的拷贝”来初始化的&#xff0c;函数的调用者得到的也是函数返回值的拷贝。正如我在本书的导言中所指出的&#xff0c;“通过值…

C++ RCSP智能指针简单实现与应用

智能指针的实现代码来源博客&#xff1a;《http://blog.csdn.net/to_be_better/article/details/53570910》 修改&#xff1a;添加 get()函数&#xff0c;用以获得原始指针&#xff08;raw pointer&#xff09;。 其余思路来源《Effective C》 智能指针的实现代码如下&#xff…

末学者笔记--openstack共享组件:rabbitmq(3)

openstack共享组件&#xff1a;消息队列rabbitmq 一、MQ 全称为 Message Queue, 消息队列&#xff08; MQ &#xff09; 是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息&#xff08;针对应用程序的数据&#xff09;来通信&#xf…

【matlab】2019.5.10第一节上机课练习

1、计算角度和弧度的方法 例 a 17&#xff0c;b 24&#xff0c;c 26 求一个角分别以角度和弧度的方式给出 解&#xff1a; %//用余弦定理求出余弦值 pos (a b c)/(2*a*b) %//用acos求出弧度值 angle acos(pos)%//求出角度值realangle angle*180/pi2、创建矩阵的方法 A…

【学习笔记】Silverlight框架:Jounce(4)——事件通信

Prism、CM和Jounce里都有各自的事件通信机制&#xff0c;也都叫EventAggregator。 相比于Prism&#xff0c;Jounce里的EventAggregator的风格更接近CM。当然作者也是这么说的&#xff1a;The pattern here is based on the lightweight version Rob Eisenburg introduced with …

10个最常用 Windows Vista运行命令

Windows Vista以其华丽的界面和全新的操作方式受到大众喜爱&#xff0c;但实际上&#xff0c;如果你善于使用“运行”命令&#xff0c;仍然可以大大简化操作&#xff0c;甚至是发现一些常规菜单里没有的功能的。 下面就给大家讲讲Windows Vista下面的一些工具命令&#xff0c;你…

非常好的博客网站

下面的内容是转载的&#xff0c; 原文&#xff1a; https://klionsec.github.io/archives/ http://www.leifc.com/ ------------------------------------------------------------------------------ 个人始终坚信,所有不以实际入侵和防御为目的的安全研究都是耍流氓 [ 目…

反向代理Nginx

引用&#xff1a;https://baijiahao.baidu.com/s?id1600687025749463237&wfrspider&forpc 参考下图&#xff0c;正向代理用途&#xff1a;Client无法直接访问Server&#xff0c;比如谷歌FQ&#xff0c;于是请求发送给代理&#xff0c;代理可以访问Server并将其返回信息…

asp.net mvc3 Razor引擎中@使用规则小记

项目中前台用的是asp.net mvc3&#xff0c;Razor引擎&#xff08;关于Razor的介绍可以参考&#xff1a;http://weblogs.asp.net/scottgu/archive/2010/07/02/introducing-razor.aspx&#xff09;&#xff0c;深深体验到了Razor引擎的方便强大。但在编码过程中也遇到了一些问题&…

【matlab】第二章基本使用方法

&#xff08;一&#xff09;操作练习 1、整型数据类型的定义 代码实现 x int8(50)2、创建一个复数 代码实现&#xff1a; //情况1 complex(2); //输出结果&#xff1a; ans 1.0000 0.0000i//情况2 complex(1,2);//输出结果&#xff1a; ans 1.0000 2.0000i//情况3a compl…

一位美国前辈工程师的十大职业发展忠告

1、好好规划自己的路&#xff0c;不要跟着感觉走&#xff01;根据个人的理想决策安排&#xff0c;绝大部分人并不指望成为什么院士或教授&#xff0c;而是希望活得滋润一些&#xff0c;爽一些。那么&#xff0c;就需要慎重安排自己的轨迹。从哪个行业入手&#xff0c;逐渐对该行…

Vagrant安装指南

ubuntu的易用性很高&#xff0c;安装很简单&#xff0c;颜值也高&#xff0c;但是我工作中经常使用centos&#xff0c;我希望我的笔记本也是centos&#xff0c;但是&#xff0c;centos颜值太低&#xff0c;配置文件很复杂&#xff0c;不想弄这个太麻烦&#xff0c;于是&#xf…

树状数组的理解(前缀和 and 差分)

二更—— 有神仙反映数星星那个题外链炸了&#xff0c;我决定把图给你们粘一下&#xff0c;汉语翻译的话在一本通提高篇的树状数组那一章里有&#xff0c;同时也修改了一些汉语语法的错误 这段时间学了线段树组&#xff0c;当神仙们都在学kmp和hash的时候&#xff0c;我这个蒟蒻…

【java】兴唐第十九节课(内部类)

内部类&#xff1a;在类的内部定义的类叫内部类 1、有名内部类&#xff1a; &#xff08;1&#xff09;实例化时必须先实例化外部对象&#xff0c;格式&#xff1a; 外部类.内部类 对象名 外部类对象名.new.内部类名&#xff08;&#xff09;&#xff1b; 代码实现&#xff1…

持续集成之“自动化部署”

转自&#xff1a;http://www.infoq.com/cn/news/2011/07/ci-automatic-deployment 在前文《依赖管理》中&#xff0c;我们讨论了如何在代码变得庞大&#xff0c;组件增多的情况下&#xff0c;做好外部库和内部组件依赖管理&#xff0c;从而提高构建效率。可以应用的实践包括&am…

1008: [HNOI2008]越狱(计数问题)

1008: [HNOI2008]越狱 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 11361 Solved: 4914[Submit][Status][Discuss]Description 监狱有连续编号为1...N的N个房间&#xff0c;每个房间关押一个犯人&#xff0c;有M种宗教&#xff0c;每个犯人可能信仰其中一种。如果相邻房间…

他山之石:Github的使用

一.awesome 关键字 搜索和关键字匹配的优秀项目 awesome springboot 搜索优秀的springboot相关的项目&#xff0c;包括框架、教程等 二.通过in关键词限制搜索范围 xxx in:name 项目名包含xxx的 xxx in:description 项目描述包含xxx的 xxx in:readme 项目的readme文件中包含x…

【java】兴唐第二十节课(Collection 和 ArrayList)

(一)Collection 1、如果实现 --able 名称的接口则证明该类或其子类有该功能 &#xff08;1&#xff09;实现Iterable接口代表具有迭代功能 &#xff08;2&#xff09;实现Cloneable接口代表具有克隆功能 &#xff08;3&#xff09;实现Serializable接口代表具有序列化的功能 …

服务器系统架构分析

我目前的nginx配置是拆散的&#xff0c;这样可以便于在很多个虚拟主机和目录里重用部分配置。 总体是划分为这样一个结构&#xff1a; conf/conf/nginx.confconf/proxy.confconf/rewrite.confconf/location.confconf/port.confconf/upstream.confconf/servers/conf/servers/www…

SharePoint SiteCollection 和SubWeb之间的迁移

因为各种不同的原因&#xff0c;项目里可能碰到需要将一个Site Collection迁移为一个子站点的情况。 实现这种需求只能用 内容部署功能中的导出和导入〉 SiteCollectoin to sub web 示例&#xff1a; cd C:\Program Files\Common Files\Microsoft Shared\web server extensions…

20154312曾林 - Exp1 PC平台逆向破解

1.逆向及Bof基础实践说明 1.1-实践目标 对象&#xff1a;pwn1&#xff08;linux可执行文件&#xff09;目标&#xff1a;使程序执行另一个代码片段&#xff1a;getshell内容&#xff1a; 手工修改可执行文件&#xff0c;改变程序执行流程&#xff0c;直接跳转到getShell函数。利…

web App libraries跟referenced libraries的一些问题

该博文内容经参看网上其他资料归纳所成&#xff0c;并注明出处&#xff1a; 问题一&#xff1a;myeclipse中Web App Libraries无法自动识别lib下的jar包&#xff08;http://blog.csdn.net/tiancai1202000/article/details/49178721&#xff09; myeclipse&#xff0c;lib中的ja…

无法在数据库 'ycmis2' 中运行 BEGIN TRANSACTION,因为该数据库处于回避恢复模式。...

alter database ycmis2 set EMERGENCY alter database ycmis2 set online 转载于:https://www.cnblogs.com/qanholas/archive/2011/08/03/2126347.html