目次
虚拟化概述
虚拟化与云计算的关系
虚拟化是什么?
云计算是什么?
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地址 | 设置 | ecs | 192.168.88.125 | 2 CPU, 4G mem |
内核模块管理命令
命令 | 命令形貌 | lsmod | 查看已经加载的内核模块 | modprobe | 加载一个内核模块 | sysctl | 设置内核参数 | rmmod | 卸载内核模块 |
安装虚拟化平台
验证指令集
- [root@ecs ~]# grep -Po "vmx|svm" /proc/cpuinfo
- vmx
复制代码 安装虚拟化平台工具
- [root@ecs ~]# dnf install -y qemu-kvm libvirt-daemon libvirt-client libvirt-daemon-driver-qemu libvirt-daemon-driver-network dnsmasq
- [root@ecs ~]# systemctl enable libvirtd --now
- [root@ecs ~]# lsmod |grep kvm
- kvm_intel 339968 0
- kvm 905216 1 kvm_intel
- irqbypass 16384 1 kvm
- [root@ecs ~]# 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
复制代码 创建虚拟网桥
- //创建网桥的.xml配置文件可用AI生成
- [root@ecs ~]# vim /etc/libvirt/qemu/networks/vbr.xml
- <network> <!-- 定义一个网络配置 -->
- <name>vbr</name> <!-- 为网络设置一个名称,这里命名为vbr -->
- <forward mode='nat'/> <!-- 设置网络的转发模式为NAT,用于隔离虚拟网络和外部网络 -->
- <bridge name='vbr' stp='on' delay='0'/> <!-- 创建一个虚拟网桥,名称为vbr,启用STP(生成树协议)以防止网络环路,延迟设置为0 -->
- <ip address='192.168.100.254' netmask='255.255.255.0'> <!-- 为网桥设置IP地址和子网掩码 -->
- <dhcp> <!-- 定义一个DHCP服务 -->
- <range start='192.168.100.128' end='192.168.100.200'/> <!-- 指定DHCP服务分配IP地址的范围 -->
- </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虚拟机
- [root@ecs ~]# qemu-img create -f qcow2 disk2.img 5G
- Formatting 'disk2.img', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=5368709120 lazy_refcounts=off refcount_bits=16
- [root@ecs ~]# ls -lh
- total 196K
- -rw-r--r-- 1 root root 193K Nov 1 14:23 disk2.img
- [root@ecs ~]# qemu-img info disk2.img
- image: disk2.img
- file format: qcow2
- virtual size: 5 GiB (5368709120 bytes)
- disk size: 196 KiB
- cluster_size: 65536
- Format specific information:
- compat: 1.1
- compression type: zlib
- lazy refcounts: false
- refcount bits: 16
- corrupt: false
- extended l2: false
- [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。
- [root@ecs ~]# ls
- cirros.qcow2 disk2.img vmbase.xml
- [root@ecs ~]# cp cirros.qcow2 /var/lib/libvirt/images/
- [root@ecs ~]# qemu-img rm disk2.img
- qemu-img: Command not found: rm
- Try 'qemu-img --help' for more information
- [root@ecs ~]# qemu-img create -F qcow2 -b cirros.qcow2 -f 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
- [root@ecs ~]# ls -lh
- total 17M
- -rw-r--r-- 1 root root 16M Nov 1 14:33 cirros.qcow2
- -rw-r--r-- 1 root root 1.2K Nov 1 14:33 vmbase.xml
- -rw-r--r-- 1 root root 193K Nov 1 14:38 vmhost.img
- [root@ecs ~]# 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
复制代码 虚拟机设置文件
- [root@ecs ~]# vim vmbase.xml
- 02: <name>vmhost</name> # 必改配置
- 03: <memory unit="KB">1048576</memory>
- 04: <currentMemory unit="KB">1048576</currentMemory>
- 05: <vcpu placement="static">2</vcpu>
- 25: <source file="/var/lib/libvirt/images/vmhost.img" /> # 必改配置
- 29: <source bridge="vbr" />
复制代码 管理虚拟机
- //列出虚拟机
- [root@ecs ~]# virsh list
- //创建虚拟机
- [root@ecs ~]# virsh define vmbase.xml
- //删除虚拟机
- [root@ecs ~]# virsh undefine vmhost
- //启动虚拟机
- [root@ecs ~]# virsh start vmhost
- //关闭虚拟机
- [root@ecs ~]# virsh shutdown vmhost
- //强制关闭虚拟机
- [root@ecs ~]# virsh destroy vmhost
- //连接虚拟机
- [root@ecs ~]# virsh console vmhost
复制代码 常用虚拟机管理命令
命令 | 命令形貌 | virsh list [--all] | 列出虚拟机 | virsh start/shutdown | 启动/关闭虚拟机 | virsh destroy | 强制停止虚拟机 | virsh define/undefine | 创建/删除虚拟机 | virsh console | 连接虚拟机的 console |
设置虚拟机
- //修改虚拟机配置文件!!不安全!!不推荐!!
- [root@ecs ~]# virsh edit vmhost
- //设置虚拟机自启
- [root@ecs ~]# virsh autostart vmhost
- //查看虚拟机摘要信息
- [root@ecs ~]# virsh dominfo vmhost
- //查看虚拟机网卡信息
- [root@ecs ~]# virsh domiflist vmhost
- //查看你虚拟机硬盘信息
- [root@ecs ~]# virsh domblklist vmhost
复制代码 常用虚拟机设置命令
命令 | 命令形貌 | virsh edit | 修改虚拟机的设置 | virsh autostart | 设置虚拟机自启动 | virsh dominfo | 查看虚拟机摘要信息 | virsh domiflist | 查看虚拟机网卡信息 | virsh domblklist | 查看虚拟机硬盘信息 |
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |