云计算day02-KVM
文章图片
云计算的虚拟机不要挂起,不然上不了网1. kvm虚拟机的桥接网络
文章图片
image
默认的虚拟机网络是NAT模式,网段192.168.122.0/241.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
1.3 桥接和NAT原理图
文章图片
image
文章图片
image
文章图片
image 1.4 将已有虚拟机网络修改为桥接模式
a:关机状态下修改虚拟机配置文件:
例如:virsh edit centos7
b:启动虚拟机,测试虚拟机网络
2. 热添加技术
热添加硬盘、网卡、内存、cpu2.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
2.4 kvm虚拟机在线热添加内存
文章图片
image
文章图片
image
临时热添加内存
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
文章图片
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
3. 热迁移 (共享的网络文件系统) kvm虚拟机热迁移资料
文章图片
image
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虚拟机热迁移大体步骤规划注意:需要互相做好host解析 ↓
- 两边的环境(桥接网卡)
- 实现共享存储(nfs)
- 虚拟机桥接网络
- 在线热迁移
不然后面可能有报错,会因为主机名重复吗,
修改主机名:
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
文章图片
image
文章图片
image
开机后修改IP地址并重启网卡
因为是桥接网卡,索引网卡修改路径是
vim /etc/sysconfig/network-scripts/ifcfg-br0
systemctl restark network
kvm01 默认 10.0.0.113.3 给三台主机同时安装nfs环境
kvm02 修改为10.0.0.12
nfs01 修改为10.0.0.31
yum install nfs-utils rpcbind
如果没有网络可能是dhcp的原因,暂时关掉3.4 配置nfs服务端(nfs01上)
文章图片
image
添加配置文件(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
迁移过程中会丢包4. 安装ESXI并安装一台虚拟机 4.1 安装ESXI
文章图片
image
新建虚拟机
文章图片
image
添加镜像
镜像网盘提取码: mhtx
VMware-viclient网盘下载链接 提取码: jfcr
文章图片
image
文章图片
image
文章图片
image
文章图片
image
文章图片
image
文章图片
image
文章图片
image
文章图片
image
文章图片
image
文章图片
image
文章图片
image
文章图片
image
文章图片
image
文章图片
image
文章图片
image
文章图片
image
文章图片
image
用VMware vSphere软件连接
文章图片
image
文章图片
文章图片
image
文章图片
image
文章图片
image
文章图片
image
文章图片
image
文章图片
image
文章图片
image
文章图片
image
文章图片
image
文章图片
image
文章图片
image
文章图片
image
文章图片
image
文章图片
image ESXI的常用配置
开启ssh功能
文章图片
image
文章图片
image
文章图片
image
点击启动后去控制台操作
文章图片
image 4.2 下面是按照centos6的步骤
文章图片
image
文章图片
image
文章图片
image
文章图片
image
文章图片
image
文章图片
image
文章图片
image
文章图片
image
文章图片
image
文章图片
image
文章图片
image
文章图片
image
文章图片
image
文章图片
等待安装好后就可以操作使用了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虚拟机
推荐阅读
- 宽容谁
- 一个人的旅行,三亚
- 第6.2章(设置属性)
- 布丽吉特,人生绝对的赢家
- 家乡的那条小河
- 讲述,美丽聪明的海欧!
- PMSJ寻平面设计师之现代(Hyundai)
- 夜游宫|夜游宫 心语
- 增长黑客的海盗法则
- 画画吗()