我在日本的存算分离方案(三)iscsi硬盘挂载后的性能调优以及docker的安装
我在日本的存算分离方案(三)iscsi硬盘挂载后的性能调优以及docker的安装

我在日本的存算分离方案(三)iscsi硬盘挂载后的性能调优以及docker的安装

经过漫长的等待,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 的那一行。由于是网络磁盘,必须加入 _netdevsystemd 相关的延迟挂载指令,防止系统在网络还没通的时候强行挂载导致死机:

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 的自带页面翻译功能,体验同样非常流畅。