1. 环境准备与镜像选择
在开始部署Ubuntu 22.04服务器虚拟机之前,我们需要做好基础环境准备。virt-manager作为Linux平台上最常用的虚拟化管理工具之一,它基于KVM虚拟化技术,能够提供接近原生性能的虚拟机体验。我建议使用较新的Linux发行版作为宿主机系统,比如Ubuntu 20.04/22.04或CentOS 8/9,这些系统对KVM的支持更加完善。
首先需要确认CPU是否支持虚拟化技术,在终端执行:
bash复制egrep -c '(vmx|svm)' /proc/cpuinfo
如果输出大于0,说明CPU支持虚拟化。接下来安装必要的软件包:
bash复制sudo apt update && sudo apt install -y qemu-kvm libvirt-daemon-system virt-manager bridge-utils
关于Ubuntu 22.04镜像的选择,我强烈建议使用服务器版而非桌面版。服务器版移除了不必要的图形组件,更加轻量高效。可以从官方镜像站下载:
bash复制wget https://releases.ubuntu.com/22.04/ubuntu-22.04.2-live-server-amd64.iso
下载完成后建议校验SHA256值,确保镜像完整性。我在实际使用中发现,中科大和清华的镜像站下载速度通常比官方源快3-5倍,特别是在国内网络环境下。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 创建虚拟机与硬件配置
启动virt-manager后,点击"新建虚拟机"按钮开始创建过程。第一步选择"本地安装介质",然后浏览选择刚才下载的ISO文件。这里有个小技巧:我习惯把ISO文件放在/var/lib/libvirt/images/目录下,这是libvirt默认的存储池位置,管理起来更方便。
在配置硬件资源时,需要根据宿主机的实际资源情况合理分配:
- CPU核心数:建议不超过宿主机物理核心数的3/4。比如我的测试机有16核,给虚拟机分配了12个vCPU
- 内存大小:服务器虚拟机建议至少4GB,生产环境根据应用需求调整
- 存储空间:默认20GB对于基础系统足够,但数据库等应用建议50GB起
最关键的是要修改设备驱动类型为VirtIO,这能显著提升I/O性能。在"自定义配置"界面中:
- 找到磁盘设备,将"磁盘总线"改为VirtIO
- 找到网络设备,同样选择VirtIO驱动
- 显示协议建议选择Spice,比VNC性能更好
3. 系统安装与初始配置
启动虚拟机后进入Ubuntu安装界面,语言建议选择English,避免后续出现编码问题。安装类型选择"Ubuntu Server"最小化安装,这样可以减少不必要的软件包。
网络配置环节需要特别注意:
- 生产环境建议使用桥接网络,让虚拟机获得独立IP
- 测试环境可以用NAT模式简化配置
- 静态IP配置示例:
code复制Address: 192.168.1.100/24 Gateway: 192.168.1.1 DNS: 8.8.8.8 114.114.114.114
软件源配置直接影响后续的软件安装速度。我实测中科大源在国内访问最稳定:
bash复制sudo sed -i 's|http://.*archive.ubuntu.com|https://mirrors.ustc.edu.cn|g' /etc/apt/sources.list
分区方案对服务器性能很关键。简单应用可以使用自动分区,但生产环境建议手动分区:
- /boot: 1GB
- swap: 内存的1.5倍(不超过16GB)
- /: 剩余空间的70%
- /var: 剩余空间的30%
务必勾选安装OpenSSH server,这是远程管理的基础。安装完成后立即更新系统:
bash复制sudo apt update && sudo apt upgrade -y
4. 性能优化与安全设置
虚拟机创建完成后,还需要进行一系列优化才能达到最佳性能。首先调整CPU和内存的NUMA配置:
bash复制virsh edit <虚拟机名称>
在XML配置中添加:
xml复制<cpu mode='host-passthrough' check='none'/>
<numatune>
<memory mode='strict' nodeset='0'/>
</numatune>
磁盘I/O性能可以通过调整缓存策略提升:
bash复制virsh attach-disk <虚拟机名称> --config --cache writeback
网络性能优化方面,建议启用多队列网卡:
xml复制<interface type='network'>
<model type='virtio'/>
<driver name='vhost' queues='4'/>
</interface>
安全设置方面,我建议:
- 禁用root密码登录,改用密钥认证
- 修改SSH默认端口
- 配置fail2ban防止暴力破解
- 启用防火墙仅开放必要端口
bash复制sudo sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/g' /etc/ssh/sshd_config
sudo systemctl restart sshd
最后,建议安装qemu-guest-agent增强管理功能:
bash复制sudo apt install -y qemu-guest-agent
sudo systemctl enable qemu-guest-agent
