虚拟化,经过模拟计算机的硬件,来实如今同一台计算机上同时运行多个不一样的操做系统的技术。php
阿里云 kvm开源 azure vmware ESXI商业软件 没有虚拟化以前: 计算机的硬件配置愈来愈高 512G 内存,4路 8核16线程 ,12* PCI-E 1T的SSD; ntp服务,安装多个mysql,安装多个tomcat,安装.... linux开源的,不少软件都有依赖包openssl nginx 充分利用资源,软件运行环境的隔离,只有虚拟化才行实现。
场景1:同一台物理机运行多个php版本 php5.3(openssl,gd) php5.5 php7.2 场景2:机房的迁移,解决了硬件和系统的依赖 场景3:openstack环境,软件发布方式 场景4:开发环境和测试环境,使用虚拟化 只靠一台物理服务器,30台虚拟机 产品 -- 开发 -- 运维 -- 测试 so结尾,linux 库文件 场景5:业务的快速部署 从头安装系统,安装服务,配置 克隆虚拟机,改ip, 虚拟化:提升了资源的利用率,各个服务的安全性隔离,解决了系统和硬件之间的依赖
yum install libvirt virt-install qemu-kvm -y KVM:Kernel-based Virtual Machine libvirt 做用:虚拟机的管理软件 libvirt: kvm,xen,qemu,lxc.... virt virt-install virt-clone 做用:虚拟机的安装工具和克隆工具 qemu-kvm qemu-img (qcow2,raw)做用:管理虚拟机的虚拟磁盘 虚拟化软件: qemu 软件纯模拟全虚拟化软件,特别慢!AIX,兼容性好! xen(半) 性能特别好,须要使用专门修改以后的内核,兼容性差! redhat 5.5 xen KVM(linux) 全虚拟机,它有硬件支持cpu,基于内核,并且不须要使用专门的内核 centos6 kvm 性能较好,兼容较好
分发软件TightVNC或者VNC Viewer 4.exe
宿主机node
vnc:远程的桌面管理工具
向日葵mysql
systemctl start libvirtd.service systemctl status libvirtd.service
10.0.0.11 宿主机linux
建议虚拟机内存不要低于1024M,不然安装系统特别慢!nginx
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-1804.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
VNC出现链接失败执行下面:web
virsh list --all virsh destroy centos7 virsh undefine centos7 rm -fr /opt/centos2.raw 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-1804.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole vnc-service:5900 vnc:10.0.0.11:5900 --virt-type kvm 虚拟化的类型(qemu) --os-type=linux 系统类型 --os-variant rhel7 系统版本 --name centos7 虚拟机的名字 --memory 1024 虚拟机的内存 --vcpus 1 虚拟cpu的核数 --disk /opt/centos2.raw,format=raw,size=10 --cdrom /opt/CentOS-7-x86_64-DVD-1708.iso --network network=default 使用默认NAT的网络 --graphics vnc,listen=0.0.0.0 --noautoconsole
磁盘格式:
raw:10G 不支持作快照,性能好
qcow2: 支持快照sql
列表 list(--all) 开机 start 关机 shutdown 拔电源关机 destroy 导出配置dumpxml 例子:virsh dumpxml centos7 >centos7-off.xml 删除undefine 推荐:先destroy,在undefine 导入配置 define 修改配置 edit(自带语法检查) 重命名 domrename (低版本不支持) 挂起 suspend 恢复 resume 查询vnc端口号 vncdisplay /usr/libexec/qemu-kvm
kvm运行业务程序数据库
开机启动autostart,前提:systemctl enable libvirtd;
取消开机启动autostart --disablewindows
centos7的kvm虚拟机:
grubby --update-kernel=ALL --args="console=ttyS0,115200n8"centos
reboot
做业1:实现centos6的kvm虚拟机,console命令行登陆?
安装一台centos6的kvm虚拟机
console命令行登陆
做业2:centos6实现没有swap分区,启动进系统
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-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 raw: 裸格式,占用空间比较大,不支持快照功能,性能较好,不方便传输 总50G 占用2G qcow2:cow (copy on write)占用空间小,支持快照,性能比raw差一点,方便传输 总50G 占用2G qcow qemu-img info test.qcow2 建立一块qcow2格式的虚拟硬盘:qemu-img create -f qcow2 test.qcow2 2G raw转qcow2:qemu-img convert -f raw -O qcow2 oldboy.raw oldboy.qcow2 convert [-f fmt] [-O output_fmt] filename output_filename virsh edit web01: <disk type='file' device='disk'> <driver name='qemu' type='qcow2'/> <source file='/opt/centos.qcow2'/> <target dev='vda' bus='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/> </disk> virsh destroy web01 virsh start web01 建立快照virsh snapshot-create centos7 查看快照virsh snapshot-list centos7 还原快照virsh snapshot-revert centos7 --snapshotname 1516574134 删除快照virsh snapshot-delete centos7 --snapshotname 1516636570 raw不支持作快照,qcow2支持快照,而且快照就保存在qcow2的磁盘文件中
virt-clone --auto-clone -o web01 -n web02 (完整克隆) a:生成虚拟机磁盘文件 qemu-img create -f qcow2 -b 49-web03.qcow2 49-web04.qcow2 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连接克隆 a.基于源磁盘文件,建立连接磁盘文件 qemu-img create -f qcow2 -b 49-web03.qcow2 49-web04.qcow2 后置备 b:生成虚拟机的配置文件 c:导入虚拟机并进行启动测试 virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 1024 --vcpus 1 --disk /opt/web04.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole
默认的虚拟机网络是NAT模式,网段192.168.122.0/24 默认NAT模式 virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 1024 --vcpus 1 --disk /opt/web04.qcow2 --boot hd --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole 桥接模式 virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 1024 --vcpus 1 --disk /data/web04.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole 1:建立桥接网卡 virsh iface-bridge eth0 br0 取消桥接网卡 virsh iface-unbridge br0 2:virsh edit centos7 <interface type='bridge'> <mac address='52:54:00:55:aa:fa'/> <source bridge='br0'/> 在宿主机上,重启虚拟机生效 3:测试虚拟机网络
kvm虚拟机在线热添加硬盘 临时生效 virsh attach-disk web04 /opt/oldboy.qcow2 vdb --subdriver qcow2 永久生效 virsh attach-disk web04 /opt/oldboy.qcow2 vdb --subdriver qcow2 --config kvm虚拟机在线热添加网卡 kvm虚拟机在线热添加内存 kvm虚拟机在线热添加cpu qemu-img create -f qcow2 add01.qcow2 5G virsh attach-disk centos7 /data/centos7-add01.qcow2 vdb --subdriver=qcow2 virsh detach-disk centos7 vdb 虚拟机磁盘扩容: 在kvm虚拟机,卸载 virsh detach-disk centos7 vdb qemu-img resize /data/centos7-add01.qcow2 +5G virsh attach-disk centos7 /data/centos7-add01.qcow2 vdb --live --cache=none --subdriver=qcow2 在xfs文件系统虚拟机中:xfs_growfs /dev/vdb 在ext2-4文件系统虚拟机中:resize2fs /dev/vdb
做业3:扩容kvm虚拟机的根分区
根分区扩容: 1)在宿主机上关闭虚拟机并调整虚拟机磁盘大小 qemu-img resize oldboy.qcow2 +10G 2)虚拟机中fdisk从新分区 fdisk /dev/vda 删除原来的/dev/vda1 从新将全部空间给/dev/vda1 reboot重启 3)重启以后,执行xfs_growfs /dev/vda1, 若是虚拟机磁盘文件系统是ext4:resize2fs /dev/vda1
kvm虚拟机在线热添加网卡
virsh attach-interface web04 --type bridge --source br0 --model virtio detach-interface web04 --type bridge --mac 52:54:00:35:d3:71
kvm虚拟机在线热添加内存
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 512,maxmemory=2048 --vcpus 1 --disk /data/web04.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole 临时热添加内存 setmem web04 1024M --live 永久增大内存 setmem web04 1024M --config
kvm虚拟机在线热添加cpu
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 512,maxmemory=2048 --vcpus 1,maxvcpus=10 --disk /data/web04.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole 热添加cpu核数 setvcpus web04 4 --live 永久添加cpu核数 setvcpus web04 4 --config
冷迁移kvm虚拟机:配置文件,磁盘文件 热迁移kvm虚拟机:配置文件,nfs共享 1): yum groupinstall "GNOME Desktop" -y yum install openssh-askpass -y yum install tigervnc-server -y vncpasswd vncserver :1 vncserver -kill :1 2):kvm虚拟机热迁移 1:两边的环境(桥接网卡) 2:实现共享存储(nfs) 3:虚拟机桥接网络 4:在线热迁移
做业3:扩容kvm虚拟机的根分区
做业4:扩展研究EXSI虚拟化和EXSI iso到kvm的虚拟机迁移
http://blog.51cto.com/liqingbiao/1742724 virt-v2v -i ova centos-dev-test01-v2v.ova -o local -os /opt/test -of qcow2
做业5:p2v迁移(物理机到kvm虚拟机的迁移
http://blog.csdn.net/tantexian/article/details/42869179
老古董:发热量大,配置低 2G ddr 400MHZ 750w
老古董:发热量大,配置低 2G ddr 400MHZ 750w
一台新集群 64G ddr4 2400MHZ 550w
iso镜像,U盘 启动盘 win PE
打包全部根目录的文件,上传到kvm服务器,输出一个qcow2格式,替换驱动,
kvm宿主机 2000台
查看每个宿主机有多少台虚拟机?
查看每个宿主机还剩多少资源?
查看每一台宿主机,每个虚拟机的ip地址?
kvm管理平台,数据库工具
信息:宿主机,总配置,剩余的总配置
虚拟机的信息,配置信息,ip地址,操做系统
带计费功能的kvm管理平台,openstack ceilometer计费
自动化管理kvm宿主机,云主机定制化操做
克隆一台openstack模板机:4G内存,开启虚拟化,挂载centos7.4的光盘
上传脚本openstack-mitaka-autoinstall.sh到/root目录
上传镜像:cirros-0.3.4-x86_64-disk.img到/root目录
上传配置文件:local_settings到/root目录
上传openstack_rpm.tar.gz到/opt下,并解压
sh /root/openstack-mitaka-autoinstall.sh
大概10-30分钟左右
访问http://10.0.0.11/dashboard
域:default
用户名:admin
密码:ADMIN_PASS
注意: 在windows系统上修改host解析(10.0.0.11 controller)
添加node节点:
修改ip地址
hostnamectl set-hostname compute1
从新登陆让新主机名生效
cd /opt/
rsync -avz 10.0.0.11:/opt/repo .
上传脚本 openstack_node_autoinstall.sh
sh openstack_node_autoinstall.sh
openstack controller主控制节点,node节点, kvm宿主机 node节点, kvm宿主机 node节点, kvm宿主机 node节点, kvm宿主机 node节点, kvm宿主机