diff --git a/source/_posts/omv-data-to-truenas.md b/source/_posts/omv-data-to-truenas.md new file mode 100644 index 0000000..f3aee60 --- /dev/null +++ b/source/_posts/omv-data-to-truenas.md @@ -0,0 +1,108 @@ +title: TrueNAS成型记 +tags: [] +categories: [] +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也支持SFTP,FTP等 + +OMV配置好SFTP,然后开始迁移,观察了一下速度:**30MB/s**,什么鬼,链路是千兆的,这连一半都没达到,然后去OMV看了一下CPU,99%。这玩意是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. 开始手动同步 + +速度: +![](/files/assets/20230406_155750.png) + +基本能跑到850Mbps以上 + +老NAS的CPU占用: + +![](/files/assets/old_nas_cpu_use.png) + +## 应用迁移 + +应用迁移本着能用应用自带的迁移,就不用文件复制。最先迁移的就是思源笔记。其本身支持S3备份,所以部署一个新的docker,然后S3同步过去即可 + +## 新Nas部署docker + +进入应用,点击`启动Docker镜像` + +需要注意,在portainer中的CMD 对应TrueNAS的Container Args,而且有空格就要隔开,比如`-mode prod -workspace /siyuanworkspace -accessAuthCode password`,就要按照空格一个一个拆开 + +![](/files/assets/20230406_162245.png) + + +因为我需要独立的IP,所以在网络使用了独立的静态IP +![](/files/assets/20230406_161755.png) + +映射一下文件夹 + + +访问:http://{ip}:6806 + +**关于文件夹权限** +我习惯将Dock挂载的目录也SMB共享出来,方便修改配置之类的,TrueNAS默认不允许这样干,则需要进入`应用`-> `设置`-> `高级设置` 关闭`Enable Host Path Safety Checks` + +![](/files/assets/20230406_162603.png) + +同意将docker挂载的目录分到一个docker文件夹下,大概目录是这样 + +``` +- docker + - siyuan + - data + - config + - mysql + - data + - config + - shard + - logs +``` + +方便识别和备份。如果需要共享,则会在shard中创建文件夹 + + + +## 待折腾 +1. 虚拟机与主机通讯(桥接在我这不起作用,还在研究) +2. docker使用显卡硬解(12代似乎还没支持) +3. 攒钱硬盘插满 + + + + diff --git a/source/files/assets/20230406_155750.png b/source/files/assets/20230406_155750.png new file mode 100644 index 0000000..5f58c6c Binary files /dev/null and b/source/files/assets/20230406_155750.png differ diff --git a/source/files/assets/20230406_161755.png b/source/files/assets/20230406_161755.png new file mode 100644 index 0000000..8c5aee4 Binary files /dev/null and b/source/files/assets/20230406_161755.png differ diff --git a/source/files/assets/20230406_162245.png b/source/files/assets/20230406_162245.png new file mode 100644 index 0000000..5f5da63 Binary files /dev/null and b/source/files/assets/20230406_162245.png differ diff --git a/source/files/assets/20230406_162603.png b/source/files/assets/20230406_162603.png new file mode 100644 index 0000000..df49c0a Binary files /dev/null and b/source/files/assets/20230406_162603.png differ diff --git a/source/files/assets/old_nas_cpu_use.png b/source/files/assets/old_nas_cpu_use.png new file mode 100644 index 0000000..76530d5 Binary files /dev/null and b/source/files/assets/old_nas_cpu_use.png differ