第一章 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全套依赖组件Ubuntusudo apt update -y sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients virt-manager bridge-utils virt-viewer -yCentOS/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与内存资源- 内存2048MB2G - CPU核心2核创建虚拟磁盘勾选创建磁盘镜像磁盘格式默认qcow2KVM专属格式支持快照、动态扩容、节省空间磁盘大小推荐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 \ --nameubuntu2204-vm \ --memory2048 \ --vcpus2 \ --disk path/var/lib/libvirt/images/ubuntu2204.qcow2,formatqcow2 \ --os-variantubuntu22.04 \ --cdrom/home/iso/ubuntu-22.04.iso \ --network bridgebr0 \ --graphics none \ --console pty,target_typeserial \ --noautoconsole参数--name虚拟机唯一名称virsh管理、启停、快照均通过该名称操作 --memory分配内存大小单位MB --vcpus分配CPU核心数 --disk指定虚拟磁盘路径、格式绑定虚拟机硬件 --os-variant指定系统版本优化虚拟化适配参数 --cdrom指定系统ISO镜像绝对路径 --network网络配置bridgebr0为网桥模式替换为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] DescriptionRedis Service Afternetwork.target [Service] Typeforking ExecStart/usr/local/bin/redis-server /etc/redis.conf ExecStop/usr/local/bin/redis-cli shutdown Restartalways [Install] WantedBymulti-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. 重启原故障主节点自动降级为从节点同步新主节点数据