blog/source/_posts/omv-data-to-truenas.md

111 lines
3.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: TrueNAS成型记
tags: []
categories: []
abbrlink: d7671edf
date: 2023-04-06 15:05:48
---
# 背景
本人19年买过一个蜗牛星际矿渣换了电源换成了8G内存。重装了OMV的系统一直稳定的跑着。大部分应用都是跑docker版。孱弱的J1900 CPU也在吭哧吭哧运行着。
虽一直不满意其性能问题但是好歹能用。最近在搞一个文档库想要上搜索看了看市面上应该只有ES能拿得出手这玩意可是吃内存大户如果搞一个可用的性能3节点+kibana一部署其他应用基本不可能跑了再加上孱弱的CPU已经远不能满足开发需求所以另组了一台NAS蜗牛辛苦工作了那么多年就先歇歇吧。
**新NAS的要求**
- 6盘位起步
- 外观好看,最好能摆客厅
- CPU需要功耗小制程越新越好
- 内存最少64G跑各种Java应用
- 2.5G网口是必须,最好自带多网卡
**最后硬件如下**
- 机箱QNNAS Q8 3D打印机箱
- 主板精粤B760I
- CPU: I3 12300T
- 内存威刚32G * 1 后续再扩展
- 数据盘:老硬盘搬过来
- 背板咸鱼个人制作的4硬盘背板*2
- 系统TrueNAS-SCALE
- 系统盘32G U盘 * 2
# 过程
组装过程不表了,作为一个垃圾佬没啥难度。
## 老数据迁移
因为OMV使用的是ext4的文件系统而TrueNAS使用的ZFS不可能硬盘搬过来就用所以就需要数据迁移。TrueNAS自带了 Cloud Sync Tasks可用于数据迁移。OMV也支持SFTPFTP等
OMV配置好SFTP然后开始迁移观察了一下速度**30MB/s**什么鬼链路是千兆的这连一半都没达到然后去OMV看了一下CPU99%。这玩意是SSH加解密性能要求会高不少。然后去折腾FTP发现OMV启用不了一直报错。无果后想尝试其他方法突然看到了TrueNAS支持web dav。用docker再OMV搭建一个web dav的服务端然后迁移毕竟是基于HTTP的少了一层的加解密性能要求会低很多。
1. 老NAS搭建web dav
```bash
docker run -d -v /srv/dev-disk-by-uuid-XXXXXX-XXX-XXX-XX/disk1:/var/webdav -e USERNAME=XXX -e PASSWORD=XXXXX -p 8888:80 morrisjobke/webdav
```
2. 新NAS配置备份凭据
3. 新增Cloud Sync Tasks (启用关闭)
4. 开始手动同步
速度:
![](https://static.lianglianglee.com/assets/20230406_155750.png)
基本能跑到850Mbps以上
老NAS的CPU占用
![](https://static.lianglianglee.com/assets/old_nas_cpu_use.png)
## 应用迁移
应用迁移本着能用应用自带的迁移就不用文件复制。最先迁移的就是思源笔记。其本身支持S3备份所以部署一个新的docker然后S3同步过去即可
## 新Nas部署docker
进入应用,点击`启动Docker镜像`
需要注意在portainer中的CMD 对应TrueNAS的Container Args而且有空格就要隔开比如`-mode prod -workspace /siyuanworkspace -accessAuthCode password`,就要按照空格一个一个拆开
![](https://static.lianglianglee.com/assets/20230406_162245.png)
因为我需要独立的IP所以在网络使用了独立的静态IP
![](https://static.lianglianglee.com/assets/20230406_161755.png)
映射一下文件夹
访问http://{ip}:6806
**关于文件夹权限**
我习惯将Dock挂载的目录也SMB共享出来,方便修改配置之类的TrueNAS默认不允许这样干则需要进入`应用`-> `设置`-> `高级设置` 关闭`Enable Host Path Safety Checks`
![](https://static.lianglianglee.com/assets/20230406_162603.png)
同意将docker挂载的目录分到一个docker文件夹下大概目录是这样
```
- docker
- siyuan
- data
- config
- mysql
- data
- config
- shard
- logs
```
方便识别和备份。如果需要共享则会在shard中创建文件夹
## 待折腾
1. 虚拟机与主机通讯(桥接在我这不起作用,还在研究)
2. docker使用显卡硬解(12代似乎还没支持)
3. 攒钱硬盘插满