【Linux中高级运维:云计算】第1章:云计算简介+kvm虚拟机安装+日常操作和管理+快照管理

2023-11-19

1:什么是云计算?

云计算是一种按量付费的模式!云计算的底层是通过虚拟化技术来实现的!
2:云计算的服务类型

2.1IAAS 基础设施即服务 虚拟机 ecs openstack
2.2PAAS 平台即服务 php,java docker容器
2.3SAAS 软件即服务 企业邮箱服务 cdn服务 rds数据库 开发+运维
在这里插入图片描述

3:为什么要用云计算

小公司:10台 20w+ idc 5w + 100M 10W, 10台云主机,前期投入小,扩展灵活,风险小大公司:闲置服务器计算资源,虚拟机,出租(超卖计算)
64G 服务器 64台1G 320台1G
国企,银行

4:云计算的基础KVM虚拟化

宿主机:内存4G+ 纯净的系统CentOS-7

4.1:什么是虚拟化?

虚拟化,通过模拟计算机的硬件,来实现在同一台计算机上同时运行多个不同的操作系统的技术。

4.2:虚拟化软件的差别

虚拟化软件: qemu 软件纯模拟全虚拟化软件,特别慢!AIX,兼容性好!
 xen() 性能特别好,需要使用专门修改之后的内核,兼容性差! redhat 5.5 xen kvm KVM(linux) 全虚拟机,
 它有硬件支持cpu,基于内核,而且不需要使用专门的内核 centos6 kvm 性能较好,兼容较好

4.3安装kvm虚拟化管理工具
KVM:Kernel-based Virtual Machine

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)作用:管理虚拟机的虚拟磁盘

环境要求:

centos 7.4 7.6
vmware 宿主机 kvm虚拟机内存4G,cpu开启虚拟化

在这里插入图片描述

IP:10.0.0.11

echo '192.168.12.201 mirrors.aliyun.com' >>/etc/hosts

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

安装软件包

yum install libvirt virt-install qemu-kvm -y

4.4:安装一台kvm虚拟机
分发软件TightVNC或者VNC-Viewer-6.19.325 宿主机微软的远程桌面
vnc:远程的桌面管理工具 向日葵 微软的远程桌面

systemctl start libvirtd.service systemctl status libvirtd.service

10.0.0.11 宿主机
建议虚拟机内存不要低于1024M,否则安装系统特别慢!

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

在这里插入图片描述

云主机都没有swap分区

在这里插入图片描述

4.5:kvm虚拟机的virsh日常管理和配置

列表list(--all)
开机start
关机shutdown 
拔电源关机destroy 
重启reboot

导出配置dumpxml 例子:virsh dumpxml centos7 >centos7-off.xml
删除undefine 推荐:先destroy,在undefine 导入配置define
修改配置edit(自带语法检查)
重命名domrename (低版本不支持)
挂起suspend 
恢复resume
查询vnc端口号vncdisplay kvm虚拟机开机启动
console 控制台 登录 kvm运行业务程序
autostart
开机启动autostart,前提:systemctl enable libvirtd;
取消开机启动autostart --disable
centos7的kvm虚拟机: grubby --update-kernel=ALL --args="console=ttyS0,115200n8" reboot

作业1:实现centos6的kvm虚拟机,console命令行登录? 安装一台centos6的kvm虚拟机,在安装的过程中需要
swap 200m,selinux禁用,取消swap
console命令行登录

作业2:centos6实现没有swap分区,启动进系统

4.6:kvm虚拟机虚拟磁盘格式转换和快照管理

raw: 裸格式,占用空间比较大,不支持快照功能,性能较好,不方便传输 总50G 占用50G
qcow2: cow(copy on write)占用空间小,支持快照,性能比raw差一点,方便传输 总50G 占用2G
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

4.6.1磁盘工具的常用命令

qemu -img info,create,resize,convert
查看虚拟磁盘信息 qemu-img info test.qcow2
创建一块qcow2格式的虚拟硬盘: qemu-img create -f qcow2 test.qcow2 2G
调整磁盘磁盘容量 qemu-img resize test.qcow2 +20G
raw转qcow2:qemu-img convert -f raw -O qcow2 oldboy.raw oldboy.qcow2 convert [-f fmt] [-O output_fmt] filename 

output_filename -c 压缩 virsh edit web01:
在这里插入图片描述

virsh destroy web01 virsh start web01

4.6.2快照管理

创建快照virsh snapshot-create-as centos7 --name install_ok 
查看快照virsh snapshot-list centos7
还原快照virsh snapshot-revert centos7 --snapshotname 1516574134 
删除快照virsh snapshot-delete centos7 -- snapshotname 1516636570
raw不支持做快照,qcow2支持快照,并且快照就保存在qcow2的磁盘文件中

4.7:kvm虚拟机克隆

4.7.1:完整克隆
自动挡:

virt-clone --auto-clone -o web01 -n web02 (完整克隆)

手动挡:
在这里插入图片描述

