云计算day02-KVM

云计算day02-KVM
文章图片
云计算的虚拟机不要挂起,不然上不了网

云计算day02-KVM
文章图片
image
1. kvm虚拟机的桥接网络
默认的虚拟机网络是NAT模式,网段192.168.122.0/24
1.1 创建桥接网卡
创建桥接网卡命令
virsh iface-bridge eth0 br0

取消桥接网卡命令
virsh iface-unbridge br0

1.2 新虚拟机使用桥接模式
默认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

创建链接克隆生成虚拟机磁盘文件 qemu-imgcreate-f qcow2-b 49-web01.qcow2 49-web04.qcow2创建桥接网卡命令 virsh iface-bridge eth0 br0新虚拟机使用桥接模式 virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web05 --memory 1024 --vcpus 1 --disk /data/web04.qcow2 --boot hd --networkbridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole

云计算day02-KVM
文章图片
image 云计算day02-KVM
文章图片
image
1.3 桥接和NAT原理图
云计算day02-KVM
文章图片
image 1.4 将已有虚拟机网络修改为桥接模式
a:关机状态下修改虚拟机配置文件: 例如:virsh edit centos7 b:启动虚拟机,测试虚拟机网络


2. 热添加技术
热添加硬盘、网卡、内存、cpu
2.1 kvm热添加硬盘
临时生效
virsh attach-disk web01 /data/web01-add.qcow2 vdb --subdriver qcow2

永久生效 --config
virsh attach-disk web01 /data/web01-add.qcow2 vdb --subdriver qcow2 --config

临时剥离硬盘
virsh detach-disk web01 vdb

永久剥离硬盘
virsh detach-disk web01 vdb --config

2.2 扩容:
virsh shutdown web05 qemu-img resize web05.qcow2 100G qemu-img info web05.qcow2 virsh console web05进入到kvm虚拟机 [root@localhost ~]# fdisk -l [root@localhost ~]# mkfs.xfs/dev/vdb [root@localhost ~]# mount /dev/vdb /mnt/ /dev/vdb100G33M100G1% /mnt

kvm虚拟机硬盘扩容规范
1.在kvm虚拟机里把扩容盘的挂载目录,卸载掉 [root@localhost ~]# umount /mnt2.在宿主机上剥离硬盘 [root@kvm01 /data]# virsh detach-disk web05 vdb Disk detached successfully3.在宿主机上调整容量 [root@kvm01 /data]# qemu-img resize web05.qcow2 200G Image resized.4.在宿主机上再次附加硬盘 [root@kvm01 /data]# virsh attach-disk web05 /data/web05.qcow2 vdb --subdriver qcow2 Disk attached successfully5.在虚拟机里再次挂载扩容盘 [root@localhost ~]# mount /dev/vdb /mnt [root@localhost ~]# df -h /dev/vdb100G33M100G1% /mnt6.在虚拟机里用xfs_growfs更新扩容盘超级块信息 [root@localhost ~]# xfs_growfs /dev/vdb data blocks changed from 26214400 to 52428800 [root@localhost ~]# df -h /dev/vdb200G33M200G1% /m扩容为200G

练习1:扩容kvm虚拟机的根分区
链接
关闭虚拟机 shutdown -h now在宿主机上执行操作 [root@kvm01 /data]# qemu-img resize web04.qcow2 50G [root@kvm02 /data]# qemu-img info web04.qcow2 image: web04.qcow2 file format: qcow2 virtual size: 50G (53687091200 bytes) disk size: 439M cluster_size: 65536 Format specific information: compat: 1.1 lazy refcounts: false[root@kvm02 /data]# virsh start web04 [root@kvm02 /data]# virsh console web04 Connected to domain web04 Escape character is ^] ... [root@localhost ~]#df -h [root@localhost ~]#fdisk -l [root@localhost ~]# fdisk /dev/vda Welcome to fdisk (util-linux 2.23.2).Changes will remain in memory only, until you decide to write them. Be careful before using the write command.Command (m for help): d Selected partition 1 Partition 1 is deletedCommand (m for help): n Partition type: pprimary (0 primary, 0 extended, 4 free) eextended Select (default p): p Partition number (1-4, default 1): First sector (2048-104857599, default 2048): Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-104857599, default 104857599): Using default value 104857599 Partition 1 of type Linux and of size 50 GiB is setCommand (m for help): w The partition table has been altered!Calling ioctl() to re-read partition table.WARNING: Re-reading the partition table failed with error 16: Device or resource busy. The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) Syncing disks.[root@localhost ~]# reboot重新添加分区后重启 [root@localhost ~]# xfs_growfs /dev/vda1更新超级块 [root@localhost ~]# df -h FilesystemSizeUsed Avail Use% Mounted on /dev/vda150G915M50G2% /

