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假造化与云计算的关系


1.2假造平台安装

真机(windows/linux)
在真机中创建假造机,内部假造机通过划分可用资源,如设置假造网桥,使得内层假造机可以访问外网。

1.2.1验证是否支持假造化


  1. //linux虚拟化
  2. grep -Po "vmx | svm" /pro/cpuinfo
  3. -E  支持拓展正则
  4. -P  支持Perl正则
  5. -o  显示行中非空匹配部分
  6. /pro/cpuinfo  cpu详细信息文件
  7. lsmod | grep kvm  查看是否有kvm模块
  8. lsmod      //查看内核模块
  9. modprobe   //装载内核模块,内核模块是高度封装的,只能装载或卸载
  10. rmmod      //卸载内核模块,类似umount
复制代码
1.2.2安装假造化平台


  1. //虚拟化平台安装
  2. dnf -y install              \
  3. qemu-kvm                    \      //虚拟化仿真程序
  4. libvirt-daemon              \      //核心守护进程
  5. libvirt-client              \      //客户端程序
  6. libvirt-daemon-driver-qemu  \   //QEMU管理模块
  7. libvirt-daemon-driver-netwoek \  //网络管理模块
  8. dnsmasq                        //DHCP、DNS服务
  9. systemctl enable libvirtd  --now  
复制代码

  1. virsh version  //查看虚拟化相关版本信息
  2. Compiled against library: libvirt 8.0.0
  3. Using library: libvirt 8.0.0
  4. Using API: QEMU 8.0.0
  5. 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创建网桥


  1. //网桥配置文件书写,文件名对应创建的网桥名称,根据模板修改
  2. vim /etc/libvirt/qemu/networks/vbr.xml
  3. <network>
  4.   <name>vbr</name>      //显示的virsh net-list 虚拟网络中的名称
  5.   <bridge name="vir" stp='on' delay='0'/>  //显示的ifconfig中的网卡名称
  6.   <forward mode="nat"/>
  7.   <ip address="192.168.100.254" netmask="255.255.255.0">
  8.     <dhcp>
  9.       <range start="192.168.100.128" end="192.168.100.200"/>
  10.     </dhcp>
  11.   </ip>
  12.   <ip family="ipv6" address="2001:db8:ca2:2::1" prefix="64"/>
  13. </network>
  14. //stp='on': 这个属性表示生成树协议(Spanning Tree Protocol, STP)是否启用
  15. //delay='0': 这个属性定义了STP重新计算网络拓扑结构前等待的时间(单位为秒)
复制代码
  1. //创建配置文件中声明的网桥
  2. virsh net-define /etc/libvirt/qemu/networks/vbr.xml
  3. Network vbr defined from /etc/libvirt/qemu/networks/vbr.xml
  4. //启动网桥
  5. virsh net-start vbr
  6. Network vbr started
  7. //设置开机自启
  8. virsh net-autostart vbr
  9. //查看网桥状态
  10. virsh net-list --all
  11. Name   State    Autostart   Persistent
  12. -----------------------------------------
  13. vbr    active   yes         yes
  14. //验证
  15. ifconfig  vbr
复制代码
3.假造机原理

3.1假造机的构成


  1. 创建vmhost虚拟机
  2. 1.创建虚拟配置文件   /etc/libvirt/qemu/vmhost.xml
  3. 2.创建存储文件      /var/lib/libvirt/images/vmhost.xml
复制代码
3.2假造机磁盘


3.3COW写时拷贝技能



3.3假造机设置管理

3.3.1假造机磁盘管理


  1. //上传cirros.qcow2到虚拟机
  2. cp cirros.qcow2 /var/lib/libvirt/images/
  3. cd cirros.qcow2 /var/lib/libvirt/images/
  4. //创建磁盘
  5. qemu-img create -F qcow2 -f qcow2 -b cirros.qcow2 vmhost.img 20G
  6. 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
  7. //查看信息,实际大小不会是20G,因为弹性空间
  8. qemu-img info vmhost.img
  9. image: vmhost.img
  10. file format: qcow2
  11. virtual size: 20 GiB (21474836480 bytes)
  12. disk size: 196 KiB
  13. cluster_size: 65536
  14. backing file: cirros.qcow2
  15. backing file format: qcow2
  16. Format specific information:
  17.     compat: 1.1
  18.     compression type: zlib
  19.     lazy refcounts: false
  20.     refcount bits: 16
  21.     corrupt: false
  22.     extended l2: false
  23. //读取操作会先查找前端盘的差分映像vmhost.img , 如果未找到才会找后端盘的cirros.qcow2,此时
  24. 写入操作只会写入vmhost.img
复制代码
3.3.2假造机设置文件


  1. cp node_base.xml /etc/libvirt/qemu/vmhost.xml
  2. vim /etc/libvirt/qemu/vmhost.xml
  3. 02: <name>vmhost</name>        //虚拟机名称
  4. 03: <memory unit='KB'>1024000</memory> //最大内存
  5. 04: <currentMemory unit='KB'>1024000</currentMemory> //当前内存
  6. 05: <vcpu placement='static'>2</vcpu>  //CPU数量
  7. 25: <source file='/var/lib/libvirt/images/vmhost.img'/> //磁盘文件路径
  8. 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查察假造机硬盘信息
  1. virsh define /etc/libvirt/qemu/vmhost.xml  //创建虚拟机
  2. Domain 'vmhost' defined from /etc/libvirt/qemu/vmhost.xml
  3. virsh start vmhost      //启动虚拟机,状态由shut off变为running
  4. Domain 'vmhost' started
  5. virsh console vmhost     //两次回车
  6. Connected to domain 'vmhost'
  7. Escape character is ^] (Ctrl + ])
  8. login as 'cirros' user. default password: 'gocubsgo'. use 'sudo' for root.
  9. cirros login: cirros
  10. Password: gocubsgo
  11. $   
  12. PS1='[\u\h \W]\$'
  13. [rootcirros ~]#
  14. shift + ] 退出登陆填写密码状态栏
  15. //默认进去是$普通用户,需要sudo -i 变为#,可以修改$PS1系统变量调整样式
