96SEO 2026-02-23 13:42 2
文档说明#xff1a;本文档旨在帮助快速应用KVM虚拟化技术#xff0c;重在实践操作#xff0c;提供了简要参考。

文档形成时期…实践说明基于RHEL9(AlmaLinux9.1)部署同类系统(CentOS9,RockyLinux9等)适用但适用场景是不限于此的。
文档说明本文档旨在帮助快速应用KVM虚拟化技术重在实践操作提供了简要参考。
因系统或软件版本不同构建部署可能略有差异但本文未做细分对稍有经验者应不存在明显障碍。
kvm基本了解安装KVM引擎启用和组件安装yum安装kvm相关组件QEMU/KVM代码下载编译安装
图形界面创建和管理虚拟机命令行方式创建网桥和管理虚拟机防火墙调整iptables日志经验
命令行方式创建虚拟机virt-install工具命令详解问题排查问题ubuntu虚机启动时卡在booting
管理kvm虚拟机将linux客户端的console输出重定向到串口ttyS0宿主机控制台
改变虚拟机的参数更改内存更改CPU硬盘扩容修改虚拟机配置删除虚拟机
Bridge方式NAT方式删除默认的NAT网络不是必要的也暂不推荐删除桥接网卡Bridge方式
KVM技术由KVM引擎、虚拟化程序QEMU和管理工具Libvirt组成。
VT或者AMD-V的X86硬件的Linux原生全虚拟化引擎在其中虚拟机被实现为常规的linux进程由标准linux调度程序进行调度。
虚拟化软件QEMU开源的I/O虚拟化软件可以对一个完整的计算机物理层环境进行虚拟化如网卡、硬盘等。
QEMU原本并不是KVM的一部分但其代码包含一套完整的虚拟化解决方案处理机虚拟化、内存虚拟化、设备虚拟化而被KVM所采用。
管理工具Libvirt其设计目的是通过相同的方式管理不同的虚拟化引擎如KVM、Xen、LXC等是一种开源工具主要由以下三部分功能组成
1支持主流编程语言如C、Python、Ruby等的API和库。
libvirt可以对虚拟机进行管理包括虚拟机的创建、启动、关闭、挂起、恢复等也可以对虚拟机的硬件设备进行添加和删除。
VT-x/EPT或AMD-V/RVIV等如果用vmware做实验共有三项虚拟化引擎相关的配置可启用除前面的一项还有虚拟化CPU性能计数器U虚拟化IOMMUIO内存管理单元I。
/lib/systemd/system/vncserver.service
/lib/systemd/system/vncserver:1.service
接下来可安装配置各类虚拟机就像esxi和vmware一样部署虚拟机。
创建一个新的桥接接口也可以改用libvirtd默认网桥即删除默认网桥再新建或直接修改IP地址达到预期配置也行
桥接网络受宿主机iptables的FORWARD链控制在有docker环境情况下默认是DROP的可以添加一条允许或者更为严格的策略脚本。
详细参考脚本/root/sh/iptables_for_kvm.sh
###################################
############################################
脚本名称临时文件或邮件中可能用到避免同类脚本的变量的冲突下面直接取脚本名
PATH/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin###
MACff:ff:ff:ff:ff:ff:52:54:00:e5:74:8f:08:00
MAC前面ff:ff:ff:ff:ff:ff部分是广播地址是源地址后面是目标地址08:00可能是保留用的暂不用关心。
path/var/lib/libvirt/images/ubuntu-20.04.qcow2,size15,formatqcow2,busvirtio,sparsetrue
vnc,listen0.0.0.0,port5901,passwordkvmpass
/opt/isos/ubuntu-22.04.2-live-server-amd64.isovirt-install工具命令详解
“kshttp://172.16.0.1/class.cfg”
指定安装过程完成后的配置选项如指定引导设备次序使用指定的而非安装的kernel/initrd来引导系统启动等
kernelKERNEL,initrdINITRD,kernel_args“console/dev/ttyS0”:
vmdk等阿里云镜像导入支持RAW、QCOW2、VHD等格式推荐传输内容更小的QCOW2或者VHD格式如果考虑和vmware之间迁移可采用vmdk格式
磁盘镜像使用稀疏格式即不立即分配指定大小的空间实践中发现仅采用sparse参数时其值默认是false应明确指定sparsetrue。
查看实际大小时用du
固定的MAC地址省略此选项时将使用随机地址但无论何种方式对于KVM来说其前三段必须时52:54:00
指定图形显示相关配置此选项不会配置任何显示硬件(如显卡)而是仅仅指定虚拟机启动后对其进行访问的接口
TYPE为vnc或spice时所监听的IP地址默认为127.0.0.1可以通过修改/etc/libvirt/qemu.conf定义新的默认值
TYPE为vnc或spice时为远程访问监听的服务进行指定认证密码
附加一个串行设备至当前虚拟机根据设备类型的不同可以使用不同的选项格式为–serial
–videoVIDEO指定显卡设备模型可用取值为cirrus、vga、qxl或vmvga
--hvm当物理机同时支持完全虚拟化和半虚拟化时指定使用完全虚拟化
–virt-type使用的hypervisor如kvm、qemu、xen等所有可用值可以使用’virsh
–print-xml如果虚拟机不需要安装过程(–import、–boot)则显示生成的XML而不是创建此虚拟机默认情况下此选项仍会创建磁盘映像
–force禁止命令进入交互式模式如果有需要回答yes或no选项则自动回答为yes
–dry-run执行创建虚拟机的整个过程但不真正创建虚拟机、改变主机上的设备配置信息及将其创建的需求通知给libvirt
进入系统后检查/det/default/grub配置文件是否有异常。
经大佬排查是grub中配置的console参数只配置了ttyS0导致控制台所有的输出都去了串口而没有在tty0vnc上显示所以在引起系统启动后vnc就看不到任何输出了。
所以对于console参数至少需要配置一个tty0ttyS0根据需求可选。
命令更新一下grub相关文件之后重启测试发现可以通过引导界面进入虚机。
分析推测是卡在grub倒计时但是又没有显示修改倒计时后果然有变化不过是“booting
有网友添加“–virt-typeqemu”的实践发现问题依旧且这已经不是kvm了。
安装客户端过程中发现获取不到IP网络也不通查看宿主机防火墙iptables有关于默认桥接网卡virbr0的配置但没有自定义桥接网卡的配置。
想不到libvirtd即使在rhel9上仍然利用的iptables而非firewalldiptables的FORWARD在有docker环境情况下默认是DROP的/etc/qemu-kvm/bridge.conf的配置似乎和iptables也没有直接关系。
所以在非必要情况下仍把iptables做为唯一防火墙配置仍然是个不错的选择
解决办法改用virbr0做为默认网桥默认是用户网络即NAT模式或为自定义网桥添加iptables的FORWARD链策略。
实践中选择了后者详细参考脚本/root/sh/iptables_for_kvm.sh
/etc/libvirt/qemu/kvm0001-ubuntu20.04.xml
经过如上方法重命名的kvm机直接启动使用即可不会影响udev动态管理设备的文件。
和之前的虚拟机相比、仅仅就是名字变了而已。
将linux客户端的console输出重定向到串口ttyS0宿主机控制台
s/GRUB_CMDLINE_LINUX/GRUB_CMDLINE_LINUXconsoletty0
s/^#GRUB_TERMINAL.*/GRUB_TERMINALconsole
/GRUB_TERMINAL/aGRUB_SERIAL_COMMANDserial
/boot/grub/grub.cfgreboot改变虚拟机的参数
#注意单位必须是KB且不能超过最大内存限定要超过的话只能停止后修改
NetworkingNAT方式让虚拟机访问主机、互联网或本地网络上的资源的简单方法但是不能从网络或其他的客户机访问客户机性能上也需要大的折扣。
BridgeBridge方式这种方式要比用户网络复杂一些但是设置好后客户机与互联网客户机与主机之间的通信都很容易。
Bridge方式配置出来的接口对NAT方式没有影响因为NAT方式并没有使用物理网卡。
但作为客户机每张网卡只能选择其中的一种。
/var/lib/libvirt/images/kvm0001-ubuntu-20.04.qcow2
/var/lib/libvirt/images/kvm0003-ubuntu-20.04.qcow2
实践发现vnc端口mac地址都会自动变但主机名和IP地址需要手动去改。
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback