使用 virsh
命令创建虚拟机
在计算虚拟化领域,virsh
是一个强大的命令行工具,主要用于管理基于 KVM(Kernel-based Virtual Machine)的虚拟机。virsh
提供了创建、修改、启动、停止和监控虚拟机的功能,是系统管理员和开发人员日常工作中的得力助手。本文将详细介绍如何使用 virsh
命令创建一台新的虚拟机。
1. 环境准备
在开始创建虚拟机之前,需要确保系统已安装 libvirt
和 qemu-kvm
,并且 libvirtd
服务正在运行。可以通过以下命令安装并启动这些服务:
# 安装libvirt和qemu-kvm
sudo apt-get install -y libvirt-bin qemu-kvm
# 启动libvirtd服务
sudo systemctl start libvirtd
sudo systemctl enable libvirtd
2. 创建存储池和存储卷
虚拟机的磁盘文件通常存储在存储池中。在本例中,我们将创建一个目录作为存储池,并在其中创建一个存储卷(虚拟机磁盘文件)。
# 创建存储池目录
sudo mkdir -p /var/lib/libvirt/images
# 定义并启动存储池
sudo virsh pool-define-as default dir - - - - "/var/lib/libvirt/images"
sudo virsh pool-start default
sudo virsh pool-autostart default
# 创建存储卷(虚拟机磁盘文件)
sudo virsh vol-create-as default my-vm-disk 20G --format qcow2
3. 下载操作系统镜像
创建虚拟机时,需要指定操作系统安装镜像(ISO 文件)。以下示例下载 Ubuntu Server 的 ISO 文件:
# 下载Ubuntu Server ISO文件
wget -O /var/lib/libvirt/images/ubuntu-server.iso http://releases.ubuntu.com/20.04/ubuntu-20.04.5-live-server-amd64.iso
4. 定义虚拟机
使用 virsh
创建虚拟机时,需要定义其配置。可以通过 XML 文件进行配置定义,也可以使用 virt-install
命令直接创建。以下示例展示如何使用 virt-install
命令定义和创建虚拟机:
sudo virt-install \
--name my-vm \
--ram 2048 \
--vcpus 2 \
--disk path=/var/lib/libvirt/images/my-vm-disk,format=qcow2 \
--cdrom /var/lib/libvirt/images/ubuntu-server.iso \
--network network=default \
--graphics vnc,listen=0.0.0.0 \
--os-type linux \
--os-variant ubuntu20.04 \
--hvm
参数解释:
--name
:指定虚拟机名称。--ram
:分配给虚拟机的内存大小(MB)。--vcpus
:分配给虚拟机的虚拟 CPU 数量。--disk
:指定虚拟机的磁盘文件路径和格式。--cdrom
:指定操作系统安装镜像路径。--network
:配置虚拟机的网络,使用默认网络。--graphics
:配置图形界面,使用 VNC 进行远程连接。--os-type
:指定操作系统类型。--os-variant
:指定操作系统版本。--hvm
:启用硬件虚拟化。
5. 启动和管理虚拟机
虚拟机定义完成后,virsh
会自动启动虚拟机。可以使用以下命令管理和监控虚拟机:
# 查看虚拟机列表
sudo virsh list --all
# 启动虚拟机
sudo virsh start my-vm
# 停止虚拟机
sudo virsh shutdown my-vm
# 强制关闭虚拟机
sudo virsh destroy my-vm
# 删除虚拟机
sudo virsh undefine my-vm
6. 连接虚拟机控制台
可以使用 virsh
连接到虚拟机的控制台进行管理:
sudo virsh console my-vm
结论
通过以上步骤,我们成功使用 virsh
命令创建了一台新的虚拟机。从存储池和存储卷的创建,到操作系统镜像的下载,再到虚拟机的定义和启动,virsh
提供了一整套强大而灵活的工具集,使得虚拟机管理变得更加高效和便捷。在实际应用中,可以根据需要调整虚拟机的配置,以适应不同的使用场景。