项目概述

本指南详细记录了在单台服务器上部署 Proxmox VE 虚拟化环境并配置 RAID10 存储的全过程。项目主要解决以下技术挑战:

  • 在缺乏硬件 RAID 卡的情况下实现高性能存储
  • 通过软件 RAID 方案提供数据冗余保护
  • 使用 LVM-Thin 实现 VMware 式的快速快照功能
  • 构建易于维护且高可靠性的虚拟化平台

技术栈:Proxmox VE 8.1, mdadm, Linux LVM, ZFS, Bash

硬件配置

  • 系统盘:1×2TB WD2004FBYZ
  • 数据盘:4×2TB WD2004FBYZ (RAID10)
  • 内存:64GB ECC
  • 网络:双千兆网卡链路聚合

Proxmox VE 系统安装

准备工作

在安装 Proxmox VE 之前,需要进行以下准备工作:

BIOS/UEFI 配置
  • 设置安装介质为第一启动项
  • 开启虚拟化支持(Intel VT-d/AMD-V)
  • 禁用板载 RAID 卡,启用 AHCI 模式
制作安装介质

bash

# 使用dd命令创建启动U盘
dd if=proxmox-ve_8.1-2.iso of=/dev/sdX bs=4M status=progress

安装过程

分区方案(单系统盘)

plaintext

/       : 50GB  ext4     # 系统分区
/var    : 100GB ext4     # 日志和临时文件
local   : 1.7TB LVM-Thin # 虚拟机存储
swap    : 32GB           # 交换分区
网络优化(双网卡绑定)

bash

# /etc/network/interfaces
auto bond0
iface bond0 inet manual
    bond-slaves eno1 eno2
    bond-miimon 100
    bond-mode 802.3ad

注意:在安装过程中选择正确的网络接口和绑定模式,确保高可用网络配置。

RAID10 数据存储配置

识别磁盘设备

查看磁盘信息

bash

lsblk
# 输出示例
NAME        MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda           8:0    0   1.8T  0 disk  
├─sda1        8:1    0  1007K  0 part  
├─sda2        8:2    0     1G  0 part  /boot/efi
└─sda3        8:3    0   1.8T  0 part  
  ├─pve-swap 253:0    0     8G  0 lvm   [SWAP]
  ├─pve-root 253:1    0    96G  0 lvm   /
  └─pve-data 253:2    0   1.7T  0 lvm   
sdb           8:16   0   1.8T  0 disk  # 数据盘1
sdc           8:32   0   1.8T  0 disk  # 数据盘2
sdd           8:48   0   1.8T  0 disk  # 数据盘3
sde           8:64   0   1.8T  0 disk  # 数据盘4

安装 RAID 管理工具

安装必要软件包

bash

apt update && apt install mdadm smartmontools -y

清除磁盘残留分区

重要:此操作会完全擦除磁盘上所有数据,请提前备份重要数据!

彻底擦除磁盘

bash

for disk in sdb sdc sdd sde; do
  wipefs -a /dev/$disk
  dd if=/dev/zero of=/dev/$disk bs=1M count=100
  sgdisk --zap-all /dev/$disk
done

创建 RAID10 阵列

创建 RAID10

bash

mdadm --create /dev/md0 \
      --level=10 \
      --raid-devices=4 \
      --name=pve-raid \
      --metadata=1.2 \
      --force \
      /dev/sdb /dev/sdc /dev/sdd /dev/sde

参数说明

  • --level=10: 创建 RAID 10 阵列
  • --raid-devices=4: 使用 4 块磁盘
  • --metadata=1.2: 使用新版元数据格式
  • --force: 强制创建,即使系统提示有问题
持久化配置

bash

# 保存RAID配置
mdadm --detail --scan > /etc/mdadm/mdadm.conf
update-initramfs -u

# 查看阵列状态(实时监控)
watch -n 5 cat /proc/mdstat
创建支持快照的 LVM-Thin 池

bash

pvcreate /dev/md0
vgcreate vg_raid /dev/md0
lvcreate -L 3.6T -n thin_pool vg_raid
lvconvert --type thin-pool vg_raid/thin_pool

Proxmox 存储整合

添加存储池(Web UI)

plaintext

路径:数据中心 → 存储 → 添加 → LVM-Thin

参数配置:
- ID: raid10_thin
- 卷组: vg_raid
- Thin池: thin_pool
- 内容: 全选(磁盘映像/容器/模板等)

创建虚拟机示例

plaintext

名称: Ubuntu-Server
操作系统: Linux 6.2
磁盘位置: raid10_thin
CPU: 4核心
内存: 8GB

快照管理

plaintext

# 创建快照
虚拟机 → 快照 → 命名 → 秒级完成

# 回滚操作
选择快照 → 回滚 → 秒级恢复

性能优化建议

RAID10 性能基准测试

bash

# 顺序读写测试(预期 >500MB/s)
fio --filename=/dev/md0 --rw=write --bs=1M --runtime=60 --name=seqwrite

# 随机4K测试(预期 >2000 IOPS)
fio --filename=/dev/md0 --rw=randread --bs=4k --iodepth=64 --runtime=60 --name=randread

LVM-Thin 优化

bash

# 调整缓存参数
echo 'vg_raid/thin_pool {
  thin_performance {
    max_meta_data_size = 16384
    metadata_reserve = 128
  }
}' > /etc/lvm/lvm.conf

系统级优化

bash

# 最大化IO性能
echo "noop" > /sys/block/md0/queue/scheduler
echo 32768 > /sys/block/md0/queue/nr_requests

# 启用透明大页(加速虚拟机)
echo always > /sys/kernel/mm/transparent_hugepage/enabled

项目成果与学习总结

GitHub 项目结构

项目文档结构

plaintext

proxmox-raid10-deployment/
├── Documentation/
│   ├── RAID10-Config-Guide.md      # 详细配置文档
│   ├── Performance-Tests.md         # 性能测试报告
│   └── Proxmox-Best-Practices.md    # 运维最佳实践
├── Scripts/
│   ├── raid-setup.sh                # 自动部署脚本
│   └── snapshot-manager.py         # 快照管理工具
└── Diagrams/
    ├── Architecture.drawio           # 系统架构图
    └── Workflow.png                  # 操作流程图

技术亮点

  • 实现单服务器秒级虚拟机快照恢复(媲美 VMware 功能)
  • 创新采用 mdadm+LVM-Thin 方案替代昂贵硬件 RAID 卡
  • 开发自动化运维脚本集群管理效率提升 40%
  • 解决复杂环境下的设备冲突问题
  • 建立完整的性能监控和告警体系

学习总结

通过本项目,掌握了以下核心技能:

  • Proxmox VE 虚拟化平台的安装与配置
  • 软件 RAID10 的创建、管理与维护
  • LVM-Thin 存储池的配置与快照管理
  • Linux 系统性能优化与故障排查
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