2.3kvm虚拟机在线热添加和删除网卡
创建虚拟机: [root@kvm01 /data]# virsh destroy web04 [root@kvm01 /data]# virsh undefine web04 [root@kvm01 /data]# virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 1024,maxmemory=2048 --vcpus 1 --disk /data/web04.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole在宿主机上添加网卡: virsh attach-interface web04 bridge br0 virsh attach-interface web04 bridge br0 --modelvirtio # --model virtio此产参数可以修改网卡名称为eth*在宿主机上删除网卡:删除虚拟机每张网卡的mca地址 virsh detach-interface web04 bridge --mac 52:54:00:68:68:40 virsh detach-interface web04 bridge --mac 52:54:00:a8:72:44 # 只剩下一块网卡时不需要加mac地址,直接删除即可上面的操作临时生效,下次重启后恢复,可以添加--config参数使永久生效 virsh attach-interface web04 bridge br0 --modelvirtio --config

云计算day02-KVM
文章图片
image 云计算day02-KVM
文章图片
image
2.4 kvm虚拟机在线热添加内存
临时热添加内存 virsh setmem web03 1024M 永久增大内存 virsh setmem web03 1024M --config

删除web03这台虚拟机: [root@kvm02 /data]# virsh destroy web03 [root@kvm02 /data]# virsh undefine web03 再次创建web03虚拟机 设置最大内存maxmemory=2048: [root@kvm02 /data]# virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web03 --memory 512,maxmemory=2048 --vcpus 1 --disk /data/web03.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole [root@kvm02 /data]# virsh list IdNameState ---------------------------------------------------- 2web04running 4web03running连接web03查看内存情况 [root@kvm02 /data]# virsh console web03 ... [root@localhost ~]# free -m totalusedfreesharedbuff/cacheavailable Mem:465632978104280 Swap:000在宿主机上修改内存大小为1024M [root@kvm02 /data]# virsh setmem web03 1024M在web03虚拟机上查看内存已经变大了 [root@localhost ~]# free -m totalusedfreesharedbuff/cacheavailable Mem:977638088104791 Swap:000再增加为2048M [root@kvm02 /data]# virsh setmem web03 2048M再次查看虚拟机内存变大了 [root@localhost ~]# free -m totalusedfreesharedbuff/cacheavailable Mem:200163183281041816 Swap:0001.如果修改的内存超过了设置的最大值,则报错 [root@kvm02 /data]# virsh setmem web03 4096M error: invalid argument: cannot set memory higher than max memory2.如果将虚拟机关机后增加内存是可以调整的,但是超过宿主机的最大内存的话,会导致不能启动 3.如果修改的内存过小,则会让虚拟机奔溃掉

2.5 kvm虚拟机在线热添加cpu
setvcpus核心数 setvcpu特性热添加cpu核数 virsh setvcpus web04 4 永久添加cpu核数 virsh setvcpus web04 4 --config

云计算day02-KVM
文章图片
image
先把虚拟机web03删除掉: virsh destroy web03 virsh undefine web03 创建web03虚拟机: [root@kvm02 /data]# virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web03 --memory 512,maxmemory=2048 --vcpus 1,maxvcpus=10 --disk /data/web03.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole登录到虚拟机web03查看cpu核心数 [root@kvm02 /data]# virsh console web03 ... [root@localhost ~]# lscpu |head -5 Architecture:x86_64 CPU op-mode(s):32-bit, 64-bit Byte Order:Little Endian CPU(s):1#当前为1核心 On-line CPU(s) list:0在宿主机上增加web03虚拟机的cpu核心数为2核 [root@kvm02 /data]# virsh setvcpus web03 2查看虚拟机web03的cpu核心数 [root@localhost ~]# lscpu |head -5 Architecture:x86_64 CPU op-mode(s):32-bit, 64-bit Byte Order:Little Endian CPU(s):2#改为2核心 On-line CPU(s) list:0,1修改虚拟机的cpu核心数为4核 [root@kvm02 /data]# virsh setvcpus web03 4再次查看虚拟机cpu [root@localhost ~]# lscpu |head -5 Architecture:x86_64 CPU op-mode(s):32-bit, 64-bit Byte Order:Little Endian CPU(s):4 On-line CPU(s) list:0-3

云计算day02-KVM
文章图片
image
3. 热迁移 (共享的网络文件系统) kvm虚拟机热迁移资料
web04.qcow2 的环境下载链接: 提取码: sw23
冷迁移
1.关机
2.备份配置文件
3.scp传输配置文件和磁盘文件,传输到新的宿主机
4.virsh define web04.xml
5.启动
热迁移
kvm虚拟机:配置文件,nfs共享
详细步骤
环境要求:
主机名 ip 内存 网络 软件需求 虚拟化
kvm01 10.0.0.11 2G 创建br0桥接网卡 kvm和nfs 开启虚拟化
kvm02 10.0.0.12 2G 创建br0桥接网卡 kvm和nfs 开启虚拟化
nfs01 10.0.0.31 1G nfs
【云计算day02-KVM】kvm虚拟机热迁移大体步骤规划
  • 两边的环境(桥接网卡)
  • 实现共享存储(nfs)
  • 虚拟机桥接网络
  • 在线热迁移
