KVM虚拟化(二)

news/2024/11/17 3:38:11/

文章目录

    • 4.7 kvm虚拟机克隆
      • 4.7.1 完整克隆
      • 4.7.2 链接克隆
    • 4.8 kvm虚拟机的桥接网络
      • 4.8.1 创建桥接网卡
      • 4.8.2 新虚拟机使用桥接模式
      • 4.8.3 将已有虚拟机网络修改为桥接模式
    • 4.9 热添加技术
      • 4.9.1 kvm热添加硬盘
      • 4.9.2 kvm虚拟机在线热添加网卡
      • 4.9.3 kvm虚拟机在线热添加内存
      • 4.9.4 kvm虚拟机在线热添加cpu
      • 4.10 kvm虚拟机热迁移(共享的网络文件系统)
    • 5.1 用脚本自动化部署openstack M版

4.7 kvm虚拟机克隆

4.7.1 完整克隆

自动挡:

virt-clone --auto-clone -o web01 -n web02 (完整克隆)
手动挡:

qemu-img convert -f qcow2 -O qcow2 -c web01.qcow2 web03.qcow2
virsh dumpxml web01 >web02.xml
vim web02.xml
#修改虚拟机的名字
#删除虚拟机uuid
#删除mac地址mac add
#修改磁盘路径disk
virsh define web02.xml
virsh start web02

4.7.2 链接克隆

a:生成虚拟机磁盘文件
qemu-img create -f qcow2 -b web01.qcow2 web04.qcow2

b:生成虚拟机的配置文件

virsh dumpxml web01 >web03.xml
vim web03.xml
#修改虚拟机的名字
web03
#删除虚拟机uuid
8e505e25-5175-46ab-a9f6-feaa096daaa4
#删除mac地址

#修改磁盘路径

c:导入虚拟机并进行启动测试

virsh define web03.xml
virsh start web03

全自动链接克隆脚本:

[root@kvm01 scripts]# cat link_clone.sh
#!/bin/bash
old_vm=$1
new_vm=$2
#a:生成虚拟机磁盘文件
old_disk=virsh dumpxml $old_vm|grep "<source file"|awk -F"'" '{print $2}'
disk_tmp=dirname $old_disk
qemu-img create -f qcow2 -b $old_disk d i s k t m p / {disk_tmp}/ disktmp/{new_vm}.qcow2
#b:生成虚拟机的配置文件
virsh dumpxml o l d v m > / t m p / old_vm >/tmp/ oldvm>/tmp/{new_vm}.xml
#修改虚拟机的名字
sed -ri "s#()(.*)()#\1KaTeX parse error: Undefined control sequence: \3 at position 9: {new_vm}\̲3̲#g" /tmp/{new_vm}.xml
#删除虚拟机uuid
sed -i ‘//d’ /tmp/KaTeX parse error: Expected 'EOF', got '#' at position 14: {new_vm}.xml #̲删除mac地址 sed -i …{new_vm}.xml
#修改磁盘路径
sed -ri “s#()#\1 d i s k t m p / {disk_tmp}/ disktmp/{new_vm}.qcow2\3#g” /tmp/KaTeX parse error: Expected 'EOF', got '#' at position 14: {new_vm}.xml #̲c:导入虚拟机并进行启动测试 …{new_vm}.xml
virsh start ${new_vm}

4.8 kvm虚拟机的桥接网络

默认的虚拟机网络是NAT模式,网段192.168.122.0/24

4.8.1 创建桥接网卡

创建桥接网卡命令
virsh iface-bridge eth0 br0

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

4.8.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

问题1:

如果虚拟机获取不到ip地址:

1563250956395

4.8.3 将已有虚拟机网络修改为桥接模式

a:关机状态下修改虚拟机配置文件:

例如:virsh edit centos7

b:启动虚拟机,测试虚拟机网络

如果上层没有开启dhcp,需要手动配置ip地址,IPADDR,NATMASK.GATEWAY,DNS1=180.76.76.76

1578543325216

4.9 热添加技术

热添加硬盘、网卡、内存、cpu

4.9.1 kvm热添加硬盘

临时立即生效

virsh attach-disk web01 /data/web01-add.qcow2 vdb --subdriver qcow2
永久生效(需要重启)

virsh attach-disk web01 /data/web01-add.qcow2 vdb --subdriver qcow2 --config
临时剥离硬盘

virsh detach-disk web01 vdb

永久剥离硬盘

virsh detach-disk web01 vdb --config
扩容:
在虚拟机里把扩容盘的挂载目录,卸载掉
在宿主机上剥离硬盘virsh detach-disk web01 vdb
在宿主机上调整容量qemu-img resize
在宿主机上再次附加硬盘virsh attach-disk web01 /data/web01-add.qcow2 vdb --subdriver qcow2
在虚拟机里再次挂载扩容盘
在虚拟机里用xfs_growfs更新扩容盘超级块信息

4.9.2 kvm虚拟机在线热添加网卡

virsh attach-interface web04 --type bridge --source br0 --model virtio

virsh attach-interface web04 --type bridge --source br0 --model virtio --config

virsh detach-interface web04 --type bridge --mac 52:54:00:35:d3:71

4.9.3 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

临时热添加内存
virsh setmem web04 1024M
永久增大内存
virsh setmem web04 1024M --config

调整虚拟机内存最大值

virsh setmaxmem web04 4G #默认永久

4.9.4 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核数
virsh setvcpus web04 4
永久添加cpu核数
virsh setvcpus web04 4 --config

调整虚拟机cpu的最大值

virsh setvcpus web01 --maximum 4 --config

