NVIDIA GPU 物理機使用Galaxy鏡像部署DeepSeek指南(多機版)
更新時間 2025-04-02 11:35:55
最近更新時間: 2025-04-02 11:35:55
分享文章
本指南基于物理機的Galaxy鏡像進行集群化快速部署,區別于傳統的DeepSeek部署方式依賴于手動編寫配置腳本并拉起服務,本指南支持了多節點分布式部署,集成了Slurm作業調度系統,優化了存儲架構與高可用性設計。
一、環境準備
1.1 前置條件
基礎要求:
節點類型? ? 鏡像要求? ? 數量要求
管理節點? ? CentOS-7.9@GalaxyMaster-GPU鏡像 ? ? 1臺
計算節點? ? CentOS-7.9@GalaxyCompute-GPU鏡像? ? ≥2臺
服務要求:Slurm作業調度系統已正常啟動、所有節點間SSH免密互通、NTP時間同步服務已配置。
1.2 存儲配置
查看磁盤設備:
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 446.6G 0 disk
|-sda1 8:1 0 122M 0 part
|-sda2 8:2 0 976.6M 0 part /boot/efi
|-sda3 8:3 0 1.9G 0 part /boot
`-sda4 8:4 0 443.7G 0 part
|-system-lv_swap 253:0 0 16G 0 lvm [SWAP]
`-system-lv_root 253:1 0 427.7G 0 lvm /
loop0 7:0 0 58.6M 1 loop
nvme0n1 259:1 0 2.9T 0 disk
nvme1n1 259:0 0 2.9T 0 disk
執行以下腳本將兩塊NVME合并成一塊并掛載在/mnt/data目錄下,也可按需掛載:
$ more mount_nvme.sh
# 定義設備名稱(請根據實際情況修改)
DISKS=(/dev/nvme0n1 /dev/nvme1n1)
VG_NAME="vg_data"
LV_NAME="lv_data"
MOUNT_POINT="/mnt/data"
# 創建 LVM 物理卷
pvcreate "${DISKS[@]}"
# 創建卷組
vgcreate "$VG_NAME" "${DISKS[@]}"
# 創建邏輯卷,使用整個卷組
lvcreate -l 100%FREE -n "$LV_NAME" "$VG_NAME"
# 格式化邏輯卷(使用 XFS,可改成 ext4)
mkfs.xfs "/dev/$VG_NAME/$LV_NAME"
# 創建掛載目錄
mkdir -p "$MOUNT_POINT"
# 掛載邏輯卷
mount "/dev/$VG_NAME/$LV_NAME" "$MOUNT_POINT"
# 獲取 UUID 并寫入 fstab,確保開機自動掛載
UUID=$(blkid -s UUID -o value "/dev/$VG_NAME/$LV_NAME")
echo "UUID=$UUID $MOUNT_POINT xfs defaults 0 0" >> /etc/fstab
# 輸出成功信息
echo "LVM 配置完成,已掛載到 $MOUNT_POINT"
執行部署腳本:sh mount_nvme.sh,輸入y進行確認。
驗證掛載結果:df -hT /mnt/data
1.3 軟件部署
1.3.1 獲取部署包
cd /home
wget //jiangsu-10.zos.daliqc.cn/galaxy/deployment/deepseek-nv-nnode-v20250323.tar
tar xvf deepseek-nv-nnode-v20250323.tar
1.3.2 更新vLLM組件
cd /home/vllm
rm -f vllm-openai_v0.8.1.sif # 清理演示文件
wget //jiangsu-10.zos.daliqc.cn/galaxy/apptainer/vllm/vllm-openai_v0.8.1.sif
1.4 模型準備
通過Hugging Face或ModelScope下載模型文件。
所有計算節點需在相同路徑存放模型:/mnt/data/hfcache/DeepSeek-R1。
推薦使用并行文件系統或rsync保持節點間模型一致性。
二、服務管理
2.1 服務配置
2.1.1 調度參數配置
編輯/home/vllm/srun_deepseek.sh,如果是2臺或者3臺,需修改-N后面的數值:
#!/bin/bash
#SBATCH -N 4
...
2.1.2 模型參數配置
編輯/home/vllm/node.sh:
export MODEL_DIR=/mnt/data/hfcache/DeepSeek-R1
export MODEL_NAME=DeepSeek-R1
export VLLM_IMAGE=vllm-openai_v0.8.1.sif
export VLLM_API_KEY="password"
其中:
- MODEL_DIR為模型具體位置
- MODEL_NAME為顯示的模型名稱
- VLLM_IMAGE為使用的vllm apptainer容器
- VLLM_API_KEY為模型密鑰,默認為password
2.2 DeepSeek服務啟動
cd /home/deepseek
sbatch srun_deepseek.sh
輸出示例:Submitted batch job 403
查看日志目錄下的err文件,當出現如下信息時,表示服務啟動:
INFO: Started server process [409]
INFO: Waiting for application startup.
INFO: Application startup complete.
2.3 查看DeepSeek狀態
可通過slurm命令squeue,查看作業運行信息:
$ squeue
JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
403 batch DS_L40S root R 8:19 4 compute[01-04]
注意可在/home/deepseek/log目錄中查看當前作業的日志文件。
2.4 DeepSeek服務停止
上述示例中,DeepSeek服務的JOB ID為403,如果需停止DeepSeek服務,命令為:
scancel 403 或 scancel --me