Linux情况下的云计算虚拟化技能与实践指南

火影  金牌会员 | 2024-11-19 00:23:34 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 850|帖子 850|积分 2550

目次

虚拟化概述
虚拟化与云计算的关系
虚拟化是什么?
云计算是什么?
Linux虚拟化平台
构建虚拟化平台工具软件包
虚拟化平台安装
情况准备
内核模块管理命令
安装虚拟化平台
验证指令集
安装虚拟化平台工具
创建虚拟网桥
Linux虚拟机
克隆磁盘
虚拟机设置文件
管理虚拟机
常用虚拟机管理命令
设置虚拟机
常用虚拟机设置命令


虚拟化概述

虚拟化与云计算的关系

虚拟化是什么?



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



  • 云计算是一种服务模式(IAAS),其头脑就是把各种资源整合起来,然后租给有必要的用户,此中的资源包罗处理器(CPU)、内存、存储、网络和别的基本的计算资源。通常我们通过虚拟化手段把这些资源分割打包提供给用户使用。

Linux虚拟化平台



  • KVM 是linux内核模块,它必要CPU指令集(Intel-VT/AMD-V)的支持,是一种硬件辅助虚拟化技能。
  • QEMU 是一个虚拟化的仿真工具,通过ioctl与内核模块交互完成对硬件的虚拟化支持。
  • Libvirt 是一个对虚拟化管理的接口和工具,提供客户端步伐,比方:virsh, virt-manager。

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


服务软件包文件
虚拟化仿真步伐qemu-kvm
核心保卫历程libvirt-daemon
客户端步伐libvirt-client
QEMU管理模块libvirt-daemon-driver-qemu
网络管理模块libvirt-daemon-driver-network
DHCP、DNS服务dnsmasq


虚拟化平台安装

情况准备


主机名称IP地址设置
ecs192.168.88.1252 CPU, 4G mem

内核模块管理命令


命令命令形貌
lsmod查看已经加载的内核模块
modprobe加载一个内核模块
sysctl设置内核参数
rmmod卸载内核模块

安装虚拟化平台

验证指令集

  1. [root@ecs ~]# grep -Po "vmx|svm" /proc/cpuinfo
  2. vmx
复制代码
安装虚拟化平台工具

  1. [root@ecs ~]# dnf install -y qemu-kvm libvirt-daemon libvirt-client libvirt-daemon-driver-qemu libvirt-daemon-driver-network dnsmasq
  2. [root@ecs ~]# systemctl enable libvirtd --now
  3. [root@ecs ~]# lsmod |grep kvm
  4. kvm_intel             339968  0
  5. kvm                   905216  1 kvm_intel
  6. irqbypass              16384  1 kvm
  7. [root@ecs ~]# virsh version
  8. Compiled against library: libvirt 8.0.0
  9. Using library: libvirt 8.0.0
  10. Using API: QEMU 8.0.0
  11. Running hypervisor: QEMU 6.2.0
复制代码
创建虚拟网桥

  1. //创建网桥的.xml配置文件可用AI生成
  2. [root@ecs ~]# vim /etc/libvirt/qemu/networks/vbr.xml
  3. <network> <!-- 定义一个网络配置 -->
  4.   <name>vbr</name> <!-- 为网络设置一个名称,这里命名为vbr -->
  5.   <forward mode='nat'/> <!-- 设置网络的转发模式为NAT,用于隔离虚拟网络和外部网络 -->
  6.   <bridge name='vbr' stp='on' delay='0'/> <!-- 创建一个虚拟网桥,名称为vbr,启用STP(生成树协议)以防止网络环路,延迟设置为0 -->
  7.   <ip address='192.168.100.254' netmask='255.255.255.0'> <!-- 为网桥设置IP地址和子网掩码 -->
  8.     <dhcp> <!-- 定义一个DHCP服务 -->
  9.       <range start='192.168.100.128' end='192.168.100.200'/> <!-- 指定DHCP服务分配IP地址的范围 -->
  10.     </dhcp>
  11.   </ip>
  12. </network> <!-- 结束网络配置 -->
复制代码
  1. // 创建网桥
  2. [root@ecs ~]# virsh net-define /etc/libvirt/qemu/networks/vbr.xml
  3. Network vbr defined from /etc/libvirt/qemu/networks/vbr.xml
  4. // 设置开机自启动
  5. [root@ecs ~]# virsh net-autostart vbr
  6. Network vbr marked as autostarted
  7. // 启动网桥
  8. [root@ecs ~]# virsh net-start vbr
  9. Network vbr started
  10. // 验证状态
  11. [root@ecs ~]# virsh net-list --all
  12. Name   State    Autostart   Persistent
  13. -----------------------------------------
  14. vbr    active   yes         yes
  15. [root@ecs ~]# ifconfig vbr // 验证
