GKLBB

当你经历了暴风雨,你也就成为了暴风雨

导航

软件开发 --- KVM之初体验

KVM(Kernel-based Virtual Machine)是 Linux 内核中的一个虚拟化模块,它允许操作系统运行在虚拟机中。KVM 通过硬件虚拟化扩展(如 Intel VT-x 或 AMD-V)为虚拟机提供高性能的虚拟化支持。KVM 被广泛用于构建虚拟化平台,管理虚拟机,以及支持容器和云平台。

以下是 KVM 的基本使用示例,涵盖了从安装、配置到创建虚拟机的全过程。

1. 安装 KVM

首先,确保你的系统支持硬件虚拟化,可以使用以下命令检查:

egrep -c '(vmx|svm)' /proc/cpuinfo

如果返回数字大于 0,则表示支持硬件虚拟化。

1.1 在 Ubuntu 上安装 KVM

# 更新系统
sudo apt update

# 安装 KVM 和其他必需的工具
sudo apt install qemu-kvm libvirt-bin bridge-utils virt-manager

# 检查 KVM 模块是否加载
lsmod | grep kvm

安装完成后,可以通过 virt-manager 工具管理虚拟机。

1.2 在 CentOS 上安装 KVM

# 安装 KVM 和相关工具
sudo yum install qemu-kvm libvirt virt-install bridge-utils

# 启动 libvirt 服务
sudo systemctl start libvirtd
sudo systemctl enable libvirtd

2. 创建虚拟机

创建虚拟机可以通过 virt-install 命令来完成,也可以使用 virt-manager 图形化工具来进行操作。我们先来看使用命令行的方式创建虚拟机。

2.1 使用 virt-install 创建虚拟机

下面是一个使用 virt-install 命令创建虚拟机的示例:

virt-install \
--name myvm \
--ram 2048 \
--vcpus 2 \
--disk path=/var/lib/libvirt/images/myvm.img,size=20 \
--cdrom /path/to/your/iso/file.iso \
--network bridge=br0 \
--graphics vnc \
--os-type linux \
--os-variant ubuntu20.04

解释:

  • --name myvm:虚拟机的名称为 myvm
  • --ram 2048:分配给虚拟机的内存为 2048MB。
  • --vcpus 2:虚拟机分配 2 个虚拟 CPU。
  • --disk path=/var/lib/libvirt/images/myvm.img,size=20:指定虚拟机磁盘路径和大小(20GB)。
  • --cdrom /path/to/your/iso/file.iso:指定 ISO 文件路径,用于安装操作系统。
  • --network bridge=br0:配置虚拟机使用网桥(br0)进行网络连接。
  • --graphics vnc:启用 VNC 图形界面,以便远程访问虚拟机。
  • --os-type linux --os-variant ubuntu20.04:指定虚拟机操作系统类型和版本。

2.2 启动虚拟机

虚拟机创建完成后,可以使用以下命令启动虚拟机:

sudo virsh start myvm

2.3 查看虚拟机列表

使用 virsh list 可以查看当前运行的虚拟机:

sudo virsh list --all

3. 管理虚拟机

3.1 连接到虚拟机

虚拟机启动后,可以通过 VNC 连接到虚拟机的图形界面,或者使用 virsh 命令行工具进行管理。

使用 virsh console 命令连接到虚拟机的控制台:

sudo virsh console myvm

3.2 停止虚拟机

sudo virsh shutdown myvm

如果虚拟机无法正常关闭,可以强制关闭:

sudo virsh destroy myvm

3.3 删除虚拟机

如果你不再需要某个虚拟机,可以使用 virsh undefine 命令删除虚拟机配置:

sudo virsh undefine myvm

同时,如果需要删除虚拟机的磁盘文件,可以手动删除对应的文件:

sudo rm /var/lib/libvirt/images/myvm.img

4. 网络配置

KVM 支持几种虚拟网络配置,最常见的是 NAT桥接模式

4.1 桥接模式(Bridge Mode)

桥接模式可以让虚拟机直接连接到物理网络,这通常用于需要虚拟机与外部设备通信的场景。在 virt-install 命令中,我们通过 --network bridge=br0 来指定网络桥接模式,br0 是物理网络接口的名称。

4.2 NAT 模式

如果你不想配置网络桥接,可以使用 NAT 模式。KVM 会为虚拟机提供虚拟化的网络,并通过主机的 IP 地址与外部网络通信。

5. 使用图形界面管理虚拟机

如果你更喜欢图形界面,可以使用 Virt-Manager。它是一个用于管理 KVM 虚拟机的图形化工具,适用于那些不想通过命令行操作的用户。

5.1 启动 Virt-Manager

在终端输入以下命令启动 Virt-Manager:

virt-manager

通过该界面,你可以:

  • 查看所有虚拟机的状态
  • 创建、启动、停止、删除虚拟机
  • 配置虚拟机的硬件和网络
  • 远程连接到虚拟机的控制台

6. KVM 常见命令总结

  • virsh list:列出所有运行中的虚拟机。
  • virsh start <vm_name>:启动虚拟机。
  • virsh shutdown <vm_name>:优雅关机虚拟机。
  • virsh destroy <vm_name>:强制停止虚拟机。
  • virsh undefine <vm_name>:删除虚拟机配置。
  • virsh console <vm_name>:连接虚拟机控制台。

总结

  • 安装 KVM:通过包管理工具安装 KVM 和相关工具。
  • 创建虚拟机:通过命令行工具 virt-install 创建虚拟机,或使用图形界面 virt-manager 进行管理。
  • 管理虚拟机:通过 virsh 工具控制虚拟机的启动、停止、删除等操作。
  • 网络配置:可以选择桥接模式或 NAT 模式来配置虚拟机网络。
  • 图形化管理:使用 virt-manager 提供的图形界面来管理虚拟机。

KVM 提供了一个高效、可扩展的虚拟化解决方案,非常适合用于构建虚拟化平台或云环境,尤其是在 Linux 系统中。

posted on 2024-12-10 06:52  GKLBB  阅读(3)  评论(0编辑  收藏  举报