4.7.2:链接克隆
a:生成虚拟机磁盘文件 qemu-img create -f qcow2 -b 49-web03.qcow2 49-web04.qcow2
b:生成虚拟机的配置文件
在这里插入图片描述

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

virsh define web03.xml virsh start web03

全自动链接克隆脚本:
在这里插入图片描述在这里插入图片描述

链接克隆:

qemu-img create -f qcow2 -b 49-web03.qcow2 49-web04.qcow2

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

手把手带你编写全自动链接克隆虚拟机脚本

写脚本的
1:分析脚本的目的
脚本,支持 老虚拟机名称 新虚拟机名称
2:任务拆解
a:生成虚拟机磁盘文件 qemu-img create -f qcow2 -b 49-web03.qcow2 49-web04.qcow2
b:生成虚拟机的配置文件

virsh dumpxml web01 >web03.xml vim web03.xml
#修改虚拟机的名字
<name>web03</name> #删除虚拟机uuid
<uuid>8e505e25-5175-46ab-a9f6-feaa096daaa4</uuid> #删除mac地址
<mac address='52:54:00:4e:5b:89'/> #修改磁盘路径
<source file='/opt/web03.qcow2'/>

c:导入虚拟机并进行启动测试
virsh define web03.xml virsh start web03
版本1:不支持传参

#!/bin/bash

#a:生成虚拟机磁盘文件
qemu-img create -f qcow2 -b /data/web02.qcow2	/data/test.qcow2

#b:生成虚拟机的配置文件
virsh dumpxml web02 >/tmp/test.xml #修改虚拟机的名字
sed -ri 's#(<name>)(.*)(</name>)#\1test\3#g' /tmp/test.xml #删除虚拟机uuid
sed -i '/<uuid>/d' /tmp/test.xml #删除mac地址
sed -i '/<mac address/d' /tmp/test.xml #修改磁盘路径
sed -ri "s#(<source file=')(.*)('/>)#\1/data/test.qcow2\3#g" /tmp/test.xml

#c:导入虚拟机并进行启动测试virsh define /tmp/test.xml virsh start test

版本2: 支持传一个参数

#!/bin/bash
new_vm=$1
#a:生成虚拟机磁盘文件
qemu-img create -f qcow2 -b /data/web02.qcow2	/data/${new_vm}.qcow2

#b:生成虚拟机的配置文件
virsh dumpxml web02 >/tmp/${new_vm}.xml #修改虚拟机的名字
sed -ri "s#(<name>)(.*)(</name>)#\1${new_vm}\3#g" /tmp/${new_vm}.xml #删除虚拟机uuid
sed -i '/<uuid>/d' /tmp/${new_vm}.xml #删除mac地址
sed -i '/<mac address/d' /tmp/${new_vm}.xml #修改磁盘路径
sed -ri "s#(<source file=')(.*)('/>)#\1/data/${new_vm}.qcow2\3#g" /tmp/${new_vm}.xml

#c:导入虚拟机并进行启动测试
virsh define /tmp/${new_vm}.xml virsh start ${new_vm}

版本3:支持传两个参数

#!/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	${disk_tmp}/${new_vm}.qcow2

#b:生成虚拟机的配置文件
virsh dumpxml $old_vm >/tmp/${new_vm}.xml

#修改虚拟机的名字
sed -ri "s#(<name>)(.*)(</name>)#\1${new_vm}\3#g" /tmp/${new_vm}.xml #删除虚拟机uuid
sed -i '/<uuid>/d' /tmp/${new_vm}.xml #删除mac地址
sed -i '/<mac address/d' /tmp/${new_vm}.xml #修改磁盘路径
sed -ri "s#(<source file=')(.*)('/>)#\1${disk_tmp}/${new_vm}.qcow2\3#g"
/tmp/${new_vm}.xml

#c:导入虚拟机并进行启动测试
virsh define /tmp/${new_vm}.xml virsh start ${new_vm}

