https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/virtualization_getting_started_guide/index
https://docs.openstack.org/image-guide/obtain-images.html
http://cloud.centos.org/
http://cloud-images.ubuntu.com/
什么是虚拟化?
虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率
虚拟化使用软件的方法重新定义划分IT资源,可以实现IT资源的动态分配、灵活调度、跨域共享,提高IT资源利用率,使IT资源能够真正成为社会基础设施,服务于各行各业中灵活多变的应用需求。
为什么要用虚拟化?
512G 内存,4路 8核16线程 cpu,12* PCI-E 1T的SSD;ntp服务,资源浪费,10 tomcat多实例,6个数据库,2个Hadoop
既不想资源浪费,服务的安全隔离性,虚拟化
场景1:同一台物理机运行多个php版本
场景2:机房的迁移,解决了硬件和系统的依赖
场景3:openstack环境,软件发布体检
场景4:开发环境和测试环境,使用虚拟化
场景5:业务的快速部署
虚拟化:提高了资源的利用率,服务的安全性隔离,解决了系统和硬件之间的依赖
虚拟化引擎
1、vmware esxi : x86
2、Hyper-v
3、xen
4、kvm
QEMU与KVM
QEMU是一个开源项目,实际就是一台硬件模拟器,可以模拟许多硬件,包括x86架构处理器、AMD64架构处理器等
QEMU的好处是因为是纯软件模拟,所以可以在支持的平台模拟支持的设备
QEMU的缺点是因为是纯软件模拟,所以非常慢
kvm只是一个内核模块,只提供CPU和内存,使用qemu模拟器模拟IO设备(磁盘、网卡)
KVM虚拟机=KVM内核模块+QEMU模拟器

Libvirt 与KVM
Libvirt是一套开源的虚拟化管理工具,主要由3部分组成
一套API的lib库,支持主流的编程语言,包括C、python、Ruby等
libvirtd服务
命令行工具virsh
libvirt可以实现对虚拟机的管理,比如虚拟机的创建、启动、关闭、暂停、恢复、迁移、销毁,以及虚拟机网卡、硬盘、CPU、内存等多种设备的热添加
kvm虚拟化软件的安装
Kernel-based Virtual Machine
查看硬件是否支持虚拟化
egrep 'vmx|svm' /proc/cpuinfo
讯享网
讯享网 yum install libvirt* virt-* qemu-kvm* -y
yum install qemu-kvm libvirt virt-install virt-manager bridge-utils
KVM:Kernel-based Virtual Machine
libvirt 作用:虚拟机的管理软件
virt virt-install virt-clone 作用:虚拟机的安装和克隆
qemu-kvm qemu-img 作用:复制管理虚拟机的磁盘
虚拟化软件:
qemu 软件纯模拟全虚拟化软件,特别慢!
xen(半) 性能特别好,需要使用专门修改之后的内核
KVM 全虚拟机,它有硬件支持cpu,基于内核,而且不需要使用专门的内核
安装一台kvm虚拟机
分发软件TightVNC或者VNC Viewer 4.exe
讯享网 systemctl start libvirtd.service systemctl status libvirtd.service
建议虚拟机内存不要低于1024M
nat模式(default)
virt-install --os-type=linux --os-variant rhel7 --name centos7 --memory 1024,maxmemory=2048 --vcpus 1,maxvcpus=8 --disk /opt/centos2.qcow2,format=qcow2,size=10 --cdrom /opt/CentOS-7-x86_64-Minimal-1804.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
讯享网--virt-type qemu
桥接
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 1024,maxmemory=2048 --vcpus 1,maxvcpus=8 --disk /opt/centos2.qcow2,format=qcow2,size=10 --cdrom /opt/CentOS-7-x86_64-DVD-1708.iso --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole
raw:10G 不支持做快照,性能好
qcow2: 支持快照

