您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# Linux下怎么通过命令行管理KVM虚拟环境
## 前言
KVM(Kernel-based Virtual Machine)是Linux内核内置的全虚拟化解决方案,允许在物理主机上运行多个隔离的虚拟机。相比图形化工具(如virt-manager),命令行管理提供了更高效、可脚本化的操作方式。本文将详细介绍通过命令行管理KVM虚拟环境的完整流程。
---
## 一、环境准备
### 1. 检查CPU虚拟化支持
```bash
egrep -c '(vmx|svm)' /proc/cpuinfo # 返回值大于0表示支持
# 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
sudo systemctl enable --now libvirtd
virsh list --all # 应显示空列表
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'
--disk
: 指定磁盘映像路径和大小(GB)--network
: 选择网络模式(桥接/NAT)--graphics none
: 纯文本安装--location
: 指定安装源virsh start ubuntu20 # 启动
virsh shutdown ubuntu20 # 正常关机
virsh destroy ubuntu20 # 强制断电
virsh reboot ubuntu20 # 重启
virsh suspend ubuntu20 # 暂停
virsh resume ubuntu20 # 恢复
virsh undefine ubuntu20 # 删除配置
rm /var/lib/libvirt/images/ubuntu20.qcow2 # 删除磁盘
virsh dominfo ubuntu20 # 基本信息
virsh dumpxml ubuntu20 # 完整XML配置
virsh vcpuinfo ubuntu20 # CPU信息
virsh domblklist ubuntu20 # 磁盘列表
virsh edit ubuntu20 # 直接编辑XML配置
<memory unit='KiB'>2097152</memory>
<currentMemory unit='KiB'>2097152</currentMemory>
<vcpu placement='static'>4</vcpu>
virsh setvcpus ubuntu20 4 --live # 增加CPU
virsh setmem ubuntu20 4096M --live # 调整内存
virsh pool-list --all # 列出存储池
virsh pool-define-as default dir - - - - "/var/lib/libvirt/images" # 创建
virsh pool-start default # 激活
virsh pool-autostart default # 设置开机自启
qemu-img create -f qcow2 /var/lib/libvirt/images/disk2.qcow2 10G
virsh attach-disk ubuntu20 \
/var/lib/libvirt/images/disk2.qcow2 \
vdb \
--persistent
virsh net-list --all
virsh net-info default
# 创建桥接设备
sudo brctl addbr br0
sudo ip link set br0 up
# 修改虚拟机配置
virsh edit ubuntu20
<interface type='bridge'>
<source bridge='br0'/>
<model type='virtio'/>
</interface>
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
virsh console ubuntu20 # 需在客户机启用console服务
virsh snapshot-create-as ubuntu20 snap1 "First snapshot"
virsh snapshot-list ubuntu20
virsh snapshot-revert ubuntu20 snap1
# 本地迁移
virsh migrate --live ubuntu20 qemu+ssh://dest-host/system
# 导出配置
virsh dumpxml ubuntu20 > ubuntu20.xml
scp ubuntu20.xml root@dest-host:/tmp/
virsh domstats ubuntu20 # 实时统计
virt-top # 类似top的监控工具
echo 1 > /sys/kernel/mm/ksm/run
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' cache='none' io='native'/>
<source file='/path/to/image.qcow2'/>
<target dev='vda' bus='virtio'/>
</disk>
虚拟机无法启动:
virsh start ubuntu20 --console # 查看启动日志
网络连接失败:
virsh net-dhcp-leases default # 检查IP分配
性能低下:
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格式已按规范生成)
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。