复制代码
Linux虚拟机

  1. [root@ecs ~]# qemu-img create -f qcow2 disk2.img 5G
  2. Formatting 'disk2.img', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=5368709120 lazy_refcounts=off refcount_bits=16
  3. [root@ecs ~]# ls -lh
  4. total 196K
  5. -rw-r--r-- 1 root root 193K Nov  1 14:23 disk2.img
  6. [root@ecs ~]# qemu-img info disk2.img
  7. image: disk2.img
  8. file format: qcow2
  9. virtual size: 5 GiB (5368709120 bytes)
  10. disk size: 196 KiB
  11. cluster_size: 65536
  12. Format specific information:
  13.     compat: 1.1
  14.     compression type: zlib
  15.     lazy refcounts: false
  16.     refcount bits: 16
  17.     corrupt: false
  18.     extended l2: false
  19. [root@ecs ~]# rm disk2.img
复制代码
克隆磁盘



  • qemu-img:这是命令行工具的名称,用于管理QEMU虚拟机的磁盘映像文件。
  • create:这是 qemu-img 的一个子命令,用于创建新的磁盘映像文件。
  • -F qcow2:这个选项指定了新创建的磁盘映像文件的格式。-F 是 --format 的简写形式,qcow2 是指定的格式,表现创建的磁盘映像将使用 qcow2 格式。
  • -b cirros.qcow2:这个选项指定了根本磁盘映像文件,-b 是 --Backing-File 的简写形式。在这里,cirros.qcow2 是用作新磁盘映像的根本磁盘映像文件,新创建的磁盘映像将继续这个根本映像的内容和设置。
  • -f qcow2:这个选项再次指定了新磁盘映像的格式,这次是作为创建命令的一部分。它与 -F 选项的作用相同,都是指定格式为 qcow2。
  • vmhost.img:这是新创建的磁盘映像文件的名称。
  • 20G:这是新创建的磁盘映像文件的巨细,表现新磁盘映像的巨细为 20GB。
  1. [root@ecs ~]# ls
  2. cirros.qcow2  disk2.img  vmbase.xml
  3. [root@ecs ~]# cp cirros.qcow2 /var/lib/libvirt/images/
  4. [root@ecs ~]# qemu-img rm disk2.img
  5. qemu-img: Command not found: rm
  6. Try 'qemu-img --help' for more information
  7. [root@ecs ~]# qemu-img create -F qcow2 -b cirros.qcow2 -f qcow2 vmhost.img 20G
  8. 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
  9. [root@ecs ~]# ls -lh
  10. total 17M
  11. -rw-r--r-- 1 root root  16M Nov  1 14:33 cirros.qcow2
  12. -rw-r--r-- 1 root root 1.2K Nov  1 14:33 vmbase.xml
  13. -rw-r--r-- 1 root root 193K Nov  1 14:38 vmhost.img
  14. [root@ecs ~]# qemu-img info vmhost.img
  15. image: vmhost.img
  16. file format: qcow2
  17. virtual size: 20 GiB (21474836480 bytes)
  18. disk size: 196 KiB
  19. cluster_size: 65536
  20. backing file: cirros.qcow2
  21. backing file format: qcow2
  22. Format specific information:
  23.     compat: 1.1
  24.     compression type: zlib
  25.     lazy refcounts: false
  26.     refcount bits: 16
  27.     corrupt: false
  28.     extended l2: false
复制代码
虚拟机设置文件

  1. [root@ecs ~]# vim vmbase.xml
  2. 02: <name>vmhost</name>  # 必改配置
  3. 03: <memory unit="KB">1048576</memory>
  4. 04: <currentMemory unit="KB">1048576</currentMemory>
  5. 05: <vcpu placement="static">2</vcpu>
  6. 25: <source file="/var/lib/libvirt/images/vmhost.img" />  # 必改配置
  7. 29: <source bridge="vbr" />
复制代码
管理虚拟机

  1. //列出虚拟机
  2. [root@ecs ~]# virsh list
  3. //创建虚拟机
  4. [root@ecs ~]# virsh define vmbase.xml
  5. //删除虚拟机
  6. [root@ecs ~]# virsh undefine vmhost
  7. //启动虚拟机
  8. [root@ecs ~]# virsh start vmhost
  9. //关闭虚拟机
  10. [root@ecs ~]# virsh shutdown vmhost
  11. //强制关闭虚拟机
  12. [root@ecs ~]# virsh destroy vmhost
  13. //连接虚拟机
  14. [root@ecs ~]# virsh console vmhost
复制代码
常用虚拟机管理命令


命令命令形貌
virsh list [--all]列出虚拟机
virsh start/shutdown启动/关闭虚拟机
virsh destroy强制停止虚拟机
virsh define/undefine创建/删除虚拟机
virsh console连接虚拟机的 console

设置虚拟机

  1. //修改虚拟机配置文件!!不安全!!不推荐!!
  2. [root@ecs ~]# virsh edit vmhost
  3. //设置虚拟机自启
  4. [root@ecs ~]# virsh autostart vmhost
  5. //查看虚拟机摘要信息
  6. [root@ecs ~]# virsh dominfo vmhost
  7. //查看虚拟机网卡信息
  8. [root@ecs ~]# virsh domiflist vmhost
  9. //查看你虚拟机硬盘信息
  10. [root@ecs ~]# virsh domblklist vmhost
复制代码
常用虚拟机设置命令


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



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

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

火影

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表