Linux下怎么通过命令行管理KVM虚拟环境

发布时间:2022-02-16 10:38:51 作者:iii
来源:亿速云 阅读:123
# Linux下怎么通过命令行管理KVM虚拟环境

## 前言

KVM(Kernel-based Virtual Machine)是Linux内核内置的全虚拟化解决方案,允许在物理主机上运行多个隔离的虚拟机。相比图形化工具(如virt-manager),命令行管理提供了更高效、可脚本化的操作方式。本文将详细介绍通过命令行管理KVM虚拟环境的完整流程。

---

## 一、环境准备

### 1. 检查CPU虚拟化支持
```bash
egrep -c '(vmx|svm)' /proc/cpuinfo  # 返回值大于0表示支持

2. 安装必要软件包

# Ubuntu/Debian
sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virtinst

# RHEL/CentOS
sudo yum install qemu-kvm libvirt libvirt-python libguestfs-tools virt-install

3. 启动libvirtd服务

sudo systemctl enable --now libvirtd

4. 验证安装

virsh list --all  # 应显示空列表

二、虚拟机生命周期管理

1. 创建虚拟机

使用virt-install创建:

sudo virt-install \
  --name=ubuntu20 \
  --ram=2048 \
  --vcpus=2 \
  --disk path=/var/lib/libvirt/images/ubuntu20.qcow2,size=20 \
  --os-type=linux \
  --os-variant=ubuntu20.04 \
  --network bridge=virbr0 \
  --graphics none \
  --console pty,target_type=serial \
  --location 'http://archive.ubuntu.com/ubuntu/dists/focal/main/installer-amd64/' \
  --extra-args 'console=ttyS0,115200n8 serial'

关键参数说明:

2. 虚拟机状态管理

virsh start ubuntu20      # 启动
virsh shutdown ubuntu20   # 正常关机
virsh destroy ubuntu20    # 强制断电
virsh reboot ubuntu20     # 重启
virsh suspend ubuntu20    # 暂停
virsh resume ubuntu20     # 恢复

3. 删除虚拟机

virsh undefine ubuntu20  # 删除配置
rm /var/lib/libvirt/images/ubuntu20.qcow2  # 删除磁盘

三、虚拟机配置管理

1. 查看虚拟机信息

virsh dominfo ubuntu20          # 基本信息
virsh dumpxml ubuntu20          # 完整XML配置
virsh vcpuinfo ubuntu20         # CPU信息
virsh domblklist ubuntu20       # 磁盘列表

2. 修改配置(需关机)

virsh edit ubuntu20  # 直接编辑XML配置

常见修改场景:

3. 动态调整资源(无需关机)

virsh setvcpus ubuntu20 4 --live   # 增加CPU
virsh setmem ubuntu20 4096M --live # 调整内存

四、存储管理

1. 存储池管理

virsh pool-list --all             # 列出存储池
virsh pool-define-as default dir - - - - "/var/lib/libvirt/images"  # 创建
virsh pool-start default          # 激活
virsh pool-autostart default      # 设置开机自启

2. 创建磁盘映像

qemu-img create -f qcow2 /var/lib/libvirt/images/disk2.qcow2 10G

3. 附加新磁盘

virsh attach-disk ubuntu20 \
  /var/lib/libvirt/images/disk2.qcow2 \
  vdb \
  --persistent

五、网络管理

1. 查看网络配置

virsh net-list --all
virsh net-info default

2. 创建桥接网络

# 创建桥接设备
sudo brctl addbr br0
sudo ip link set br0 up

# 修改虚拟机配置
virsh edit ubuntu20
<interface type='bridge'>
  <source bridge='br0'/>
  <model type='virtio'/>
</interface>

3. 端口转发

virsh net-update default add ip-dhcp-host \
  "<host mac='52:54:00:00:00:01' name='ubuntu20' ip='192.168.122.100'/>" \
  --live --config

六、高级操作

1. 控制台访问

virsh console ubuntu20  # 需在客户机启用console服务

2. 快照管理

virsh snapshot-create-as ubuntu20 snap1 "First snapshot"
virsh snapshot-list ubuntu20
virsh snapshot-revert ubuntu20 snap1

3. 迁移虚拟机

# 本地迁移
virsh migrate --live ubuntu20 qemu+ssh://dest-host/system

# 导出配置
virsh dumpxml ubuntu20 > ubuntu20.xml
scp ubuntu20.xml root@dest-host:/tmp/

七、监控与性能调优

1. 资源监控

virsh domstats ubuntu20       # 实时统计
virt-top                      # 类似top的监控工具

2. 性能优化建议


八、故障排查

常见问题处理

  1. 虚拟机无法启动

    virsh start ubuntu20 --console  # 查看启动日志
    
  2. 网络连接失败

    virsh net-dhcp-leases default  # 检查IP分配
    
  3. 性能低下

    perf kvm --host --guest stat -a  # 性能分析
    

结语

通过命令行管理KVM虚拟环境虽然学习曲线较陡峭,但提供了更精细的控制能力和自动化可能。建议结合shell脚本实现自动化部署,例如:

#!/bin/bash
# 自动创建10个相同配置的虚拟机
for i in {1..10}; do
  virt-install --name=vm${i} \
    --ram=1024 \
    --vcpus=1 \
    --disk size=10 \
    --network bridge=virbr0 \
    --os-variant=centos7.0 \
    --noautoconsole \
    --location=/iso/CentOS-7-x86_64-Minimal-2009.iso
done

掌握这些命令后,你将能高效管理大规模虚拟化环境,为云计算平台运维打下坚实基础。 “`

(注:实际字数约2150字,Markdown格式已按规范生成)

推荐阅读:
  1. KVM虚拟化之KVM基本管理(二)
  2. 部署及命令行管理KVM

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

linux kvm

上一篇:Linux的ngrep命令有什么用

下一篇:Linux的enable命令有什么用

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》