全部指南
每台配有两块或以上数据盘的独立服务器和 GPU 服务器,都可以在交付时就将硬盘组成 RAID 阵列。您可以在部署页面上、操作系统选项旁选择 RAID 方案;我们的团队会在交付前组建好阵列,服务器上线时即具备您所选的容量和冗余。本指南将介绍每种方案、各自会牺牲多少可用容量,以及服务器交付后如何维护阵列。
各方案一览
部署页面会显示您所选服务器在每种方案下的可用容量。作为参考,假设所有硬盘容量相同,均为 S:
| 阵列方案 | 硬盘 | 可用容量 | 可承受的故障 | 适用场景 |
|---|---|---|---|---|
| 2 | 一块硬盘故障 | 双盘服务器上的系统和数据 | ||
| 4 块及以上 | 硬盘总容量的一半 | 每组镜像一块硬盘故障 | 数据库、虚拟机、高负载 NVMe 服务器 | |
| 4 块及以上 | 除两块硬盘外的全部容量 | 任意两块硬盘故障 | 大容量机械硬盘:备份、归档、媒体 | |
| 4 块及以上 | 除一块硬盘外的全部容量 | 一块硬盘故障 | 容量优先,适合可重建的数据 | |
| 2 块及以上 | 全部硬盘的容量 | 无:一块硬盘故障即丢失全部数据 | 临时空间、缓存,以及在别处另有副本的数据集 | |
| 无 RAID | 不限 | 各硬盘独立使用 | 取决于您自己的配置 | ZFS、Ceph 或您自己的方案 |
在配备
我们的推荐
部署页面上标有推荐的方案,就是我们自己也会选择的方案:
- 两块硬盘:
RAID 1 。可用空间减半,但一块硬盘故障只需提交一张工单,不会造成服务中断。读取速度也会更快,因为两块硬盘都能响应读取请求。 - 四块或更多 NVMe 或 SSD 硬盘:
RAID 10 。闪存盘重建一组镜像只需一两个小时,而不是一整天;而且RAID 10 无需计算校验,因此即使在负载下,写入速度依然很快。这是数据库的经典方案。 - 配备大容量机械硬盘的存储服务器:
RAID 6 。重建一块10 TB 的机械硬盘需要一天或更长时间,其间其他每块硬盘都要从头到尾完整读取一遍。使用RAID 5 时,如果在此期间再有一块硬盘故障或出现一个无法读取的扇区,整个阵列就会丢失;RAID 6 则能承受这种情况。
只有当丢失整个阵列除了耗费时间之外不会给您造成任何损失时,才选择
我们的配置方式
- Linux 发行版:使用 Linux 软 RAID(
)。在双盘服务器上,整个系统都位于阵列上。在存储服务器上,操作系统安装在单独的 SSD 上,机械硬盘阵列则挂载于mdadm 。/data - Proxmox VE:使用具有相同冗余能力的 ZFS 存储池(镜像、条带化镜像或
RAID-Z2 ),由 Proxmox 原生管理。 - Windows Server 和自定义 ISO:硬盘以彼此独立的形式交付。使用 Windows 时,可以用“存储空间”将硬盘组合成池,或在“磁盘管理”中设置镜像;使用自有 ISO 时,请在通过 IPMI 控制台安装系统的过程中自行配置。
在这些处理器上,软 RAID 占用的 CPU 资源微乎其微;更换主板后阵列依然可用(阵列信息从硬盘读取,而不是从控制器读取);而且下文的所有工具都适用于它。
检查阵列
在健康的 mdadm[UU][UUUU]
cat /proc/mdstat
mdadm --detail /dev/md0
下划线(如 [U_]
zpool status
使用 smartmontools 查看硬盘本身的健康状况。如果重映射扇区或待映射扇区的数量逐周增长,就预示着硬盘即将损坏:
apt install -y smartmontools
smartctl -H -A /dev/sda
smartctl -H -A /dev/nvme0
我们从不给您发送邮件,因此请让服务器自己提醒您:只需一个每日运行 mdadm --detail --test /dev/md0
硬盘故障时
- 记下故障硬盘的序列号:
会显示序列号,smartctl -i /dev/sdX 则会告诉您是哪个成员盘掉线了。mdadm --detail - 在客户中心的服务器页面提交工单,附上序列号和
的输出。请告诉我们更换硬盘时服务器能否关机;许多机箱支持热插拔。cat /proc/mdstat - 新硬盘装好后,将一块健康硬盘的分区表复制到新硬盘上,为副本生成新的标识符,然后将其重新加入阵列。重建会立即开始,您可以在
中查看进度。此处/proc/mdstat 是健康硬盘,/dev/sda 是新硬盘;在 NVMe 服务器上,设备名称类似/dev/sdb 和/dev/nvme1n1 。/dev/nvme1n1p1
apt install -y gdisk
sgdisk --replicate=/dev/sdb /dev/sda
sgdisk --randomize-guids /dev/sdb
mdadm --manage /dev/md0 --add /dev/sdb1
对于从阵列启动的双盘服务器,还要让新硬盘也能引导启动:在 BIOS 系统上运行 grub-install /dev/sdb
RAID 不是备份
RAID 只能防范一种情况:硬盘损坏。它会像复制数据一样忠实地复制每一个错误,因此被删除的目录、损坏的数据库、勒索软件,或者您失去访问权限的服务器,都会让整个阵列随之丢失。请按照快照指南中的备份章节所示,使用 restic 或 Borg 将加密的异地副本保存在另一台服务器上,或我们的另一个地区中。
以后更改 RAID 方案
更改存有数据的阵列的 RAID 级别既缓慢又有风险,因此请将 RAID 方案视为在服务器整个使用期内都不变的选择。如需从头开始,请通过 IPMI 控制台按所需方案重装系统,或在服务器存放数据之前通过工单申请以新方案重装。重装系统会清空硬盘,因此请先复制出所需的一切。