注意:需要互相做好host解析 ↓
不然后面可能有报错,会因为主机名重复吗, 修改主机名: hostnamectl set-hostname kvm01 或 kvm02kvm01和kvm02宿主机都添加host解析: [root@kvm01 ~]# cat /etc/hosts 192.168.37.202 mirrors.aliyun.com 10.0.0.11 kvm01 10.0.0.12 kvm02scp -rp /etc/hosts 10.0.0.12:/etc/

3.1 清理当前的宿主机环境,保证一个干净的环境测试
保留一个配置文件web04.qcow2,将/opt/下和/data/下的其余全部删除掉[root@kvm01 ~]# rm -rf /opt/* [root@kvm01 ~]# mv /data/web04.qcow2 /opt/ [root@kvm01 ~]# rm -rf/data/* [root@kvm01 ~]# mv /opt/web04.qcow2 /data/ [root@kvm01 ~]# ll /data/ total 450688 -rw-r--r-- 1 qemu qemu 459800576 Sep3 17:08 web04.qcow2删除所有的配置文件: [root@kvm01 /data]# rm -rf /etc/libvirt/qemu/*.xml [root@kvm01 /data]# systemctl restart libvirtd [root@kvm01 /data]# virsh list --all IdNameState ---------------------------------------------------- \\没有虚拟机了#想kvm01宿主机关机 [root@kvm01 /data]# shutdown -h now

3.2 调整宿主机 并克隆第二台kvm02宿主机和nfs01共享主机
调整内存大小后,克隆两台主机,分别为kvm02和nfs01

云计算day02-KVM
文章图片
image
云计算day02-KVM
文章图片
image
开机后修改IP地址并重启网卡
因为是桥接网卡,索引网卡修改路径是 vim /etc/sysconfig/network-scripts/ifcfg-br0 systemctl restark network

kvm01 默认 10.0.0.11
kvm02 修改为10.0.0.12
nfs01 修改为10.0.0.31
3.3 给三台主机同时安装nfs环境
yum install nfs-utils rpcbind

如果没有网络可能是dhcp的原因,暂时关掉

云计算day02-KVM
文章图片
image
3.4 配置nfs服务端(nfs01上)
添加配置文件(async异步同步,性能更高) [root@nfs01 ~]# vim /etc/exports /data10.0.0.0/24(rw,async,no_root_squash,no_all_squash)重启 [root@nfs01 ~]# systemctl restart rpcbind [root@nfs01 ~]# systemctl restart nfs创建/data目录 [root@nfs01 ~]# mkdir /data去kvm01和02上检查是否连接nfs [root@kvm01 /data]#showmount -e 10.0.0.31 Export list for 10.0.0.31: /data 10.0.0.0/24[root@kvm02 /data]#showmount -e 10.0.0.31 Export list for 10.0.0.31: /data 10.0.0.0/24

3.5 挂载并测试
kvm01上: [root@kvm01 ~]# mount -t nfs 10.0.0.31:/data/ /data/ [root@kvm01 ~]# df -h 10.0.0.31:/data48G2.2G46G5% /datakvm02上: [root@kvm02 /data]# mount -t nfs 10.0.0.31:/data/ /data/ [root@kvm02 /data]# df -h 10.0.0.31:/data48G2.2G46G5% /data查看nfs01的/data目录是否同步之前的文件: [root@nfs01 ~]# ll -h /data/ total 446M -rw-r--r-- 1 107 107 6.3M Sep3 22:14 web03.qcow2 -rw-r--r-- 1 107 107 439M Sep3 22:24 web04.qcow2

3.6 将虚拟机从kvm02宿主机迁移到kvm01宿主机上
虚拟机都在kvm02上: [root@kvm02 /data]# virsh list IdNameState ---------------------------------------------------- 2web04running 6web03running当前的kvm01上没有虚拟机: [root@kvm01 ~]# virsh list --all IdNameState ----------------------------------------------------执行迁移的命令 (将kvm02上的web03迁移到10.0.0.11宿主机上) [root@kvm02 /data]# virsh migrate --live --verbose web03 qemu+ssh://10.0.0.11/system --unsafe root@10.0.0.11's password: Migration: [100 %]在kvm01上查看web03虚拟机已迁移过来了 [root@kvm01 ~]# virsh list IdNameState ---------------------------------------------------- 3web03running登录web03上修改网卡配置文件 [root@kvm01 ~]# virsh console web03 [root@localhost ~]# sed -i 's#dhcp#static#' /etc/sysconfig/network-scripts/ifcfg-eth0添加下面的内容到网卡配置中 IPADDR=10.0.0.129 GATEWAY=10.0.0.254 NETMASK=255.255.255.0 DNS1=223.5.5.5重启网卡 systemctl restart network