复制代码
3.3.4创建假造机脚本

  1. vim /usr/local/bin/vm
  2. #!/bin/bash
  3. cd /var/lib/libvirt/images/
  4. qemu-img create -F qcow2 -f qcow2 -b cirros.qcow2 ${1}.img 20G
  5. sed "s,#####,${1}," /root/node_base.xml > /etc/libvirt/qemu/${1}.xml
  6. virsh define /etc/libvirt/qemu/${1}.xml
  7. chmod 0755 /usr/local/bin/vm
  8. vm vmhost.xml
  9. virsh list --all
  10. Id   Name     State
  11. -------------------------
  12. -    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.能力提拔

编写一个脚本用来管理假造机,可以完成假造机的批量创建、批量删除,自定义假造机名称等功能,现有的模板假造机信息如下:
  1. 配置文件模板:/var/lib/libvirt/images/node_base.xml
  2. 后端盘模板: /var/lib/libvirt/images/node_base.qcow2
复制代码
  1. [root@localhost ~]# vim /usr/local/bin/clone-vm
  2. #!/bin/bash
  3. CONF_DIR="/etc/libvirt/qemu"
  4. IMG_DIR="/var/lib/libvirt/images"
  5. CONF_FILE="/var/lib/libvirt/images/node_base.xml"
  6. IMG_FILE="/var/lib/libvirt/images/node_base.qcow2"
  7. export LANG=C
  8. . /etc/init.d/functions
  9. function create_vm(){
  10.         if  [ -e ${IMG_DIR}/${1}.img ];then
  11.             echo_warning
  12.             echo "vm ${1}.img is exists"
  13.             return 1
  14.         else
  15.            qemu-img create -b ${IMG_FILE} -F qcow2 -f qcow2
  16.            ${IMG_DIR}/${1}.img 20G &>/dev/nl
  17.             sed -re "s,#{5},${1}," ${CONF_FILE}                         >${CONF_DIR}/${1}.xml
  18.            sudo virsh define ${CONF_DIR}/${1}.xml &>/dev/null
  19.           echo_success
  20.            echo "vm ${1} create"
  21.         fi
  22.     }
  23. function remove_vm(){
  24.         read _ img <<<$(sudo virsh domblklist $1 2>/dev/null |awk 'NR==3{print}')
  25.         if [ -e "${img}" ];then
  26.             sudo virsh destroy  $1 &>/dev/null
  27.             sudo virsh undefine $1 &>/dev/null
  28.             rm -f ${img}
  29.             echo_success
  30.             echo "vm ${1} delete"
  31.         fi
  32.     }
  33.     # main
  34.     case "$1" in
  35.         create|remove)
  36.         CMD=${1}
  37.         while ((${#} > 1));do
  38.             shift
  39.             ${CMD}_vm ${1}
  40.         done
  41.         ;;
  42.         *)
  43.         echo "${0##*/} {create|remove} vm1 vm2 vm3 ... ..."
  44.         ;;
  45.     esac
  46.     exit $?
  47. 验证
  48.     [root@localhost ~]# chmod 755 /usr/local/bin/clone-vm
  49.     [root@localhost ~]# virsh list --all
  50.      Id    Name                           State
  51.     ----------------------------------------------------
  52.     [root@localhost ~]# clone-vm
  53.     clone-vm {create|remove} vm1 vm2 vm3 ... ...
  54.     [root@localhost ~]# clone-vm create web db
  55.     vm web create                                      [  OK  ]
  56.     vm db create                                       [  OK  ]
  57.     [root@localhost ~]# virsh list --all
  58.      Id    Name                           State
  59.     ----------------------------------------------------
  60.      -     web                            shut off
  61.      -     db                             shut off
  62.     [root@localhost ~]# virsh start web
  63.     Domain web started
  64.     [root@localhost ~]# virsh start db
  65.     Domain db started
  66.     [root@localhost ~]# virsh list --all
  67.      Id    Name                           State
  68.     ----------------------------------------------------
  69.      1     web                            running
  70.      2     db                             running
  71.     [root@localhost ~]# virsh console web
  72.     Connected to domain 'web'
  73.     Escape character is ^] (Ctrl + ])
  74.     login as 'cirros' user. default password: 'gocubsgo'. use 'sudo' for root.
  75.     cirros login:
  76.     [root@localhost ~]# clone-vm remove web db
  77.     vm web delete                                             [  OK  ]
  78.     vm db delete                                              [  OK  ]
  79.     [root@localhost ~]# virsh list --all
  80.      Id    Name                           State
  81.     ----------------------------------------------------
  82.     [root@localhost ~]#
复制代码
磁盘读取/写入,在写入时拷贝数据
速率快前端盘使用了指针(快捷方式),只能读,不能写
读操作只是创建指针,指向原始盘的数据
弹性空间:根据数据的增加,改变大小,节约资源
原始盘范例 原始盘名称 克隆
内层假造机网卡eth0链接真机的vnet0,然后通过vnet0链接vbr
cow链接克隆,快速,相较于原假造机,占用内存空间大大缩小
cp 完备克隆

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4