4:脚本可以进一步优化
添加老虚拟机是否存在的if判断,和/tmp是否可以写入的判断!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Linux中高级运维:云计算】第1章:云计算简介+kvm虚拟机安装+日常操作和管理+快照管理 的相关文章

  • pandas读取和存储CSV文件

    import pandas as pd import numpy as np read csv data pd read csv data temp 0 csv header None data DataFrame object data
  • 前端核心手写面试题(看你的马步扎实不扎实)

    防抖 防抖
  • c++类和对象--封装--属性和行为做整体

    封装的意义 1 将属性和行为当做一个整体来表现对象 类中的属性和行为统称为成员 属性又叫成员属性或成员变量 行为又叫成员函数或成员方法 案例 设计一个圆类 求圆的周长 include
  • 华为OD机试真题 Java 实现【机器人活动区域】【2023Q1 200分】

    一 题目描述 现有一个机器人 可放置于 M N的网格中任意位置 每个网格包含一个非负整数编号 当相邻网格的数字编号差值的绝对值小于等于 1 时 机器人可在网格间移动 问题 求机器人可活动的最大范围对应的网格点数目 说明 1 网格左上角坐标为
  • QT+ OpenGL学习

    文章目录 QT OpenGL QOpenGLWidget 不需要GLFW QOpenGLFunction X X Core 不需要GLAD 你好 三角形 顶点输入 顶点着色器 片段着色器 链接着色器 本节代码 元素缓冲对象EBO QT交互
  • haxm-windows_v7_5_6下载

    下载地址 https github com intel haxm releases download v7 5 6 haxm windows v7 5 6 zip 我已经下载好上传了 想自己去下载的小伙伴可以去上面的网站自己下载哦
  • 当今职场,正在加速淘汰 “巨婴员工”

    我担任过多家上市公司的技术高管职位 在工作中经常会遇到巨婴型员工 他们外在的表现是 不能够很好地管理自己 缺乏自律 缺乏起码的抗挫折能力和抗压能力 需要领导呵护着 同事们忍让着 作为一名管理者 绝不能放任团队中的巨婴存在 必须时刻保持团队的
  • STM32F4之ADC1【库函数操作】

    折腾了两天ADC多通道采样 采样的结果都很乱 完全不是预期值 在amobbs求助也没有找到结果 于是决定从简单开始 一步步折腾着破ADC ADC试验1实验说明 1 这个实验仅仅是初始化一个ADC 对其输入进行采样 2 使用STM32F4的A
  • Windows下强大的包管理器(二)

    Windows下强大的包管理器 Scoop BB Time 官方解释 What does Scoop do 安装教程 配置教程 修改用户安装程序和全局安装程序默认安装位置 直接修改环境变量 命令行方式 未完待续 使用教程 查找软件 安装软件
  • webpack之处理字体图标资源和打包其他资源

    1 下载图标地址 iconfont 阿里巴巴矢量图标库 2 添加字体图标资源 按照网站要求将资源等引入使用 src fonts iconfont ttf src fonts iconfont woff src fonts iconfont
  • Qt之QSS(动态属性)

    简述 QSS可以定制应用程序的外观 无需关注Qt样式背后的魔力 从非常轻微到极其复杂的调整 样式表都可以做到 对于一个完全定制和独特的用户体验 QtQuick和QGraphicsView是更好的选择 简述 自定义属性 限制 示例 效果 源码
  • 如何打开mysql数据库?

    方法一 win r 输入cmd 点击确定 输入mysql uroot p命令 回车 输入密码 方法二 用图形化工具 navicat 点击链接 选择mySQL 输入用户名和密码 点击确定 打开即可看到myql中已有数据库
  • 因 Log4j 漏洞,ONUS 被黑客攻击后拒交赎金;OpenHarmony 3.0 实现全设备能力初步覆盖;压缩软件 7-Zip 新版发布

    整理 宋彤彤 责编 屠敏 开源吞噬世界的趋势下 借助开源软件 基于开源协议 任何人都可以得到项目的源代码 加以学习 修改 甚至是重新分发 关注 开源日报 一文速览国内外今日的开源大事件吧 一分钟速览新闻点 被 Log4j 黑客攻击后 这家金
  • postMan使用技巧

    使用postMan调试接口 一些接口要实现登录才能访问 即要还token才能访问 一般登录后 拿到token才复制到其他接口下添加token变量 如些复制感觉是挺麻烦的 这时我们可以设置postman的全局变量 操作如下 添加调试环境和全局
  • 攻防实战

    0x00 前言 本文介绍了笔者在某次攻防演练中 如何从外网渗透到某车企的内网的详细过程 为了保护敏感信息 所有数据都已经脱敏 有些截图也不完整 请见谅 这次网络攻防演练分为两个阶段一共十四天 前七天是私有资源阶段 后七天是公共资源池阶段 共
  • 洛谷 P1056 排座椅 桶排序

    桶排序大法好 每次一看到这种范围小的题 本萌新就想用桶排 因为题目中的m n都小于1000 我们就可以定义两个1000的数组 表示每一行或每一列可以隔开几对讲话的童鞋 然后再定义两个1000的数组用来对前两个数组的值进行桶排序 再用通道总数
  • c51简单delay函数i的值跟延时的时间呈线性关系

    c51简单delay函数i的值跟延时的时间呈线性关系 一 简单delay函数 晶振频率 11 0592 MHZ define uchar unsigned char void Delay uchar i while i 二 证明 1 调试计
  • 深入浅出:前端浏览器缓存、清除缓存的几种方法

    介绍一个浏览器缓存机制的原理 https blog csdn net u014590757 article details 80140654 https www cnblogs com vajoy p 5341664 html https
  • 脊柱神经系统分布在哪里,脊柱神经系统分布图片

    脊柱两侧分出多少对脊神经 它构成了颈丛 臂丛 腰丛和骶丛 接着分布到全身 构成周围神经 31对脊神经 分别对应于31个脊髓节段上 即8颈 12胸 5腰 5骶 1尾 脊髓每个节段发出一对脊神经 颈丛由第1 4颈神经的前支构成 臂丛由第5 8颈

随机推荐