1、KVM虚拟机管理操作

virsh命令常用参数总结

  1、开机关机:

virsh list (只可以查看运行的虚拟机)

virsh list  --all (全部都可以查看)

开机与关机

virsh start centos7    //开启虚拟机centos7
virsh destroy centos7 //关闭电源模式关闭虚拟机centos7,如果跑了数据库,不允许使用destroy关闭

virsh shutdown  centos7     //正常关机

  2、配置文件&备份恢复

  • 磁盘文件   例: centos7.raw   -> 在虚拟机的安装目录
  • 配置文件   例: centos7.xml  -> /etc/libvirt/qemu/centos7.xml

1、当第一次安装完成后,查看虚拟机的安装目录如下,centos2.raw是磁盘文件。

2、虚拟机的默认配置文件,/etc/libvirt/qemu/

3、备份配置文件,virsh dumpxml centos7 > centos7.xml(关机时备份)

配置文件内容如下

[root@kvm01 opt]# virsh dumpxml web-
<domain type='kvm' id=''>
<name>web-</name>     ----------------------------- 虚拟机名字
<uuid>3eebab41--4d7e--d7a0bbb6d7b0</uuid>
<memory unit='KiB'></memory>   ----------------------  内存大小
<currentMemory unit='KiB'></currentMemory>
<vcpu placement='static'></vcpu>  ------------------- Cpu核心
<resource>
<partition>/machine</partition>
</resource>
<os>
<type arch='x86_64' machine='pc-i440fx-rhel7.0.0'>hvm</type>
<boot dev='hd'/>
</os>
<features>
<acpi/>
<apic/>
</features>
<cpu mode='custom' match='exact' check='full'>
<model fallback='forbid'>Broadwell</model>
<feature policy='disable' name='hle'/>
<feature policy='disable' name='rtm'/>
<feature policy='require' name='hypervisor'/>
<feature policy='disable' name='erms'/>
<feature policy='require' name='xsaveopt'/>
</cpu>
<clock offset='utc'>
<timer name='rtc' tickpolicy='catchup'/>
<timer name='pit' tickpolicy='delay'/>
<timer name='hpet' present='no'/>
</clock>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>
<pm>
<suspend-to-mem enabled='no'/>
<suspend-to-disk enabled='no'/>
</pm>
<devices>
<emulator>/usr/libexec/qemu-kvm</emulator>
<disk type='file' device='disk'>
<driver name='qemu' type='raw'/>
<source file='/opt/centos2.raw'/>    ------------- 硬盘路径
<backingStore/>
<target dev='vda' bus='virtio'/>
<alias name='virtio-disk0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
</disk>
<disk type='file' device='cdrom'>
<driver name='qemu' type='raw'/>
<backingStore/>
<target dev='hda' bus='ide'/>
<readonly/>
<alias name='ide0-0-0'/>
<address type='drive' controller='' bus='' target='' unit=''/>
</disk>
<controller type='usb' index='' model='ich9-ehci1'>
<alias name='usb'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x7'/>
</controller>
<controller type='usb' index='' model='ich9-uhci1'>
<alias name='usb'/>
<master startport=''/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0' multifunction='on'/>
</controller>
<controller type='usb' index='' model='ich9-uhci2'>
<alias name='usb'/>
<master startport=''/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x1'/>
</controller>
<controller type='usb' index='' model='ich9-uhci3'>
<alias name='usb'/>
<master startport=''/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x2'/>
</controller>
<controller type='pci' index='' model='pci-root'>
<alias name='pci.0'/>
</controller>
<controller type='ide' index=''>
<alias name='ide'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
</controller>
<controller type='virtio-serial' index=''>
<alias name='virtio-serial0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
</controller>
<interface type='network'>
<mac address='52:54:00:82:75:2f'/>
<source network='default' bridge='virbr0'/>
<target dev='vnet0'/>
<model type='virtio'/>
<alias name='net0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
<serial type='pty'>
<source path='/dev/pts/0'/>
<target port=''/>
<alias name='serial0'/>
</serial>
<console type='pty' tty='/dev/pts/0'>
<source path='/dev/pts/0'/>
<target type='serial' port=''/>
<alias name='serial0'/>
</console>
<channel type='unix'>
<source mode='bind' path='/var/lib/libvirt/qemu/channel/target/domain-1-web-49/org.qemu.guest_agent.0'/>
<target type='virtio' name='org.qemu.guest_agent.0' state='connected'/>
<alias name='channel0'/>
<address type='virtio-serial' controller='' bus='' port=''/>
</channel>
<input type='tablet' bus='usb'>
<alias name='input0'/>
<address type='usb' bus='' port=''/>
</input>
<input type='mouse' bus='ps2'>
<alias name='input1'/>
</input>
<input type='keyboard' bus='ps2'>
<alias name='input2'/>
</input>
<graphics type='vnc' port='' autoport='yes' listen='0.0.0.0'>
<listen type='address' address='0.0.0.0'/>
</graphics>
<video>
<model type='cirrus' vram='' heads='' primary='yes'/>
<alias name='video0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
</video>
<memballoon model='virtio'>
<alias name='balloon0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
</memballoon>
</devices>
<seclabel type='none' model='none'/>
<seclabel type='dynamic' model='dac' relabel='yes'>
<label>+:+</label>
<imagelabel>+:+</imagelabel>
</seclabel>
</domain>

