KVM和Redis(十三)
2026/7/5 13:26:29 网站建设 项目流程

第一章 KVM虚拟化环境部署

服务器/物理机必须开启CPU虚拟化支持,否则KVM无法正常运行。

执行命令校验硬件是否支持虚拟化

grep -E 'vmx|svm' /proc/cpuinfo

注:

  • Intel CPU:输出包含vmx,代表支持Intel虚拟化技术

  • AMD CPU:输出包含svm,代表支持AMD虚拟化技术

  • 无任何输出:BIOS未开启虚拟化,需重启服务器,进入BIOS开启Intel VT-x/AMD-V功能

安装KVM全套依赖组件Ubuntu

sudo apt update -y sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients virt-manager bridge-utils virt-viewer -y

CentOS/RHEL 系统安装命令

sudo yum install qemu-kvm libvirt libvirt-daemon-kvm virt-manager bridge-utils virt-viewer -y

服务启动与开机自启配置

# 启动虚拟化服务 systemctl start libvirtd # 设置开机自启 systemctl enable libvirtd # 查看服务状态(显示active(running)即为正常) systemctl status libvirtd

权限配置

默认只有root用户可以管理KVM虚拟机,普通用户会出现权限不足、无法连接虚拟化设备的问题,将当前用户加入libvirt用户组,永久授权:

sudo usermod -aG libvirt $USER # 刷新权限或重新登录生效 newgrp libvirt

虚拟网络基础配置(NAT+网桥)

KVM默认自带NAT网络,虚拟机可以访问外网,但外网无法访问虚拟机,适合测试使用。企业实操中推荐网桥模式,让虚拟机和宿主机处于同一局域网,拥有独立IP,可被外网设备访问。

virsh net-list --all

第二章 virt-manager图形化创建虚拟机

图形化桌面环境直接执行命令启动工具

virt-manager

打开virt-manager主界面,点击新建虚拟机图标,弹出新建虚拟机向导。

选择本地ISO镜像安装

点击浏览→浏览本地文件,选中提前准备好的系统ISO镜像,工具会自动识别系统版本,无需手动选择,点击下一步。

配置CPU与内存资源

- 内存:2048MB(2G) - CPU核心:2核

创建虚拟磁盘

勾选创建磁盘镜像,磁盘格式默认qcow2(KVM专属格式,支持快照、动态扩容、节省空间),磁盘大小推荐20G-40G,勾选“磁盘自动扩容”,实际使用多少占用多少空间,避免资源浪费。

自定义虚拟机名称

勾选开机自动启动

网络模式选择:默认NAT模式(测试用)/网桥模式(实战用)

确认所有配置无误,点击完成,虚拟机自动开机,进入系统安装界面。后续按照常规Linux系统安装步骤,配置分区、root密码、普通用户、网络即可。

虚拟机安装后优化配置

网卡优化 安装virtio高性能网卡驱动,替换默认通用网卡,提升网络传输速度,降低延迟。 静态IP配置 默认DHCP自动获取IP,重启会变动,配置静态IP方便远程SSH连接、集群通信,是后续Redis集群部署的基础。 远程连接配置 开启SSH服务,关闭防火墙、SELinux(测试环境),实现宿主机、其他设备远程登录虚拟机。

virt-manager核心功能

1. 快照管理:一键创建、恢复、删除快照,系统出错无需重装,秒级回滚,适合测试环境频繁改配置场景 2. 虚拟机克隆:基于已配置好的模板虚拟机,一键克隆多台相同配置机器,批量搭建集群效率极高 3. 硬件扩容:图形化可视化修改CPU、内存、磁盘、网卡,无需修改配置文件 4. 控制台管理:内置终端控制台,无需SSH工具即可直接操作虚拟机

第三章 virt-install命令行创建虚拟机

校验工具是否可用

virt-install --version

准备

1. 确认ISO镜像文件路径(绝对路径,避免相对路径报错) 2. 手动创建qcow2格式虚拟磁盘,统一存放路径 3. 确认网络模式(NAT/网桥)正常

使用qemu-img创建qcow2格式磁盘,指定磁盘大小,提前初始化磁盘文件

qemu-img create -f qcow2 /var/lib/libvirt/images/ubuntu2204.qcow2 20G

注:-f 指定磁盘格式为qcow2,后续支持快照、动态扩容。

virt-install创建命令

virt-install \ --name=ubuntu2204-vm \ --memory=2048 \ --vcpus=2 \ --disk path=/var/lib/libvirt/images/ubuntu2204.qcow2,format=qcow2 \ --os-variant=ubuntu22.04 \ --cdrom=/home/iso/ubuntu-22.04.iso \ --network bridge=br0 \ --graphics none \ --console pty,target_type=serial \ --noautoconsole

参数

--name:虚拟机唯一名称,virsh管理、启停、快照均通过该名称操作 --memory:分配内存大小,单位MB --vcpus:分配CPU核心数 --disk:指定虚拟磁盘路径、格式,绑定虚拟机硬件 --os-variant:指定系统版本,优化虚拟化适配参数 --cdrom:指定系统ISO镜像绝对路径 --network:网络配置,bridge=br0为网桥模式,替换为default即为NAT模式 --graphics none:无图形界面,纯控制台安装,适配服务器环境 --console:开启终端控制台,支持virsh console登录

执行命令进入安装界面

virsh console ubuntu2204-vm

第四章 virsh虚拟机全量管理

查看命令

