当前位置:   article > 正文

云计算基础实验-虚拟化管理_cirros.qcow2 数据盘

cirros.qcow2 数据盘

今日目标:-搭建虚拟化平台

- 创建云主机

-了解云计算

虚拟化与云计算的关系

虚拟化是什么?虚拟化是一种技术,顾名思义,就是将不可拆分的实体资源变成可以自由划分的逻辑资源,从而实现资源的整合、隔离、在分配,云计算就是利用了虚拟化技术这个特点。

云计算是什么?云计算是一种服务模式(IAAS),其实就是把各种资源整合起来,然后租用给有需要的用户,其中的资源包括处理器(cpu)、内存、存储、网络和其他基本的计算机资源。通常我们通过虚拟化手段把这些资源分割打包提供给用户使用。

虚拟化实验图例

虚拟化平台安装

创建虚拟机

1、创建虚拟机 2cpu,4G内存

 [root@localhost ~]# hostnamectl set-hostname ecs
 [root@localhost ~]# exit

2、验证 ecs 是否支持虚拟化

 grep -Po "vmx|svm" /proc/cpuinfo
 lsmod |grep kvm查看KVM模块
 modprobe kvm 加载模块
 rmmod kvm 卸载模块

安装虚拟化平台

构建虚拟化平台工具软件包

1、安装服务
 [root@ecs ~]# dnf install -y qemu-kvm libvirt-daemon libvirt-client libvirt-daemon-driver-qemu libvirt-daemon-driver-network dnsmasq
 [root@ecs ~]# systemctl enable --now libvirtd
 [root@ecs ~]# virsh version#查看版本
2、创建网桥

网桥(虚拟交换机)

默认路径:/etc/libvirt/qemu/networks/vbr.xml

命令描述
virsh net-list [--all]列出虚拟网络
virsh net-start启动虚拟交换机
virsh net-destroy强制停止虚拟交换机
virsh net-define根据xml文件创建虚拟网络
virsh net-undefine删除一个虚拟网络设备
virsh net-edit修改虚拟交换机的配置
virsh net-autostart设置开机自启动
 # 官网手册: https://libvirt.org/docs.html
 [root@ecs ~]# vim /etc/libvirt/qemu/networks/vbr.xml
 <network>
   <name>vbr</name>网桥名
   <forward mode='nat'/>工作模式
   <bridge name='vbr' stp='on' delay='0'/>
   <ip address='192.168.100.254' netmask='255.255.255.0'>网桥ip
     <dhcp>
       <range start='192.168.100.128' end='192.168.100.200'/>
     </dhcp>
   </ip>
 </network>
 # 创建网桥
 [root@ecs ~]# virsh net-define /etc/libvirt/qemu/networks/vbr.xml
 Network vbr defined from /etc/libvirt/qemu/networks/vbr.xml
 # 设置开机自启动
 [root@ecs ~]# virsh net-autostart vbr
 Network vbr marked as autostarted
 # 启动网桥
 [root@ecs ~]# virsh net-start vbr
 Network vbr started
 # 验证状态
 [root@ecs ~]# virsh net-list --all
  Name   State    Autostart   Persistent
 -----------------------------------------
  vbr    active   yes         yes
  
 [root@ecs ~]# ifconfig vbr # 验证

Linux 虚拟机

虚拟机的构成:

/etc 存放配置文件 /usr 存放程序文件 /var 存放数据文件

虚拟机磁盘:在文件仿真中被广泛采用的CoW格式具有支持弹性空间、支持后端盘复用、支持快照、支持压缩

COW 写时拷贝技术 ,使用指针指向原始盘所有块。若一个块要被改写,首先把数据从原始盘拷贝到前端盘,然后在前端盘进行改写,最后把数据指针指向改写过的数据

原始盘始终是只读的

虚拟机磁盘管理

qemu-img 是管理虚拟机磁盘命令

命令格式:qemu -img 子命令 子命令参数 块文件名称 大小

-f 指定磁盘格式

-b 原始盘名称

-F 原始盘磁盘格式

创建虚拟机磁盘

创建虚拟机vmhost的磁盘文件

后端数据盘:cirros.qcow2

创建前端盘:/var/lib/libvirt/images/vmhost.img

前端盘的大小20G

上传 cirros.qcow2 到虚拟机

 [root@ecs ~]# cp cirros.qcow2 /var/lib/libvirt/images/
 [root@ecs ~]# cd /var/lib/libvirt/images/
 [root@ecs ~]# qemu-img create -F qcow2 -f qcow2 -b cirros.qcow2 vmhost.img 20G
 ls -lh
 [root@ecs ~]# qemu-img info vmhost.img #查看信息

qemu-img create -F qcow2 -f qcow2 -b cirros.qcow2 vmhost.img 20G

qemu-img create -F 原始盘的格式-f 目标盘的格式-b 原始盘的名称 目标盘的名称 目标盘的大小

虚拟机配置文件

文件:/etc/libvirt/qemu/{虚拟机名称}.xml

官方手册:libvirt: Documentation 或者生成配置模板

按要求使用模板创建虚拟机配置文件

-虚拟机名称: vmhost

