经过漫长的等待,10TB 的硬盘终于初始化完成了。在正式让这台 12500T 小主机接管数据之前,我们首先需要对 iSCSI 的底层设置进行防掉线优化。
1. iSCSI 防断联与保活优化
群晖的 iSCSI Target 在长时间没有数据交换时,有时会出现幽灵断联。我们需要修改计算端的超时机制。
编辑 iSCSI 配置文件:
sudo nano /etc/iscsi/iscsid.conf
找到并修改以下几行参数(主要目的是将替换超时时间拉长至 24 小时,并缩短探测间隔):
node.session.timeo.replacement_timeout = 86400
node.conn[0].timeo.noop_out_interval = 5
node.conn[0].timeo.noop_out_timeout = 30
设置一个每 5 分钟执行一次的保活脚本,强制给网络硬盘一个极微小的写入动作:
crontab -e
在底部添加一行:
*/5 * * * * touch /data/.iscsi_keepalive
随后,更新所有已发现节点的启动策略为自动,并确保服务开机自启:
sudo iscsiadm -m node -o update -n node.startup -v automatic
sudo systemctl enable iscsid open-iscsi
2. fstab 挂载持久化
编辑 /etc/fstab:
sudo nano /etc/fstab
找到挂载 /data 的那一行。由于是网络磁盘,必须加入 _netdev 和 systemd 相关的延迟挂载指令,防止系统在网络还没通的时候强行挂载导致死机:
UUID=你的磁盘UUID /data ext4 _netdev,x-systemd.automount,x-systemd.requires=iscsi.service,defaults 0 0
3. 部署 Docker 运行环境
接下来安装我们所有应用的基础容器——Docker。这里我们使用官方源进行安装:
# 1. 更新系统并安装必要的证书和工具
sudo apt update
sudo apt install -y ca-certificates curl gnupg
# 2. 添加 Docker 官方 GPG 密钥
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# 3. 将 Docker 仓库添加到 APT 源
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 4. 正式安装 Docker 组件
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 5. 将当前用户加入 docker 组,免去每次 sudo 的麻烦
sudo usermod -aG docker $USER
4. 解决网络盘与 Docker 的启动时序冲突
因为我们的 Docker 数据卷或映射目录可能位于 /data(iSCSI 网络硬盘)上。如果 Docker 启动得比网络硬盘挂载快,容器就会因为找不到目录而报错奔溃。
我们需要让 Docker 稍微等一下。
Bash
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo nano /etc/systemd/system/docker.service.d/delay.conf
写入以下内容:
挂载点 /data下,systemd 会自动生成一个 data.mount 的单元。
[Unit]
After=data.mount
Requires=data.mount
重新加载 systemd 并使其生效:
sudo systemctl daemon-reload
sudo systemctl restart docker
5. 安装 Portainer 面板
一切底层架构铺垫完毕,最后我们安装 Portainer 作为可视化管理工具:
docker volume create portainer_data
docker run -d -p 8000:8000 -p 9443:9443 --name portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:latest
- 打开浏览器,访问
https://192.168.X.X:9443。 - 由于使用了自签名证书,浏览器会提示安全风险,点击“高级”并选择“继续前往”。
- 首次进入设置好管理员账号密码,选择 “Get Started” 即可接管这台 Debian 的本地 Docker 环境。
- 最新版的 Portainer 社区版取消了原生中文支持,社区的汉化镜像有时更新不及时。建议直接使用原版,配合 Chrome 或 Safari 的自带页面翻译功能,体验同样非常流畅。