initial-import: 2026-04-11 21:18:55
This commit is contained in:
@@ -0,0 +1,326 @@
|
||||
# NAS 全自动部署方案
|
||||
|
||||
## 📋 方案概述
|
||||
|
||||
本方案提供完全自动化的 NAS 部署和管理,**零手动干预**,包含以下特性:
|
||||
|
||||
- ✅ 开机自动挂载
|
||||
- ✅ 断线自动重连(每分钟检查)
|
||||
- ✅ 网络恢复后自动挂载
|
||||
- ✅ 日志记录和监控
|
||||
- ✅ 一键管理工具
|
||||
- ✅ SMB 性能优化
|
||||
|
||||
---
|
||||
|
||||
## 🚀 快速开始
|
||||
|
||||
### 一步部署(推荐)
|
||||
|
||||
只需运行一条命令,全自动完成所有配置:
|
||||
|
||||
```bash
|
||||
cd /Users/chufeng/.openclaw/workspace-jiangwei
|
||||
sudo ./nas_auto_deploy.sh
|
||||
```
|
||||
|
||||
**就这么简单!** 脚本会自动完成:
|
||||
1. ✅ 检查网络连接
|
||||
2. ✅ 创建挂载点
|
||||
3. ✅ 测试挂载
|
||||
4. ✅ 创建 Launch Daemon 守护进程
|
||||
5. ✅ 优化 SMB 配置
|
||||
6. ✅ 启动自动挂载服务
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ 管理工具
|
||||
|
||||
部署完成后,使用 `nas_manager.sh` 进行日常管理:
|
||||
|
||||
```bash
|
||||
cd /Users/chufeng/.openclaw/workspace-jiangwei
|
||||
./nas_manager.sh status # 查看状态
|
||||
./nas_manager.sh mount # 手动挂载
|
||||
./nas_manager.sh umount # 卸载
|
||||
./nas_manager.sh restart # 重启守护进程
|
||||
./nas_manager.sh logs # 查看日志
|
||||
./nas_manager.sh follow # 实时跟踪日志
|
||||
./nas_manager.sh help # 显示帮助
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📁 文件说明
|
||||
|
||||
| 文件 | 说明 |
|
||||
|------|------|
|
||||
| `nas_auto_deploy.sh` | 全自动部署脚本(只需运行一次) |
|
||||
| `nas_manager.sh` | 日常管理工具 |
|
||||
| `nas_mounter.sh` | 自动挂载守护脚本(自动生成) |
|
||||
| `logs/nas_mount.log` | 挂载日志 |
|
||||
| `logs/nas_mount_error.log` | 错误日志 |
|
||||
|
||||
---
|
||||
|
||||
## 🔧 技术原理
|
||||
|
||||
### 架构图
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────┐
|
||||
│ macOS 启动系统 │
|
||||
└──────────────────┬──────────────────────────────┘
|
||||
│
|
||||
▼
|
||||
┌─────────────────────────────────────────────────┐
|
||||
│ Launch Daemon (com.user.nasmount) │
|
||||
│ - 开机自动运行 │
|
||||
│ - 每分钟检查一次挂载状态 │
|
||||
│ - 断线自动重连 │
|
||||
└──────────────────┬──────────────────────────────┘
|
||||
│
|
||||
▼
|
||||
┌─────────────────────────────────────────────────┐
|
||||
│ nas_mounter.sh (挂载守护脚本) │
|
||||
│ - 检查网络连接 │
|
||||
│ - 检查挂载状态 │
|
||||
│ - 执行挂载/重连 │
|
||||
│ - 创建目录结构 │
|
||||
└──────────────────┬──────────────────────────────┘
|
||||
│
|
||||
▼
|
||||
┌─────────────────────────────────────────────────┐
|
||||
│ NAS (192.168.2.154) │
|
||||
│ 共享文件夹: stock │
|
||||
└─────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
### Launch Daemon 配置
|
||||
|
||||
- **Label**: `com.user.nasmount`
|
||||
- **运行时机**: 开机自动运行 + 每分钟检查
|
||||
- **触发条件**: 当 `${MOUNT_POINT}/.mounted` 不存在时触发
|
||||
- **日志位置**: `logs/nas_mount.log` 和 `logs/nas_mount_error.log`
|
||||
|
||||
---
|
||||
|
||||
## 📊 状态检查示例
|
||||
|
||||
运行 `./nas_manager.sh status` 会显示:
|
||||
|
||||
```
|
||||
============================================
|
||||
NAS 管理工具
|
||||
============================================
|
||||
|
||||
【状态检查】
|
||||
|
||||
网络连接: ✅ 正常 (192.168.2.154)
|
||||
NAS 挂载: ✅ 已挂载
|
||||
挂载点: /Users/chufeng/nas/stock
|
||||
|
||||
【挂载点内容】
|
||||
total 0
|
||||
drwx------ 1 chufeng staff 16K Mar 27 23:00 .
|
||||
drwxr-xr-x 3 chufeng staff 96B Mar 27 23:00 ..
|
||||
drwx------ 1 chufeng staff 16K Mar 27 23:00 A股数据
|
||||
drwx------ 1 chufeng staff 16K Mar 27 23:00 回测结果
|
||||
drwx------ 1 chufeng staff 16K Mar 27 23:00 代码库
|
||||
drwx------ 1 chufeng staff 16K Mar 27 23:00 临时文件
|
||||
|
||||
【Launch Daemon 状态】
|
||||
✅ 正在运行
|
||||
|
||||
【磁盘使用情况】
|
||||
Filesystem Size Used Avail Capacity iused ifree %iused Mounted on
|
||||
//...@.../stock 10T 500G 9.5T 5% 123456 123456789 0% /Users/chufeng/nas/stock
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔍 日志查看
|
||||
|
||||
### 查看最近日志
|
||||
|
||||
```bash
|
||||
./nas_manager.sh logs
|
||||
```
|
||||
|
||||
输出示例:
|
||||
```
|
||||
[2026-03-27 23:00:00] 开始挂载 NAS...
|
||||
[2026-03-27 23:00:01] NAS 挂载成功: /Users/chufeng/nas/stock
|
||||
[2026-03-27 23:00:01] 创建目录结构...
|
||||
[2026-03-27 23:00:02] 目录结构创建完成
|
||||
[2026-03-27 23:01:00] NAS 已挂载,无需操作
|
||||
[2026-03-27 23:02:00] NAS 已挂载,无需操作
|
||||
```
|
||||
|
||||
### 实时跟踪日志
|
||||
|
||||
```bash
|
||||
./nas_manager.sh follow
|
||||
```
|
||||
|
||||
按 `Ctrl+C` 退出。
|
||||
|
||||
---
|
||||
|
||||
## 🛡️ 故障排查
|
||||
|
||||
### 问题1: 未自动挂载
|
||||
|
||||
**检查步骤:**
|
||||
```bash
|
||||
# 1. 查看状态
|
||||
./nas_manager.sh status
|
||||
|
||||
# 2. 查看日志
|
||||
./nas_manager.sh logs
|
||||
|
||||
# 3. 手动挂载测试
|
||||
./nas_manager.sh mount
|
||||
```
|
||||
|
||||
### 问题2: Launch Daemon 未运行
|
||||
|
||||
**重启守护进程:**
|
||||
```bash
|
||||
./nas_manager.sh restart
|
||||
```
|
||||
|
||||
### 问题3: 网络中断后未重连
|
||||
|
||||
Launch Daemon 会每分钟检查一次,最多等待 1 分钟自动重连。
|
||||
|
||||
如需立即重连:
|
||||
```bash
|
||||
./nas_manager.sh restart
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ⚙️ 高级配置
|
||||
|
||||
### 修改检查间隔
|
||||
|
||||
编辑 `/Library/LaunchDaemons/com.user.nasmount.plist`:
|
||||
|
||||
```xml
|
||||
<key>StartInterval</key>
|
||||
<integer>60</integer> <!-- 修改这个数字(秒) -->
|
||||
```
|
||||
|
||||
然后重启:
|
||||
```bash
|
||||
sudo launchctl unload /Library/LaunchDaemons/com.user.nasmount.plist
|
||||
sudo launchctl load -w /Library/LaunchDaemons/com.user.nasmount.plist
|
||||
```
|
||||
|
||||
### 修改 NAS 配置
|
||||
|
||||
编辑 `nas_mounter.sh` 顶部的配置部分:
|
||||
|
||||
```bash
|
||||
NAS_IP="192.168.2.154"
|
||||
NAS_USER="cfdaily"
|
||||
NAS_PASS="Ccf7561523"
|
||||
NAS_SHARE="stock"
|
||||
MOUNT_POINT="/Users/chufeng/nas/stock"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📋 目录结构
|
||||
|
||||
挂载成功后,NAS 会自动创建以下结构:
|
||||
|
||||
```
|
||||
/Users/chufeng/nas/stock/
|
||||
├── .mounted # 挂载标记文件(自动生成)
|
||||
├── A股数据/
|
||||
│ ├── 日线数据/
|
||||
│ ├── 分钟线数据/
|
||||
│ └── 财务数据/
|
||||
├── 回测结果/
|
||||
│ ├── 策略回测/
|
||||
│ └── 性能报告/
|
||||
├── 代码库/
|
||||
│ ├── 策略代码/
|
||||
│ └── 工具脚本/
|
||||
└── 临时文件/
|
||||
├── 下载缓存/
|
||||
└── 临时数据/
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🎯 完整使用流程
|
||||
|
||||
### 第一次部署
|
||||
|
||||
```bash
|
||||
# 1. 进入工作目录
|
||||
cd /Users/chufeng/.openclaw/workspace-jiangwei
|
||||
|
||||
# 2. 运行全自动部署(只需一次)
|
||||
sudo ./nas_auto_deploy.sh
|
||||
|
||||
# 3. 验证状态
|
||||
./nas_manager.sh status
|
||||
```
|
||||
|
||||
### 日常使用
|
||||
|
||||
```bash
|
||||
# 查看状态
|
||||
./nas_manager.sh status
|
||||
|
||||
# 查看日志
|
||||
./nas_manager.sh logs
|
||||
|
||||
# 实时跟踪
|
||||
./nas_manager.sh follow
|
||||
```
|
||||
|
||||
### 如需手动干预
|
||||
|
||||
```bash
|
||||
# 手动挂载
|
||||
./nas_manager.sh mount
|
||||
|
||||
# 卸载
|
||||
./nas_manager.sh umount
|
||||
|
||||
# 重启守护进程
|
||||
./nas_manager.sh restart
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ✅ 验收清单
|
||||
|
||||
部署完成后,确认以下项目:
|
||||
|
||||
- [ ] 运行 `sudo ./nas_auto_deploy.sh` 无错误
|
||||
- [ ] `./nas_manager.sh status` 显示 NAS 已挂载
|
||||
- [ ] `ls -la /Users/chufeng/nas/stock` 可以看到目录结构
|
||||
- [ ] 重启 Mac 后 NAS 自动挂载
|
||||
- [ ] 断开网络再恢复后,1 分钟内自动重连
|
||||
|
||||
---
|
||||
|
||||
## 📞 获取帮助
|
||||
|
||||
如遇问题:
|
||||
|
||||
1. 查看日志:`./nas_manager.sh logs`
|
||||
2. 检查状态:`./nas_manager.sh status`
|
||||
3. 重启守护:`./nas_manager.sh restart`
|
||||
|
||||
---
|
||||
|
||||
**文档版本**: 1.0
|
||||
**最后更新**: 2026年3月27日
|
||||
**作者**: 姜维 伯约
|
||||
@@ -0,0 +1,266 @@
|
||||
# Mac mini外接局域网NAS存储调研报告
|
||||
|
||||
## 一、调研背景
|
||||
为满足A股量化回测需求,需评估外接局域网NAS存储到Mac mini的可行性。数据规模:
|
||||
- 日线数据:2-3GB
|
||||
- 财务数据:几百MB
|
||||
- 未来分钟线:几十GB
|
||||
|
||||
---
|
||||
|
||||
## 二、可行性分析
|
||||
|
||||
### 2.1 技术可行性:完全可行
|
||||
|
||||
根据调研结果,Mac mini挂载局域网NAS存储有以下成熟方案:
|
||||
|
||||
1. **多种扩容方式**:
|
||||
- 云存储服务(便捷但依赖网络)
|
||||
- 网络挂载第三方存储设备(成本低廉、可扩展性强)
|
||||
- NVMe固态硬盘(高速但昂贵)
|
||||
- 雷电4网桥连接全闪NAS(高性能方案)
|
||||
|
||||
2. **存算分离架构**:
|
||||
已有成功案例将数据存放在机架服务器上,通过SMB协议远程挂载到Mac Mini M4,实现存算分离,稳定性极高。
|
||||
|
||||
---
|
||||
|
||||
## 三、性能需求评估
|
||||
|
||||
### 3.1 量化回测对存储的需求
|
||||
|
||||
量化回测的存储访问模式特点:
|
||||
- 主要是**顺序读取**历史数据
|
||||
- 需要按时间先后排序回放行情
|
||||
- 分钟级数据量较大,需要高效读取
|
||||
- 财务数据相对较小,访问频率较低
|
||||
|
||||
### 3.2 网络性能评估
|
||||
|
||||
| 网络配置 | 理论速度 | 实际读写速度 | 评估 |
|
||||
|---------|---------|------------|------|
|
||||
| 千兆网口 | 125MB/s | ~110MB/s | **满足日线/财务数据需求** |
|
||||
| 万兆网口 | 1250MB/s | ~1000MB/s+ | **推荐用于分钟线数据** |
|
||||
|
||||
**关键发现**:
|
||||
- 千兆网口下Mac mini读写速度约110MB/s,已达到千兆网口极限
|
||||
- 通过雷电转万兆网口,配合NAS万兆网口+M.2 SSD存储池,可达到10Gb/s的读写速度,几乎与Mac mini自带存储无异
|
||||
|
||||
---
|
||||
|
||||
## 四、挂载协议选择
|
||||
|
||||
### 4.1 各协议对比
|
||||
|
||||
| 协议 | macOS兼容性 | 性能 | 稳定性 | 推荐度 |
|
||||
|-----|------------|------|-------|--------|
|
||||
| **SMB** | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | **首选** |
|
||||
| NFS | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ | 备选 |
|
||||
| AFP | ⭐⭐ | ⭐⭐⭐ | ⭐⭐ | ❌ 不推荐(已弃用) |
|
||||
|
||||
### 4.2 推荐方案:SMB协议
|
||||
|
||||
**选择理由**:
|
||||
1. **兼容性最好**:Windows、Linux、macOS各平台支持完善
|
||||
2. **macOS官方支持**:Apple现在对SMB的支持优于AFP和NFS
|
||||
3. **稳定性高**:AFP在macOS Sequoia中已被弃用,NFS在macOS上性能较差
|
||||
4. **自动重连**:可配置开机自动挂载
|
||||
|
||||
---
|
||||
|
||||
## 五、具体方案与操作步骤
|
||||
|
||||
### 5.1 方案一:基础方案(千兆网络)
|
||||
|
||||
**适用场景**:日线数据+财务数据,初期投入有限
|
||||
|
||||
**硬件要求**:
|
||||
- 支持SMB协议的NAS(群晖、极空间、UNRAID等)
|
||||
- 千兆局域网环境
|
||||
- NAS配置普通机械硬盘或SSD
|
||||
|
||||
**性能预期**:读写~110MB/s
|
||||
|
||||
### 5.2 方案二:高性能方案(万兆网络)⭐推荐
|
||||
|
||||
**适用场景**:包含分钟线数据,对回测速度有要求
|
||||
|
||||
**硬件要求**:
|
||||
- 支持万兆网口的NAS(如极空间Z423旗舰版)
|
||||
- 雷电3/4转万兆网口适配器(用于Mac mini)
|
||||
- 万兆交换机
|
||||
- NAS配置M.2 SSD存储池或SSD阵列
|
||||
- 万兆网线(Cat6a或Cat7)
|
||||
|
||||
**性能预期**:读写~1000MB/s+,接近本地存储
|
||||
|
||||
---
|
||||
|
||||
## 六、Mac mini挂载NAS详细步骤
|
||||
|
||||
### 6.1 方法一:Finder手动挂载(临时使用)
|
||||
|
||||
1. 打开Finder
|
||||
2. 按 `Command + K` 或点击菜单「前往」→「连接服务器」
|
||||
3. 输入服务器地址:`smb://NAS_IP地址/共享文件夹名`
|
||||
4. 点击「连接」,输入用户名和密码
|
||||
5. 选择要挂载的共享文件夹
|
||||
|
||||
### 6.2 方法二:开机自动挂载(推荐)⭐
|
||||
|
||||
#### 方案A:使用自动操作(Automator)- 最简单
|
||||
|
||||
1. 打开「自动操作」(Automator)应用
|
||||
2. 选择「应用程序」类型
|
||||
3. 在左侧动作库中搜索「运行AppleScript」
|
||||
4. 添加以下脚本(修改为你的NAS信息):
|
||||
|
||||
```applescript
|
||||
tell application "Finder"
|
||||
mount volume "smb://用户名:密码@NAS_IP地址/共享文件夹名"
|
||||
end tell
|
||||
```
|
||||
|
||||
5. 保存应用程序(如「挂载NAS」)
|
||||
6. 打开「系统设置」→「通用」→「登录项」
|
||||
7. 将刚才保存的应用程序添加到登录项中
|
||||
|
||||
#### 方案B:使用autofs(更稳定,推荐用于服务器环境)
|
||||
|
||||
1. 编辑 `/etc/auto_master` 文件:
|
||||
```bash
|
||||
sudo nano /etc/auto_master
|
||||
```
|
||||
|
||||
2. 添加以下行:
|
||||
```
|
||||
/Users/你的用户名/nas auto_nas
|
||||
```
|
||||
|
||||
3. 创建 `auto_nas` 文件:
|
||||
```bash
|
||||
sudo nano /etc/auto_nas
|
||||
```
|
||||
|
||||
4. 添加内容(修改为你的配置):
|
||||
```
|
||||
a股数据 -fstype=smbfs,soft,noowners,nosuid,rw ://用户名:密码@NAS_IP地址/共享文件夹名
|
||||
```
|
||||
|
||||
5. 设置权限并重启autofs:
|
||||
```bash
|
||||
sudo chmod 644 /etc/auto_nas
|
||||
sudo automount -cv
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 七、性能优化建议
|
||||
|
||||
### 7.1 macOS SMB性能优化
|
||||
|
||||
编辑 `/etc/nsmb.conf` 文件(如不存在则创建):
|
||||
|
||||
```ini
|
||||
[default]
|
||||
signing_required=no
|
||||
protocol_vers_map=6
|
||||
dir_cache_max_cnt=65536
|
||||
dir_cache_max=10485760
|
||||
file_ids_off=yes
|
||||
mc_on=no
|
||||
soft=yes
|
||||
```
|
||||
|
||||
### 7.2 NAS端优化
|
||||
|
||||
1. **启用SMB 3.0/3.1.1协议**
|
||||
2. **配置SSD缓存**(如果NAS支持)
|
||||
3. **使用RAID 5/6/10**(兼顾性能和冗余)
|
||||
4. **启用Jumbo Frames**(MTU=9000,万兆网络推荐)
|
||||
|
||||
---
|
||||
|
||||
## 八、稳定性评估
|
||||
|
||||
### 8.1 可靠性保障
|
||||
|
||||
1. **Mac mini优势**:
|
||||
- ARM架构M系列芯片低功耗、发热低
|
||||
- 适合长时间运行,可设置完全不休眠
|
||||
- 文件共享访问时可快速唤醒
|
||||
|
||||
2. **网络稳定性建议**:
|
||||
- 使用有线网络而非Wi-Fi
|
||||
- 选用企业级交换机
|
||||
- UPS不间断电源保护
|
||||
|
||||
3. **数据冗余建议**:
|
||||
- NAS配置RAID 5/6/10
|
||||
- 定期备份到另一位置
|
||||
- 重要数据考虑异地备份
|
||||
|
||||
### 8.2 已知问题与解决方案
|
||||
|
||||
| 问题 | 解决方案 |
|
||||
|-----|---------|
|
||||
| SMB连接中断 | 使用soft挂载选项,避免系统卡死 |
|
||||
| 权限问题 | 在NAS端正确配置用户权限 |
|
||||
| 睡眠后无法访问 | 在macOS能源设置中设置"唤醒以供网络访问" |
|
||||
|
||||
---
|
||||
|
||||
## 九、成本估算(参考)
|
||||
|
||||
### 方案一:基础版(千兆)
|
||||
- NAS设备(4盘位):3000-6000元
|
||||
- 硬盘(4T×4 RAID 5):约4000元
|
||||
- 千兆交换机:200-500元
|
||||
- **合计**:约7200-10500元
|
||||
|
||||
### 方案二:高性能版(万兆)
|
||||
- NAS设备(支持万兆):6000-12000元
|
||||
- SSD存储(2T×4 RAID 5):约8000元
|
||||
- 万兆交换机:1000-3000元
|
||||
- 雷电转万兆适配器:500-1500元
|
||||
- **合计**:约15500-24500元
|
||||
|
||||
---
|
||||
|
||||
## 十、结论与建议
|
||||
|
||||
### 10.1 可行性结论:✅ 完全可行
|
||||
|
||||
外接局域网NAS存储到Mac mini用于A股量化回测是**完全可行**的,且已有成熟的应用案例。
|
||||
|
||||
### 10.2 推荐方案
|
||||
|
||||
**初期阶段**:
|
||||
- 使用**千兆网络 + SMB协议**
|
||||
- NAS配置机械硬盘RAID 5
|
||||
- 成本较低,完全满足日线+财务数据需求
|
||||
|
||||
**长期规划**(分钟线数据):
|
||||
- 升级到**万兆网络 + SSD存储池**
|
||||
- 性能接近本地存储,回测效率大幅提升
|
||||
- 一步到位,避免重复投资
|
||||
|
||||
### 10.3 操作建议
|
||||
|
||||
1. **先试点**:先用千兆方案验证可行性和性能
|
||||
2. **备份优先**:数据安全第一,配置RAID和定期备份
|
||||
3. **自动化**:配置开机自动挂载,减少手动操作
|
||||
4. **监控**:关注网络稳定性和NAS健康状态
|
||||
5. **预留扩展空间**:为未来分钟线数据预留足够存储和网络升级空间
|
||||
|
||||
---
|
||||
|
||||
## 十一、参考资料
|
||||
|
||||
1. Mac mini M4无损扩容方案 - 新浪众测
|
||||
2. SMB vs NFS vs AFP协议对比 - CSDN博客
|
||||
3. macOS自动挂载NAS教程 - 知乎、CSDN
|
||||
4. 存算分离架构实践 - 知乎专栏
|
||||
|
||||
**报告完成日期**:2026年3月26日
|
||||
**调研人员**:姜维 伯约
|
||||
@@ -0,0 +1,33 @@
|
||||
# 🚀 NAS 快速参考卡
|
||||
|
||||
## 一步部署(只需一次)
|
||||
|
||||
```bash
|
||||
cd /Users/chufeng/.openclaw/workspace-jiangwei
|
||||
sudo ./nas_auto_deploy.sh
|
||||
```
|
||||
|
||||
## 日常管理
|
||||
|
||||
| 命令 | 说明 |
|
||||
|------|------|
|
||||
| `./nas_manager.sh status` | 📊 查看状态 |
|
||||
| `./nas_manager.sh mount` | 🔌 手动挂载 |
|
||||
| `./nas_manager.sh umount` | 📤 卸载 |
|
||||
| `./nas_manager.sh restart` | 🔄 重启守护 |
|
||||
| `./nas_manager.sh logs` | 📝 查看日志 |
|
||||
| `./nas_manager.sh follow` | 👀 实时日志 |
|
||||
|
||||
## 挂载点
|
||||
|
||||
- **NAS IP**: 192.168.2.154
|
||||
- **本地路径**: `/Users/chufeng/nas/stock`
|
||||
|
||||
## 日志位置
|
||||
|
||||
- 正常日志: `logs/nas_mount.log`
|
||||
- 错误日志: `logs/nas_mount_error.log`
|
||||
|
||||
---
|
||||
|
||||
**记住**: 部署只需一次,之后全自动管理!
|
||||
@@ -0,0 +1,156 @@
|
||||
# 群晖NAS挂载操作指南
|
||||
|
||||
## NAS连接信息
|
||||
- **NAS IP**: 192.168.2.154
|
||||
- **用户名**: cfdaily
|
||||
- **密码**: Ccf7561523
|
||||
- **目标共享文件夹**: stock
|
||||
|
||||
---
|
||||
|
||||
## 一、手动挂载步骤
|
||||
|
||||
### 方法1:通过Finder挂载(推荐)
|
||||
|
||||
1. 打开Finder
|
||||
2. 按 `Command + K` 或点击菜单「前往」→「连接服务器」
|
||||
3. 输入服务器地址:`smb://192.168.2.154/stock`
|
||||
4. 点击「连接」
|
||||
5. 输入用户名:`cfdaily`,密码:`Ccf7561523`
|
||||
6. 选择「记住此密码」
|
||||
7. 挂载成功后,会在 `/Volumes/stock` 看到
|
||||
|
||||
### 方法2:通过终端挂载
|
||||
|
||||
```bash
|
||||
# 先创建挂载点
|
||||
mkdir -p ~/nas/stock
|
||||
|
||||
# 挂载NAS
|
||||
osascript -e 'tell application "Finder" to mount volume "smb://cfdaily:Ccf7561523@192.168.2.154/stock"'
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 二、开机自动挂载设置
|
||||
|
||||
### 方法1:使用登录项(最简单)⭐
|
||||
|
||||
1. 先按上述步骤手动挂载一次stock文件夹
|
||||
2. 打开「系统设置」→「通用」→「登录项」
|
||||
3. 打开Finder,找到 `/Volumes/stock`
|
||||
4. 将 `stock` 图标直接拖入登录项列表
|
||||
5. 重启Mac测试是否自动挂载
|
||||
|
||||
### 方法2:使用自动操作(Automator)
|
||||
|
||||
1. 打开「自动操作」(Automator)应用
|
||||
2. 选择「应用程序」类型
|
||||
3. 在左侧动作库中搜索「运行AppleScript」
|
||||
4. 双击添加到右侧工作区
|
||||
5. 复制以下脚本:
|
||||
|
||||
```applescript
|
||||
tell application "Finder"
|
||||
try
|
||||
mount volume "smb://cfdaily:Ccf7561523@192.168.2.154/stock"
|
||||
on error errMsg
|
||||
display dialog "挂载NAS失败: " & errMsg buttons {"确定"} default button 1
|
||||
end try
|
||||
end tell
|
||||
```
|
||||
|
||||
6. 点击右上角的「运行」测试一下
|
||||
7. 保存应用程序到桌面,命名为「挂载NAS」
|
||||
8. 打开「系统设置」→「通用」→「登录项」
|
||||
9. 将「挂载NAS」应用添加到登录项中
|
||||
|
||||
---
|
||||
|
||||
## 三、stock目录结构规划
|
||||
|
||||
建议在stock文件夹下创建以下子目录:
|
||||
|
||||
```
|
||||
/Volumes/stock/
|
||||
├── A股数据/
|
||||
│ ├── 日线数据/ # 2-3GB
|
||||
│ ├── 分钟线数据/ # 未来几十GB
|
||||
│ └── 财务数据/ # 几百MB
|
||||
├── 回测结果/
|
||||
│ ├── 策略回测/
|
||||
│ └── 性能报告/
|
||||
├── 代码库/
|
||||
│ ├── 策略代码/
|
||||
│ └── 工具脚本/
|
||||
└── 临时文件/
|
||||
├── 下载缓存/
|
||||
└── 临时数据/
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 四、创建子目录命令
|
||||
|
||||
挂载成功后,在终端执行以下命令创建目录结构:
|
||||
|
||||
```bash
|
||||
# 检查挂载点
|
||||
ls -la /Volumes/
|
||||
|
||||
# 如果stock已挂载,创建子目录
|
||||
cd /Volumes/stock
|
||||
|
||||
mkdir -p A股数据/{日线数据,分钟线数据,财务数据}
|
||||
mkdir -p 回测结果/{策略回测,性能报告}
|
||||
mkdir -p 代码库/{策略代码,工具脚本}
|
||||
mkdir -p 临时文件/{下载缓存,临时数据}
|
||||
|
||||
# 验证目录结构
|
||||
tree /Volumes/stock 2>/dev/null || find /Volumes/stock -type d -maxdepth 2
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 五、常用命令
|
||||
|
||||
```bash
|
||||
# 查看挂载的卷
|
||||
ls -la /Volumes/
|
||||
|
||||
# 检查NAS连接(需要先安装ping)
|
||||
# ping -c 3 192.168.2.154
|
||||
|
||||
# 查看NAS共享列表
|
||||
smbutil view //cfdaily:Ccf7561523@192.168.2.154
|
||||
|
||||
# 卸载NAS
|
||||
diskutil unmount /Volumes/stock
|
||||
# 或者
|
||||
umount /Volumes/stock
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 六、故障排除
|
||||
|
||||
### 问题1:连接超时
|
||||
- 确认NAS和Mac在同一局域网
|
||||
- 检查NAS IP是否正确:192.168.2.154
|
||||
- 尝试用网线连接而非Wi-Fi
|
||||
|
||||
### 问题2:权限错误
|
||||
- 确认用户名密码正确:cfdaily / Ccf7561523
|
||||
- 在群晖管理界面检查cfdaily用户对stock文件夹的权限
|
||||
|
||||
### 问题3:睡眠后断开
|
||||
- 打开「系统设置」→「显示器」→「高级」→「睡眠」
|
||||
- 勾选「唤醒以供网络访问」
|
||||
|
||||
---
|
||||
|
||||
## 七、性能优化建议
|
||||
|
||||
1. **使用有线网络**:千兆网线比Wi-Fi更稳定更快
|
||||
2. **SMB优化**:可创建 `/etc/nsmb.conf` 配置文件优化性能
|
||||
3. **定期检查**:关注NAS磁盘健康状态和空间使用情况
|
||||
@@ -0,0 +1,124 @@
|
||||
# 量化交易系统阿里云高性价比部署方案
|
||||
|
||||
## 一、系统核心组件
|
||||
|
||||
量化交易系统通常包含以下核心组件,需部署在云端:
|
||||
|
||||
| 组件 | 功能说明 | 阿里云推荐服务 |
|
||||
|------|----------|----------------|
|
||||
| 计算节点 | 策略执行、回测、数据处理 | ECS 云服务器 |
|
||||
| 关系型数据库 | 存储交易记录、策略状态、用户数据 | RDS MySQL / PolarDB MySQL |
|
||||
| 时序数据库 | 存储海量历史/实时行情数据 | TSDB For InfluxDB / Lindorm |
|
||||
| 对象存储 | 存储日志、备份、大文件 | OSS |
|
||||
| 消息队列 | 实时数据推送、异步任务 | RocketMQ / Kafka |
|
||||
| 网络 | 安全隔离、公网访问 | VPC、EIP、安全组 |
|
||||
|
||||
---
|
||||
|
||||
## 方案零:VNPY 极简部署方案(模拟/实盘交易)
|
||||
**目标成本:≤ 2,000 元/年**
|
||||
**适用场景**:个人用户跑 VNPY 策略,做模拟交易和小资金实盘交易
|
||||
|
||||
VNPY 系统架构相对简单,核心只需:
|
||||
- 1 台 ECS 运行 VNPY 程序
|
||||
- 1 个轻量数据库(可直接在 ECS 上用 SQLite,省去 RDS 成本)
|
||||
- OSS 用于存储日志和备份(可选)
|
||||
- EIP 用于远程桌面访问(Windows)或 SSH(Linux)
|
||||
|
||||
| 组件 | 配置 | 月费用 | 年费用 | 说明 |
|
||||
|------|------|--------|--------|------|
|
||||
| ECS | ecs.t6-c1m2.large (2核2G, 突发性能, Windows Server) 或 ecs.t6-c1m2.large (2核2G, Linux) + 系统盘 40G SSD | ¥130 | ¥1,560 | Windows 适合用 VNPY 官方图形界面;Linux 更轻量,可使用 VNPY CLI 或 WebUI |
|
||||
| EIP | 按使用流量计费 (5G/月) | ¥20 | ¥240 | 用于远程连接 ECS |
|
||||
| OSS (可选) | 50G 标准存储 | ¥10 | ¥120 | 存储日志、策略备份 |
|
||||
| **总计** | | **¥160** | **¥1,920** | |
|
||||
|
||||
### 部署要点:
|
||||
1. **ECS 选择**:
|
||||
- 新手推荐 Windows Server,直接下载 VNPY 官方安装包运行
|
||||
- 有 Linux 经验推荐 Ubuntu/CentOS,使用 pip 安装 vnpy,资源占用更低
|
||||
2. **数据库**:VNPY 默认支持 SQLite,无需额外购买 RDS,数据文件直接存在 ECS 本地磁盘
|
||||
3. **网络**:安全组开放远程桌面端口(3389 for Windows)或 SSH 端口(22 for Linux),仅允许自己的 IP 访问,提高安全性
|
||||
4. **成本优化**:
|
||||
- 使用突发性能实例(t6 系列),适合 VNPY 这种非持续高负载场景
|
||||
- 购买 1 年预留实例,可再省约 30% 费用
|
||||
|
||||
---
|
||||
|
||||
## 二、高性价比方案对比(按年计算)
|
||||
|
||||
### 方案一:入门级(适合个人/小团队策略验证)
|
||||
**目标成本:≤ 5,000 元/年**
|
||||
|
||||
| 组件 | 配置 | 月费用 | 年费用 | 说明 |
|
||||
|------|------|--------|--------|------|
|
||||
| ECS | ecs.t6-c1m1.small (1核2G, 突发性能) | ¥80 | ¥960 | 可应对低频率策略执行 |
|
||||
| RDS | mysql.n2.small.1 (1核2G, 50G SSD) | ¥120 | ¥1,440 | 入门级关系型数据库 |
|
||||
| OSS | 100G 标准存储 + 下行流量 | ¥20 | ¥240 | 日志、备份存储 |
|
||||
| TSDB | tsdb.n1.medium (1核4G, 50G SSD) | ¥150 | ¥1,800 | 存储历史行情数据 |
|
||||
| EIP | 按使用流量计费 (10G/月) | ¥30 | ¥360 | 公网访问 |
|
||||
| **总计** | | **¥400** | **¥4,800** | |
|
||||
|
||||
---
|
||||
|
||||
### 方案二:标准级(适合稳定运行的实盘策略)
|
||||
**目标成本:15,000 - 25,000 元/年**
|
||||
|
||||
| 组件 | 配置 | 月费用 | 年费用 | 说明 |
|
||||
|------|------|--------|--------|------|
|
||||
| ECS | ecs.c6a.large (2核8G, 通用型) + 数据盘 100G SSD | ¥400 | ¥4,800 | 支持多策略并行、中等频率回测 |
|
||||
| RDS | mysql.n2.large.2 (2核8G, 200G SSD) | ¥450 | ¥5,400 | 支持高并发、数据备份 |
|
||||
| OSS | 500G 标准存储 + 下行流量 | ¥80 | ¥960 | 海量历史数据、日志 |
|
||||
| TSDB | tsdb.n1.xlarge (2核8G, 200G SSD) | ¥350 | ¥4,200 | 实时行情+历史数据存储 |
|
||||
| RocketMQ | rocketmq.n2.small (2核4G, 3节点) | ¥200 | ¥2,400 | 实时数据推送、异步解耦 |
|
||||
| EIP | 按固定带宽 (5Mbps) | ¥120 | ¥1,440 | 稳定公网访问 |
|
||||
| **总计** | | **¥1,600** | **¥19,200** | |
|
||||
|
||||
---
|
||||
|
||||
### 方案三:旗舰级(适合多策略、高频交易)
|
||||
**目标成本:50,000 - 80,000 元/年**
|
||||
|
||||
| 组件 | 配置 | 月费用 | 年费用 | 说明 |
|
||||
|------|------|--------|--------|------|
|
||||
| ECS | ecs.g6a.2xlarge (8核32G, 计算型) + 数据盘 500G SSD | ¥1,800 | ¥21,600 | 高频交易、大规模回测 |
|
||||
| PolarDB | polardb.mysql.x4.large.2 (4核16G, 1T SSD) | ¥1,500 | ¥18,000 | 高性能、高可用关系型数据库 |
|
||||
| OSS | 2T 标准存储 + CDN加速 | ¥300 | ¥3,600 | 海量数据、全球访问加速 |
|
||||
| Lindorm | lindorm.tsdb.xlarge (4核16G, 1T SSD) | ¥1,000 | ¥12,000 | 超大规模时序数据存储 |
|
||||
| Kafka | kafka.2xlarge (4核16G, 3节点) | ¥600 | ¥7,200 | 高吞吐实时数据管道 |
|
||||
| SLB + EIP | 负载均衡 (2实例) + 10Mbps固定带宽 | ¥300 | ¥3,600 | 高可用、容灾 |
|
||||
| **总计** | | **¥5,500** | **¥66,000** | |
|
||||
|
||||
---
|
||||
|
||||
## 三、成本优化建议
|
||||
|
||||
1. **使用预留实例/存储容量包**:
|
||||
- ECS 预留实例可节省 30%-50% 费用(相比按量付费)
|
||||
- OSS 存储容量包、RDS 存储包可进一步降低成本
|
||||
|
||||
2. **弹性伸缩**:
|
||||
- 回测/数据处理任务使用函数计算(Function Compute)或抢占式实例,避免资源浪费
|
||||
- 交易时段外降低 ECS 配置
|
||||
|
||||
3. **数据生命周期管理**:
|
||||
- OSS 配置生命周期规则,冷数据迁移至低频访问存储或归档存储
|
||||
- 历史行情数据定期归档至 OSS 归档存储,成本可降低 70% 以上
|
||||
|
||||
4. **监控与优化**:
|
||||
- 使用云监控(CloudMonitor)持续监控资源使用率,及时调整配置
|
||||
- 关闭不必要的服务和端口,减少安全组和网络费用
|
||||
|
||||
---
|
||||
|
||||
## 四、方案选择建议
|
||||
|
||||
| 场景 | 推荐方案 | 理由 |
|
||||
|------|----------|------|
|
||||
| 个人 VNPY 模拟/小资金实盘 | 方案零(VNPY 极简) | 成本极低,≤ 2,000 元/年,满足 VNPY 基本需求 |
|
||||
| 个人策略验证、小资金实盘 | 方案一(入门级) | 成本低,满足基本需求 |
|
||||
| 多策略稳定运行、中等资金规模 | 方案二(标准级) | 平衡性能与成本,支持实盘 |
|
||||
| 高频交易、大规模回测、多团队协作 | 方案三(旗舰级) | 高性能、高可用,支持复杂场景 |
|
||||
|
||||
---
|
||||
**生成时间**: 2026-03-23
|
||||
**调研人**: 姜维 伯约
|
||||
@@ -0,0 +1,59 @@
|
||||
# 🚀 sanguo_vnpy NAS 部署 - 快速参考卡
|
||||
|
||||
## 一步开始
|
||||
|
||||
```bash
|
||||
cd /Users/chufeng/.openclaw/workspace-jiangwei
|
||||
sudo ./sanguo_nas_deploy.sh
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 完整三步
|
||||
|
||||
### 1️⃣ 准备文件(Mac mini)
|
||||
```bash
|
||||
sudo ./sanguo_nas_deploy.sh
|
||||
```
|
||||
|
||||
### 2️⃣ 启动 Docker(NAS SSH)
|
||||
```bash
|
||||
ssh admin@192.168.2.154
|
||||
cd /volume1/stock/sanguo_vnpy/docker
|
||||
docker-compose up -d
|
||||
docker-compose logs -f
|
||||
```
|
||||
|
||||
### 3️⃣ 访问服务(浏览器)
|
||||
| 服务 | 地址 | 凭证 |
|
||||
|------|------|------|
|
||||
| Jupyter | http://192.168.2.154:8888 | token: `sanguo123` |
|
||||
| VS Code | http://192.168.2.154:8080 | password: `sanguo123` |
|
||||
|
||||
---
|
||||
|
||||
## 常用命令
|
||||
|
||||
```bash
|
||||
# NAS SSH 中执行
|
||||
cd /volume1/stock/sanguo_vnpy/docker
|
||||
|
||||
docker-compose ps # 查看状态
|
||||
docker-compose logs -f # 查看日志
|
||||
docker-compose restart # 重启
|
||||
docker-compose down # 停止
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 测试运行
|
||||
|
||||
在 Jupyter 中:
|
||||
```python
|
||||
%cd /app/tests
|
||||
python test_backtest.py
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
**记住**: 所有数据都在 NAS 上,安全可靠!🎉
|
||||
@@ -0,0 +1,160 @@
|
||||
# sanguo_vnpy NAS 部署 - 前期准备清单
|
||||
|
||||
## ✅ 部署前检查清单
|
||||
|
||||
请确保以下项目都已准备就绪,才能实现真正的"零干预"部署!
|
||||
|
||||
---
|
||||
|
||||
## 🖥️ NAS 端准备
|
||||
|
||||
### 1. Container Manager (Docker) 已安装
|
||||
|
||||
- [ ] 打开群晖 DSM → 套件中心
|
||||
- [ ] 搜索「Container Manager」或「Docker」
|
||||
- [ ] 确认已**安装并启动**
|
||||
- [ ] 打开 Container Manager,确认界面正常
|
||||
|
||||
**如果未安装**:在套件中心点击「安装」,等待安装完成后启动。
|
||||
|
||||
---
|
||||
|
||||
### 2. 存储空间充足
|
||||
|
||||
- [ ] 打开 File Station
|
||||
- [ ] 查看 `volume1` 可用空间
|
||||
- [ ] 确认可用空间 ≥ **50GB**(推荐 100GB+)
|
||||
- [ ] stock 共享文件夹已存在(位于 `/volume1/stock`)
|
||||
|
||||
**如果空间不足**:
|
||||
- 清理不必要的文件
|
||||
- 或考虑添加/扩容硬盘
|
||||
|
||||
---
|
||||
|
||||
### 3. 内存配置足够
|
||||
|
||||
- [ ] 打开 DSM → 控制面板 → 信息中心 → 硬件
|
||||
- [ ] 确认 NAS 内存 ≥ **4GB**(推荐 8GB+)
|
||||
- [ ] 如果内存 < 8GB,建议先升级内存
|
||||
|
||||
**内存不足的影响**:Docker 容器运行会变慢,甚至可能被系统终止。
|
||||
|
||||
---
|
||||
|
||||
### 4. SSH 访问已启用
|
||||
|
||||
- [ ] 打开 DSM → 控制面板 → 终端机和 SNMP
|
||||
- [ ] 勾选「启用 SSH 功能」
|
||||
- [ ] 端口保持默认 `22`
|
||||
- [ ] 点击「应用」
|
||||
|
||||
---
|
||||
|
||||
### 5. 网络配置正常
|
||||
|
||||
- [ ] NAS IP 地址:`192.168.2.154`(固定 IP,不要用 DHCP)
|
||||
- [ ] Mac mini 和 NAS 在**同一局域网**
|
||||
- [ ] 从 Mac mini 能 ping 通 NAS:
|
||||
```bash
|
||||
ping -c 3 192.168.2.154
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 💻 Mac mini 端准备
|
||||
|
||||
### 1. NAS 挂载信息正确
|
||||
|
||||
确认以下信息无误:
|
||||
- [ ] NAS IP:`192.168.2.154`
|
||||
- [ ] 用户名:`cfdaily`
|
||||
- [ ] 密码:`Ccf7561523`
|
||||
- [ ] 共享文件夹:`stock`
|
||||
|
||||
**如果信息有变化**,请更新脚本顶部的配置。
|
||||
|
||||
---
|
||||
|
||||
### 2. 本地策略文件已准备(可选但推荐)
|
||||
|
||||
如果您有本地策略文件:
|
||||
- [ ] 策略文件位于 `~/strategies/` 目录
|
||||
- [ ] 或 `~/vnpy_project/` 目录
|
||||
- [ ] 文件权限正常可读
|
||||
|
||||
脚本会自动复制这些文件到 NAS。
|
||||
|
||||
---
|
||||
|
||||
## 🔐 账号密码准备
|
||||
|
||||
### NAS SSH 登录账号
|
||||
|
||||
请确认您有 NAS 的管理员账号:
|
||||
- [ ] 管理员用户名(通常是 `admin`)
|
||||
- [ ] 管理员密码
|
||||
|
||||
**如果忘记密码**:在 NAS 登录页面点击「忘记密码」重置。
|
||||
|
||||
---
|
||||
|
||||
## 📋 快速验证命令
|
||||
|
||||
在开始部署前,在 Mac mini 终端运行以下命令验证:
|
||||
|
||||
```bash
|
||||
# 1. 验证网络连通
|
||||
ping -c 3 192.168.2.154
|
||||
|
||||
# 2. 验证 NAS 共享可访问
|
||||
smbutil view //cfdaily:Ccf7561523@192.168.2.154
|
||||
|
||||
# 3. 验证 SSH 可登录(尝试连接一下)
|
||||
ssh admin@192.168.2.154 echo "SSH连接成功"
|
||||
```
|
||||
|
||||
如果以上都成功,说明准备就绪!🎉
|
||||
|
||||
---
|
||||
|
||||
## ⚠️ 常见问题提前排查
|
||||
|
||||
### Q: Container Manager 启动失败怎么办?
|
||||
A:
|
||||
1. 重启 NAS
|
||||
2. 卸载并重新安装 Container Manager
|
||||
3. 确认 DSM 版本 ≥ 7.0
|
||||
|
||||
### Q: NAS 存储空间不够怎么办?
|
||||
A:
|
||||
1. 清理旧文件和快照
|
||||
2. 添加新硬盘扩容
|
||||
3. 使用外接存储设备
|
||||
|
||||
### Q: SSH 连接被拒绝怎么办?
|
||||
A:
|
||||
1. 确认 SSH 已在 DSM 启用
|
||||
2. 检查群晖防火墙是否阻止
|
||||
3. 确认用户名密码正确
|
||||
|
||||
---
|
||||
|
||||
## ✅ 最终确认
|
||||
|
||||
部署前最后确认:
|
||||
|
||||
- [ ] NAS Container Manager 已安装并运行
|
||||
- [ ] NAS 可用空间 ≥ 50GB
|
||||
- [ ] NAS 内存 ≥ 4GB
|
||||
- [ ] SSH 已启用
|
||||
- [ ] Mac mini 能 ping 通 NAS
|
||||
- [ ] 有 NAS 管理员账号密码
|
||||
- [ ] 已阅读本文档并理解各项要求
|
||||
|
||||
**如果全部打勾,恭喜!可以开始零干预部署了!** 🚀
|
||||
|
||||
---
|
||||
|
||||
**准备清单版本**: 1.0
|
||||
**最后更新**: 2026年3月27日
|
||||
@@ -0,0 +1,203 @@
|
||||
# sanguo_vnpy NAS 全自动部署方案
|
||||
|
||||
## 📋 方案概述
|
||||
|
||||
本方案将 **完整的 sanguo_quant_live 三国量化生态** 全自动部署到 NAS 环境,并提供完整的测试和执行环境。
|
||||
|
||||
### 包含的完整项目
|
||||
|
||||
1. **sanguo_quant_live** ⭐ - 三国量化完整生态(核心项目!)
|
||||
- strategies/ - 所有策略代码
|
||||
- jiangwei-platform/ - 三国量化实战项目
|
||||
- pangtong-value/ - 价值投资研究
|
||||
- zhaoyun-data/ - 数据处理
|
||||
- guanyu-risk/ - 风险管理
|
||||
- zhangfei-technical/ - 技术分析
|
||||
- management/ - 管理工具
|
||||
- archive/ - 归档资料
|
||||
|
||||
2. **sanguo_vnpy** - 量化框架项目 (vnpy_project)
|
||||
3. **jq_essence_articles** - 聚宽精华文章调研
|
||||
4. **其他研究文档** - 所有相关调研报告
|
||||
|
||||
### 核心特性
|
||||
|
||||
- ✅ **一键部署** - 单条命令完成所有准备工作
|
||||
- ✅ **完整 Docker 环境** - Jupyter + VS Code + vn.py 全栈
|
||||
- ✅ **完整生态** - sanguo_quant_live 全项目整合
|
||||
- ✅ **数据持久化** - 所有数据保存在 NAS 上
|
||||
- ✅ **示例策略** - 包含完整的回测测试环境
|
||||
- ✅ **零手动干预** - 自动化程度最高的方案
|
||||
|
||||
---
|
||||
|
||||
## 🚀 三步完整部署流程
|
||||
|
||||
### 第一步:在 Mac mini 上运行准备脚本
|
||||
|
||||
```bash
|
||||
cd /Users/chufeng/.openclaw/workspace-jiangwei
|
||||
chmod +x sanguo_nas_deploy.sh
|
||||
sudo ./sanguo_nas_deploy.sh
|
||||
```
|
||||
|
||||
这个脚本会自动完成:
|
||||
1. ✅ 挂载 NAS(如未挂载)
|
||||
2. ✅ 创建完整目录结构
|
||||
3. ✅ 复制本地策略文件
|
||||
4. ✅ 生成 Docker 配置
|
||||
5. ✅ 创建示例策略和测试脚本
|
||||
6. ✅ 生成部署文档
|
||||
|
||||
---
|
||||
|
||||
### 第二步:SSH 登录 NAS 并启动 Docker
|
||||
|
||||
```bash
|
||||
# SSH 登录 NAS
|
||||
ssh admin@192.168.2.154
|
||||
|
||||
# 进入 Docker 目录
|
||||
cd /volume1/stock/sanguo_vnpy/docker
|
||||
|
||||
# 构建并启动(第一次需要 5-10 分钟)
|
||||
docker-compose up -d
|
||||
|
||||
# 查看日志,等待服务启动
|
||||
docker-compose logs -f
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 第三步:访问服务并运行测试
|
||||
|
||||
在 Mac mini 浏览器中打开:
|
||||
|
||||
| 服务 | 地址 | 凭证 |
|
||||
|------|------|------|
|
||||
| Jupyter Lab | http://192.168.2.154:8888 | token: `sanguo123` |
|
||||
| VS Code Server | http://192.168.2.154:8080 | password: `sanguo123` |
|
||||
|
||||
在 Jupyter Lab 中运行测试:
|
||||
|
||||
```python
|
||||
%cd /app/tests
|
||||
python test_backtest.py
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📁 NAS 上的目录结构
|
||||
|
||||
```
|
||||
/volume1/stock/sanguo_vnpy/
|
||||
├── README.md # 部署说明文档
|
||||
├── config/ # 配置文件
|
||||
├── data/ # 数据目录(持久化)
|
||||
│ └── A股数据/
|
||||
│ ├── 日线数据/
|
||||
│ ├── 分钟线数据/
|
||||
│ └── 财务数据/
|
||||
├── notebooks/ # Jupyter 笔记本(持久化)
|
||||
├── strategies/ # 策略代码(来自 sanguo_quant_live)⭐
|
||||
├── jiangwei-platform/ # 三国量化实战项目
|
||||
├── pangtong-value/ # 价值投资研究
|
||||
├── zhaoyun-data/ # 数据处理
|
||||
├── guanyu-risk/ # 风险管理
|
||||
├── zhangfei-technical/ # 技术分析
|
||||
├── management/ # 管理工具
|
||||
├── archive/ # 归档资料
|
||||
├── projects/ # 其他项目
|
||||
│ └── sanguo_vnpy_framework/ # sanguo_vnpy 量化框架
|
||||
├── research/ # 研究资料
|
||||
│ ├── jq_essence_articles/ # 聚宽精华文章
|
||||
│ └── other/ # 其他调研报告
|
||||
├── tests/ # 测试脚本
|
||||
├── scripts/ # 工具脚本
|
||||
│ └── deploy_on_nas.sh # NAS 上的部署脚本
|
||||
├── docker/ # Docker 配置
|
||||
│ ├── Dockerfile
|
||||
│ ├── docker-compose.yml
|
||||
│ ├── entrypoint.sh
|
||||
│ ├── requirements.txt
|
||||
│ └── .env
|
||||
└── logs/ # 日志文件
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ Docker 环境包含
|
||||
|
||||
| 组件 | 说明 |
|
||||
|------|------|
|
||||
| Python 3.10 | 运行环境 |
|
||||
| vn.py 4.0+ | 量化框架 |
|
||||
| Jupyter Lab | 策略开发环境 |
|
||||
| VS Code Server | 代码编辑环境 |
|
||||
| SSH 服务 | 远程访问 |
|
||||
| 完整依赖 | pandas/numpy/matplotlib/TA-Lib |
|
||||
|
||||
---
|
||||
|
||||
## 🧪 测试验证清单
|
||||
|
||||
部署完成后,按以下步骤验证:
|
||||
|
||||
- [ ] 运行 `./sanguo_nas_deploy.sh` 无错误
|
||||
- [ ] SSH 登录 NAS 成功
|
||||
- [ ] `docker-compose up -d` 成功
|
||||
- [ ] `docker-compose ps` 显示容器状态 healthy
|
||||
- [ ] 浏览器访问 Jupyter Lab 成功
|
||||
- [ ] 浏览器访问 VS Code 成功
|
||||
- [ ] 运行 `/app/tests/test_backtest.py` 成功
|
||||
- [ ] 策略文件在 `/app/strategies` 可见
|
||||
- [ ] 数据目录 `/app/data` 可读写
|
||||
|
||||
---
|
||||
|
||||
## 📊 常用管理命令
|
||||
|
||||
```bash
|
||||
# 在 NAS SSH 中执行
|
||||
cd /volume1/stock/sanguo_vnpy/docker
|
||||
|
||||
# 查看状态
|
||||
docker-compose ps
|
||||
|
||||
# 查看日志
|
||||
docker-compose logs -f
|
||||
|
||||
# 重启服务
|
||||
docker-compose restart
|
||||
|
||||
# 停止服务
|
||||
docker-compose down
|
||||
|
||||
# 重新构建(修改配置后)
|
||||
docker-compose up -d --build
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔐 安全说明
|
||||
|
||||
默认密码仅供测试:
|
||||
- Jupyter token: `sanguo123`
|
||||
- VS Code 密码: `sanguo123`
|
||||
- SSH 密码: `sanguo123`
|
||||
|
||||
生产环境请修改 `docker/.env` 和 `docker/entrypoint.sh` 中的密码,然后重新构建。
|
||||
|
||||
---
|
||||
|
||||
## 🎯 总结
|
||||
|
||||
这个方案实现了:
|
||||
|
||||
1. ✅ **完全自动化** - 几乎零手动干预
|
||||
2. ✅ **数据安全** - 所有数据持久化在 NAS
|
||||
3. ✅ **开箱即用** - 包含完整测试环境
|
||||
4. ✅ **易于维护** - Docker 容器化部署
|
||||
5. ✅ **灵活扩展** - 可随时添加新策略
|
||||
|
||||
**只需三条命令,完成全部部署!** 🚀
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user