首页 > 其他 > 详细

KVM虚拟机使用

时间:2020-12-24 16:54:17      阅读:20      评论:0      收藏:0      [点我收藏+]

本手册着重以命令行管理方式介绍,有助于快速了解KVM.
虚拟机的管理

1、虚拟化服务
# systemctl list-unit-files | grep libvirtd.service
libvirtd.service enabled
2、虚拟机配置文件位置
/etc/libvirt/qemu 配置文件
/var/lib/libvirt/images 镜像
这里如果有需要将某个虚拟机拷贝,只需将FILE.img和FILE.xml两个文件拷贝就可以了
3、虚拟机管理命令
virsh 选项 虚拟机名称
undefine 删除虚拟机配置文件
define 恢复虚拟机的配置文件
list --all 列出所有虚拟机
destroy 立即强制关闭
start 正常开启
shutdown 正常关闭
create
命令行安装虚拟机:
#:virt-install --name test --ram 1024 --file /var/lib/libvirt/images/test.img --file-size 8 --vnclisten=0.0.0.0 --vncport=7000 --pxe


virt-manager 打开虚拟机管理器
virt-viewer 显示虚拟机
virsh start vmname 开启虚拟机
virsh destroy vmname 强制关机
virsh shutdown vmname 关机
virsh reboot vmname 重启
virsh list --all 显示物理机中所有的虚拟机

虚拟机配置文件/etc/libvirt/qemu/vmname.xml
虚拟机硬盘 /var/lib/libvirt/image/rhel7.1.qcow2
virsh undefine vmname 删除虚拟机
虚拟机的恢复
1、使用xml格式文件恢复
需要修改本文件中
这一行中的路经 <source file=‘/var/lib/libvirt/images/vm1‘/> 为当前文件所在绝对路径
然后执行 virsh define server1.xml 恢复虚拟机
virsh create server1.xml 临时恢复

2、使用快照恢复虚拟机

命令行下远程安装虚拟机
[root@foundation42 ~]# virt-install \
> --name test \
> --memory 2048 \
> --file /var/lib/libvirt/images/test.img \
> --file-size 8 \
> --location http://192.168.122.1/centos7 \
> --vnc \
> --vncport 7000 \
> --vnclisten 192.168.122.1/centos7 &


命令行下本地安装虚拟机
[root@foundation42 ~]# virt-install \
> --name test \
> --ram 2048 \
> --file /var/lib/libvirt/images/test.img \
> --file-size 8 \
> --location http://192.168.122.1/centos7 \
> --vnc \
> #--vncport 7000 \
> #--vnclisten 192.168.122.1/centos7 &

注意以上location地址需要自己建立相应的源

虚拟化控制台的管理
无论安装物理机系统或虚拟机系统是都要点选时区分区之类的问题
为了能够批量操作下面做以简单介绍
首先需要安装一个图形化的控制台
system-config-kickstart这个安装包(每个更新版本不同,这里以7为例)
命令行打开虚拟化图形管理平台命令 system-config-kickstart virt-manager
然后我们就可以手动点选操作了;最后生成一个二进制的文件将文件保存并发布到网络就OK了!
由于我们所使用的这个图形化管理工具自身有一点BUG 下面就需要我们手动做一点修改就可以了;如下
在最后一行添加如下内容
%packages
httpd 单独的安装包可以手动写上就好了
@base 如果是安装包组就需要加@
%end
主要就是因为图形控制台没有安装包的点选所以我们在这里添加上就可以了
virt-install --name test --ram 1024 --file /var/lib/libvirt/images/tese.img --file-size 8 --vnc --location http://192.168.122.1/centos7 --extra-args ks=http://192.168.122.1/ks.cfg


KVM虚拟化镜像制作:
查看磁盘格式
qemu-img info rhel7.0.qcow2
镜像制作
qemu-img create -f qcow2 -b rhel7.0.qcow2 serverX.qcow2
/var/lib/libvirt/images/rhel7.0.qcow2

生成配置文件
virsh dumpxml rhel7.0 > /var/lib/libvirt/images/rhel7.0.xml
对新配置文件的内容作以修改
<name>serverX</name>

<disk type=‘file‘ device=‘disk‘>
<driver name=‘qemu‘ type=‘qcow2‘/>
<source file=‘/var/lib/libvirt/images/serverX.qcow2‘/>
<target dev=‘vda‘ bus=‘virtio‘/>
<address type=‘pci‘ domain=‘0x0000‘ bus=‘0x00‘ slot=‘0x07‘ function=‘0x0‘/>
</disk>

到这里新制作的镜像和配置文件都准备好了


利用镜像重新生成虚拟机
virt-install --name serverX --virt-type kvm --ram 1024 --file /var/lib/libvirt/images/serverX.qcow2 --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole --os-type=linux --os-variant=rhel7 --extra-args "ip=192.168.122.11::192.168.122.1:255.255.255.0:serverX.example.com:eth0:none"

virt-install --name server1 --virt-type kvm --ram 1024 --file /var/lib/libvirt/images/server1.qcow2 --file-size 20 --network network=default --extra-args "ip=192.168.122.11::192.168.122.100:255.255.255.0:server1.example.com:eth0:none" --location http://192.168.122.1/CentOS7 --vnc

 

