细节

看了订阅的消息中关于一部叫<帕特森>的电影,只看了片段,印象深刻。改天一定好好看看这个电影。

电影中有个细节,日本人送主人公笔记本的时候,有一个笔记本封面一闪而过的镜头,很有和风的封面。

之前在日企工作过,日本人送的礼物,大都不是很贵重,但本土风是必须的。在涉及日本人的屏幕上, 也总是呈现这一点。

用python和yaml的技术的编辑器一定很强大

用python和yaml的技术的编辑器一定很强大, 理由是这两个都需要严格的控制代码对齐的位置,类似的似乎还有coffe,如果没有很好的编辑器的话,几乎难以完成大量的工作。

比如,使用windows自带的记事本来写python,一定被人怀疑是疯子了。

unraid 的假想

我自己目前已经不再使用unraid了,这个只是吸取之前放弃的经验教训。

修改配置,使docker使用某个独立的硬盘(SSD或许会更好,不在阵列中)来加速及独立docker服务器的启动,不过,unraid的docker服务必须在阵列启动的情况下才能启动。因为docker默认使用的是阵列中的docker.img文件,这样 操作可以加速docker服务的快速启动。

通常,docker会挂载外部的目录。通过规划不同的服务数据,将不经常更改的,可以使用阵列的磁盘(可以通过cache加速),经常变更的(比如mysql的数据库的数据,邮件服务器的数据等等),使用独立的硬盘(不在阵列中), 这样来解决阵列修改文件和写入速度慢的影响,如果数据量比较大,机械硬盘也可以,因为不再阵列中,因此,写入和读取速度不受影响。

因为上述的数据不在阵列的数据保护中,因此,需要通过另外的手段进行数据保护,比如rsnapshot来进行定时的增量化备份。备份的目的地可以是阵列中的磁盘或cache。rsnapshot也支持docker化的。

对于虚拟机的硬盘,我建议也这样来做,因为实时的写入速度实在太夸张,碎片文件的情况下几乎整个系统处于崩溃边缘了。

对于下载服务的下载数据,我自己对这个数据的保护性定为可以不保护的,也可以使用独立硬盘的方式。这样也不会受到阵列的影响。共享的化,可以通过在阵列中创建链接的方式,将下载数据共享出去。

上述的方案,通过规避不往阵列中写入数据,来达到可用的目的。不过,我目前是在ubuntu 20.04的基础上,通过docker各种服务,来定制各种内容,这样对我而言,可以不用再安装一个linux的虚拟机了。以后有机会可以按照上述的思路试试。

unraid不好用

准备好好折腾下NAS,之前一直用的是ubuntu,从14.04到16.04到18.04,看中unraid主要是看中了可以将磁盘合并到一起, 同时还带校验,支持docker和虚拟机(大赞),加上我的硬盘都是退役的硬盘,所以觉的不错。然后高高兴兴的付款了。

系统安装啥的都没有什么说的,网上各种教程一大把。但只要一添加校验盘,速度就会爆慢,可以到几MB的写入速度, 这是完全不可以接受的,这个速度连docker都启动不起来,因为各种读写超时出错。

无奈之下,去掉了校验盘,先弄数据再说。恢复完数据,然后开始校验,服务当然是不启动的,因为完全难以启动。 好不容易等到校验完了,发现docker在第一次启动还算可以,能启动起来,后面再启动就各种报错。

查看资料,然后各路大神都提到cache盘,我也用了下cache盘,速度确实会提升不少,但牺牲的是cache盘数据 没有校验,达不到保护了。

但cache还不能完全解决我的问题,cache的选项有三个,不使用就不说了,其他的两个,YES表示会使用cache, 在mover后会被移动到硬盘中,这个粗略来看好像适合我,但docker的数据被移动到硬盘后,速度就会爆慢, 于是,最终还是会触发问题。另外一个Prefer, 这个是比较有意思的,这个会尽可能的使用cache,甚至如果 数据在硬盘上,而cache也足够的话,也会存放到cache,从而加速。我没有读到这个Prefer的操作,什么时候 数据会被mover到硬盘上,而我的应用的数据比较大,对于我只有128G的固态硬盘的cache而言,实在是承担不了, 然后接着会承受硬盘那爆慢无比的写入速度。另外还有一个内容就是下载,网络力下载的速度可以达到几十MB 很正常,但写入速度却不够,因为写入的同时要校验。还可能引发的第三个问题就是由于不知道这个数据是否会被 校验,或者磁盘满的情况下,哪些文件会被放入数据盘,恢复的时候会引发部分文件不一致,或者丢失,这个 不确定的丢失文件可能会导致不确定的服务故障,比明确的知道损失更可恨。

总而言之,写入速度的爆慢,导致unraid的各种卡顿,出错。我甚至考虑,干脆不要校验盘算了,恢复原来的 定时对拷。但这样我为啥要用unraid啊,我原来的各种服务都是docker化的,本身可以快速的部署到各个 版本的linux上。

另外还有一个就是加密磁盘的挂载,unraid只支持整盘加密的形式,不支持device mapper的形式,我一度 考虑是否要切换到unraid上,但由于速度爆慢的影响,这个只能是个遗憾。不过最后还是决定放弃了。

所以我各种不服气,关键是花了钱却无法达到目的令我很不爽。然后我进行了各种优化,但最后都卡在了数据 校验引起的速度爆慢上。最后干脆放弃了。

最后,我又老老实实的换回了ubuntu,现在运行的版本是20.04,使用mergerfs将各个硬盘合并到一起, 备份采用的是snapraid,定时校验。由于我的docker部分数据容易变化,因此我将这部分容易变化的数据 单独放到一个目录中,snapraid校验的时候忽略掉这一部分,然后使用rsnapshot定时进行差异化备份到另外的目录 中,这样来确保各部分正常。由于尽可能的各个服务都是docker化的,除了没有unraid这种专用的nas系统的 界面好看,我自己觉得各种操作还是很方便的。

期间,我考虑过 OMV,但OMV基本就是一个debian的定制版本,然后加上各种界面,后来考虑各个软件的配置, 觉得还不如直接从我最喜欢的ubuntu来重头定制呢

xpra 是个好工具

我经常需要在别人的电脑上操作一些我自己电脑上的事情,虽然现在win10已经内置ssh了,但每次连上去,受限于win10自带的控制台,spacemacs经常花屏,错位,随便动 两下就不知道当前在哪一行了,可以说完全无法使用了。如果用图形界面的话,就需要xming之类的工具了,电脑里默认又没有。

昨天看到一个很不错的工具:xpra, 这个工具最强大的地方在于,可以将X11服务以h5的形式推送出去,类似与vnc的网页版本,但又不需要安装各种插件,想想下通过网页 操作linux服务器,对客户端的需求只有一个网页浏览器,这不正是我需要的么。

于是赶紧屁颠屁颠的安装配置,这样我从任何地方操作就只需要一个浏览器了。