添加多块网卡
–network bridge=br0 --network bridge=br1
退出vnc全屏
ctrl + alt +shift +f
kvm虚拟机的virsh日常管理和配置
列表list
讯享网virsh list --all
开机start
virsh start centos7
关机shutdown
讯享网virsh shutdown centos7
拔电源关机destroy
virshdestroy centos7
导出配置dumpxml
/etc/libvirt/qemu/centos7.xml
讯享网virsh dumpxml centos7 >centos7-off.xml
删除虚拟机undefine
推荐:先destroy,在undefine
virsh undefine centos7
导入虚拟机define
讯享网virsh define centos7.xml
修改配置edit
virsh edit centos7
重命名domrename
讯享网关机执行virsh domrename centos7 web01
挂起suspend
suspend web01
恢复resume
讯享网resume web01
查询vnc端口号vncdisplay
virsh vncdisplay web01
kvm虚拟机随虚拟化软件自启动
讯享网virsh autostart web01
kvm虚拟机关闭自启动
virsh autostart --disable web01
console登录
讯享网kvm虚拟机中执行 grubby --update-kernel=ALL --args="console=ttyS0,n8" reboot
宿主机连接kvm虚拟机
virsh console web01
退出kvm虚拟机
ctrl+]
kvm虚拟机虚拟磁盘格式转换和快照管理
讯享网virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 1024 --vcpus 1 --disk /data/oldboy.qcow2,format=qcow2,size=10 --cdrom /data/CentOS-7.2-x86_64-DVD-1511.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
查看磁盘文件信息
qemu-img info test.qcow2
创建一块qcow2格式的虚拟硬盘
讯享网qemu-img create -f qcow2 test.qcow2 2G
磁盘扩容
qemu-img resize test.qcow2 8G
讯享网qemu-img resize test.qcow2 +1G
raw转qcow2
convert [-f fmt] [-O output_fmt] filename output_filename
qemu-img convert -f raw -O qcow2 oldboy.raw oldboy.qcow2
讯享网virsh edit centos7 <disk type='file' device='disk'> <driver name='qemu' type='qcow2'/> <source file='/data/oldboy.qcow2'/> <target dev='vda' bus='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function=' 0x0'/> </disk>
创建快照
virsh snapshot-create centos7
查看快照
讯享网virsh snapshot-list centos7
还原快照
virsh snapshot-revert centos7 --snapshotname
删除快照
讯享网virsh snapshot-delete centos7 --snapshotname
kvm虚拟机克隆
kvm虚拟机完整克隆
virt-clone --auto-clone -o centos7 -n web
a:拷贝虚拟机磁盘文件
b:生成虚拟机的配置文件
讯享网 <name>49-web03</name> <uuid>8e505e25-5175-46ab-a9f6-feaa096daaa4</uuid> <source file='/opt/49-web03.qcow2'/> <mac address='52:54:00:4e:5b:89'/>
c:导入虚拟机并进行启动测试
kvm链接克隆
1.基于源磁盘文件,创建链接磁盘文件
qemu-img create -f qcow2 -b 49-web03.qcow2 49-web04.qcow2
2.导入虚拟机并进行启动测试
讯享网virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name 49-web04 --memory 1024 --vcpus 1 --disk /opt/49-web04.qcow2 --boot hd --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
https://docs.openstack.org/image-guide/obtain-images.html
http://cloud.centos.org/
http://cloud-images.ubuntu.com/
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 1024 --vcpus 1 --disk /opt/CentOS-7-x86_64-GenericCloud-1811.qcow2 --boot hd --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
kvm虚拟机的桥接网络
讯享网1、virsh iface-bridge eth0 br0
2、
virsh edit centos7 <interface type='bridge'> <mac address='52:54:00:55:aa:fa'/> <source bridge='br0'/>
在宿主机上,重启虚拟机生效
讯享网TYPE=Ethernet BOOTPROTO=static NAME=eth0 DEVICE=eth0 ONBOOT=yes IPADDR=10.0.0.111 NETMASK=255.255.255.0 GATEWAY=10.0.0.254 DNS1=223.5.5.5
修改默认(default)网络
查看
virsh # net-list Name State Autostart Persistent ---------------------------------------------------------- default active yes yes
编辑
讯享网net-edit default
停止
net-destroy default
启动
讯享网net-start default
kvm虚拟机在线热添加硬盘
创建磁盘
qemu-img create -f qcow2 add01.qcow2 5G
添加磁盘
讯享网virsh attach-disk centos7 /data/centos7-add01.qcow2 vdb --live --cache=none --subdriver=qcow2
摘除磁盘
virsh detach-disk centos7 vdb
虚拟机磁盘扩容
1、在kvm虚拟机,umount
2、摘除磁盘
讯享网virsh detach-disk centos7 vdb
3、扩容
qemu-img resize /data/centos7-add01.qcow2 +5G
4、添加磁盘
讯享网virsh attach-disk centos7 /data/centos7-add01.qcow2 vdb --live --cache=none --subdriver=qcow2
5、在虚拟机中 xfs_growfs /dev/vdb
根分区扩容
讯享网1、在宿主机上关闭虚拟机并调整虚拟机磁盘大小 qemu-img resize oldboy.qcow2 +10G
2、虚拟机中fdisk重新分区(删除旧分区,新建分区) fdisk /dev/vda
讯享网3、重启之后,执行 xfs_growfs /dev/vda1#自动扩展XFS文件系统到最大的可用大小
如果虚拟机磁盘文件系统是ext4
resize2fs /dev/vda1
热操作网卡
永久添加
讯享网virsh attach-interface web01 --type bridge --source br0 --model virtio --config
临时添加
virsh attach-interface web01 --type bridge --source br0 --model virtio
删除网卡
讯享网detach-interface web01 --type bridge --mac 52:54:00:1e:79:47
热操作内存、CPU
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web02 --memory 512,maxmemory=2048 --vcpus 1,maxvcpus=10 --disk /opt/centos2.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole
讯享网virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web02 --memory 512,maxmemory=2048 --vcpus 1,maxvcpus=10 --disk /opt/centos2.qcow2 --boot hd --network bridge=br0 --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole
热调整内存
virsh setmem web02 1024M --live --config
热操作cpu(只能增加)
讯享网virsh setvcpus web02 6 --live --config
kvm虚拟机热迁移
1:两边的环境(桥接网卡)
2:实现共享存储(nfs)
3:虚拟机桥接网络
4:在线热迁移
本机 虚拟机 web03 迁移到 10.0.0.12
virsh migrate web03 qemu+ssh://10.0.0.12/system --live --unsafe
5:图形界面、vnc服务端、virt-manager
讯享网yum groups install "GNOME Desktop" yum install tigervnc-server.x86_64 virt-manager yum install openssh-askpass.x86_64
6:启动vnc和停止vnc
vncserver :0 vncserver -kill :0
exsi虚拟机迁移
ova文件转换为qcow2文件
讯享网yum install virt-v2v virt-v2v -i ova centos.ova -o local -os /data/test1 -of qcow2
p2v迁移(物理机到kvm虚拟机的迁移)
http://blog.csdn.net/tantexian/article/details/

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/15568.html