#安装kvm
yum -y install tightvnc-server #安装vnc服务端,用于vnc客户端远程连接
yum -y install libvirt virt-install qemu-kvm
libvirt--->kvm管理服务
virt-install--->kvm虚拟机安装服务
qemu-kvm--->kvm磁盘管理服务
#若安装在虚拟机上,需要在设置里面处理器勾选虚拟化Intel VT-x/EPT 或 AMD-V/RVI(V)选项
#安装时挂载/dev/cdrom可以加速安装过程
#注意上传系统文件时,不能用rz命令上传,超过其限制大小,可采用ftp方式
#启动kvm服务和查看状态
systemctl start libvirtd.service
systemctl status libvirtd.service
#安装虚拟机,根据实际情况特定的虚拟机特定设置
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 1024 --vcpus 1 --disk /root/centos2.raw,format=raw,size=10 --cdrom /root/CentOS-7-x86_64-DVD-1708.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
意思分别为:虚拟化类型,系统类型,系统版本,虚拟机名,内存大小,CPU核数,磁盘地址和名称.raw结尾,磁盘格式,大小,镜像文件位置,网络类型默认,图形界面采用vnc,监听地址,非自动控制台
#列出存在的虚拟机
virsh list --all
#关闭虚拟机
virsh shutdown centos7
#重启虚拟机
virsh reboot centos7
#开启虚拟机
virsh start centos7
#直接关闭电源式关闭
virsh destroy centos7
#移除虚拟机
virsh undefine centos7
#添加虚拟机
virsh define centos7.xml
#保存虚拟机配置文件,用于添加恢复
virsh dumpxml centos7 >centos7.xml
#kvm虚拟机配置文件存放位置
ls /etc/libvirt/qemu
#编辑kvm虚拟机配置文件
virsh edit centos7
#重命名虚拟机(虚拟机需要处于关闭状态)
virsh domrename centos7 wen
#设置虚拟机随宿主机自动启动
virsh autostart centos7
#设置自动启动虚拟机产生的文件软链接地址
ll /etc/libvirt/qemu/autostart/
#关闭虚拟机随宿主机自动启动
virsh autostart --disable centos7
#挂起虚拟机
virsh suspend centos7
#开启挂起的虚拟机
virsh resume centos7
#查看虚拟机端口
virsh vncdisplay centos7
#进入虚拟机控制台
ssh root@ip地址:端口
virsh console centos7
#进入虚拟机,设置虚拟机控制台,以显示虚拟机控制台界面,由于vnc有些地方不可用,所以设置控制台,可以直接在宿主机上登陆虚拟机
cp /etc/grub2.cfg /tmp
grubby --update-kernel=ALL --args="console=ttyS0,115200n8"
diff /tmp/grub2.cfg /etc/grub2.cfg #看出在内核上更改了参数
reboot
<+++++++++++++++++++++++++++++++++++++>
#kvm支持的磁盘格式
raw:裸格式,占用空间比较大,不支持快照功能,性能较好(顺序存储,性能高),不方便传输(占用大)
qcow2:cow(copy on write)占用空间小,支持快照,性能比raw差一点(依据于实际内容变化,动态增加,内容存储乱),方便传输(实际内容大小)
#创建qcow2格式
qemu-img create -f qcow2 centos2.qcow2 10G
#磁盘管理常用命令(qemu)
qemu-img info centos2.raw #查看磁盘信息
qemu-img create -f qcow2 centos2.qcow2 10G #创建虚拟磁盘,-f为指定格式类型,如果不指定格式默认为raw格式
qemu-img resize centos2.raw +5G #将原有磁盘加上5G
qemu-img resize centos2.qcow2 10G #将原有磁盘大小增加至10G
qemu-img resize centos2.raw -5G #原有磁盘缩容,qcow2不支持缩容。一般不缩容,缩容可能会导致数据丢失
qemu-img convert -f raw -O qcow2 centos2.raw centos2.raw.qcow2 #转换磁盘格式,-f指定原格式,-O输出的格式,后面为原文件,转换后文件
注:当更换磁盘格式时,通过更改虚拟机配置文件,更改磁盘路径和名称,注意上面的格式类型也需要更改,不然无法进入系统。
<+++++++++++++++++++++++++++++++++++++>
<+++++++++++++++++++++++++++++++++++++>
#给虚拟机快照
virsh snapshot-create centos7 #raw格式不支持快照
#查看快照
virsh snapshot-list centos7
#删除快照
virsh snapshot-delete centos7 --snapshotname 15462231543 #删除快照需要接上快照名,默认以时间戳命名
#恢复快照
virsh snapshot-revert centos7 --snapshotname 15462231543 #需要接上快照名
#注:虚拟机快照是写实复制,依据于实际大小,快照被删除不会回收大小,若再加快照,总大小不会变,若再加则会增加。
<++++++++++++++++++++++++++++++++++++>
#虚拟机克隆
<+++++++++++++++++++++++++++++>
##完整克隆
---------------------------------
#手动克隆
cp /opt/centos.qcow2 /opt/centos1.qcow2 #拷贝磁盘文件
virsh dumpxml centos7 >centos7.xml
编辑配置文件:更改名字--->删除UID--->修改磁盘文件--->删除mac地址
virsh define centos7.xml
virsh start centos7
注:虚拟机若存在快照,会出错
----------------------------------
#命令克隆
virt-clone -o centos7 -n centos7-1 --auto-clone #克隆虚拟机-o指定虚拟机,-n新虚拟机名,虚拟机不能为开启状态,开启需要挂起。
<+++++++++++++++++++++++++++++>
##链接克隆
#方式一:
qemu-img create -f qcow2 -b centos2.qcow2 centos3.qcow2 #创建一个链接磁盘,-b为centos2.qcow2文件创建链接文件为centos3.qcow2。
virsh dumpxml centos7 >centos7-1.xml #复制配置文件,更改配置文件,见上
virsh define centos7-1.xml
virsh start centos7-1
#方式二:
qemu-img create -f qcow2 -b centos2.qcow2 centos4.qcow2
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7-1 --memory 1024 --vcpus 1 --disk /opt/centos4.qcow2 --boot hd --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole #--boot为指定启动方式为硬盘启动
<++++++++++++++++++++++++++++++>
#kvm桥接
#创建桥接网卡
virsh iface-bridge eth0 br0
#新建桥接模式虚拟机
qemu-img create -f qcow2 -b centos2.qcow2 centos4.qcow2
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7-1 --memory 1024 --vcpus 1 --disk /opt/centos4.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole
#更改已存在虚拟机为桥接模式
更改配置文件:网络部分--->type类型改为bridge --->source源标签改为bridge='br0'--->重启(virsh destroy centos7-2,virsh start centos7-2)
#取消桥接网卡
virsh iface-unbridge br0
##虚拟机硬盘热备(附加硬盘)
#附加磁盘
attach-disk centos7 /opt/centos7-add.qcow2 vdb --subdriver qcow2 #临时附加磁盘,--subdriver为指定驱动格式
attach-disk centos7 /opt/centos7-add.qcow2 vdb --subdriver qcow2 --config #永久附加磁盘,写入了配置文件
#脱离磁盘
detach-disk centos7 vdb
#附加磁盘扩容
----------------------------------------
umount #卸载磁盘
detech-disk centos7 vdb #脱离磁盘
qemu-img
xfs_growfs /mnt #刷新磁盘数据信息,不然df还是现实原大小(分区表未改,可以刷新大小)
----------------------------------------
#原有根分区磁盘扩容
----------------------------------------
virsh destory centos7 #关闭虚拟机
qemu-img resize centos7.qcow2 20G #磁盘扩容
virsh start centos7 #开启虚拟机
virsh console centos7或者用vnc #进入虚拟机
fdisk /dev/vda #重新分区
reboot #重启虚拟机
xfs_growfs / #刷新磁盘挂载
-----------------------------------------
##虚拟机热添加网卡
attach-interface centos7 --type bridge --source br0 #临时附加网卡
domiflist centos7 #看网络接口mac地址
domblklist centos7 #看磁盘
detach-interface centos7 --type bridge --mac mac地址 #脱离网卡
attach-interface centos7 --type bridge --source br0 --model virtio --config #永久生效添加网卡,并制定网卡驱动模式virtio
##虚拟机热添加内存
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7-1 --memory 512,maxmemory=2048 --vcpus 1 --disk /opt/centos4.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole #安装虚拟机,内存为动态内存512M-2048M
setmem centos7 2048M --live #临时添加内存,--live在线添加
setmem centos7 2048M --config #永久添加内存,最大内存受到安装虚拟机时的内存限制
##虚拟机热添加CPU
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7-1 --memory 512,maxmemory=2048 --vcpus 1,maxvcpus=10 --disk /opt/centos4.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole #安装虚拟机,内存为动态内存512M-2048M,cpu为动态1-10
setvcpus centos7 2 --live #临时添加cpu
setvcpus centos7 2 --config #永久添加CPU
##已存在虚拟机添加内存CPU
编辑配置文件,更改内存和CPU模块,注意若CPU和内存没有被调到最大值,配置文件中存在当前内存CPU数,可以通过vimdiff命令对比差异位置,然后进行修改。
##kvm虚拟机热迁移
#命令迁移
(1)安装nfs用于共享磁盘文件,配置nfs
(2)拷贝磁盘文件到共享目录
(3)利用磁盘安装虚拟机:virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7-1 --memory 1024 --vcpus 1 --disk /opt/centos4.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole
(4)将虚拟机迁移到另一个宿主机:virsh migrate --live centos7 qemu+ssh://10.0.1.251/system --unsafe #--unsafe为强制可以在不安装环境中迁移,通过ssh协议迁移到10.0.1.251这台主机上。
#图形界面迁移
(1)yum -y groups install "GNOME Desktop" #安装图形化界面
(2)yum -y install tightvnc-server.x86_64 #安装vnc服务端用于远程连接
注:vncserver :10 #监听vnc端口5910,可以通过5910端口连接该虚拟机
(3)yum -y install virt-manager #安装kvm图形化管理工具
(4)yum -y install openssh-askpass #安装ssh用于迁移的ssh连接
(5)利用vnc连接虚拟机,找到kvm管理工具,进行图形化操作迁移
#将VMware格式或ESXI虚拟机转换为kvm虚拟机格式,实现虚拟机迁移
(1)导出虚拟机文件
(2)virt-v2v -i ova centos-dev-test01-v2v.ova -o local -os /opt/test -of qcow2 #-i指定文件格式,后面为文件名,-o输出文件到local本地,-os指定存放路径,-of指定转换后的格式
(3)导入磁盘文件通过virt-install,或者更改配置文件,导入重启
注:virt-v2v工具默认没有安装,需要安装才可以使用