# 查看正在运行的虚拟机 virsh list # 查看所有虚拟机(包含关机状态) virsh list --all # 查看虚拟机详细硬件信息 virsh dominfo 虚拟机名 # 查看虚拟机网卡、IP信息 virsh domiflist 虚拟机名

虚拟机生命周期启停管理

区分优雅操作和强制操作,生产环境严禁随意强制断电。

# 优雅开机 virsh start 虚拟机名 # 优雅关机(通知系统保存数据,安全关闭) virsh shutdown 虚拟机名 # 强制断电(相当于拔电源,数据可能丢失,仅卡死时使用) virsh destroy 虚拟机名 # 重启虚拟机 virsh reboot 虚拟机名 # 暂停虚拟机 virsh suspend 虚拟机名 # 恢复暂停虚拟机 virsh resume 虚拟机名

开机自启配置

# 设置开机自启 virsh autostart 虚拟机名 # 取消开机自启 virsh autostart --disable 虚拟机名

快照管理

# 创建自定义快照 virsh snapshot-create-as 虚拟机名 快照名 "快照描述" # 查看所有快照 virsh snapshot-list 虚拟机名 # 还原指定快照 virsh snapshot-revert 虚拟机名 --snapshotname 快照名 # 删除无用快照 virsh snapshot-delete 虚拟机名 --snapshotname 快照名

虚拟机配置导出与导入

需复制磁盘,仅导出XML配置文件,即可快速迁移、恢复虚拟机

# 导出虚拟机配置文件 virsh dumpxml 虚拟机名 > /备份路径/虚拟机名.xml # 通过配置文件恢复虚拟机(磁盘文件不变) virsh define /备份路径/虚拟机名.xml # 删除虚拟机(仅删除配置,保留磁盘数据) virsh undefine 虚拟机名

第五章 Redis单机完整版安装与配置

Redis是开源高性能内存键值数据库,单机部署简单、稳定,适用于小型项目、测试环境、个人开发场景。

采用源码编译安装

Redis编译需要gcc编译工具,先安装依赖

# Ubuntu apt install gcc make -y # CentOS yum install gcc make -y

下载并解压Redis源码包

wget http://download.redis.io/releases/redis-6.2.7.tar.gz tar -zxvf redis-6.2.7.tar.gz cd redis-6.2.7

编译与安装

# 编译源码 make # 安装到系统目录 make install

复制配置文件到系统目录,统一管理

cp redis.conf /etc/redis.conf vim /etc/redis.conf 修改以下5个核心参数,解决远程连接、后台运行、安全问题: 1. daemonize yes 开启后台守护进程运行 2. bind 0.0.0.0 允许所有IP远程连接(默认仅本机) 3. protected-mode no 关闭保护模式,适配外网访问 4. requirepass 123456 设置Redis连接密码(自定义) 5. port 6379 默认端口

配置systemd开机自启

vim /etc/systemd/system/redis.service [Unit] Description=Redis Service After=network.target [Service] Type=forking ExecStart=/usr/local/bin/redis-server /etc/redis.conf ExecStop=/usr/local/bin/redis-cli shutdown Restart=always [Install] WantedBy=multi-user.target

服务启停与自启配置

systemctl daemon-reload systemctl start redis systemctl enable redis systemctl status redis

单机Redis测试验证

# 本地连接测试 redis-cli -a 123456 # 远程连接测试 redis-cli -h 服务器IP -p 6379 -a 123456 # 读写测试 set name test get name

第六章 Redis高可用集群部署(3主3从Cluster集群)

6个节点组成集群,自动分片、自动故障转移、支持横向扩容,是Redis生产标准架构。

集群架构原理

- 3个主节点:负责数据分片存储、读写请求处理,16384个哈希槽均匀分配 - 3个从节点:分别对应主节点备份,实时同步主节点数据 - 故障自动转移:任意主节点宕机,对应的从节点自动升级为主节点,集群不中断服务 - 数据分片存储:海量数据分散存储,突破单机内存限制,支持横向扩容

集群主机准备

1. 准备6台服务器/虚拟机,全部完成Redis单机安装 2. 所有节点关闭防火墙、SELinux,互通正常 3. 所有节点Redis密码、端口、配置一致 4. 开启集群功能,关闭保护模式

编辑所有节点redis.conf,新增/修改集群核心配置

# 开启集群模式 cluster-enabled yes # 集群配置文件(自动生成,无需手动修改) cluster-config-file nodes-6379.conf # 节点超时时间 cluster-node-timeout 15000 # 开启持久化 appendonly yes

修改完成后,重启所有节点Redis服务

systemctl restart redis

一键创建3主3从集群

任意一台节点执行集群创建命令

redis-cli --cluster create \ 192.168.1.10:6379 \ 192.168.1.11:6379 \ 192.168.1.12:6379 \ 192.168.1.13:6379 \ 192.168.1.14:6379 \ 192.168.1.15:6379 \ --cluster-replicas 1

注:

--cluster-replicas 1代表每个主节点分配1个从节点,自动组成3主3从架构。

执行过程中输入yes确认自动分配槽位,集群自动搭建完成。

查看集群整体状态

redis-cli -h 节点IP -p 6379 -a 密码 cluster info

查看集群节点信息

redis-cli cluster nodes

集群读写测试

必须使用-c集群模式连接,自动跳转槽位

redis-cli -c -h 集群IP -p 6379 -a 密码 set test 123 get test

高可用故障模拟测试

1. 手动停止任意一台主节点Redis服务 2. 查看集群节点,原从节点自动升为主节点 3. 集群读写业务不中断,无数据丢失 4. 重启原故障主节点,自动降级为从节点,同步新主节点数据

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询