kvm虚拟机使用说明

一:kvm虚拟化应用场景

场景1:只有一台服务器,但是要运行多个版本的软件,不同版本之间还相互冲突
场景2:机房的迁移,物理机在运输过程中容易损坏,导致数据丢失
场景3:openstack部署太难!步骤太繁琐,如何体验最新版的openstack
场景4:开发环境和测试环境经常损坏,运维重复装系统
场景5:业务的扩张,需要快速部署10个一模一样的集群

二:kvm虚拟机安装及使用

1:首先关闭selinux和防火墙
setenforce 0
systemctl stop firewalld.service或者 /etc/init.d/iptables stop
2:安装kvm
yum install libvirt virt-install qemu-kvm -y
libvirt:管理kvm的生命周期
virt-install:创建虚拟机的工具
qemu-kvm:使用qemu-img为虚拟机提供硬盘
3:启动kvm
systemctl start libvirtd.service
4:创建虚拟机
建议虚拟机内存不要低于1024M,否则安装系统特别慢!
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 1024 --vcpus 1 --disk /opt/centos2.raw,format=raw,size=10 --cdrom /opt/CentOS-7-x86_64-DVD-1708.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
参数介绍
--virt-type:指定虚拟机类型
--os-type:指定系统类型
--name:虚拟机名字
--memory:内存,这个参数在centos7安装的kvm里边使用
--ram: 内存,这个参数在centos6安装的kvm里边使用
--vcpus:指定cpu个数
--disk /opt/centos2.raw,format=raw,size=10:指定磁盘位置,类型,大小
--cdrom /opt/CentOS-7-x86_64-DVD-1708.iso:指定镜像文件所在位置
--boot hd:如果不安装系统就把上一条命令换成这个
--network network=default:网络类型
--network bridge=br0:桥接网络使用这个参数

三:虚拟机console登录

1:为什么要使用console连接?
1):常规情况下,安装完 KVM 之后,可能都会通过 VNC 连接到 KVM 虚拟机里面去修改 IP 等信息。但是一旦虚拟机比较多的话,打开过多的端口会造成安全问题
2):很多时候,我们是通过跳板机连接的宿主机,你的window和kvm宿主机没有直达的路由,这时候vnc都用不了,如何快速进入到 KVM 虚拟机里面去排查问题呢?
2:配置
在centos7的kvm虚拟机中执行:
grubby --update-kernel=ALL --args="console=ttyS0,115200n8"

reboot重启生效
3:登录
virsh console centos7

四:kvm虚拟机磁盘格式

1:kvm常见磁盘格式有两张
raw:裸格式,占用空间比较大,不适合远程传输,不支持快照功能,性能较好
qcow2:cow(copy on write)占用空间小,适合传输,支持快照,性能比raw差一点点
2:创建磁盘,查看,修改,格式转换
创建磁盘
qemu-img create -f qcow2 test.qcow2 10G
-f参数指定磁盘类型,默认是raw
查看磁盘信息
qemu-img info test.qcow2

修改磁盘大小
qemu-img resize test.qcow2 +5G
磁盘格式转换
qemu-img convert -f raw -O qcow2 test.raw test.qcow2

五:kvm虚拟机日常管理

1:列表,开机,关机,重启
列表
virsh list:显示处于运行状态的虚拟机
virsh list --all:显示所有的虚拟机
开机
virsh start centos7(虚拟机名称)
重启
virsh reboot centos7
关机(正常关机)
virsh shutdown centos7
关机(拔电源)
virsh destroy centos7
2:导出虚拟机配置,删除虚拟机,恢复虚拟机,修改虚拟机配置,重命名
导出虚拟机配置
virsh dumpxml centos7 >centos7.xml
(只要磁盘文件没有被破坏,就能恢复虚拟机)
删除虚拟机
virsh undefine centos7
恢复虚拟机
virsh define centos7.xml
修改虚拟机配置
1)直接修改配置文件/etc/libvirt/qemu/centos7.xml
2)使用virsh edit centos7,这种方法有报错提醒
重命名虚拟机
virsh domrename centos7 centos8,这个命令低版本不适用
3:挂起,恢复,开机启动,查看vnc端口号
挂起
virsh suspend centos7
恢复
virsh resume centos7
让虚拟机开机启动
首先必须得让libvirtd服务开机自启动
然后virsh sutostart centos7
查看vnc端口号
virsh vncdisplay centos7

六:虚拟机快照

只有qcow2的磁盘类型支持快照,raw不支持
创建快照
virsh snapshot-create centos7
查看快照
virsh snapshot-list centos7
还原快照
virsh snapshot-revert centos7 --snapshotname 1516574134
删除快照
virsh snapshot-devel centos7 --snapshotname 1516574134

