服务器重构迁移计划
背景:由于 DeepSeek 32B R1 发布,这一款大模型非常有部署的前景。但是,我家里只有一颗 4090 的显卡,如果我要运行这个模型,我就没有用来打游戏的电脑了。因此,我迫切的需要一台强力的 Nas,能过在满足我过去计算性能的前提下,运行 DeepSeek 32B R1 模型。
老设备列表
- 设备 MS:13900H,4个硬盘位:
- 带有 480GB 傲腾,用于存储操作系统。
- 带有 8TB U2盘位,连接 SN640,用于存储 Docker 上下文。
- 连接三星 990 Pro,用于缓存机械阵列。
- 有外置 64TB 机械阵列。用于业务数据存储。
- 96GB 内存。带万兆SFP+口。目前作为主服务器使用。
- 设备 Ultra:13900KS,带有两个空 3.5 寸机械盘位。32GB 内存。RTX 4090 显卡。目前作为主游戏设备使用。
闲置设备:
- 三星 PM1725b 6.4TB SSD
迁移目标
- 设备 ProArt:新购设备。作为新的主服务器使用。运行所有过去的业务。并且运行 DeepSeek 32B R1 模型。享受 10Gbps 网络。
- 设备 Ultra:最终地位不变。作为主工作区电脑使用。用于游戏和媒体编辑工作。享受 2.5Gbps 网络。顺便帮着 ProArt 来备份数据。
- 设备 MS:移除其机械阵列。作为副工作区电脑使用。用于开发工作。并且享受到 ProArt 的 10Gbps 网络。
服务器算力需求
新购设备,将作为主服务器。要求如下:
- 尽可能节省电力。待机功耗不得超过 150W。
- 必须要有万兆网络支持。
- 操作系统必须安装在高速固态上。
- 单核性能必须很强以满足单核的游戏、虚拟化、编译、数据库、容器等工作。
- 必须能过运行 DeepSeek R1 32B 模型。至少每秒 30 个Token。
- 至少有4个3.5寸盘位,容纳 64TB 的机械容量。
- 至少有6TB的高速固态来缓存机械。
新购设备 ProArt
新购设备 ProArt,配置清单:
- 1935 机箱:华硕 ProArt PA602 创艺国度全塔设计师台式机电脑办公水冷机箱
- 1699 冷排:华硕 ProArt PA420一体式CPU
- 3649 主板:华硕 ProArt Z890-CREATOR Wifi7 DDR5 10Gbps 主板
- 3560 CPU:Intel® Core™ Ultra 9 Processor 285
- 2998 内存:美商海盗船 6000 32GBx4 Z30 套条
- 6599 显卡:NVIDIA GeForce RTX™ 3090 24GB 涡轮卡
- 1646 电源:华硕 TUF 装弹手 1000W ATX3.0 黑色全模组电源
新购设备:
- 2458 全新希捷酷狼 Pro+ 16TB 机械硬盘 x2 作为暂存盘,以及最终迁移完成后的备份盘。
- 914 TP-LINK 10G 万兆SFP电口模块 光电转换 TL-SM510U 万兆电口SFP+模块x2
- 一个用于连接核心交换机和 ProArt。
- 一个用于连接 MS 和书房的 10Gbps AP。
- 709 施耐德 BP1000CH 不间断电源 600W。
迁移计划
第一阶段 - 将业务挪动到 Ultra
- 将新的暂存盘插入到设备 Ultra。使用 rsync 将数据挪动到 Ultra 中。
- 将业务停止,在Ultra上启动业务。从而无缝迁移。
第二阶段 - 将 MS 降级为副工作区
- 将 64TB机械阵列 从MS上拔掉,准备迁移到ProArt上。
- 将三星 990 Pro 从MS上拔掉,准备迁移到ProArt上。
- 将 8TB U2 SN640 在 MS 上保留,用于作为数据盘。
- MS 重新安装消费者操作系统,安装到傲腾中。
第三阶段 - 对 ProArt 装机
- 将机箱、冷排、主板、CPU、内存、显卡、电源全部组装成一台新机器。
- 将64TB的机械阵列放入新机器,使用SATA连接,用于业务数据存储。
- 将三星 990 Pro 1TB SSD 插入新机器的 M.2 插槽,用于存储操作系统和 Docker 上下文。
- 将三星 PM1725b 6.4TB SSD 插入新机器的PCIE槽,用于缓存机械阵列。
- 将 ProArt 放置在冰箱旁边,插入施耐德 BP1000CH 不间断电源。
第四阶段 - 将业务迁移到 ProArt
- 将业务停止,在ProArt上启动业务。从而无缝迁移。
- 将 Ultra 重装系统,用于游戏和媒体编辑工作。同时,两颗 16TB 机械盘用于备份 ProArt 的业务数据。
最终拓扑
MS
- 设备 MS:在 SFP+接口使用万兆电口SFP+模块,连入书房的 10Gbps AP 电口。享受到核心交换机的 10Gbps 网络。
- MS 连接的硬盘有:
- 8TB U2 SN640,用于业务数据存储。
- 480GB 傲腾,用于存储操作系统。
Ultra
- 设备 Ultra:在主板上的 2.5Gbps 电口,使用网线,连入书房的 2.5Gbps 电口。享受到核心交换机的 2.5Gbps 网络。
- Ultra 连接的硬盘有:
- 过去它自己自带的硬盘。
- 16TB 机械盘,用于备份 ProArt 的业务数据。
- 16TB 机械盘,用于备份 ProArt 的业务数据。
ProArt
- 设备 ProArt:在冰箱旁边打洞,使用主板上的 10Gbps 电口,使用网线,连入核心交换机的 10Gbps 万兆电口SFP+模块。享受到核心交换机的 10Gbps 网络。
- ProArt 连接的硬盘有:
- 64TB 机械阵列,用于业务数据存储。
- 1TB 三星 990 Pro,用于存储操作系统和 Docker 上下文。
- 6.4TB 三星 PM1725b,用于缓存机械阵列。
最终闲置设备
在刚刚的迁移结束后,除了 MS,ProArt,Ultra 三台设备外,还有以下设备会暂时没有用处:
- 原有的机械阵列架。预计价格 500 元。
- MS 上原有的 SFP+ 光模块。预计价格 200 元。
- 交换机上原有的留给 MS 的 10Gbps SFP+ 光模块。预计价格 200 元。
FAQ
ProArt 势必会产生大量的热量,如何解决?
ProArt 将不再放置在柜子里,而是放置在冰箱旁边。在柜子里打洞,以联通核心交换机。ProArt 直接从冰箱后面的 220V 电源插座接入电源。
书房怎么让 Ultra 和 MS 有线联网?
书房的 Ultra 通过网线连接到书房的 2.5Gbps 电口。MS 通过万兆电口SFP+模块连接到书房的 10Gbps 电口。两者都能享受到核心交换机的 2.5Gbps 和 10Gbps 网络。注意要在书房同时布置两根网线。
迁移到 ProArt 后,四颗 16TB 机械盘怎么挂载成一个目录?
ProArt 上的 64TB 机械阵列,使用 SATA 连接,使用 mdadm 进行 RAID10,得到 /dev/md0
。然后使用 bcache,将 6.4TB SSD 作为缓存盘,将 /dev/md0
作为后端盘。最终得到 /dev/bcache0
。再将 /dev/bcache0
挂载到 /swarm-vol
。
具体命令如下: (假设机械阵列为 /dev/sda
, /dev/sdb
, /dev/sdc
, /dev/sdd
,缓存固态为 /dev/nvme0n1
)
# 安装 mdadm 和 bcache-tools
sudo apt update
sudo apt install mdadm bcache-tools
# 创建 RAID10
sudo mdadm --create /dev/md0 --level=10 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd
# 查看 md0 的状态
sudo mdadm --detail /dev/md0
# 持久化 md0
sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
sudo update-initramfs -u -k all
# 重启,确保 md0 能够正常挂载
sudo reboot
sudo fdisk -l /dev/md0
# 创建 bcache
sudo wipefs -a /dev/md0
sudo make-bcache -B /dev/md0
# 查看 bcache 的状态
sudo bcache-super-show /dev/md0
# 为 bcache 创建缓存
sudo wipefs -a /dev/nvme0n1
sudo make-bcache -C /dev/nvme0n1
sudo bcache-super-show /dev/nvme0n1 # 得到 cset.uuid
# 将缓存加入到 bcache
echo "<cache_uuid>" | sudo tee /sys/block/bcache0/bcache/attach
# 调整缓存策略
echo writeback | sudo tee /sys/block/bcache0/bcache/cache_mode
echo 0 | sudo tee /sys/block/bcache0/bcache/sequential_cutoff
echo 50 | sudo tee /sys/block/bcache0/bcache/writeback_percent
# 挂载 bcache
sudo mkfs.ext4 /dev/bcache0
sudo mkdir /dev/bcache0 /swarm-vol
# 持久化挂载
echo "/dev/bcache0 /swarm-vol ext4 defaults,noatime,nofail 0 0" | sudo tee -a /etc/fstab