4、删除虚拟机配置

# 查看
[root@kvm ~]# virsh list --all
Id 名称 状态
----------------------------------------------------
- centos7 关闭
# 删除
[root@kvm ~]# virsh undefine centos7
域 centos7 已经被取消定义 //这是翻译
[root@kvm ~]# virsh list --all
Id 名称 状态

删除虚拟机,配置文件会被删除,但是磁盘文件不会删除

 

5、导入虚拟机,只能恢复配置文件丢失的情况,恢复备份的配置文件

# 导入
[root@kvm ~]# virsh define centos7.xml
定义域 centos7(从 centos7.xml)      //翻译内容
# 查看
[root@kvm ~]# virsh list --all
Id 名称 状态
----------------------------------------------------
- centos7 关闭

6、当磁盘文件丢失,恢复如下

模拟:把磁盘文件改名为7.raw。提示找不到/opt/centos2.raw。

使用: virsh edit centos7(这个是虚拟机的名称)   -> 查找 centos2.raw 改成 centos7.raw

注释:用virsh edit 去修改配置文件,有语法检查,如果使用centos7.xml没有语法检测。(修改用edit,自带语法检查)

  3、修改虚拟机名称

开机状态下修改会报如下错误:

  4、虚拟机挂起与恢复

  5、查询虚拟机vnc端口

[root@kvm ~]# virsh vncdisplay centos7
:0
# :0 即 为 5900 端口,以此类推 :1为5901 。  

VNC也可以使用短的端口号连接:

  6、开机自启与取消开机自启

# 设置 libvirtd 服务开机自启动。
[root@kvm ~]# systemctl is-enabled libvirtd.service
enabled 设置宿主机开机虚拟机在其他
[root@kvm ~]# virsh autostart centos7
域 clsn7标记为自动开始    //翻译英文内容

# 实质为创建软连接
[root@kvm ~]# ll /etc/libvirt/qemu/autostart/centos7.xml
lrwxrwxrwx 1 root root 27 1月 22 12:17 /etc/libvirt/qemu/autostart/centos7.xml -> /etc/libvirt/qemu/centos7.xml 取消开机自启动
[root@kvm ~]# virsh autostart --disable centos7
域 clsn7取消标记为自动开始    //翻译英文内容

有软连接,就会开机自启虚拟机登录

2、kvm虚拟机console登录

注:就是执行 virsh console 的时候,宿主机可以控制虚拟机。

如果是10网段想远程控制172网段的宿主机,是无法使用VNC的(10网段只能访问10网段的,不可以访问172网段)。那这个时候我们有修改宿主机的需求,就可以使用console登录的方式。

通过连接跳板机,再通过跳板机,远程控制宿主机。

KVM宿主机:就是在宿主机上会运行大量的虚拟机,我们称之为KVM宿主机

  CentOS 7.X 版本console登录

 1、使用ssh 远程登录虚拟机:ssh root@虚拟机的Ip地址。

2、 查看登录的ip

3、查看宿主机,也有相同的ip地址,因为有这块网卡的存在,才能使用ssh远程连接虚拟机。

该操作仅限centos7

centos7的kvm虚拟机:
grubby --update-kernel=ALL --args="console=ttyS0,115200n8" -----> 使用命令直接插入