七:kvm虚拟机克隆

1:完整克隆
1)方法一:virt-clone -o web01 --auto-clone
2)方法二
1:克隆虚拟磁盘文件
cp centos7.qcow2 web03.qcow2
2:修改虚拟机备份的配置文件
name修改
uuid删掉
disk路径/opt/web03.qcow2
mac地址删除
3:测试启动
virsh define web01.xml
2:链接克隆
1:
qemu-img create -f qcow2 -b cetnos7.qcow2 web04.qcow2
2:
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web02 --memory 1024 --vcpus 1 --disk /opt/web04.qcow2,format=qcow2,size=10 --boot hd --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

八:创建桥接网络

1:新创建虚拟机
1):创建桥接网络
virsh iface-bridge eth0 br0
2):基于桥接网络创建虚拟机
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 1024 --vcpus 1 --disk /opt/web04.qcow2,format=qcow2,size=10 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole
2:修改现有虚拟机
1):创建桥接网络
virsh iface-bridge eth0 br0
2):修改配置文件
virsh edit centos7
<interface type=‘bridge‘>
<mac address=‘52:54:00:55:aa:fa‘/>
<source bridge=‘br0’/>
3):修改虚拟机ip地址
/etc/sysconfig/network-scripts/ifcfg-eth0

九:kvm虚拟机热添加技术

热添加技术就是不停机的情况下,在线热添加硬盘,内存,cpu,网卡等设备,热添加技术一般都是在虚拟机资源不够了,又不能停机的情况下使用的,热添加技术是虚拟机相对于物理机的一个很大的优势,它让资源分配变得更灵活!

1.热添加硬盘
创建硬盘
qemu-img create -f qcow2 centos7-add01.qcow2 5G
热添加硬盘
virsh attach-disk web01 /opt/centos7-add01.qcow2 vdb --live --cache=none --subdriver=qcow2
如果添加的磁盘大小不够使用了怎么办
方法
1:先卸载硬盘
umount /data
2:在主机上卸掉这个硬盘
virsh detach-disk centos7.1 /tmp/test.qcow2
3:扩充容量
qemu-img resize /tmp/test.qcow2 +5G
4:重新添加硬盘
virsh attach-disk centos7.1 /tmp/test.qcow2 vdb --live --cache=none --subdriver=qcow2
5:在虚拟机上挂载之前的分区
mount /dev/vdb1 /data
6:重新分区
fdisk /dev/vdb
7:分区后保存,执行
partprobe /dev/vdb(如果执行报错,可以先卸载了,执行完再挂载)
xfs_growfs /data(如果不是xfs格式化的,使用ext4,则使用resize2fs /data)
成功扩容

2:热添加网卡
添加网卡
virsh attach-interface web04 --type bridge --model virtio --source br0
--model virtio 虚拟网卡驱动,如果不是virtio,网卡名则不是eth0,1,2,而且性能低
这个是临时生效,永久生效要修改配置文件,复制粘贴下边四行在配置文件里

<interface type=‘bridge‘>
<source bridge=‘br1‘/>
<model type=‘virtio‘/>
</interface>

3:热添加cpu
热添加cpu需要在安装虚拟机的时候加上这个参数 maxvcpus=4,最大cpu数量
安装参数:
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 1024 --vcpus 1,maxvcpus=4 --disk /opt/web04.qcow2,format=qcow2,size=10 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole
热添加cpu
virsh setvcpus web04 --count=2

4:热添加内存
热添加内存需要在安装虚拟机的时候加上这个参数maxmemory=2048,最大内存
安装参数
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 512,maxmemory=2048 --vcpus=1,maxvcpus=2 --disk /opt/web04.qcow2,format=qcow2,size=10 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole

热添加内存
virsh setmem web04 1G

十:kvm虚拟机热迁移

virsh migrate –live –verbose oldboy qemu+ssh://10.0.0.12/system –unsafe
#参数
virsh migrate –live      热迁移
verbose oldboy       热迁移的主机oldboy       
qemu+ssh://10.0.0.12/system  使用qemu加ssh协议,迁移到12的主机上,system固定格式
–unsafe           使用不安全规范

最后virsh list –all 查看迁移的主机是否运行,登陆VNC查看

原文地址:https://blog.51cto.com/3774912/2398479

时间: 2024-10-09 16:11:21

kvm虚拟机使用说明的相关文章

KVM虚拟化笔记(十四)------kvm虚拟机动态迁移

