虚拟化技术允许在单一物理主机上运行多个虚拟机(VM),每个VM都能运行独立的操作系统和应用程序。Linux系统提供了多种虚拟化解决方案:
安装KVM:
# Ubuntu/Debian
sudo apt-get install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager
# CentOS/RHEL
sudo yum install qemu-kvm libvirt libvirt-python libguestfs-tools virt-install virt-manager
启动KVM服务:
sudo systemctl enable --now libvirtd
安装Xen:
# Debian/Ubuntu
sudo apt-get install xen-hypervisor-amd64
# CentOS/RHEL
sudo yum install xen
安装LXC:
sudo apt-get install lxc lxc-templates # Debian/Ubuntu
sudo yum install lxc lxc-templates # CentOS/RHEL
安装LXD:
sudo snap install lxd
安装Docker:
curl -fsSL https://get.docker.com | sh
sudo systemctl enable --now docker
常用virsh命令:
virsh list --all # 列出所有虚拟机
virsh start vm_name # 启动虚拟机
virsh shutdown vm_name # 关闭虚拟机
virsh destroy vm_name # 强制停止虚拟机
virsh edit vm_name # 编辑虚拟机配置
sudo virt-install \
--name ubuntu-vm \
--ram 2048 \
--disk path=/var/lib/libvirt/images/ubuntu-vm.qcow2,size=20 \
--vcpus 2 \
--os-type linux \
--os-variant ubuntu20.04 \
--network bridge=virbr0 \
--graphics spice \
--location 'http://archive.ubuntu.com/ubuntu/dists/focal/main/installer-amd64/' \
--extra-args 'console=ttyS0,115200n8 serial'
sudo lxc-create -n mycontainer -t download -- --dist ubuntu --release focal --arch amd64
sudo lxc-start -n mycontainer
# 创建桥接接口
sudo brctl addbr br0
sudo brctl addif br0 eth0
sudo ip link set br0 up
libvirt默认提供NAT网络(virbr0)
virsh pool-list
virsh pool-define-as --name default --type dir --target /var/lib/libvirt/images
virsh pool-start default
virsh pool-autostart default
virsh vol-create-as default vm-disk.qcow2 20G --format qcow2
echo 1 > /sys/kernel/mm/ksm/run
virt-top
: 类似top的虚拟机监控工具sar
: 系统活动报告collectd
/Grafana
: 可视化监控virsh snapshot-create-as vm_name snapshot_name
egrep -c '(vmx|svm)' /proc/cpuinfo
lsmod | grep kvm
virsh net-list --all
通过本指南,您应该能够理解Linux系统中的主要虚拟化技术,并能够部署和管理基本的虚拟化环境。根据您的具体需求,可以选择最适合的虚拟化解决方案。