KVM虚拟化(二)

news2024/11/24 13:54:40

文章目录

    • 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.coloradmin.cn/o/552846.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

自动化测试技术解析:Appium、Sikuli与MonkeyTalk

目录 前言&#xff1a; 一、Appium自动化测试框架 它的优点是&#xff1a; 二、Sikuli自动化测试工具 它的优点是&#xff1a; 三、MonkeyTalk自动化测试工具 它的优点是&#xff1a; 四、代码样例 总结&#xff1a; 前言&#xff1a; 随着移动应用的普及&#xff0c;…

手把手教你通过PaddleHub快速实现输入中/英文本生成图像(Stable Diffusion)

近来&#xff0c;基于Diffusion的文图生成模型比较火&#xff0c;用户输入一句话&#xff0c;模型就可以生成一副对应的图像&#xff0c;还是很有意思的。本文记录了通过PaddleHub快速实现上述任务的过程&#xff0c;以供参考。 1、安装PaddlePaddle PaddleHub底层依赖于百度…

ChatGPT工作提效之生成开发需求和报价单并转为Excel格式

ChatGPT工作提效之生成开发需求和报价单并转为Excel格式 一、提出需求如何撰写百度地图标注开发的需求文档 二、针对性地连续提问推荐下一下百度地图标注文档的详细需求列表如何撰写百度地图标注开发的技术规范如何确定百度地图标注开发后的部署计划... 三、生成报价单四、运营…

【2023 · CANN训练营第一季】进阶班 应用开发深入讲解→模型推理

1 模型离线推理 各步要解析如下: Host&Device内存管理与数据传输: Host&Device上的内存申请与释放&#xff0c;内存间的相互拷贝;模型加载:将离线的om文件加载到Device上;在样例的资源初始化模块中进行。模型输入输出准备∶根据禹线om的输入输出&#xff0c;在Device…

微信小程序富文本组件mp-html

功能介绍 支持在多个主流的小程序平台和 uni-app 中使用支持丰富的标签&#xff08;包括 table、video、svg 等&#xff09;支持丰富的事件效果&#xff08;自动预览图片、链接处理等&#xff09;支持设置占位图&#xff08;加载中、出错时、预览时&#xff09;支持锚点跳转、…

【Linux】在Linux操作系统下对于权限的理解

目录 ❤️前言 正文 Linux下的不同用户 Linux的权限管理 文件访问者的分类 文件类型和访问权限 文件访问权限的修改方法 默认权限 目录权限 粘滞位 &#x1f340;结语 ❤️前言 大家好&#xff01;今天这篇文章主要是关于Linux操作系统下对于各种权限的理解问题&#…

AI人工智能预处理数据的方法和技术有哪些?

AI人工智能 预处理数据 在人工智能&#xff08;Artificial Intelligence&#xff0c;简称AI&#xff09;领域中&#xff0c;数据预处理是非常重要的一环。它是在将数据输入到模型之前对数据进行处理和清洗的过程。数据预处理可以提高模型的准确性、可靠性和可解释性。 本文将…

Springboot +spring security,基于多种方式配置登录用户:memory、jdbc、MyBatis

一.简介 前面章节所有的用户信息(用户名和密码)都是基于配置文件配置的&#xff0c;这篇文章学习基于多种方式配置登录用户&#xff0c;比如&#xff1a; memory&#xff08;内存&#xff09;jdbcMyBatis 二.创建项目 如何创建一个SpringSecurity项目&#xff0c;前面文章已…

Python入门【序列、列表简介、列表的创建 、列表元素的增加、列表元素的删除 】(四)-全面详解(学习总结---从入门到深化)

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱敲代码的小王&#xff0c;CSDN博客博主,Python小白 &#x1f4d5;系列专栏&#xff1a;python入门到实战、Python爬虫开发、Python办公自动化、Python数据分析、Python前后端开发 &#x1f4e7;如果文章知识点有错误…

微服务架构初探