[root@foundation42 ~]# virt-install \
> --name serverx \
> --memory 1024 \
> --file /var/lib/libvirt/images/serverX.qcow2 \
> --file-size 10 \
> --network network=br0 \
> --extra-args "ip=192.168.122.11::192.168.122.100:255.255.255.0:serverX.example.com:eth0:none" \
> --location http://192.168.122.100/pub \
> --vnc \
> #--vncport 7000 \
> #--vnclisten 0.0.0.0 &


建议使用第二种输出格式.比较直观.不会遗漏

注意:新生成的虚拟机IP可能会和原虚拟机有冲突,记得改下就可以啦!!!!

命令行克隆
virt-clone --auto-clone -o server1 -n server2
接下来,是具体的一些内置构造.
##################################################################################################################################

KVM虚拟化快照制作:
查看磁盘格式
qemu-img info ***.qcow2
快照制作
qemu-img create -f qcow2 -b ***.qcow2 vm1
原虚拟机的工作快照,新生成的快照

为了实现快速安装在物理机做了一个实验
对克隆虚拟机和原虚拟机做一个比较
在克隆完成后,发现有新配置文件和磁盘镜像的生成
[root@Centos8 ~]# ls /var/lib/libvirt/images/
server1.qcow2 serverX.qcow2
[root@Centos8 ~]# ls /etc/libvirt/qemu/
networks server1.xml serverX.xml
对以上两个新旧文件作以比较会有新发现下面看
先看配置文件
[root@Centos8 ~]# vimdiff /etc/libvirt/qemu/serverX.xml /etc/libvirt/qemu/server1.xml
1 virsh edit serverX | virsh edit server
2 <name>serverX</name> | <name>server1</name>
3 <uuid>1dfe3000-415e-4026-a483-80dd81a1ad4e</uuid> | <uuid>68f4fd94-655c-4201-8bdb-397572a19253</uuid>
4<source file=‘/var/lib/libvirt/images/serverX.qcow2‘/> | <source file=‘/var/lib/libvirt/images/server1.qcow2‘/>
5<mac address=‘52:54:00:e3:54:51‘/> | <mac address=‘52:54:00:03:f7:af‘/>
比对发现会有6处不同

这里的配置文件可以用命令新生成,或者直接cp一份新的。
[root@Centos8 ~]# cp /etc/libvirt/qemu/serverX.xml /etc/libvirt/qemu/server1.xml

#virsh dumpxml centos7.0 > serverX.xml #命令行输出centos7.0虚拟主机配置文件为serverX.xml

为了保证不出错,使用了比对命令作修改
[root@Centos8 ~]# vimdiff /etc/libvirt/qemu/server1.xml /etc/libvirt/qemu/serverX.xml
第一处edit server2
第二处<name>server2</name>
第三处<uuid>b8c33460-4259-4f69-a9e4-0da80fd96439</uuid>
这里的uuid可以用uuidgen来生成
[root@Centos8 ~]# uuidgen
b8c33460-4259-4f69-a9e4-0da80fd96439
第四处磁盘镜像存储位置<source file=‘/var/lib/libvirt/images/server2.qcow2‘/>

第五处mac地址可以随便填只要不冲突就可以
<mac address=‘52:54:00:e3:54:50‘/>

 

配置文件生成成功,下一步制作块快照文件
KVM虚拟化快照制作:
查看磁盘格式
qemu-img info ***.qcow2
快照制作
qemu-img create -f qcow2 -b ***.qcow2 vm1
原虚拟机的工作快照,新生成的快照


[root@Centos8 images]# qemu-img create -f qcow2 -b serverX.qcow2 server2.qcow2
Formatting ‘server2.qcow2‘, fmt=qcow2 size=10737418240 backing_file=serverX.qcow2 cluster_size=65536 lazy_refcounts=off refcount_bits=16

配置文件和磁盘存储镜像准备好了;重新让KVM读取虚拟机就可以了
virsh define /etc/libvirt/qemu/testlvmos2.xml

[root@Centos8 qemu]# virsh define /etc/libvirt/qemu/server2.xml
Domain server2 defined from /etc/libvirt/qemu/server2.xml

虚拟机准备完成,开机看一下
开机要作的第一件事变更IP和hostname
这样一台完整的虚拟机就制作完成了
注意:此方法生成的虚拟机,在生成前要将原虚拟机关机.制作完成后原虚拟机就不能在使用了。并且不能删除镜像文件。
这种方法类似用LVM快照部署虚拟机,区别是使用的虚拟磁盘不同


####下面是一些简单的配置信息,了解后.有助于以后使用
一、虚拟机配置文件:/etc/libvirt/qemu/
      每个KVM虚拟主机都有自己的配置文件,都是以虚拟主机名命名;KVM虚拟机的配置文件在/etc/libvirt/qemu/下,以xml文件形式存在;

[root@node3 qemu]# virsh list --all #显示虚拟主机列表
Id Name State
----------------------------------------------------
3 centos7.0 running