3.7 再次将迁移过到kvm01上的web03虚拟机迁移回kvm02上
迁移到10.0.0.12的kvm02宿主机上: [root@kvm01 ~]# virsh migrate --live --verbose web03 qemu+ssh://10.0.0.12/system --unsafe root@10.0.0.12's password: Migration: [100 %] [root@kvm01 ~]# virsh list IdNameState ----------------------------------------------------在kvm02宿主机上查看已经迁移回来了: [root@kvm02 /data]# virsh list IdNameState ---------------------------------------------------- 2web04running 7web03running

迁移过程中会丢包

云计算day02-KVM
文章图片
image
4. 安装ESXI并安装一台虚拟机 4.1 安装ESXI
新建虚拟机
云计算day02-KVM
文章图片
image
添加镜像
镜像网盘提取码: mhtx
VMware-viclient网盘下载链接 提取码: jfcr
云计算day02-KVM
文章图片
image
云计算day02-KVM
文章图片
image
云计算day02-KVM
文章图片
image
云计算day02-KVM
文章图片
image
云计算day02-KVM
文章图片
image 云计算day02-KVM
文章图片
image
云计算day02-KVM
文章图片
image
云计算day02-KVM
文章图片
image
云计算day02-KVM
文章图片
image
云计算day02-KVM
文章图片
image 云计算day02-KVM
文章图片
image 云计算day02-KVM
文章图片
image 云计算day02-KVM
文章图片
image
云计算day02-KVM
文章图片
image
云计算day02-KVM
文章图片
image
云计算day02-KVM
文章图片
image
云计算day02-KVM
文章图片
image
用VMware vSphere软件连接
云计算day02-KVM
文章图片
image 云计算day02-KVM
文章图片

云计算day02-KVM
文章图片
image
云计算day02-KVM
文章图片
image
云计算day02-KVM
文章图片
image
云计算day02-KVM
文章图片
image
云计算day02-KVM
文章图片
image
云计算day02-KVM
文章图片
image
云计算day02-KVM
文章图片
image
云计算day02-KVM
文章图片
image
云计算day02-KVM
文章图片
image
云计算day02-KVM
文章图片
image
云计算day02-KVM
文章图片
image
云计算day02-KVM
文章图片
image
云计算day02-KVM
文章图片
image
云计算day02-KVM
文章图片
image ESXI的常用配置
开启ssh功能

云计算day02-KVM
文章图片
image 云计算day02-KVM
文章图片
image 云计算day02-KVM
文章图片
image
点击启动后去控制台操作
云计算day02-KVM
文章图片
image 4.2 下面是按照centos6的步骤
云计算day02-KVM
文章图片
image
云计算day02-KVM
文章图片
image
云计算day02-KVM
文章图片
image
云计算day02-KVM
文章图片
image
云计算day02-KVM
文章图片
image
云计算day02-KVM
文章图片
image
云计算day02-KVM
文章图片
image
云计算day02-KVM
文章图片
image
云计算day02-KVM
文章图片
image
云计算day02-KVM
文章图片
image
云计算day02-KVM
文章图片
image
云计算day02-KVM
文章图片
image
云计算day02-KVM
文章图片
image
云计算day02-KVM
文章图片
等待安装好后就可以操作使用了
5. 练习 5.1 将kvm虚拟机迁移到esxi上
qemu-img convert -f qcow2 oldimage.qcow2 -O vmdk newimage.vmdk #可能不需要 vmkfstools -i oldimage.vmdk newimage.vmdk -d thin

5.2 将ESXI虚拟机迁移到kvm上
将虚拟机导出ova文件 virt-v2v -i ova centos-dev-test01-v2v.ova -o local -os /opt/test -of qcow2

5.3 问题与需求总结
kvm宿主机 2000台 查看每一个宿主机有多少台虚拟机? 查看每一个宿主机还剩多少资源? 查看每一台宿主机,每一个虚拟机的ip地址? excel 资产管理 kvm管理平台,数据库工具 信息:宿主机,总配置,剩余的总配置 虚拟机的信息,配置信息,ip地址,操作系统 带计费功能的kvm管理平台,openstack ceilometer计费 ecs IAAS层 自动化管理kvm宿主机,云主机定制化操作 服务器, 20核心 1T内存 96T 资源浪费,linux环境特别乱,,kvm虚拟机

    推荐阅读