大家好&#xff0c;我是易安&#xff01;我们今天来谈一谈微服务架构的前世今生。 我们先来看看维基百科是如何定义微服务的。微服务的概念最早是在2014年由Martin Fowler和James Lewis共同提出&#xff0c;他们定义了微服务是由单一应用程序构成的小服务&#xff0c;拥有自己的…

chatgpt赋能Python-pythonfalse

PythonFalse&#xff1a; Python中的False值 在Python编程语言中&#xff0c;布尔(Boolean)是一种基本数据类型&#xff0c;它只有两个值&#xff1a;True和False。这篇文章将讨论Python中的False值&#xff0c;并提供有关如何使用它的指南。 什么是PythonFalse PythonFalse…

chatgpt赋能Python-pythongil

Python GIL&#xff08;全局解释器锁&#xff09;介绍 Python GIL 是全局解释器锁&#xff08;Global Interpreter Lock&#xff09;的简称&#xff0c;它是 Python 解释器中的一个重要概念。GIL 的作用是确保任何时间只有一个线程在执行 Python 指令&#xff0c;以防止多个线…

jsonmodels.model.base

欢迎来到猫子酱的学习之旅 jsonmodels.model创建模型用法验证 validate()验证器 Validators自定义验证器&#xff08;**&#xff09;默认值转换为Python结构&#xff08;和JSON&#xff09;为您的模型创建JSON模式(***) &#xff08;结合Draft7Validator&#xff09;结构和对象…

蓝桥杯单片机串口通信学习提升笔记

今日得以继续蓝桥杯国赛备赛之旅&#xff1a; 有道是 “不知何事萦怀抱&#xff0c;醒也无聊&#xff0c;醉也无聊&#xff0c;梦也何曾到谢桥。” 那我们该如何 让这位诗人纳兰 “再听乐府曲 &#xff0c;畅解相思苦”呢&#xff1f; 那就建立起串口通信吧&#xff01; 我…

论文阅读_音频表示_W2V-BERT

信息 number headings: auto, first-level 2, max 4, _.1.1 name_en: w2v-BERT: Combining Contrastive Learning and Masked Language Modeling for Self-Supervised Speech Pre-Training name_ch: W2V-BERT&#xff1a;结合对比学习和Mask语言建模进行自监督语音预训练 pape…

Redis实现全局唯一Id

Redis实现全局唯一Id 全局唯一Id简介二、Redis实现全局唯一Id实践2.1添加RedisIdWorker配置类2.2测试类 全局唯一Id简介 系统当中有些场景如果使用数据库自增ID就存在一些问题&#xff1a; id的规律性太明显受单表数据量的限制 场景分析&#xff1a;如果我们的id具有太明显的…

基于UDP和TCP套接字实现简单的回显客户端服务器程序

目录 1. 套接字 2. 基于UDP 套接字实现的简单客户端 服务器程序 3. 基于TCP套接字实现的简单客户端 服务器程序 1. 套接字 之前我们有分享到协议分层这个概念,其中就讲到上层协议调用下层协议,下层协议给上层协议提供支持,这里支持指的是就是socket套接字,它是操作系统给应用…

宁波市天一杯 --- Crypto wp

文章目录 secretrsa secret 题目&#xff1a; p134261118796789547851478407090640074022214132682000430136383795981942884853000826171189906102866323044078348933419038543719361923320694974970600426450755845839235949167391987970330836004768360774676424958554946…

坦克大战进阶--发射子弹

坦克大战进阶–发射子弹 1. 坦克大战0.3 1.1 分析 利用线程基础的知识&#xff0c;把坦克大战再次进阶一下&#xff1a;当我们按下J键&#xff0c;坦克就能够发射一颗子弹。 1.2 思路 当发射一颗子弹后&#xff0c;就相当于启动一个线程Mytank 有子弹的对象&#xff0c;当…

MSP432笔记5——外部中断

所用单片机型号&#xff1a;MSP432P401r 今日继续我的MSP432电赛速通之路。 外部中断是个很有用的配置 STM32几乎每个I/O口都能配置复用为外部中断 但MSP432并不是这样。 我经过查阅数据手册发现支持中断的引脚为&#xff1a; P1^0~ P1^7 P3^0~ P3^7 P5^0~ P5^…