KVM 虚拟化部署管理迁移等深入详解
虚拟化介绍
什么是虚拟化
简单理解: 是指通过虚拟化的一种技术将一台实体计算机虚拟为多台逻辑计算机,在一台计算机上面同时运行多个逻辑计算机。每个逻辑计算机可以运行不同的操作系统。 提高计算机的工作效率。
把所有的资源进行整合,提高资源的利用率
按需分配
为什么要使用虚拟化?
提高计算机资源的利用率和程序运行环境的安全隔离 还可以有效的防止资源的浪费。
优势:
1. 降低运营成本
2. 提高应用兼容性
3. 加速应用部署
4. 提高服务可用性
5. 提升资源的利用率
6. 动态资源分配
7. 降低能源消耗
虚拟化的应用场景
1. 多版本操作系统共存
2. 机房迁移, 虚拟化只需要迁移虚拟主机就可以
3. 相同业务部署 克隆
4. 软件发布测试,体验
虚拟化的软件介绍
Xen
软件是纯模拟,全部都是虚拟化! 特别慢!
QEMU
性能特别的好,需要用的特殊的内核 经过专门修改之后的内核
VMware ESCI
商业软件 部署特别快 贵 好用
VirtualBox
开源的虚拟机软件
Kvm 虚拟化管理平台 使用范围很广
基于内核的虚拟机 开源软件
x86架构且硬件支持虚拟化技术(如 intel VT 或 AMD-V)的Linux全虚拟化解决方案
为处理器提供底层虚拟化,可加载的核心模块kvm.ko(kvm-intel.ko或kvm-AMD.ko)。
管理平台 qemu-kvm 虚拟机上层控制和界面
安装部署Kvm
Kvm部署CentOS7.6虚拟机
#虚拟机需要开启内核虚拟化
内存 == 4G 磁盘 == 100G
#安装操作系统
CentOS-7.6
#服务端
host kvm01
ip 10.0.0.11
[root@kvm01 ~]# yum install -y libvirt virt-install qemu-kvm
libvirt #虚拟机管理, kvm xen lxc等软件
virt-install #虚拟机的安装和克隆
qemu-kvm #管理虚拟机的磁盘
#启动
[root@kvm01 ~]# systemctl start libvirtd.service
[root@kvm01 ~]# systemctl enable libvirtd.service
#下载 VNC
http://www.tightvnc.com
VNC软件,用于VNC(Virtual Network Computing),为一种使用RFB协议的显示屏画面分享及远程操作软件。此软件借由网络,可发送键盘与鼠标的动作及即时的显示屏画面,不受操作系统限制,可跨平台使用
#安装虚拟机的参数
参数 参数说明
--virt-type #要使用的管理程序名称 (kvm, qemu, xen, ...)
--os-type #系统类型 linux unix windows
--os-variant #客户机上安装的操作系统,如:'fedora18'、'rhel7'、'winxp' 等。
-n/--name #客户机实例名称
--memory #配置客户机虚拟内存大小
--vcpus #配置客户机虚拟 CPU数量。
--disk #指定存储的各种选项。 raw #不支持做快照,性能好。qcow2 #支持快照。
-cdrom #镜像位置
-w/--network #配置客户机网络接口。
--graphics #配置客户机显示设置。
--noautoconsole #不要自动尝试连接到客户端控制台
--autostart #主机启动时自动启动域。
--noreboot #安装完成后不重新启动客户机。
#安装一台Centos-7的操作系统
#用xftp上传CentOS7.6的镜像至/opt目录
[root@kvm01 /opt]# virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name=centos7_web01 --memory 1024 --vcpus 1 --disk /opt/centos7_web01.raw,format=raw,size=10 --cdrom=/opt/CentOS-7-x86_64-DVD-1810.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
Starting install...
Allocating 'centos7_web01.raw' | 10 GB 00:00:00
Domain installation still in progress. You can reconnect to
the console to complete the installation process.
[root@kvm01 /opt]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:5900 0.0.0.0:* LISTEN 11071/qemu-kvm
#报错解决
#1.ERROR Guest name 'centos7_web01' is already in use.
原因:kvm不能重装重名的虚拟机
方法:执行virsh undefine convirt
#2.VNC打开出现no bootable device
原因:virt-install的命令填写有误
方法:检查cdrom的路径
网络不需要配置,动态分配即可
[root@kvm01 /opt]# virsh start centos7_web01
[root@kvm01 /opt]# netstat -lntp
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:5900 0.0.0.0:*
Kvm部署CentOS6虚拟机
#上传镜像至/opt目录
[root@kvm01 /opt]# ll
-rw-r--r-- 1 root root 4467982336 Apr 7 10:47 CentOS-6.5-x86_64-bin-DVD1.iso
#创建虚拟主机
virt-install --virt-type kvm --os-type=linux --os-variant rhel6 --name centos6 --memory 1024 --vcpus 1 --disk /opt/centos6.raw,format=raw,size=10 --cdrom /opt/CentOS-6.5-x86_64-bin-DVD1.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
#使用VNC连接进行安装,注意一定要设置swap分区,否则主机无法启动
Kvm部署Windows10虚拟机
#安装软件
[root@kvm01 ~]# yum install -y libvirt virt-install qemu-kvm
#启动管理工具
[root@kvm01 ~]# systemctl start libvirtd.service
[root@kvm01 ~]# systemctl enable libvirtd.service
#上传win10镜像
#安装win10需要下载virtio驱动(此处选的版本是:virtio-win-0.1.126.iso)
https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/
#创建虚拟机实例
virt-install --virt-type kvm \
--os-type=windows \
--name win10 \
--memory 6144 \
--vcpus 1 \
--disk /opt/win10.qcow2,format=qcow2,size=50 \
--disk /opt/virtio-win-0.1.126.iso \
--cdrom /opt/cn_windows_10_business_editions_version_1909_updated_jan_2020_x64_dvd_b3e1f3a6.iso \
--network network=default \
--graphics vnc,listen=0.0.0.0 \
--noautoconsole
# Win10安装过程中要给足磁盘和内存, 否则会导致安装慢或失败
[root@kvm01 /opt]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:5902 0.0.0.0:* LISTEN 30119/qemu-kvm
Kvm虚拟机管理
Kvm基础管理操作
显示所有的主机
[root@kvm01 /opt]# virsh list --all
Id Name State
----------------------------------------------------
- centos7_web01 shut off
启动一台主机
[root@kvm01 /opt]# virsh start centos7_web01
Domain centos7_web01 started
只显示已经运行的主机
[root@kvm01 /opt]# virsh list
Id Name State
----------------------------------------------------
2 centos7_web01 running
#每启动一台主机,就启动对应的一个端口
[root@kvm01 /opt]# netstat -lntp | grep 59
tcp 0 0 0.0.0.0:5900 0.0.0.0:* LISTEN 11619/qemu-kvm
#根据内网IP地址进行ssh连接
[root@kvm01 /opt]# ssh root@192.168.122.91
显示全部主机
[root@kvm01 /opt]# virsh list --all
Id Name State
----------------------------------------------------
2 centos7_web01 running
关机
[root@kvm01 /opt]# virsh shutdown centos7_web01
Domain centos7_web01 is being shutdown
[root@kvm01 /opt]# virsh list --all
Id Name State
----------------------------------------------------
- centos7_web01 shut off
强制关机 === 拔掉电源
[root@kvm01 /opt]# virsh destroy centos7_web01
Domain centos7_web01 destroyed
显示主机的信息
[root@kvm01 /opt]# virsh dominfo centos7_web01
Id: 4
Name: centos7_web01
UUID: 158ca26b-eebd-41f3-8dc0-5752bd98d151
OS Type: hvm
State: running
CPU(s): 1
CPU time: 22.2s
Max memory: 1048576 KiB
Used memory: 1048576 KiB
Persistent: yes
Autostart: disable
Managed save: no
Security model: none
Security DOI: 0
查看主机对应的端口
#:0 === 5900
[root@kvm01 /opt]# virsh vncdisplay centos7_web01
:0
修改内存的大小
#只能调小
[root@kvm01 /opt]# virsh setmem centos7_web01 524288
[root@kvm01 /opt]# virsh dominfo centos7_web01
Id: 4
Name: centos7_web01
UUID: 158ca26b-eebd-41f3-8dc0-5752bd98d151
OS Type: hvm
State: running
CPU(s): 1
CPU time: 25.6s
Max memory: 1048576 KiB
Used memory: 524288 KiB
Persistent: yes
Autostart: disable
Managed save: no
Security model: none
Security DOI: 0
#调大内存
[root@kvm01 /opt]# virsh shutdown centos7_web01
Domain centos7_web01 is being shutdown
[root@kvm01 /opt]# virsh list --all
Id Name State
----------------------------------------------------
- centos7_web01 shut off
#修改主机的配置文件
[root@kvm01 /opt]# virsh edit centos7_web01
Domain centos7_web01 XML configuration edited.
<memory unit='KiB'>2097152</memory> #内存的总大小
<currentMemory unit='KiB'>1048576</currentMemory> #当前可以使用的内存的大小
<vcpu placement='static'>2</vcpu> #cpu的核心
[root@kvm01 /opt]# systemctl restart libvirtd.service
[root@kvm01 /opt]# virsh start centos7_web01
Domain centos7_web01 started
[root@kvm01 /opt]# virsh dominfo centos7_web01
Id: 5
Name: centos7_web01
UUID: 158ca26b-eebd-41f3-8dc0-5752bd98d151
OS Type: hvm
State: running
CPU(s): 2
CPU time: 28.9s
Max memory: 2097152 KiB
Used memory: 1048576 KiB
Persistent: yes
Autostart: disable
Managed save: no
Security model: none
Security DOI: 0
#命令行修改最大内存
[root@kvm01 /opt]# virsh shutdown centos7_web01
Domain centos7_web01 is being shutdown
[root@kvm01 /opt]# virsh setmaxmem centos7_web01 1048576
[root@kvm01 /opt]# virsh dominfo centos7_web01
Id: -
Name: centos7_web01
UUID: 158ca26b-eebd-41f3-8dc0-5752bd98d151
OS Type: hvm
State: shut off
CPU(s): 2
Max memory: 1048576 KiB
Used memory: 1048576 KiB
Persistent: yes
Autostart: disable
Managed save: no
Security model: none
Security DOI: 0
查看CPU的信息
[root@kvm01 /opt]# virsh vcpuinfo centos7_web01
VCPU: 0
CPU: 2
State: running
CPU time: 17.2s
CPU Affinity: yyyyyyyy
VCPU: 1
CPU: 2
State: running
CPU time: 8.4s
CPU Affinity: yyyyyyyy
编辑配置文件
#客户机的磁盘文件(内含镜像)
[root@kvm01 /opt]# ll -h
total 5.7G
-rw------- 1 qemu qemu 10G 2020-04-07 09:39 centos7_web01.raw
#客户机的主配置文件
[root@kvm01 /opt]# ll /etc/libvirt/qemu/
total 8
-rw------- 1 root root 4193 2020-04-03 16:37 centos7_web01.xml
#快速编辑配置文件(具备语法校验,方便操作)
[root@kvm01 /opt]# virsh edit centos7_web01
#开机状态下导出主机的配置信息
[root@kvm01 /opt]# virsh dumpxml centos7_web01 > centos7_web01_bak.xml
[root@kvm01 /opt]# ll
total 5876740
-rw-r--r-- 1 root root 5261 2020-04-07 10:07 centos7_web01_bak.xml
[root@kvm01 /opt]# virsh shutdown centos7_web01
[root@kvm01 /opt]# virsh list --all
Id Name State
----------------------------------------------------
- centos7_web01 shut off
#关机状态下导出的配置(关机状态导出更省资源)
[root@kvm01 /opt]# virsh dumpxml centos7_web01 > centos7_web01_bak_shutdown.xml
[root@kvm01 /opt]# ll
total 5876744
-rw-r--r-- 1 root root 3963 2020-04-07 10:09 centos7_web01_bak_shutdown.xml
-rw-r--r-- 1 root root 5261 2020-04-07 10:07 centos7_web01_bak.xml
#删除主机信息
[root@kvm01 /opt]# virsh undefine centos7_web01
#恢复
[root@kvm01 /opt]# virsh define centos7_web01_bak.xml
[root@kvm01 /opt]# virsh list --all
Id Name State
----------------------------------------------------
- centos7_web01 shut off
[root@kvm01 /opt]# virsh start centos7_web01
Domain centos7_web01 started
[root@kvm01 /opt]# virsh list --all
Id Name State
----------------------------------------------------
1 centos7_web01 running
[root@kvm01 /opt]# ll /etc/libvirt/qemu/
total 8
-rw------- 1 root root 4531 2020-04-07 10:15 centos7_web01.xml
drwx------ 3 root root 42 2020-04-03 14:45 networks
重命名主机
#必须在关机状态下执行
[root@kvm01 /opt]# virsh shutdown centos7_web01
Domain centos7_web01 is being shutdown
[root@kvm01 /opt]# virsh domrename centos7_web01 Centos7_db01
Domain successfully renamed
[root@kvm01 /opt]# virsh list --all
Id Name State
----------------------------------------------------
- Centos7_db01 shut off
[root@kvm01 /opt]# ll /etc/libvirt/qemu/
total 8
-rw------- 1 root root 4529 2020-04-07 10:26 Centos7_db01.xml
drwx------ 3 root root 42 2020-04-03 14:45 networks
#重命名磁盘
[root@kvm01 /opt]# ll
-rw------- 1 root root 10737418240 2020-04-07 10:26 centos7_web01.raw
[root@kvm01 /opt]# virsh edit Centos7_db01
<source file='/opt/Centos7_db01.raw'/>
[root@kvm01 /opt]# systemctl restart libvirtd.service
[root@kvm01 /opt]# virsh list --all
Id Name State
----------------------------------------------------
- Centos7_db01 shut off
[root@kvm01 /opt]# ll
total 5876744
-rw-r--r-- 1 root root 3963 2020-04-07 10:09 centos7_web01_bak_shutdown.xml
-rw-r--r-- 1 root root 5261 2020-04-07 10:07 centos7_web01_bak.xml
-rw------- 1 root root 10737418240 2020-04-07 10:26 centos7_web01.raw
-rw-r--r-- 1 qemu qemu 4588568576 2020-04-03 15:03 CentOS-7-x86_64-DVD-1810.iso
[root@kvm01 /opt]# mv centos7_web01.raw Centos7_db01.raw
[root@kvm01 /opt]# virsh start Centos7_db01
Domain Centos7_db01 started
[root@kvm01 /opt]# virsh list
Id Name State
----------------------------------------------------
1 Centos7_db01 running
[root@kvm01 /opt]# ll
total 5876744
-rw------- 1 qemu qemu 10737418240 2020-04-07 10:30 Centos7_db01.raw
-rw-r--r-- 1 root root 3963 2020-04-07 10:09 centos7_web01_bak_shutdown.xml
-rw-r--r-- 1 root root 5261 2020-04-07 10:07 centos7_web01_bak.xml
-rw-r--r-- 1 qemu qemu 4588568576 2020-04-03 15:03 CentOS-7-x86_64-DVD-1810.iso
挂起和恢复
[root@kvm01 /opt]# virsh suspend Centos7_db01
Domain Centos7_db01 suspended
[root@kvm01 /opt]# virsh resume Centos7_db01
Domain Centos7_db01 resumed
console登录虚拟机
#centos7系统进行console登录
[root@kvm01 /opt]# ssh root@192.168.122.91
##客户机里面进行执行
[root@web01 ~]# grubby --update-kernel=ALL --args="console=ttyS0,115200n8"
注1:115200n8:能显示虚拟机的启动过程。重启完成后,使用virsh console 连接虚拟机。
注2:查看终端
[root@centos7 ~]# who
root ttyS0 2020-04-07 11:53
注3:第二次连接后要敲一下回车,就可以直接进入
[root@web01 ~]# reboot
[root@kvm01 /opt]# virsh console Centos7_db01
Connected to domain Centos7_db01
Escape character is ^]
CentOS Linux 7 (Core)
Kernel 3.10.0-957.el7.x86_64 on an x86_64
web01 login: root
Password:
##按Ctrl键加] 退出
#centos6进行consle登录
##客户端添加ttyS0的许可,允许root登录
[root@centos6-web01 ~]# echo "ttyS0" >> /etc/securetty
##添加终端console=ttyS0
[root@centos6-web01 ~]# vi /boot/grub/grub.conf
kernel /vmlinuz-2.6.32-573.el6.x86_64 ro root=UUID=22f504a0-3488-48b0-931d-dde0cc7a17a1 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
##让其显示登录信息
[root@centos6-web01 ~]# echo 'S0:12345:respawn:/sbin/agetty ttyS0 115200' >>/etc/inittab
[root@centos6-web01 ~]# reboot
[root@kvm01 /opt]# virsh console centos6_web01
Connected to domain centos6_web01
Escape character is ^]
效果展示
#报错
[root@kvm01 ~]# virsh console centos_web01
Connected to domain centos_web01
Escape character is ^]
error: operation failed: Active console session exists for this domain
##原因:进程还在运行
##解决方法
ps aux | grep console
kill -9+进程号
虚拟机开机自启动
#前提:libvirtd服务是开机自启动的
[root@kvm01 ~]# systemctl enable libvirtd
[root@kvm01 ~]# virsh autostart Centos7_db01
Domain Centos7_db01 marked as autostarted
[root@kvm01 ~]# virsh dominfo Centos7_db01
Autostart: enable
#实质就是创建一个软链接
[root@kvm01 ~]# ll /etc/libvirt/qemu/autostart/
total 0
lrwxrwxrwx 1 root root 34 2020-04-07 14:35 Centos7_db01.xml -> /etc/libvirt/qemu/Centos7_db01.xml
#关闭开机自启动
[root@kvm01 ~]# virsh autostart --disable Centos7_db01
Domain Centos7_db01 unmarked as autostarted
[root@kvm01 ~]# ll /etc/libvirt/qemu/autostart/
total 0
Kvm磁盘管理
#1.虚拟机的磁盘格式转换
https://blog.csdn.net/zhengmx100/article/details/53887162
#创建一块qcow2的虚拟硬盘
[root@kvm01 ~]# qemu-img create -f qcow2 test.qcow2 2G
Formatting 'test.qcow2', fmt=qcow2 size=2147483648 encryption=off cluster_size=65536 lazy_refcounts=off
[root@kvm01 ~]# ll -h
-rw-r--r-- 1 root root 193K 2020-04-07 14:46 test.qcow2
#查看硬盘信息
[root@kvm01 ~]# qemu-img info test.qcow2
image: test.qcow2
file format: qcow2
virtual size: 2.0G (2147483648 bytes)
disk size: 196K
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: false
#将raw格式转换为qcow2格式
[root@kvm01 /opt]# qemu-img convert -f raw -O qcow2 Centos7_db01.raw Centos7_db01.qcow2
[root@kvm01 /opt]# ll -h
-rw-r--r-- 1 root root 1.4G 2020-04-07 14:53 Centos7_db01.qcow2
#修改配置文件
[root@kvm01 /opt]# virsh edit Centos7_db01
<driver name='qemu' type='qcow2'/>
<source file='/opt/Centos7_db01.qcow2'/>
[root@kvm01 /opt]# virsh shutdown Centos7_db01
Domain Centos7_db01 is being shutdown
#重新启动虚拟机,确认硬盘可用
[root@kvm01 /opt]# virsh start Centos7_db01
Domain Centos7_db01 started
[root@kvm01 /opt]# virsh list --all
Id Name State
----------------------------------------------------
2 Centos7_db01 running
- centos6_web01 shut off
[root@kvm01 /opt]# virsh console Centos7_db01
[root@web01 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda3 8.5G 1001M 7.6G 12% /
devtmpfs 485M 0 485M 0% /dev
tmpfs 496M 0 496M 0% /dev/shm
tmpfs 496M 6.7M 489M 2% /run
tmpfs 496M 0 496M 0% /sys/fs/cgroup
/dev/vda1 509M 120M 389M 24% /boot
tmpfs 100M 0 100M 0% /run/user/0
[root@web01 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 1024M 0 rom
vda 253:0 0 10G 0 disk
├─vda1 253:1 0 512M 0 part /boot
├─vda2 253:2 0 1G 0 part [SWAP]
└─vda3 253:3 0 8.5G 0 part /
Kvm快照管理
raw格式不支持快照
#创建快照
#开机状态下创建快照
[root@kvm01 /opt]# virsh snapshot-create Centos7_db01
#查看主机快照列表
[root@kvm01 /opt]# virsh snapshot-list Centos7_db01
Name Creation Time State
------------------------------------------------------------
1586243623 2020-04-07 15:13:43 +0800 running
#名称以秒级创建
[root@kvm01 /opt]# date +%s
1586243661
#查看快照信息
[root@kvm01 /opt]# virsh snapshot-info Centos7_db01 --snapshotname 1586243623
Name: 1586243623
Domain: Centos7_db01
Current: yes
State: running
Location: internal
Parent: -
Children: 0
Descendants: 0
Metadata: yes
#关机状态下创建快照(占用资源比开机更少)
[root@kvm01 /opt]# virsh shutdown Centos7_db01
Domain Centos7_db01 is being shutdown
[root@kvm01 /opt]# virsh snapshot-create Centos7_db01
Domain snapshot 1586243807 created
[root@kvm01 /opt]# virsh snapshot-list Centos7_db01
Name Creation Time State
------------------------------------------------------------
1586243623 2020-04-07 15:13:43 +0800 running
1586243807 2020-04-07 15:16:47 +0800 shutoff
[root@kvm01 /opt]# virsh snapshot-info Centos7_db01 --snapshotname 1586243807
Name: 1586243807
Domain: Centos7_db01
Current: yes
State: shutoff
Location: internal
Parent: 1586243623
Children: 0
Descendants: 0
Metadata: yes
#登录进行破坏 rm -rf
#恢复快照
[root@kvm01 /opt]# virsh snapshot-list Centos7_db01
Name Creation Time State
------------------------------------------------------------
1586243623 2020-04-07 15:13:43 +0800 running
1586243807 2020-04-07 15:16:47 +0800 shutoff
[root@kvm01 /opt]# virsh snapshot-revert Centos7_db01 1586243623
#快照的位置
[root@kvm01 /opt]# ll /var/lib/libvirt/qemu/snapshot/
total 0
drwxr-xr-x 2 root root 50 2020-04-07 15:20 Centos7_db01
[root@kvm01 /opt]# ll /var/lib/libvirt/qemu/snapshot/Centos7_db01/
total 16
-rw------- 1 root root 5063 2020-04-07 15:20 1586243623.xml
-rw------- 1 root root 5085 2020-04-07 15:20 1586243807.xml
#删除快照
[root@kvm01 /opt]# virsh snapshot-delete Centos7_db01 1586243623
Domain snapshot 1586243623 deleted
[root@kvm01 /opt]# virsh snapshot-delete Centos7_db01 1586243807
Domain snapshot 1586243807 deleted
[root@kvm01 /opt]# virsh snapshot-list Centos7_db01
Name Creation Time State
------------------------------------------------------------
1586244456 2020-04-07 15:27:36 +0800 running
1586244501 2020-04-07 15:28:21 +0800 shutoff
[root@kvm01 /opt]# ll /var/lib/libvirt/qemu/snapshot/Centos7_db01/
total 16
-rw------- 1 root root 5063 2020-04-07 15:29 1586244456.xml
-rw------- 1 root root 5085 2020-04-07 15:28 1586244501.xml
Kvm热添加硬盘
[root@kvm01 /opt]# qemu-img create -f qcow2 /opt/Centos7_db01_add01.qcow2 10G
Formatting '/opt/Centos7_db01_add01.qcow2', fmt=qcow2 size=10737418240 encryption=off cluster_size=65536 lazy_refcounts=off
[root@kvm01 /opt]# qemu-img info Centos7_db01_add01.qcow2
image: Centos7_db01_add01.qcow2
file format: qcow2
virtual size: 10G (10737418240 bytes)
disk size: 196K
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: false
#给centos7主机添加硬盘
[root@kvm01 /opt]# virsh attach-disk Centos7_db01 /opt/Centos7_db01_add01.qcow2 vdb --live --cache=none --subdriver=qcow2
Disk attached successfully
vdb #第二块虚拟磁盘
--live #在线热添加
--cache=none #开启宿主机对客户机的镜像的读取缓存 off 关闭
--subdriver #驱动类型
#客户机进行查看
[root@web01 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 1024M 0 rom
vda 253:0 0 10G 0 disk
├─vda1 253:1 0 512M 0 part /boot
├─vda2 253:2 0 1G 0 part [SWAP]
└─vda3 253:3 0 8.5G 0 part /
vdb 253:16 0 10G 0 disk
#移除硬盘
[root@kvm01 /opt]# virsh detach-disk Centos7_db01 vdb
Disk detached successfully
[root@web01 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 1024M 0 rom
vda 253:0 0 10G 0 disk
├─vda1 253:1 0 512M 0 part /boot
├─vda2 253:2 0 1G 0 part [SWAP]
└─vda3 253:3 0 8.5G 0 part /
[root@web01 ~]# fdisk /dev/vdb
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response p
Partition number (1-4, default 1): #回车
First sector (2048-20971519, default 2048): #回车
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): #回车
Using default value 20971519
Partition 1 of type Linux and of size 10 GiB is set
Command (m for help): w
[root@web01 ~]# ll /dev/vdb*
brw-rw---- 1 root disk 253, 16 Apr 7 16:05 /dev/vdb
brw-rw---- 1 root disk 253, 17 Apr 7 16:05 /dev/vdb1
[root@web01 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 1024M 0 rom
vda 253:0 0 10G 0 disk
├─vda1 253:1 0 512M 0 part /boot
├─vda2 253:2 0 1G 0 part [SWAP]
└─vda3 253:3 0 8.5G 0 part /
vdb 253:16 0 10G 0 disk
└─vdb1 253:17 0 10G 0 part
[root@web01 ~]# mkfs.xfs /dev/vdb1
[root@web01 ~]# mkdir /data
[root@web01 ~]# mount /dev/vdb1 /data
[root@web01 ~]# df -h
/dev/vdb1 10G 33M 10G 1% /data
#移除已经在使用的硬盘
[root@web01 ~]# rm -f /data/test.log
[root@web01 ~]# umount /dev/vdb1
[root@web01 ~]# fdisk /dev/vdb
Command (m for help): d
Command (m for help): p
Command (m for help): w
[root@web01 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 1024M 0 rom
vda 253:0 0 10G 0 disk
├─vda1 253:1 0 512M 0 part /boot
├─vda2 253:2 0 1G 0 part [SWAP]
└─vda3 253:3 0 8.5G 0 part /
vdb 253:16 0 10G 0 disk
[root@kvm01 /opt]# virsh detach-disk Centos7_db01 vdb
Disk detached successfully
[root@web01 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 1024M 0 rom
vda 253:0 0 10G 0 disk
├─vda1 253:1 0 512M 0 part /boot
├─vda2 253:2 0 1G 0 part [SWAP]
└─vda3 253:3 0 8.5G 0 part /
#根分区扩容
#无法为已经存在快照的硬盘进行扩容
[root@kvm01 /opt]# qemu-img resize /opt/Centos7_db01.qcow2 +10G
qemu-img: Can't resize an image which has snapshots
qemu-img: This image does not support resize
#扩容磁盘大小
[root@kvm01 /opt]# qemu-img resize /opt/Centos7_db01.qcow2 +10G
Image resized.
[root@kvm01 /opt]# qemu-img info Centos7_db01.qcow2
image: Centos7_db01.qcow2
file format: qcow2
virtual size: 20G (21474836480 bytes)
disk size: 1.5G
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: false
[root@kvm01 /opt]# virsh shutdown Centos7_db01
Domain Centos7_db01 is being shutdown
[root@kvm01 /opt]# virsh start Centos7_db01
Domain Centos7_db01 started
[root@kvm01 ~]# virsh console centos_web01
[root@web01 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 1024M 0 rom
vda 253:0 0 30G 0 disk
├─vda1 253:1 0 512M 0 part /boot
├─vda2 253:2 0 1G 0 part [SWAP]
└─vda3 253:3 0 8.5G 0 part /
[root@web01 ~]# fdisk /dev/vda
Command (m for help): p
Disk /dev/vda: 32.2 GB, 32212254720 bytes, 62914560 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000c8686
Device Boot Start End Blocks Id System
/dev/vda1 2048 1050623 524288 83 Linux
/dev/vda2 1050624 3147775 1048576 83 Linux
/dev/vda3 3147776 20971519 8911872 83 Linux
Command (m for help): d
Partition number (1-3, default 3): 3
Partition 3 is deleted
Command (m for help): n
Partition type:
p primary (2 primary, 0 extended, 2 free)
e extended
Select (default p): p
Partition number (3,4, default 3): 3
First sector (3147776-62914559, default 3147776): #回车
Using default value 3147776
Last sector, +sectors or +size{K,M,G} (3147776-62914559, default 62914559): #回车
Using default value 62914559
Partition 3 of type Linux and of size 28.5 GiB is set
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
[root@web01 ~]# reboot
[root@web01 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 1024M 0 rom
vda 253:0 0 30G 0 disk
├─vda1 253:1 0 512M 0 part /boot
├─vda2 253:2 0 1G 0 part [SWAP]
└─vda3 253:3 0 28.5G 0 part /
[root@web01 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda3 8.5G 1.3G 7.3G 15% /
[root@web01 ~]# xfs_growfs /dev/vda3 #重新格式化,不删除里面的数据
[root@web01 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda3 29G 1.3G 28G 5% /
Kvm的克隆
宿主机必须在关机状态下才能进行克隆
完整克隆
#方法一:使用virt-clone进行完整克隆
[root@kvm01 /opt]# virt-clone --auto-clone -o web01 -n web02
#参数解释
-o ORIGINAL_GUEST, --original ORIGINAL_GUEST
Name of the original guest; The status must be shut
off or paused.
#指定被克隆的客户机名称
--auto-clone Auto generate clone name and storage paths from the
original guest configuration.
#根据源客户机,自动生成克隆后的配置文件名称和存储路径
-n NEW_NAME, --name NEW_NAME
Name for the new guest
#给新的客户机取个名字
[root@kvm01 /opt]# ll web02.qcow2
-rw------- 1 root root 1568538624 2020-04-08 09:51 web02.qcow2
[root@kvm01 /opt]# ll /etc/libvirt/qemu/web02.xml
-rw------- 1 root root 4511 2020-04-08 09:51 /etc/libvirt/qemu/web02.xml
[root@kvm01 /opt]# virsh start web02
Domain web02 started
[root@kvm01 /opt]# virsh console web02
Connected to domain web02
Escape character is ^]
CentOS Linux 7 (Core)
Kernel 3.10.0-957.el7.x86_64 on an x86_64
web01 login: root
Password:
Last login: Wed Apr 8 08:44:35 on ttyS0
[root@web01 ~]#
#方法二:使用拷贝的一种方式进行完整克隆
#1. 拷贝磁盘镜像文件
[root@kvm01 /opt]# cp -a web01.qcow2 web03.qcow2
[root@kvm01 /opt]# ll -h web03.qcow2
-rw-r--r-- 1 root root 2.7G 2020-04-08 09:04 web03.qcow2
#2.导出源客户机的配置信息
[root@kvm01 /opt]# virsh dumpxml web01 > web03.xml
[root@kvm01 /opt]# ll web03.xml
-rw-r--r-- 1 root root 4289 2020-04-08 10:08 web03.xml
#3. 修改配置信息
[root@kvm01 /opt]# vim web03.xml
<name>web03</name>
删除UUID一行
<source file='/opt/web03.qcow2'/>
删除mac地址
#4.导入配置信息
[root@kvm01 /opt]# virsh define web03.xml
Domain web03 defined from web03.xml
[root@kvm01 /opt]# virsh list --all
Id Name State
----------------------------------------------------
8 web02 running
- web01 shut off
- web03 shut off
#5. 检查登录测试
[root@kvm01 /opt]# ll /etc/libvirt/qemu/web03.xml
-rw------- 1 root root 4511 2020-04-08 10:12 /etc/libvirt/qemu/web03.xml
[root@kvm01 /opt]# virsh start web03
Domain web03 started
[root@kvm01 /opt]# virsh console web03
[root@web01 ~]# ip a
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
inet 192.168.122.112/24 brd 192.168.122.255 scope global noprefixroute dynamic eth0
#方法三:自动化完整克隆
[root@kvm01 /opt]# cat complete_link.sh
#!/bin/bash
#定义变量
Old_name=1
New_name=2
#判断环境变量的个数
if [ # -ne 2 ];then
echo "Usage: sh0 Old_Name New_Name"
exit
fi
#关闭源客户机
virsh shutdown Old_name &>/dev/null && sleep 3
#判断源客户机是否关机
virsh list | grep "Old_name" &>/dev/null
if [ ? -eq 0 ];then
echo -e "\033[31m 客户机关闭失败,尝试强制关机 \033[0m"
virsh destroyOld_name
fi
#进行完整克隆
virt-clone --auto-clone -o Old_name -nNew_name
if [ ? -ne 0 ];then
echo -e "\033[31m 完整克隆失败!\033[0m" exit
fi
#启动测试
virsh startNew_name &>/dev/null
if [ ? -ne 0 ];then echo -e "\033[31m 启动{New_Name}失败 \033[0m"
exit
fi
#console登录测试
virsh console $New_name
链接克隆
#手动进行链接克隆
#1. 创建一个基于链接克隆的虚拟磁盘文件
[root@kvm01 /opt]# qemu-img create -f qcow2 -b web01.qcow2 db01.qcow2
[root@kvm01 /opt]# ll
-rw-r--r-- 1 root root 197120 2020-04-08 10:38 db01.qcow2
[root@kvm01 /opt]# ll -h db01.qcow2
-rw-r--r-- 1 root root 193K 2020-04-08 10:38 db01.qcow2
#2.导出源客户机的配置信息
[root@kvm01 /opt]# virsh dumpxml web01 > db01.xml
#3.修改配置信息
[root@kvm01 /opt]# vim db01.xml
<name>db01</name>
删除UUID一行
<source file='/opt/db01.qcow2'/>
删除mac地址
#4.导入配置
[root@kvm01 /opt]# virsh define db01.xml
Domain db01 defined from db01.xml
[root@kvm01 /opt]# virsh list --all
Id Name State
----------------------------------------------------
- db01 shut off
[root@kvm01 /opt]# ll /etc/libvirt/qemu/db01.xml
-rw------- 1 root root 4508 2020-04-08 10:40 /etc/libvirt/qemu/db01.xml
#5.登录测试
[root@kvm01 /opt]# virsh start db01
Domain db01 started
[root@kvm01 /opt]# virsh console db01
Connected to domain db01
Escape character is ^]
#自动化进行克隆
[root@kvm01 /opt]# cat link_clone.sh
#!/bin/bash
#定义变量
Old_name=1
New_name=2
#判断环境变量的个数
if [ # -ne 2 ];then
echo "Usage: sh0 Old_Name New_Name"
exit
fi
#关闭源客户机
virsh shutdown Old_name &>/dev/null && sleep 3
#判断源客户机是否关机
virsh list | grep "Old_name" &>/dev/null
if [ ? -eq 0 ];then
echo -e "\033[31m 客户机关闭失败,尝试强制关机 \033[0m"
virsh destroyOld_name
fi
#导出源客户机的配置信息
virsh dumpxml Old_name >/opt/{New_name}.xml
if [ ? -ne 0 ];then
echo -e "\033[31m 配置文件导出失败!\033[0m"
fi
#创建一个基于源客户机磁盘的磁盘文件
qemu-img create -f qcow2 -b /opt/{Old_name}.qcow2 /opt/{New_name}.qcow2 &>/dev/null
if [? -ne 0 ];then
echo -e "\033[31m 链接克隆失败!\033[0m"
exit
fi
#修改配置信息
sed -i "s#Old_name#New_name#g" /opt/{New_name}.xml
if [? -ne 0 ];then
echo -e "\033[31m 重命名失败! \033[0m"
exit
fi
sed -ri '/uuid|mac address/d' /opt/{New_name}.xml
if [? -ne 0 ];then
echo -e "\033[31m uuid及mac地址删除失败! \033[0m"
exit
fi
#导入配置信息
virsh define /opt/{New_name}.xml &>/dev/null
if [? -ne 0 ];then
echo -e "\033[31m 配置文件信息导入失败! \033[0m"
exit
fi
#启动测试
virsh start New_name &>/dev/null
if [? -ne 0 ];then
echo -e "\033[31m 启动{New_Name}失败 \033[0m" exit
fi
#console登录测试
virsh consoleNew_name
[root@kvm01 /opt]# sh link_clone.sh web01 lb01
Connected to domain lb01
Escape character is ^]
CentOS Linux 7 (Core)
Kernel 3.10.0-957.el7.x86_64 on an x86_64
web01 login: root
Password:
Last login: Wed Apr 8 08:44:35 on ttyS0
[root@web01 ~]# ip a s eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
inet 192.168.122.73/24 brd 192.168.122.255 scope global noprefixroute dynamic eth0
Kvm虚拟机的桥接网络
NAT 模式上网原理
NAT上网
[root@kvm01 /opt]# sysctl -a |grep net.ipv4.ip_forward
net.ipv4.ip_forward = 1
桥接模式
桥接上网
#创建一个桥接网络
[root@kvm01 /opt]# virsh iface-bridge eth0 br0
[root@kvm01 /opt]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BRIDGE="br0"
[root@kvm01 /opt]# cat /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE="br0"
ONBOOT="yes"
TYPE="Bridge"
BOOTPROTO="none"
IPADDR="10.0.0.11"
NETMASK="255.255.255.0"
GATEWAY="10.0.0.254"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
DHCPV6C="no"
STP="on"
DELAY="0"
#查看桥接网络信息
[root@kvm01 /opt]# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.000c29a68661 yes eth0
virbr0 8000.525400347f33 yes virbr0-nic
vnet1
#修改虚拟机的配置信息
[root@kvm01 /opt]# virsh list --all
Id Name State
----------------------------------------------------
- db01 shut off
- lb01 shut off
- web01 shut off
- web02 shut off
- web03 shut off
[root@kvm01 /opt]# virsh edit web03
<interface type='bridge'> #网络类型
<source bridge='br0'/> #类型和名称
#启动并连接客户机
[root@kvm01 /opt]# virsh start web03
Domain web03 started
[root@kvm01 /opt]# virsh console web03
#修改客户机网卡配置
[root@web01 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE="Ethernet"
BOOTPROTO="none"
NAME="eth0"
DEVICE="eth0"
ONBOOT="yes"
IPADDR="10.0.0.101"
PREFIX="24"
GATEWAY="10.0.0.254"
DNS1="223.5.5.5"
#重启网络
[root@web01 ~]# systemctl restart network
[root@web01 ~]# systemctl stop NetworkManager
[root@web01 ~]# systemctl disable NetworkManager
[root@web01 ~]# ip a
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
inet 10.0.0.101/24 brd 10.0.0.255 scope global noprefixroute eth0
[root@web01 ~]# ping baidu.com
PING baidu.com (39.156.69.79) 56(84) bytes of data.
64 bytes from 39.156.69.79 (39.156.69.79): icmp_seq=1 ttl=128 time=30.5 ms
64 bytes from 39.156.69.79 (39.156.69.79): icmp_seq=2 ttl=128 time=32.9 ms
#本地进行连接测试
[C:\~]$ ssh root@10.0.0.101
虚拟机冷迁移
#冷迁移的步骤
#准备另一台主机的环境
角色:kvm02 IP:10.0.0.12
[root@kvm02 ~]# yum install libvirt virt-install qemu-kvm -y
[root@kvm02 ~]# systemctl start libvirtd.service
[root@kvm02 ~]# systemctl enable libvirtd.service
[root@kvm02 ~]# virsh list --all
Id Name State
----------------------------------------------------
#关闭的客户机
[root@kvm01 /opt]# virsh shutdown web03
Domain web03 is being shutdown
[root@kvm01 /opt]# virsh list --all
Id Name State
----------------------------------------------------
- db01 shut off
- lb01 shut off
- web01 shut off
- web02 shut off
- web03 shut off
#导出配置信息
[root@kvm01 /opt]# virsh dumpxml web03 > web03.xml
[root@kvm01 /opt]# ll web03.xml
-rw-r--r-- 1 root root 4283 2020-04-09 09:19 web03.xml
#将磁盘格式转换为qcow2
qemu-img convert -f raw -O qcow2 old_disk new_disk
[root@kvm01 /opt]# ll web03.qcow2
-rw-r--r-- 1 root root 2816475648 2020-04-09 09:17 web03.qcow2
#将磁盘文件和配置信息传送到另一台主机
[root@kvm01 /opt]# scp -rp /opt/web03.* root@172.16.1.12:/opt
#修改配置信息
[root@kvm02 ~]# vim /opt/web03.xml
<driver name='qemu' type='qcow2'/>
#导入配置
[root@kvm02 ~]# virsh define /opt/web03.xml
Domain web03 defined from /opt/web03.xml
[root@kvm02 ~]# virsh list --all
Id Name State
----------------------------------------------------
- web03 shut off
[root@kvm02 ~]# systemctl restart libvirtd.service
[root@kvm02 ~]# virsh define /opt/web03.xml
Domain web03 defined from /opt/web03.xml
[root@kvm02 ~]# virsh list --all
Id Name State
----------------------------------------------------
- web03 shut off
#启动并连接测试
[root@kvm02 ~]# virsh start web03
Domain web03 started
[root@kvm02 ~]# virsh list --all
Id Name State
----------------------------------------------------
1 web03 running
[C:\~]$ ssh root@10.0.0.101
虚拟机的热迁移
磁盘文件:共享存储
热迁移的流程:
在运行的过程中,发送Kvm01主机的配置文件及运行在内存中的数据到Kvm02
#1.所有服务器安装nfs
[root@nfs ~]# yum install -y nfs-utils
#2.nfs服务端进行配置
[root@nfs ~]# vim /etc/exports
[root@nfs ~]# cat /etc/exports
/opt 10.0.0.0/24(rw,sync,no_root_squash,no_all_squash)
#3.启动nfs服务
[root@nfs ~]# systemctl restart rpcbind
[root@nfs ~]# systemctl restart nfs
#4.检查两台客户端是否可以进行挂载
[root@kvm01 /opt]# showmount -e 10.0.0.31
Export list for 10.0.0.31:
/opt 10.0.0.0/24
[root@kvm01 ~]# mkdir /kvm_disk
[root@kvm01 ~]# mount -t nfs 10.0.0.31:/opt /kvm_disk
[root@kvm01 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
10.0.0.31:/opt 48G 1.9G 46G 4% /kvm_disk
#创建主机
[root@kvm01 ~]# cd /kvm_disk/
[root@kvm01 /kvm_disk]# ll
total 0
[root@kvm01 /kvm_disk]# cp -a /opt/web03.qcow2 ./
[root@kvm01 /kvm_disk]# virsh shutdown web03
Domain web03 is being shutdown
[root@kvm01 /kvm_disk]# ll
total 2162696
-rw-r--r-- 1 qemu qemu 2816475648 2020-04-09 10:35 web03.qcow2
[root@kvm01 /kvm_disk]# mv web03.qcow2 web04.qcow2
[root@kvm01 /kvm_disk]# virsh dumpxml web03 > /opt/web04.xml
<name>web04</name>
<driver name='qemu' type='qcow2'/>
<source file='/kvm_disk/web04.qcow2'/>
<driver name='qemu' type='qcow2'/>
<interface type='bridge'>
<source bridge='br0'/>
删除uuid和mac行
[root@kvm01 /kvm_disk]# virsh define /opt/web04.xml
Domain web04 defined from /opt/web04.xml
[root@kvm01 /kvm_disk]# virsh list --all
Id Name State
----------------------------------------------------
- db01 shut off
- lb01 shut off
- web01 shut off
- web02 shut off
- web03 shut off
- web04 shut off
[root@kvm01 /kvm_disk]# virsh start web04
Domain web04 started
[root@kvm01 /kvm_disk]# virsh list --all
Id Name State
----------------------------------------------------
15 web04 running
#开始进行热迁移
[root@kvm01 /kvm_disk]# virsh migrate --live --verbose web04 qemu+ssh://10.0.0.12/system --unsafe
#出现报错
error: Unable to resolve address 'kvm02' service '49152': Name or service not known
#进行hosts文件解析
[root@kvm01 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.0.0.12 kvm02
[root@kvm01 /kvm_disk]# virsh migrate --live --verbose web04 qemu+ssh://10.0.0.12/system --unsafe
root@10.0.0.12's password:
Migration: [100 %]
#在热迁移的过程中,丢失了一个数据包(ping+ip)
#热迁移只是临时迁移进程,关机之后虚拟机就会消失
[root@kvm02 ~]# ll /run/libvirt/qemu/web04.xml
-rw------- 1 root root 9833 2020-04-09 10:47 /run/libvirt/qemu/web04.xml
#导出web04的配置
[root@kvm02 ~]# virsh dumpxml web04 > /etc/libvirt/qemu/web04.xml
[root@kvm02 ~]# virsh define /etc/libvirt/qemu/web04.xml
Domain web04 defined from /etc/libvirt/qemu/web04.xml
[root@kvm02 ~]# virsh start web04
Domain web04 started
[root@kvm02 ~]# virsh list --all
Id Name State
----------------------------------------------------
4 web04 running
virt-manager管理管理虚拟机
#1.安装图形界面
[root@kvm01 ~]# yum groupinstall -y "GNOME Desktop"
#2.安装vnc的服务端
[root@kvm01 ~]# yum install -y tigervnc-server
#3.给vnc设置个密码
[root@kvm01 ~]# vncpasswd
Password:
Verify:
Would you like to enter a view-only password (y/n)? n
A view-only password is not used
#4.开启vnc
[root@kvm01 ~]# vncserver :1
xauth: file /root/.Xauthority does not exist
New 'kvm01:1 (root)' desktop is kvm01:1
Creating default startup script /root/.vnc/xstartup
Creating default config /root/.vnc/config
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/kvm01:1.log
[root@kvm01 ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:5901 0.0.0.0:* LISTEN 16460/Xvnc
tcp 0 0 0.0.0.0:6001 0.0.0.0:* LISTEN 16460/Xvnc
tcp6 0 0 :::5901 :::* LISTEN 16460/Xvnc
tcp6 0 0 :::6001 :::* LISTEN 16460/Xvnc
#安装管理工具
[root@kvm01 ~]# yum install -y virt-manager
管理多台宿主机
宿主机的登录密码
报错原因:缺少openssh-askpass包
#安装ssh插件
[root@kvm01 ~]# yum install -y openssh-askpass