centos

CentOS中如何创建和管理虚拟机

小樊
38
2025-09-30 23:23:28
栏目: 云计算

一、准备工作:安装KVM及必要工具
在CentOS中创建和管理虚拟机(以KVM为例),需先确保系统支持虚拟化并安装核心工具。

  1. 检查CPU虚拟化支持:运行grep -E '(vmx|svm)' /proc/cpuinfo,若输出结果大于0,则CPU支持硬件虚拟化。
  2. 安装KVM及相关工具:执行sudo yum install -y qemu-kvm libvirt libvirt-client virt-install virt-viewer bridge-utils,安装KVM模块、虚拟化管理工具及桥接网络支持。
  3. 启动并启用libvirtd服务:运行sudo systemctl start libvirtd启动服务,sudo systemctl enable libvirtd设置开机自启。
  4. 验证KVM加载:执行lsmod | grep kvm,若显示kvm_intel(Intel CPU)或kvm_amd(AMD CPU),则KVM模块加载成功。

二、创建虚拟机:命令行(virt-install)与图形化(virt-manager)

1. 命令行创建(virt-install)

使用virt-install命令快速创建虚拟机,示例如下:

sudo virt-install \
  --name my_vm \                # 虚拟机名称
  --ram 2048 \                  # 内存大小(MB)
  --vcpus 2 \                   # 虚拟CPU核心数
  --disk path=/var/lib/libvirt/images/my_vm.qcow2,size=20 \  # 磁盘路径及大小(GB)
  --os-type linux \             # 操作系统类型
  --os-variant centos7.0 \      # 操作系统变体(匹配CentOS版本)
  --network bridge=virbr0 \     # 网络模式(virbr0为默认NAT网络,可替换为br0桥接)
  --graphics spice \            # 图形界面(spice支持远程桌面)
  --cdrom /path/to/CentOS-7-x86_64-DVD.iso \  # ISO镜像路径
  --noautoconsole               # 不自动连接控制台

该命令会创建一台名为my_vm的虚拟机,配置2GB内存、2核CPU、20GB磁盘,并通过网络安装CentOS。

2. 图形化创建(virt-manager)

若偏好图形界面,可通过virt-manager工具创建:

三、管理虚拟机:核心命令(virsh)
virsh是KVM虚拟化管理的核心命令行工具,覆盖虚拟机全生命周期管理:

  1. 查看虚拟机状态virsh list --all(显示所有虚拟机,包括运行/关闭状态)。
  2. 启动/关闭虚拟机virsh start <vm-name>(启动指定虚拟机)、virsh shutdown <vm-name>(优雅关闭)。
  3. 强制关机与重启virsh destroy <vm-name>(强制断电关闭,类似物理机拔电源)、virsh reboot <vm-name>(重启虚拟机)。
  4. 设置开机自启virsh autostart <vm-name>(虚拟机随宿主机启动而自动启动)、virsh autostart --disable <vm-name>(取消自启)。
  5. 连接控制台virsh console <vm-name>(连接虚拟机串口控制台,需在虚拟机内开启串口日志,如console=ttyS0)。
  6. 删除虚拟机virsh undefine <vm-name>(仅删除虚拟机定义,保留磁盘文件)、virsh undefine <vm-name> --remove-all-storage(彻底删除虚拟机及关联磁盘)。
  7. 编辑配置文件virsh edit <vm-name>(修改虚拟机XML配置,如调整CPU、内存、网络等,需注意语法正确性)。

四、存储与网络管理

  1. 存储池与卷管理
    • 查看存储池:virsh pool-list --all(显示所有存储池,默认default池路径为/var/lib/libvirt/images/)。
    • 查看存储卷:virsh vol-list <pool-name>(如virsh vol-list default,显示指定池内的磁盘卷)。
    • 创建存储池(目录类型):virsh pool-define-as --name my_pool --type dir --target /path/to/pool,然后启动池virsh pool-start my_pool
  2. 虚拟网络管理
    • 查看虚拟网络:virsh net-list --all(显示所有虚拟网络,默认default为NAT网络)。
    • 创建桥接网络(需提前配置主机桥接接口):编辑/etc/sysconfig/network-scripts/ifcfg-br0(桥接接口配置),重启网络使桥接生效。

五、可选:Web界面管理(Cockpit)
若需更便捷的Web管理,可安装Cockpit:

  1. 安装Cockpit及Machines模块sudo yum install -y cockpit cockpit-machines
  2. 启动Cockpit服务sudo systemctl start cockpitsudo systemctl enable cockpit
  3. 访问Web界面:浏览器输入https://<主机IP>:9090,登录后点击“虚拟机”即可管理KVM虚拟机。

0
看了该问题的人还看了