下载地址

功能列表

  • 磁盘管理

    • 获取磁盘列表
    • 查看磁盘详细信息(型号、序列号、大小、SMART信息、NVMe信息)
    • 监控磁盘性能指标(IOPS、吞吐量、延迟)
    • 控制磁盘休眠状态
  • 存储池管理

    • 获取存储池列表
    • 查看存储池信息
    • 基于可用磁盘创建不同 RAID 等级的存储池(RAID0/1/5/6)
    • 创建存储池
    • 修改存储池名称和描述
    • 删除存储池
    • 扩容存储池(添加磁盘)
    • 缩容存储池(移除磁盘)
  • 卷管理

    • 获取卷列表
    • 查看卷详细信息
    • 在存储池上创建LVM卷
    • 使用本地路径创建绑定挂载卷
    • 修改卷名称、挂载选项
    • 删除卷
    • 共享卷给用户
    • 取消卷共享
  • 用户管理

    • 获取用户列表
    • 查看用户详细信息
    • 创建Linux用户(自动配置Samba服务)
    • 修改用户信息(密码、昵称、Samba设置)
    • 删除用户
    • 管理用户家目录
  • 公共目录管理

    • 获取公共目录列表
    • 查看公共目录详细信息
    • 在卷上创建公共目录
    • 删除公共目录
    • 共享公共目录给多个用户
    • 设置公共目录读写权限
    • 取消公共目录共享

系统要求

  • 操作系统:Ubuntu 20.04 LTS 或更高版本
  • 架构:x86_64 或 aarch64

安装步骤

1. 下载并解压安装包

# 根据机器架构下载对应安装包,以 x86_64 机型为例
wget http://files.ictrek.internal/component/ictrekstor/builds/latest/ictrekstor-nas-x86_64.tar.gz

# 解压产品包
tar -xzf ictrekstor-nas-x86_64.tar.gz
cd ictrekstor-nas-x86_64

2. 安装依赖

# 安装必需的依赖包
sudo apt update
sudo apt install -y samba jq sqlite3 nginx smartmontools nvme-cli hdparm

3. 执行安装

# 以root权限执行安装脚本
sudo ./install.sh --install

安装过程会:

  • 检查依赖是否已安装
  • 删除nginx默认配置(避免启动失败)
  • 拷贝二进制文件到 /usr/local/bin/ictrekstor-nas
  • 创建数据库目录 /var/lib/ictrekstor-nas
  • 创建配置文件 /etc/ictrekstor-nas.yaml
  • 创建systemd服务文件
  • 启动并启用ictrekstor-nas服务
  • 创建nginx反向代理配置(监听端口18088)
  • 重启nginx服务

3. 验证安装

# 检查服务状态
systemctl status ictrekstor-nas

# 检查健康状态
curl http://localhost:18088/api/ictrekstor/nas/health

# 查看磁盘列表
curl -X POST http://localhost:18088/api/ictrekstor/nas/disks/list

配置说明

默认配置

安装后默认配置文件位于 /etc/ictrekstor-nas.yaml

port: 18099
database: sqlite:///var/lib/ictrekstor-nas/sqlite.db?mode=rwc

环境变量配置

服务支持通过环境变量进行配置,优先级高于配置文件(若无特殊要求,建议不要更改):

环境变量说明默认值
ICTREKSTOR_NAS_LOCAL_PREFIX本地数据前缀路径/data
ICTREKSTOR_NAS_SHARE_DIR共享目录挂载点/share
ICTREKSTOR_NAS_PORT服务监听端口18099
ICTREKSTOR_NAS_LOG_LEVEL日志级别info

使用方法

API 文档见:http://gitlab.ictrek.internal/ictrek/ictrekstor/-/blob/master/docs/api/ictrekstor-nas.md

API 访问

所有API通过nginx反向代理访问,基础URL为:http://<server>:18088/api/ictrekstor/nas/

响应格式

所有API响应遵循统一格式:

{
  "code": 0,
  "code_name": "OK",
  "msg": null,
  "data": {
    // 实际数据
  }
}

错误处理

  • 成功时:code 为 0,code_name 为 "OK"
  • 失败时:code 不为 0,错误信息在 msg 字段中
  • 常见错误类别:

    • ictrekstor:: - 业务错误
    • system:: - 系统错误(Linux errno)

主要功能操作

1. 磁盘管理

  • 获取磁盘列表:POST /disks/list
  • 获取磁盘性能指标:POST /disks/metrics
  • 强制磁盘休眠:POST /disks/spindown/set

2. 存储池管理

  • 获取存储池列表:POST /pools/list
  • 创建存储池:POST /pools/create
  • 修改存储池:POST /pools/update
  • 扩容存储池:POST /pools/expand
  • 缩容存储池:POST /pools/shrink
  • 删除存储池:POST /pools/delete

3. 卷管理

  • 获取卷列表:POST /volumes/list
  • 创建卷:POST /volumes/create
  • 修改卷:POST /volumes/update
  • 删除卷:POST /volumes/delete
  • 共享卷给用户:POST /volumes/share
  • 取消卷共享:POST /volumes/unshare

4. 用户管理

  • 获取用户列表:POST /users/list
  • 创建用户:POST /users/create
  • 修改用户:POST /users/update
  • 删除用户:POST /users/delete

5. 公共目录管理

  • 获取公共目录列表:POST /public_directories/list
  • 创建公共目录:POST /public_directories/create
  • 删除公共目录:POST /public_directories/delete
  • 共享公共目录:POST /public_directories/share
  • 取消公共目录共享:POST /public_directories/unshare

卸载步骤

1. 正常卸载(保留数据)

# 执行卸载(删除用户、清理挂载点、停止RAID但不清除数据)
sudo ./install.sh --uninstall --yes-i-am-sure

2. 深度清理(清除所有数据,在下一次安装 install 后执行)

# 执行深度清理(清除RAID元数据、删除LVM资源)
sudo ./install.sh --cleanup --yes-i-am-sure