可以使用命令插入,也可以进入配置文件修改,(修改配置文件的100行,和114行,加入 : console=ttyS0,115200n8)

使用diff命令比较

重启完成后reboot,使用virsh console 连接虚拟机。  

[root@kvm ~]# virsh console centos7 (虚拟机名字)
连接到域 centos7
换码符为 ^]
CentOS Linux 7 (Core)
Kernel 3.10.0-327.el7.x86_64 on an x86_64 centos7 login: root
Password:
Last login: Mon Jan 22 12:24:48 from 192.168.122.1
[root@clsn7 ~]# w
12:26:11 up 0 min, 1 user, load average: 0.09, 0.03, 0.01
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root ttyS0 12:26 3.00s 0.02s 0.01s w

 注:ttys0是终端的名字,和配置时候的参数一致,后面的内容为频率。(串口的频率,交换机的一些内容)

  CentOS 6.X 版本console登录

作业1:实现centos6的kvm虚拟机,console命令行登录? 

安装一台centos6的kvm虚拟机:需要在/data目录下导入6.9的镜像

virt-install --virt-type kvm --os-type=linux --os-variant rhel6 \
--name clsn6 --memory 1124 --vcpus 1 \
--disk /data/clsn6/clsn-6.raw,format=raw,size=10 \
--cdrom /data/CentOS-6.9-x86_64-bin-DVD1.iso \
--network network=default --graphics vnc,listen=0.0.0.0,port=5901 \
--noautoconsole

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

以下操作都在虚拟机中进行:

1、添加ttyS0的许可,允许root登陆:

[root@clsn6 ~]# echo "ttyS0" >> /etc/securetty

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

在该文件的第16行。kernel选项后添加

[root@clsn6 ~]# sed -i '/\tkernel/s#.*#& console=ttyS0#g' /etc/grub.conf
[root@clsn6 ~]# sync # 同步配置到 /boot/grub/grub.conf
[root@clsn6 ~]# cat -n /etc/grub.conf
1 # grub.conf generated by anaconda
2 #
3 # Note that you do not have to rerun grub after making changes to this file
4 # NOTICE: You have a /boot partition. This means that
5 # all kernel and initrd paths are relative to /boot/, eg.
6 # root (hd0,0)
7 # kernel /vmlinuz-version ro root=/dev/vda3
8 # initrd /initrd-[generic-]version.img
9 #boot=/dev/vda
10 default=0
11 timeout=5
12 splashimage=(hd0,0)/grub/splash.xpm.gz
13 hiddenmenu
14 title CentOS 6 (2.6.32-696.el6.x86_64)
15 root (hd0,0)
16 kernel /vmlinuz-2.6.32-696.el6.x86_64 ro root=UUID=48532582-c271-4c0a-b55f-395fe16cd8aa rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet console=ttyS0
17 initrd /initramfs-2.6.32-696.el6.x86_64.img

3、编辑/etc/inittab

在最后一行加入内容 S0:12345:respawn:/sbin/agetty ttyS0 115200  

[root@clsn6 ~]# echo 'S0:12345:respawn:/sbin/agetty ttyS0 115200' >>/etc/inittab

4、以上操作都完成后,重启虚拟机

[root@clsn6 ~]# reboot

以下操作在kvm宿主机上执行:  

1、检查虚拟机的状态

[root@kvm ~]# virsh list --all
Id 名称 状态
----------------------------------------------------
11 clsn7 running
21 clsn6 running

2、进行连接测试

[root@kvm ~]# virsh console clsn6
连接到域 clsn6
换码符为 ^] # 注:退出virsh console连接的方法,使用组合键Ctrl+]即可 CentOS release 6.9 (Final)
Kernel 2.6.32-696.el6.x86_64 on an x86_64 clsn6 login: root
Password:
Last login: Mon Jan 22 05:44:25 on ttyS0
[root@clsn6 ~]# who
root ttyS0 2018-01-22 05:50
# 登陆成功,查看登陆接口为之前设置的ttyS0