-虚拟机配置:CPU(2核心)内存(1G)

-虚拟机网络:Vbr桥接

拷贝 模板node_base.xml 到虚拟机中

 [root@ecs ~]# cp node_base.xml /etc/libvirt/qemu/vmhost.xml
 [root@ecs ~]# 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'/>

创建虚拟机

命令说明
virsh list [--all]列出虚拟机
virsh start/shutdown/reboot启动/关闭/重启虚拟机
virsh destroy强制停止虚拟机
virsh define/undefine创建/删除虚拟机
virsh console连接虚拟机的 console
 [root@ecs ~]# virsh define /etc/libvirt/qemu/vmhost.xml
 Domain vmhost defined from /etc/libvirt/qemu/vmhost.xml
 [root@ecs ~]# virsh list --all
  Id    Name                           State
 ----------------------------------------------------
  -     vmhost                         shut off
 [root@ecs ~]# virsh start vmhost
 Domain vmhost started
 [root@ecs ~]# virsh console vmhost # 两次回车
 Connected to domain vmhost
 Escape character is ^]
 ​
 login as 'cirros' user. default password: 'gocubsgo'. use 'sudo' for root.
 cirros login: 
 退出使用 ctrl + ]

若要删除云主机磁盘 命令:cd /var/lib/libvirt/images/ rm -f vmhost.img

常用管理命令

命令说明
virsh edit修改虚拟机的配置
virsh autostart设置虚拟机自启动
virsh dominfo查看虚拟机摘要信息
virsh domiflist查看虚拟机网卡信息
virsh domblklist查看虚拟机硬盘信息

附: 编写一个脚本用来管理虚拟机,可以完成虚拟机的批量创建、批量删除,自定义虚拟机名称等功能,现有的模板虚拟机信息如下:

  • 配置文件模板:/var/lib/libvirt/images/node_base.xml
  • 后端盘模板: /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 ${IMG_DIR}/${1}.img 20G &>/dev/nl
  16. sed -re "s,#{5},${1}," ${CONF_FILE} >${CONF_DIR}/${1}.xml
  17. sudo virsh define ${CONF_DIR}/${1}.xml &>/dev/null
  18. echo_success
  19. echo "vm ${1} create"
  20. fi
  21. }
  22. function remove_vm(){
  23. read _ img <<<$(sudo virsh domblklist $1 2>/dev/null |awk 'NR==3{print}')
  24. if [ -e "${img}" ];then
  25. sudo virsh destroy $1 &>/dev/null
  26. sudo virsh undefine $1 &>/dev/null
  27. rm -f ${img}
  28. echo_success
  29. echo "vm ${1} delete"
  30. fi
  31. }
  32. # main
  33. case "$1" in
  34. create|remove)
  35. CMD=${1}
  36. while ((${#} > 1));do
  37. shift
  38. ${CMD}_vm ${1}
  39. done
  40. ;;
  41. *)
  42. echo "${0##*/} {create|remove} vm1 vm2 vm3 ... ..."
  43. ;;
  44. esac
  45. exit $?

验证

  1. [root@localhost ~]# chmod 755 /usr/local/bin/clone-vm
  2. [root@localhost ~]#virsh list --all
  3. Id Name State
  4. ----------------------------------------------------
  5. [root@localhost ~]# clone-vm
  6. clone-vm {create|remove} vm1 vm2 vm3 ... ...
  7. [root@localhost ~]# clone-vm create web db
  8. vm web create [ OK ]
  9. vm db create [ OK ]
  10. [root@localhost ~]# virsh list --all
  11. Id Name State
  12. ----------------------------------------------------
  13. - web shut off
  14. - db shut off
  15. [root@localhost ~]# virsh start web
  16. Domain web started
  17. [root@localhost ~]# virsh start db
  18. Domain db started
  19. [root@localhost ~]# virsh list --all
  20. Id Name State
  21. ----------------------------------------------------
  22. 1 web running
  23. 2 db running
  24. [root@localhost ~]# virsh console web
  25. Connected to domain 'web'
  26. Escape character is ^] (Ctrl + ])
  27. login as 'cirros' user. default password: 'gocubsgo'. use 'sudo' for root.
  28. cirros login:
  29. [root@localhost ~]# clone-vm remove web db
  30. vm web delete [ OK ]
  31. vm db delete [ OK ]
  32. [root@localhost ~]# virsh list --all
  33. Id Name State

云计算简介

三大服务模式

IaaS: 基础设施服务,Infrastructure-as-a-service PaaS: 平台服务,Platform-as-a-service SaaS: 软件服务,Software-as-a-service

三大使用场景

公有云:是第三方的云供应商,通过互联网为广大用户提供的一种按需使用的服务器资源,是一种云基础设施。 私有云:是一个企业或组织的专用云环境。一般在企业内部使用,不对外提供服务,因此它也被视为一种企业云。 混合云:是在私有云的基础上,组合其他公有云资源,从而允许在不同云环境之间共享应用和数据的使用方式。

华为云网址:共建智能世界云底座-华为云

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/运维做开发/article/detail/866468
推荐阅读
相关标签
  

闽ICP备14008679号