相比kvm虚拟机静态迁移中需要拷贝虚拟机虚拟磁盘文件,kvm虚拟机动态迁移无需拷贝虚拟磁盘文件,但是需要迁移到的虚拟主机之间需要有相同的目录结构虚拟机磁盘文件,本文这部分内容通过nfs来实现,当然也可以采用GFS2集群文件系统来实现,本文以共享存储进行动态迁移 KVM动态迁移目前有两种,一种是基于共享存储的动态迁移,一种是基于基于数据块的动态迁移,需要qemu-kvm-0.12.2以上版本支持,OEL6.3版本是qemu-kvm-0.12.1.2,其它发行版可能有支持 由于资源有限,现在还没有实

KVM虚拟化笔记(六)------kvm虚拟机的克隆

kvm虚拟机的克隆分为两种情况:kvm主机本机虚拟机直接克隆和通过复制配置文件与磁盘文件的虚拟机复制克隆.接下来我们一一进行测试: (一)kvm主机虚拟机的直接克隆 1,查看虚拟机的配置文件和磁盘文件: [[email protected] qemu]# cat /etc/libvirt/qemu/hadoop1.xml  <!-- WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE  OVERWRITT

KVM虚拟化笔记(七)------kvm虚拟机时间配置

由于在虚拟化环境中,虚拟机在长时间的运行过程中,时间会变慢,通常的做法是配置ntpdate定时与时间服务器进行时间同步的计划任务.Kvm虚拟机默认采用的是UTC时间,需要进行专门的修改,还有考虑时间同步的问题,具体步骤如下: 1,kvm虚拟机修改时间配置文件 kvm虚拟机采用utc时间,需要先修改配置文件使用kvm虚拟机的时间与虚拟主机同步. [[email protected] qemu]# virsh edit hadoop3 最后重启下虚拟机 2. 关于kvm虚拟机时间问题解决思路 (1)

KVM虚拟化笔记(四)------kvm虚拟机日常管理

一,查看KVM虚拟机配置文件及运行状态 1,KVM虚拟机默认的配置文件路径:/etc/libvirt/qemu/ 而autostart目录是配置kvm虚拟机开机自启动的目录. [[email protected] qemu]# cd /etc/libvirt/qemu [[email protected] qemu]# ll total 24 drwxr-xr-x 2 root root 4096 Feb  2 15:03 autostart      ###开机自启动目录   -rw-----

KVM 虚拟机基本管理及常用命令

KVM的基本管理 1.查看KVM虚拟机配置文件 #Kvm虚拟机默认配置文件位置 [[email protected] qemu]# pwd /etc/libvirt/qemu [[email protected] qemu]# ll total 12 -rw------- 1 root root 3863 Nov 6 17:26 CentOS6.5.xml -rw------- 1 root root 3771 Nov 7 00:57 CentOS6u7.xml -rw------- 1 roo

python的kvm虚拟机状态值监控

python获取kvm虚拟机状态值 测试代码,其中只包含了基本的信息,所有的信息都是通过libvirt的api来获取的. import libvirt import memcache import os import time from xml.etree import ElementTree as ET mc = memcache.Client(['192.168.0.112:11211']) while True: conn = libvirt.open('qemu:///system')

linux系统下kvm虚拟机的安装

一 KVM虚拟机简介 KVM是kernel-based Virtual Machine的简称,目前已成为学术界的主流VMM之一.KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术) 是基于硬件的完全虚拟化.KVM的安装和使用相对于XEN来说十分的简单和方便,并且功能强大,比较适用于高性能计算服务的云计算环境中作为IAAS层的虚拟化部署工作 不得不提的是甲骨文公司的VirtualBox也很强大,各方面与KVM可以相媲美,但是现在不开源比较昂贵一般的云计算平台很少使用.至于完全虚拟

烂泥:KVM虚拟机克隆

本文首发于烂泥行天下. 上一篇文章介绍了有关KVM虚拟机快照的创建与恢复,这篇文章我们来介绍有关KVM虚拟机克隆. KVM虚拟机的克隆,我们可以分以下几步: 1. 使用virt-clone命令进行克隆 2. 通过virsh edit命令修改克隆后虚拟机的VNC连接端口 3. 配置克隆后虚拟机的网卡 KVM虚拟机的克隆,我们可以使用virt-clone命令进行.有关virt-clone命令的使用,我们可以通过帮助文档进行查看,如下图: 强烈建议,在克隆虚拟机之前,原来的虚拟机一定要处于关机状态.

KVM虚拟机的安装和日常管理

公司为了节约成本,需要把一部分业务迁到虚拟化平台上,今天把虚拟机装了出来,记一下笔记 1.物理机的系统安装(硬盘为300G+300G): centos6.5 64位,不安装桌面环境,默认运行级别为3 分区: /boot 128M swap 8G / 20G /data1  第一块硬盘剩余空间 /data2  第二块硬盘全部空间 采用最小化安装+以下软件包: BaseSystem -- Base Development-- Development tools 要配置好dns 确定系统时间与北京时间