[root@node3 qemu]# ls #查看KVM虚拟机配置文件信息
centos7.0.xml networks

[root@node3 qemu]# virsh dominfo centos7.0 #查看centos7.0信息
Id: 3
Name: centos7.0
UUID: 7e704227-6c82-4963-8b38-6c7065d0c722
OS Type: hvm
State: running
CPU(s): 1
CPU time: 260.9s
Max memory: 1048576 KiB
Used memory: 1048576 KiB
Persistent: yes
Autostart: enable
Managed save: no
Security model: none
Security DOI: 0


[root@node3 qemu]# virsh autostart centos7.0 #设置centos7.0开机自启
Domain centos7.0 marked as autostarted
[root@node3 qemu]# ls
autostart centos7.0.xml networks #autostart 开机自启目录
[root@node3 qemu]# virsh edit centos7.0 #编辑虚拟机centos7.0配置文件,调用vi
[root@node3 qemu]# export EDITOR=vim #设置virsh edit 高亮显示
[root@node3 qemu]virsh dumpxml centos7.0 > centos7.0.bak #备份centos7.0虚拟主机配置文件。

二、虚拟机网络配置文件:/etc/libvirt/qemu/networks

[root@node3 qemu]# virsh net-list --all #查看网络信息
Name State Autostart Persistent
----------------------------------------------------------
default active yes yes

[root@node3 qemu]# virsh --help |grep list #相关list列表
domblklist list all domain blocks
domiflist list all domain virtual interfaces
list list domains
iface-list list physical host interfaces
nwfilter-list list network filters
net-list list networks
nodedev-list enumerate devices on this host
secret-list list secrets
snapshot-list List snapshots for a domain
pool-list list pools
vol-list list vols

[root@node3 networks]# virsh net-edit default #编辑网络文件
<network>
<name>default</name>
<uuid>8e7a52c9-2051-4cad-bc50-93c13008ec0e</uuid>
<forward mode=‘nat‘/>
<bridge name=‘virbr0‘ stp=‘on‘ delay=‘0‘/>
<mac address=‘52:54:00:d2:7f:67‘/>
<ip address=‘192.168.122.1‘ netmask=‘255.255.255.0‘>
<dhcp>
<range start=‘192.168.122.2‘ end=‘192.168.122.254‘/>
</dhcp>
</ip>
</network>
~

三、虚拟机存储配置文件:/etc/libvirt/storage/

[root@node3 networks]# ll /etc/libvirt/storage/
total 12
drwxr-xr-x 2 root root 52 Aug 16 21:12 autostart
-rw------- 1 root root 531 Aug 16 21:11 dd.xml
-rw------- 1 root root 538 Aug 16 02:29 default.xml
-rw------- 1 root root 514 Aug 16 21:12 root.xml

[root@node3 networks]# virsh pool-list --all #显示存储列表
Name State Autostart
-------------------------------------------
dd active yes
default active yes
root active yes

[root@node3 networks]# virsh pool-edit default #编辑存储配置文件

四、 镜像文件[磁盘文件]:/var/lib/libvirt/images/


#######################################################################################################################
以上是命令行的操作方法,下面介绍一下图形化管理器的使用方法

虚拟机安装就不详细描述了;主要记录一些细节注意事项。
一般在首次真机系统安装时,建议最好把虚拟机装上。如果装此服务;
使用KVM是需要单独从镜像源安装相关安装包的
qemu-kvm #KVM模块
qemu-img
virt-manager #图形化管理工具
libvirt #虚拟机管理模块
libvirt-python
libvirt-client
virt-install #虚拟机命令行安装工具
virt-viewer

以上的安装包安装完成后
将libvirt服务启动并设置开机自启
首次使用KVM建议还是使用图形界面,操作比较简单
使用以下命令进入图形化界面
[root@Centos8 ~]# virt-manager #打开图形化虚拟机管理器
1、点击第一个小电视图标Create a new virtual machine
2、进来后直接点击Forward下一步,默认使用本地镜像镜像安装
3、点击Browse找到本地镜像;这里还可以创建本地存储池,不创建会安装到默认的位置
可以根据需要来设置,找到iso镜像文件就可以点击Choose Volume下一步
4、继续Forward
5、选择内存Memory和cpus个数;Forward
6、接着选择存储,这里就可以用到第三步创建的存储池了。没有存储池的话,这里就需要单独创建了。Create a disk image for virtual machine 选择自己需要的大小
7、这里就为最后的安装开始作准备了
虚拟机名称 自定义
存储Storage;这里建议选择安装前自定义存储Customize configuration before install.这样可以检查自己的配置信息,如:Overview概况;OS information系统信息;CPUs;Memory内存....等等一系列详细信息
网络选择(Network selection) 个人喜欢使用桥接管理方便(桥接模式需要在物理机上单独配置)

8、确认无误后就可以开始安装了
Begin installation

开始后和正常物理机器安装操作系统没有区别了。

虚拟机需要安装的工具包:
vim
bash-completion
net-tools
需要配置的基本信息
IP
本地网络yum源

 

KVM虚拟机使用

原文:https://www.cnblogs.com/Eleanor-H/p/14183597.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!