ToB企服应用市场:ToB评测及商务社交产业平台
标题:
云计算底层和假造化管理
[打印本页]
作者:
饭宝
时间:
2024-7-11 18:16
标题:
云计算底层和假造化管理
1.云计算底层技能
1.1假造技能介绍
假造化技能是一种资源管理方法,它答应在
单一物理硬件平台上运行多个独立的操作体系实例,这些实例被称为假造机
1.1.1常见假造化技能
系列PC/服务器版代表VMwareVMware Workstation、vSphereMicrosoftVirtualPC、Hyper-VRedHatKVM、RHEVCitrixXenOracleOracle VM VirtualBox
1.1.2假造化与云计算的关系
假造化:假造化是一种技能,将不可拆分的实体资源酿成可以
自由划分的逻辑资源
,从而实现资源的整合、隔离、再分配,云计算就是利用假造化技能这个特点
云计算:是一种服务模式——基础设施服务(IAAS),将各种资源整合起来,租给用户,如处理器(CPU)、内存、存储、网络和其他根本计算资源。通过假造化手段经这些资源分割打包提供给用户使用
1.2假造平台安装
真机(windows/linux)
在真机中创建假造机,内部假造机通过划分可用资源,如
设置假造网桥
,使得内层假造机可以访问外网。
1.2.1验证是否支持假造化
Linux:创建假造机最低设置:2CPU,4G内存
Windows:常见错误(VMware CPU 没有
启用假造化支持
)
windows:右键——使命管理器——CPU——假造化(已启用)
处理器:引擎——假造化Intel
//linux虚拟化
grep -Po "vmx | svm" /pro/cpuinfo
-E 支持拓展正则
-P 支持Perl正则
-o 显示行中非空匹配部分
/pro/cpuinfo cpu详细信息文件
lsmod | grep kvm 查看是否有kvm模块
lsmod //查看内核模块
modprobe //装载内核模块,内核模块是高度封装的,只能装载或卸载
rmmod //卸载内核模块,类似umount
复制代码
1.2.2安装假造化平台
KVM/qemu/Libvired
KVM是linux内核模块,需要CPU指令集(Intel-VT/AMD-V)支持,是一种硬件辅助假造化技能
QUME 是一种假造化仿真工具,通过IOctl(输入输出)与内核模块交互完成对硬件的假造化支持
Libvirt 是对假造化管理的接口的工具,提供客户端步调,virsh,virsh-manager
//虚拟化平台安装
dnf -y install \
qemu-kvm \ //虚拟化仿真程序
libvirt-daemon \ //核心守护进程
libvirt-client \ //客户端程序
libvirt-daemon-driver-qemu \ //QEMU管理模块
libvirt-daemon-driver-netwoek \ //网络管理模块
dnsmasq //DHCP、DNS服务
systemctl enable libvirtd --now
复制代码
virsh
提供管理各假造机的命令接口
支持交互/非交互模式,查察/创建/停止/关闭
格式:virsh 控制命令 [资源名] [参数]
virsh version //查看虚拟化相关版本信息
Compiled against library: libvirt 8.0.0
Using library: libvirt 8.0.0
Using API: QEMU 8.0.0
Running hypervisor: QEMU 6.2.0
复制代码
2.假造化网络
2.1假造网络管理命令
命令选项描述net-list [–all]列出假造网络net-start启动假造交换机net-destroy强制停止假造交换机net-define根据xml文件创建假造网络net-undefine删除一个假造网络装备net-autostart设置开机自启动net-edit修改假造交换机的设置virsh net-autostart设置开机自启动
2.2创建网桥
问AI(Libvirt XML 设置)
官网复制(https://libvirt.org/docs.html——>networks)
云主机不能nmcli、nmtui ,只能在web页面修改,关机修改,云平台dhcp分配的是永久ip
//网桥配置文件书写,文件名对应创建的网桥名称,根据模板修改
vim /etc/libvirt/qemu/networks/vbr.xml
<network>
<name>vbr</name> //显示的virsh net-list 虚拟网络中的名称
<bridge name="vir" stp='on' delay='0'/> //显示的ifconfig中的网卡名称
<forward mode="nat"/>
<ip address="192.168.100.254" netmask="255.255.255.0">
<dhcp>
<range start="192.168.100.128" end="192.168.100.200"/>
</dhcp>
</ip>
<ip family="ipv6" address="2001:db8:ca2:2::1" prefix="64"/>
</network>
//stp='on': 这个属性表示生成树协议(Spanning Tree Protocol, STP)是否启用
//delay='0': 这个属性定义了STP重新计算网络拓扑结构前等待的时间(单位为秒)
复制代码
//创建配置文件中声明的网桥
virsh net-define /etc/libvirt/qemu/networks/vbr.xml
Network vbr defined from /etc/libvirt/qemu/networks/vbr.xml
//启动网桥
virsh net-start vbr
Network vbr started
//设置开机自启
virsh net-autostart vbr
//查看网桥状态
virsh net-list --all
Name State Autostart Persistent
-----------------------------------------
vbr active yes yes
//验证
ifconfig vbr
复制代码
3.假造机原理
3.1假造机的构成
假造设置文件
(*.xml)
文件默认路径:/etc/libvirt/qemu/
用途:定义了假造机的装备,如:CPU、内存、网卡等
存储文件
(*.img)
文件默认路径:/var/lib/libvirt/images/
用途:仿真假造机磁盘,存储全部数据信息
创建vmhost虚拟机
1.创建虚拟配置文件 /etc/libvirt/qemu/vmhost.xml
2.创建存储文件 /var/lib/libvirt/images/vmhost.xml
复制代码
3.2假造机磁盘
假造机磁盘可以使用块装备、逻辑卷装备、文件仿真等。
其中文件仿真模式具有易迁徙、易扩展、支持多种磁盘格式、设置方便等特点。广泛应用与云平台
在文件仿真中采取COW格式具有:
支持弹性空间
支持后端盘复用
支持快照
支持压缩
3.3COW写时拷贝技能
在COW机制中,
写操作会导致数据从后端盘复制到前端盘,然后在前端盘上进行修改,而不是从前端盘复制到后端盘
。如允许以制止不必要的数据移动,同时保持原始数据的完备性。
只有在数据真正被修改时才进行复制
cow技能使用指针指向原始盘全部块,若一个块要被改写,首先将数据从原始盘拷贝到前端盘,在前端盘改写,最后将数据指针指向改写过的数据。此时数据存储在前端盘的新副本中,而不是后端盘的原始数据块
原始盘始终是只读的
3.3假造机设置管理
3.3.1假造机磁盘管理
qemu-img 是假造机的磁盘管理命令,磁盘格式:raw、qcow2、vdi、vmdk等
qemu-img命令格式
qemu-img 子命令 子命令参数 块文件名称 大小
常用子命令
create 创建一个磁盘
info 查察磁盘信息
//上传cirros.qcow2到虚拟机
cp cirros.qcow2 /var/lib/libvirt/images/
cd cirros.qcow2 /var/lib/libvirt/images/
//创建磁盘
qemu-img create -F qcow2 -f qcow2 -b cirros.qcow2 vmhost.img 20G
Formatting 'vmhost.img', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=21474836480 backing_file=cirros.qcow2 backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
//查看信息,实际大小不会是20G,因为弹性空间
qemu-img info vmhost.img
image: vmhost.img
file format: qcow2
virtual size: 20 GiB (21474836480 bytes)
disk size: 196 KiB
cluster_size: 65536
backing file: cirros.qcow2
backing file format: qcow2
Format specific information:
compat: 1.1
compression type: zlib
lazy refcounts: false
refcount bits: 16
corrupt: false
extended l2: false
//读取操作会先查找前端盘的差分映像vmhost.img , 如果未找到才会找后端盘的cirros.qcow2,此时
写入操作只会写入vmhost.img
复制代码
3.3.2假造机设置文件
官网复制(https://libvirt.org/docs.html——>node devices)
cp node_base.xml /etc/libvirt/qemu/vmhost.xml
vim /etc/libvirt/qemu/vmhost.xml
02: <name>vmhost</name> //虚拟机名称
03: <memory unit='KB'>1024000</memory> //最大内存
04: <currentMemory unit='KB'>1024000</currentMemory> //当前内存
05: <vcpu placement='static'>2</vcpu> //CPU数量
25: <source file='/var/lib/libvirt/images/vmhost.img'/> //磁盘文件路径
29: <source bridge='vbr'/>
复制代码
3.3.3创建假造机
管理内层假造机命令说明virsh list [–all]列出全部假造机virsh start/shutdown启动/关闭假造机virsh destory强制停止假造机virsh define/undefine创建/删除假造机virsh console连接假造机的consolevirsh edit修改假造机的设置virsh autostart设置假造机自启动virsh domiflist查察假造机网卡信息virsh dominfo查察假造机择要信息virsh domblklist查察假造机硬盘信息
virsh define /etc/libvirt/qemu/vmhost.xml //创建虚拟机
Domain 'vmhost' defined from /etc/libvirt/qemu/vmhost.xml
virsh start vmhost //启动虚拟机,状态由shut off变为running
Domain 'vmhost' started
virsh console vmhost //两次回车
Connected to domain 'vmhost'
Escape character is ^] (Ctrl + ])
login as 'cirros' user. default password: 'gocubsgo'. use 'sudo' for root.
cirros login: cirros
Password: gocubsgo
$
PS1='[\u\h \W]\$'
[rootcirros ~]#
shift + ] 退出登陆填写密码状态栏
//默认进去是$普通用户,需要sudo -i 变为#,可以修改$PS1系统变量调整样式
复制代码
3.3.4创建假造机脚本
vim /usr/local/bin/vm
#!/bin/bash
cd /var/lib/libvirt/images/
qemu-img create -F qcow2 -f qcow2 -b cirros.qcow2 ${1}.img 20G
sed "s,#####,${1}," /root/node_base.xml > /etc/libvirt/qemu/${1}.xml
virsh define /etc/libvirt/qemu/${1}.xml
chmod 0755 /usr/local/bin/vm
vm vmhost.xml
virsh list --all
Id Name State
-------------------------
- vmhost shut off
复制代码
4.公有云概述
4.1云服务范例
模式说明IaaS基础设施服务PaaS平台服务SaaS软件服务
4.2三大服务模式
4.2.1 IaaS——基础设施即服务
IaaS提供计算资源的基础设施,如假造机、存储空间、网络和操作体系,以及一些根本的网络组件如假造路由器和firewalld。用户可以根据需要租用这些资源,并自行安装操作体系、中间件、运行时、数据管理软件和其他所需的软件。
4.2.2 PaaS——平台即服务
PaaS提供了一个完备的开辟和摆设环境,包括操作体系、数据库、开辟工具和运行时环境。开辟职员可以利用 PaaS 来构建、测试和摆设应用步调,而无需关心底层的基础设施。PaaS 办理方案通常包括应用步调服务器、数据库服务、开辟框架和 API
4.2.3 SaaS——软件即服务
SaaS 是通过互联网提供的软件应用步调,用户无需安装和维护软件,只需订阅即可使用。SaaS 供应商负责管理应用步调的可用性、安全性、可扩展性和维护。
4.3三大使用场景
云介绍公有云是第三方的云供应商,通过互联网为广大用户提供的一种按需使用的服务器资源,是一种云基础设施。私有云是一个企业或组织的专用云环境。一般在企业内部使用,不对外提供服务,因此它也被视为一种企业云。混淆云是在私有云的基础上,组合其他公有云资源,从而答应在不同云环境之间共享应用和数据的使用方式。
5.能力提拔
编写一个脚本用来管理假造机,可以完成假造机的批量创建、批量删除,自定义假造机名称等功能,现有的模板假造机信息如下:
配置文件模板:/var/lib/libvirt/images/node_base.xml
后端盘模板: /var/lib/libvirt/images/node_base.qcow2
复制代码
[root@localhost ~]# vim /usr/local/bin/clone-vm
#!/bin/bash
CONF_DIR="/etc/libvirt/qemu"
IMG_DIR="/var/lib/libvirt/images"
CONF_FILE="/var/lib/libvirt/images/node_base.xml"
IMG_FILE="/var/lib/libvirt/images/node_base.qcow2"
export LANG=C
. /etc/init.d/functions
function create_vm(){
if [ -e ${IMG_DIR}/${1}.img ];then
echo_warning
echo "vm ${1}.img is exists"
return 1
else
qemu-img create -b ${IMG_FILE} -F qcow2 -f qcow2
${IMG_DIR}/${1}.img 20G &>/dev/nl
sed -re "s,#{5},${1}," ${CONF_FILE} >${CONF_DIR}/${1}.xml
sudo virsh define ${CONF_DIR}/${1}.xml &>/dev/null
echo_success
echo "vm ${1} create"
fi
}
function remove_vm(){
read _ img <<<$(sudo virsh domblklist $1 2>/dev/null |awk 'NR==3{print}')
if [ -e "${img}" ];then
sudo virsh destroy $1 &>/dev/null
sudo virsh undefine $1 &>/dev/null
rm -f ${img}
echo_success
echo "vm ${1} delete"
fi
}
# main
case "$1" in
create|remove)
CMD=${1}
while ((${#} > 1));do
shift
${CMD}_vm ${1}
done
;;
*)
echo "${0##*/} {create|remove} vm1 vm2 vm3 ... ..."
;;
esac
exit $?
验证
[root@localhost ~]# chmod 755 /usr/local/bin/clone-vm
[root@localhost ~]# virsh list --all
Id Name State
----------------------------------------------------
[root@localhost ~]# clone-vm
clone-vm {create|remove} vm1 vm2 vm3 ... ...
[root@localhost ~]# clone-vm create web db
vm web create [ OK ]
vm db create [ OK ]
[root@localhost ~]# virsh list --all
Id Name State
----------------------------------------------------
- web shut off
- db shut off
[root@localhost ~]# virsh start web
Domain web started
[root@localhost ~]# virsh start db
Domain db started
[root@localhost ~]# virsh list --all
Id Name State
----------------------------------------------------
1 web running
2 db running
[root@localhost ~]# virsh console web
Connected to domain 'web'
Escape character is ^] (Ctrl + ])
login as 'cirros' user. default password: 'gocubsgo'. use 'sudo' for root.
cirros login:
[root@localhost ~]# clone-vm remove web db
vm web delete [ OK ]
vm db delete [ OK ]
[root@localhost ~]# virsh list --all
Id Name State
----------------------------------------------------
[root@localhost ~]#
复制代码
磁盘读取/写入,在写入时拷贝数据
速率快前端盘使用了指针(快捷方式),只能读,不能写
读操作只是创建指针,指向原始盘的数据
弹性空间:根据数据的增加,改变大小,节约资源
原始盘范例 原始盘名称 克隆
内层假造机网卡eth0链接真机的vnet0,然后通过vnet0链接vbr
cow链接克隆,快速,相较于原假造机,占用内存空间大大缩小
cp 完备克隆
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4