kvm esxi

linux虚拟化软件

  1. qemu:硬件纯模拟全虚拟化软件,特别慢!兼容性好!
  2. xen:性能特别好,需要使用专门修改之后的内核,兼容性差,redhat 5.5之前使用xen时候使用kvm
  3. KVM:全虚拟机,它有硬件支持cpu,基于内核,而且不需要使用专门的内核,centos6使用kvm
    性能较好,兼容较好

安装kvm

yum install libvirt virt-install qemu-kvm -y

生成一台虚拟机

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 #可有可无
  • 云主机没有swap分区

拔电源关机

virsh destroy 实例名称/id

删除实例

undefine #先关机后删除,否则出现没有配置文件的实例,导致关机后消失

导入配置文件

define

重命名实例

domrename #低版本不支持

挂起与恢复

suspend #导致时间出错
resume

查询实例端口号

vncdisplay

实现console登录虚拟机
grubby --update-kernel=ALL --args=“console=ttyS0,115200n8”
reboot

查看磁盘信息

qemu-img info 磁盘文件名称

创建一块磁盘

qemu-img create -f qcow2 test.qcow2 2G #-f指定类型

调整磁盘磁盘容量

qemu-img   resize  test.qcow2 20G

转换磁盘类型

raw转qcow2:qemu-img convert -f raw -O qcow2 oldboy.raw oldboy.qcow2 #不会删除原磁盘

修改实例的配置

<disk type='file' device='disk'>
      <driver name='qemu' type='qcow2'/>
      <source file='/data/centos2.qcow2'/>
      <target dev='vda' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
</disk>

关机后启动生效

创建快照(raw不支持快照)

virsh snapshot-create-as centos7 --name install_ok #指定名字,不指定是随机字符

查看快照

virsh snapshot-list centos7

还原快照

virsh snapshot-revert centos7 --snapshotname 快照名称

删除快照

virsh snapshot-delete centos7 --snapshotname

完整克隆实例

自动挡

virt-clone --auto-clone -o web01 -n web02

手动挡

qemu-img convert -f qcow2 -O qcow2 -c web01.qcow2 web03.qcow2 #-c压缩
virsh dumpxml web01 >web02.xml
vim web02.xml
#修改虚拟机的名字
#删除虚拟机uuid
#删除mac地址
#修改磁盘路径
virsh define web02.xml 
virsh start web02

链接克隆

  • 生成磁盘文件
qemu-img  create  -f qcow2  -b  web03.qcow2   web04.qcow2 #-b生成引用盘
  • 生成配置文件
virsh dumpxml web01 >web03.xml
vim web03.xml
#修改虚拟机的名字
<name>web03</name>
#删除虚拟机uuid
<uuid>8e505e25-5175-46ab-a9f6-feaa096daaa4</uuid>
#删除mac地址
<mac address='52:54:00:4e:5b:89'/>
#修改磁盘路径
<source file='/opt/web03.qcow2'/>
  • 导入配置文件

全自动链接克隆脚本

[root@kvm01 scripts]# cat link_clone.sh 
#!/bin/bash
old_vm=$1
new_vm=$2
#a:生成虚拟机磁盘文件
old_disk=`virsh dumpxml $old_vm|grep "<source file"|awk -F"'" '{print $2}'`
disk_tmp=`dirname $old_disk`
qemu-img create -f qcow2 -b $old_disk  ${disk_tmp}/${new_vm}.qcow2
#b:生成虚拟机的配置文件
virsh dumpxml $old_vm >/tmp/${new_vm}.xml
#修改虚拟机的名字
sed -ri "s#(<name>)(.*)(</name>)#\1${new_vm}\3#g" /tmp/${new_vm}.xml
#删除虚拟机uuid
sed -i '/<uuid>/d' /tmp/${new_vm}.xml
#删除mac地址
sed -i '/<mac address/d' /tmp/${new_vm}.xml
#修改磁盘路径
sed -ri "s#(<source file=')(.*)('/>)#\1${disk_tmp}/${new_vm}.qcow2\3#g" /tmp/${new_vm}.xml
#c:导入虚拟机并进行启动测试
virsh define /tmp/${new_vm}.xml
virsh start ${new_vm}

创建桥接网络

virsh iface-bridge eth0 网卡名称

取消桥接网络

virsh iface-unbridge br0

生成桥接网络实例命令

--network bridge=br0

修改net模式为桥接模式

<interface type='bridge'>
  <source bridge='br0'/>

给虚拟机配置ip地址

TYPE=Ethernet
BOOTPROTO=none
NAME=eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=10.0.0.99
NETMASK=255.255.255.0
GATEWAY=10.0.0.254
DNS1=180.76.76.76
DNS2=223.5.5.5

热添加技术

热添加硬盘

virsh attach-disk web01 /data/web01-add.qcow2 vdb --subdriver qcow2 #绝对路径,立即生效
--config #修改配置文件,重启生效

剥离硬盘

virsh detach-disk web01 vdb

对硬盘进行扩容
卸载硬盘
剥离硬盘
调整硬盘大小
添加硬盘
挂在硬盘
更新超级块(inode和block)信息xfs_growfs

添加网卡

virsh attach-interface web04  --type bridge --source br0 --model virtio #--model参数规范网卡名称

剥离网卡

virsh detach-interface web04 --type bridge --mac 52:54:00:35:d3:71

生成实例时调整最大内存

--memory 512,maxmemory=2048

调整内存(开机时修改)

virsh  setmem web04 1024M 

调整最大内存(永久生效,关机时修改)

virsh setmaxmem web04 4G

生成实例时调整最大cpu数量

--vcpus 1,maxvcpus=10

调整cpu数量(不能减小,cpu时调整cpu参数)

virsh setvcpus web04 4 

调整cpu的最大值

<vcpu placement='static' current='1'>4</vcpu> #当前为1,最大为4

热迁移

yum  install rpcbind  -y
​vim /etc/exports
/data  10.0.0.0/24(rw,async,no_root_squash,no_all_squash)
#将两个宿主机的磁盘文件目录挂载到nfs中
virsh migrate 
--live #显示进度
--verbose web03 qemu+ssh://10.0.0.100/system #添加hosts解析
--unsafe #调过安全检查
--persistent #磁盘和配置文件都迁移
--undefinesource #删除原宿主机的实例

kvm虚拟机迁移esxi

转换类型

qemu-img convert -f qcow2 oldimage.qcow2 -O vmdk newimage.vmdk

通过df查看磁盘文件的存放位置

vmkfstools -i newimage.vmdk -d thin centos-t1.vmdk

esxi迁移kvm

导出ova文件

yum  install  virt-v2v  -y
virt-v2v -i ova centos-dev-test01-v2v.ova -o local -os /opt/test  -of qcow2 #-o本机

设置导入的实例监听在所有网卡

<graphics type='vnc' port='-1' autoport='yes' listen='0.0.0.0' >
      <listen type='address' address='0.0.0.0' />
    </graphics>
发布了48 篇原创文章 · 获赞 0 · 访问量 1844

猜你喜欢

转载自blog.csdn.net/weixin_45446068/article/details/104398637
KvM