KVM -> 虚拟机管理&console登录_02的更多相关文章

  1. kvm虚拟机管理 系统自动化安装

    原创博文安装配置KVM http://www.cnblogs.com/elvi/p/7718574.htmlweb管理kvm http://www.cnblogs.com/elvi/p/7718582 ...

  2. kvm虚拟机管理基础

    部署 KVM 虚拟机 a.kvm 安装 环境:centos7,cpu 支持虚拟化,关闭 selinux,关闭 firewalld yum install libvirt virt-install qe ...

  3. KVM虚拟机管理——虚拟机创建和操作系统安装

    1. 概述2. 交互式安装2.1 图形化-本地安装2.1.1 图形化本地CDROM安装2.2.2 图形化本地镜像安装2.2 命令行-本地安装2.2.1 命令行CDROM安装2.3 图形化-网络安装2. ...

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

    1. 概述2. 部署基本操作系统虚拟机3. 配置虚拟机3.1 修改/etc/sysconfig/network3.2 删除/etc/sysconfig/network-scripts/ifcfg-et ...

  5. KVM虚拟机管理(2)

    一.virt-manager创建虚机 命令行需要下载下面的组件: CentOS7: 命令行界面升级为图形化界面 yum groupinstall "X Window System" ...

  6. kvm虚拟机管理(创建、连接)

    创建虚机.远程管理kvm虚机.virsh命令行下管理虚机..kvm通过virsh console 连入虚拟机   一.创建虚机 1)打开虚拟化管理器

  7. kvm虚拟机管理(3)

    一.远程管理kvm虚拟机 (1)上一节我们通过 virt-manager 在本地主机上创建并管理 KVM 虚机.其实 virt-manager 也可以管理其他宿主机上的虚机.只需要简单的将宿主机添加进 ...

  8. KVM虚拟机管理——资源调整

    1. 概述2. 计算资源调整2.1 调整处理器配置2.2 调整内存配置3. 存储资源调整3.1 根分区扩展3.2 添加磁盘4. 网络资源调整 1. 概述 KVM在使用过程中,会涉及到计算(CPU,内存 ...

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

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 打算学习KVM的图形界面管理器virt-manager,但是virt-manager只有linux系统的,没有windows下的.所以只能使用linux ...

随机推荐

  1. 洛谷P4383 林克卡特树

    题意:树上最长不相交k条链. #include <cstdio> #include <algorithm> #include <cstring> typedef l ...

  2. #ifndef HeaderName_h #define HeaderName_h #endif 使用详解

    想必很多人都看到过头文件中写有:#ifndef HeaderName_h                                                #define HeaderNa ...

  3. Python中if-else的多种写法

    a, b= 1, 2 将a和b两个变量中的最大值赋值给c (1)常规写法 if a>b:     c = a else:     c = b   (2)表达式 c = a if a>b e ...

  4. grafana worldPing插件

    worldPing插件安装 官网介绍:https://grafana.com/plugins/raintank-worldping-app/installation 插件下砸地址:https://gr ...

  5. python高级数据可视化Dash2

    k 线国内版 python dash 的应用首页,是用一个 k 线图来做 damo 的,奈何数据源用的 Google,上不去.当然,可以换 yahoo,但是毕竟国内的还是更亲切些. 官方的 demo ...

  6. selenium批量翻译

    Python爬虫视频教程零基础小白到scrapy爬虫高手-轻松入门 https://item.taobao.com/item.htm?spm=a1z38n.10677092.0.0.482434a6E ...

  7. Nginx核心配置文件常用参数详解

    Nginx核心配置文件常用参数详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 关于Nginx权威文档的话童鞋们可以参考Nginx官方文档介绍:http://nginx.org/ ...

  8. Hbase记录-ZooKeeper API

    Zookeeper API ZooKeeper有一个Java和C绑定的官方API.ZooKeeper社区提供了对于大多数语言(.NET,Python等)的非官方API.使用ZooKeeper的API, ...

  9. Hive记录-使用Hue管理Hive元数据

    Hue是一个开源的Apache Hadoop UI系统,由Cloudera Desktop演化而来,最后Cloudera公司将其贡献给Apache基金会的Hadoop社区,它是基于Python Web ...

  10. ThinkPHP 3.2 支付宝即时到账接口开发

    前言: 一.支付流程 构造请求参数 向支付宝网关发送请求 生成支付宝页面 支付宝交易结果 二.构建支付类 1.官方即时到账文档地址: https://doc.open.alipay.com/doc2/ ...