4.10 kvm虚拟机热迁移(共享的网络文件系统)

冷迁移kvm虚拟机:配置文件,磁盘文件

热迁移kvm虚拟机:配置文件,nfs共享

kvm虚拟机热迁移
1:两边的环境(桥接网卡)

主机名 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 无
2:实现共享存储(nfs)

yum install nfs-utils rpcbind -y

vim /etc/exports
/data 10.0.0.0/24(rw,async,no_root_squash,no_all_squash)

systemctl start rpcbind nfs

#kvm01和kvm02
mount -t nfs 10.0.0.11:/data /data
3:在线热迁移

#临时迁移
virsh migrate --live --verbose web04 qemu+ssh://10.0.0.11/system --unsafe
#永久迁移
virsh migrate --live --verbose web03 qemu+ssh://10.0.0.11/system --unsafe --persistent --undefinesource
5.kvm管理平台
kvm宿主机 2000台
查看每一个宿主机有多少台虚拟机?
查看每一个宿主机还剩多少资源?
查看每一台宿主机,每一个虚拟机的ip地址?

excel 资产管理 cmdb

kvm管理平台,数据库工具

信息:宿主机,总配置,剩余的总配置
虚拟机的信息,配置信息,ip地址,操作系统

带计费功能的kvm管理平台,openstack ceilometer计费 ecs IAAS层
自动化管理kvm宿主机,云主机定制化操作

5.1 用脚本自动化部署openstack M版

部署openstack
克隆一台openstack模板机:

all-in-one环境

4G内存,开启虚拟化,挂载centos7.6的光盘

1563350783150

虚拟机开机之后,修改ip地址为10.0.0.11

上传脚本openstack-mitaka-autoinstall.sh到/root目录
上传镜像:cirros-0.3.4-x86_64-disk.img到/root目录
上传配置文件:local_settings到/root目录
上传openstack_rpm.tar.gz到/root下,
tar xf openstack_rpm.tar.gz -C /opt/
mount /dev/cdrom /mnt

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地址10.0.0.12
hostnamectl set-hostname compute1
重新登录让新主机名生效
上传openstack_rpm.tar.gz到/root下,
tar xf openstack_rpm.tar.gz -C /opt/
mount /dev/cdrom /mnt

上传脚本openstack_compute_install.sh

sh openstack_compute_install.sh

openstack controller主控制节点,node节点, kvm宿主机
node节点, kvm宿主机
node节点, kvm宿主机
node节点, kvm宿主机


http://www.ppmy.cn/news/73403.html

相关文章

FFmpeg命令实战(中)

标题 1.ffplay命令播放2.ffplay简单过滤器3 .ffmpeg命令参数1.主要参数2. 音频参数3.视频参数 4.ffmpeg命令提取音视频数据1.保留封装格式2.提取视频3.提取音频 5.ffmpeg提取像素格式1.提取YUV2.提取RGB3.提取PCM 5.ffmpeg命令转封装格式1.保持编码格式2.改变编码格式3.修改帧率…

【密码学复习】第八讲 数字签名

数字签名&#xff08;Digital Signature&#xff09;&#xff0c;也称电子签名&#xff0c;是指附加在某一电子文档中的一组特定的符号或代码&#xff0c;它是利用数学方法对该电子文档进行关键信息提取并与用户私有信息进行混合运算而形成的&#xff0c;用于标识签发者的身份以…

基于MATLAB的车牌识别系统+GUI界面的毕业设计(完整源码+课题报告+说明文档+数据)

文章目录 1. 前言2. 实现步骤1&#xff09;颜色信息提取2&#xff09;倾斜校正3&#xff09;字符分割4&#xff09;字体识别5&#xff09;语音播报6&#xff09;存储数据 3. 总结4. 完整源码下载 1. 前言 近年来,随着交通现代化的发展要求,汽车牌照自动识别技术已经越来越受到…

Python学习29:存款买房(B)

描述‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬ 你刚刚大学毕业&#xff0c;…

看模型、做技术交底、做项目汇报,图新说数字化汇报平台引领交互式汇报新模式

现场汇报效果不好&#xff0c;导致丢了一个项目&#xff01; 项目汇报平淡无奇&#xff0c;方案屡次被毙&#xff01; 面对专家质疑&#xff0c;回答苍白无力&#xff01; 估计大家都有过这种经历和感受。 详细分析一下&#xff0c;基本上有以下几个方面的原因&#xff1a; …

AI加持的必应,为什么还赢不了谷歌?

“少年屠龙”的故事&#xff0c;似乎还有些遥远。 即使有新必应的加成&#xff0c;微软浏览器Edge在全球市场的占有率依然不高。据Statcounter数据显示&#xff0c;2023年4月&#xff0c;Edge的市场占有率仅为4.97%。提升的速度似乎也不太理想&#xff0c;4月份的数据只比一年…

Ceres简介及示例(9)On Derivatives(Numeric derivatives)

使用analytic derivatives的另一个极端是使用numeric derivatives。关键是&#xff0c;对函数f(x)关于x的求导过程可以写成极限形式: Forward Differences前向差分 当然&#xff0c;在计算机中&#xff0c;我们不能执行数值求极限操作&#xff0c;所以我们要做的是&#xff0…

TCP可靠数据传输

TCP 是通过序列号、确认应答、重发控制、连接管理以及窗口控制等机制实现可靠性传输的。 1 重传机制 TCP 利用重传机制解决数据包丢失的情况&#xff0c;常见的重传机制如下&#xff1a; 超时重传快速重传SACKD-SACK 1.1 超时重传 重传机制的其中一个方式&#xff0c;就是…