45558744 Posted December 17, 2022 Share Posted December 17, 2022 (edited) 一、否、是、优先、仅,四种缓存模式(机制)的注意事项 1、否,不缓存,直接读写阵列中的文件夹,此时搬运功能无效。 注意: 1)、如果想从是改成否,首先运行转运,保证缓存里没有要转移的文件,才可以改成否,否则,没有转出的文件就常驻缓存了,因为你直接改成否,搬运功能失效,是不会帮你把之前缓存里没来及转运的文件自动回写到阵列的! 2)、如果想从优先、仅改成否,首先要改成是,再运行转运,然后才能改成否,道理和上面一样,直接改了否,转运机制失效,就丢在缓存里了。 当然,丢在缓存里,不影响你对文件的读写调用,就是看着好不舒服,而且对那些appdate domains system isos特殊文件,系统会报错,此时缓存无法清空,等于缓存丢失了一部分空间。 2、是,准确的含义是:文件会最终保存在阵列磁盘,缓存只是中转,如果不手动转运,系统会在设定的时间,对缓存的文件进行回写,回写到指定的阵列硬盘,如果在自动回写前,缓存满了会报错,无法继续工作继续存入,因为此时没有到设置的转运开始时间,缓存满了也不会自动写入磁盘阵列,系统出错将无法工作。 3、优先,优先的含义是,文件只会存在于缓存中,所以你想设置优先,这个文件夹的容量就不能大于缓存盘整体的容量,设置后,这个文件夹就长驻缓存,超过缓存盘容量,多出的部分会存到阵列里。理论上你对这个文件夹的读写都是缓存盘的固态硬盘物理速度上,适合appdate domains system isos,还有一些你要实时编辑的文件。但!此时,除非你是在unraid内部调用(使用内部虚拟机、docker)这些设置了缓存优先的文件,调用速度会好过存在阵列盘上,因为大部分人的阵列盘是普通3.5机械硬盘,内部运行时读写速度没有做缓存的固态快。但是,如果你是通过外部终端共享读写这个文件,那你的速度还是要受限于unraid主机的网卡,交换机,你的终端的网卡。如果是千兆环境的话,那你设置了缓存优先,速度最高也只有120mb的网口实际速度,并不能跑出固态硬盘的读写速度,意义并不大,。结论:没有万兆网卡、光纤连接,对于smb文件共享,这个缓存的优先模式,甚至整个缓存盘机制,都是毫无意义的存在! 4、仅,和优先的含义一样,不同在于存满缓存以后,会停止工作,不会把多出的文件继续写到阵列磁盘里。 注意:选择仅之前,必须先选择成优先,再运行转运,让文件先转运到缓存后,再改成仅;直接从否、是,改成仅,转运机制此时默认关闭了,文件并不会移动到缓存。 基于上述四种缓存机制,大家遇到疑难问题时候,一定看看上面的注意事项,这个缓存的是否逻辑和我们的汉语语义逻辑并不一样! 二、unraid的缓存盘存在的意义 三种情况 1、如果你的unraid运行环境在万兆环境,缓存盘是有意义的,可以提高smb的文件共享读写速度。 2、如果你的unraid运行环境在千兆环境,对于smb的共享读写速度,没有实际意义,机械硬盘单盘读写速度完全满足千兆网络带宽。 3、如果你需要用unraid运行docker、虚拟机,那缓存盘是有意义的,效果相当于你把自己的主机从机械硬盘换成了固态硬盘,速度会提高不少,但是这样也不全是优点,毕竟缓存盘的容量有限,如果你设置缓存模式是:优先,如果虚拟机的硬盘设置不是raw,虚拟机存储超过缓存容量,超出部分,按照缓存规则,是有可能写到阵列的机械硬盘中的。而且设置缓存后,再更改不使用缓存,很大概率会出错,有些运行文件,将无法回写到阵列,留在缓存里,那真是不上不下,逼死强迫症。缓存盘同时还要作为阵列共享读写时的临时中转,使用频率高,难免崩坏,所以很多大神都是双缓存盘组成raid1,防止缓存崩坏带走虚拟机和docker。 三、不使用缓存盘,提高虚拟机、docker运行速度的配置 如果你的unraid运行环境是一个千兆网络,你还想运行虚拟机,不使用缓存盘也是可以的,可以在阵列中加入一个2.5固态硬盘,或有两个m2槽位的情况,直接把2.5固态或者1个m2指定为appdate domains system isos文件夹存储盘。 指定appdate domains system isos四个文件夹存在2.5固态或者m2就可以让虚拟机、docker运行在固态硬盘的速度上,当然实现这个还是离不开先有一个缓存盘(必须是四个文件夹将来存储的目标固态盘以外的固态!) 第一次启动docke、虚拟机组件,产生的四个文件夹不一定会正好生成在固态上,如果她们生成在机械硬盘上。你可以: 1、先停止阵列,设置一个缓存盘。 2、再启动后,把四个文件夹缓存机制改成优先,运行搬运,把四个文件夹先拉到缓存里。 3、更改四个文件夹缓存机制为是,存储位置选择固态硬盘盘符,再运行搬运,等四个文件夹回些到固态硬盘所在的阵列里,再把缓存机制改成否。 4、停止阵列,去掉缓存盘,产生新配置,再启动阵列。 这样操作,可以不使用缓存盘,你的虚拟机和docker也可以运行在固态硬盘里,相当于实现了固态硬盘直通给虚拟机和docer,这个固态硬盘除了存放虚拟机、docker,还可以存放一些需要实时读写的文件,这样设置,就不会被难懂的缓存逻辑整晕,也可以享受固态硬盘运行虚拟机和docker的高速。 ………………………………………………………………………………………………………………………… 一些设置实例: 1、appdate domains system isos四个文件夹使用缓存,模式为仅,不想使用缓存,直接改成否,文件夹并没有直接写回指定阵列,而是留在了缓存里,并且系统智能的报错,提示四个文件夹不在设定位置,应对方法,就是从仅先改为是,让这些文件先从缓存回到阵列,然后才可以改成否。 2、按照先设成是,再设置否,把存在缓存里的appdate domains isos都回写到了阵列中,但是sysrem还是固执的留在缓存里,没有回写,我想到也许是docker的设置问题,我就把docker、虚拟机都删了,但system还是待在缓存里,最后,我在smb共享里把system文件里的docker和ill文件夹都删了,这时候又尝试设置是移动system,这次终于成功了,system回写到了阵列里。啥原因我不懂,我猜system里的文件夹,看起来只有20多g,但是当时设置的虚拟硬盘是按需分配,实际是很大,而且反复安装,多个设置,系统认为文件大于要回写的阵列磁盘,所以一直回写失败,回写失败也没有提示,只能能看到system固执的留在缓存里,也许要学会看日志了。 Edited December 18, 2022 by 45558744 1 Quote Link to comment
pzg417 Posted December 17, 2022 Share Posted December 17, 2022 2 hours ago, 45558744 said: 按照自己摸索的办法,三个文件夹都顺利易走,但是还有一个system还在缓存里,无论怎么设置是,否,他就是不挪地方 你要把docker和虚拟机都停了 然后设置成yes才能把这些文件移动到阵列里 Quote Link to comment
MEWTWO Posted July 9, 2023 Share Posted July 9, 2023 怎么这么麻烦不能直接指定这几个文件夹到阵列里的ssd么。 Quote Link to comment
binghunlong Posted August 3, 2023 Share Posted August 3, 2023 unraid没点移动直接取消了文件夹缓存,导致文件夹的文件遗留在了ssd里,这种情况有办法处理吗? Quote Link to comment
683599 Posted August 11, 2023 Share Posted August 11, 2023 万兆网络,1.92T缓存,默认按照官方设置目录环境。 Quote Link to comment
vipshihua Posted October 28, 2023 Share Posted October 28, 2023 仔细读了好几遍,每次重装都要拿出本帖来对着操作~ 升级6.12.4以后好像没这么复杂了 Quote Link to comment
JackieWu Posted October 28, 2023 Share Posted October 28, 2023 关于缓存、存储目录结构和相关默认共享文件夹作用的参考资料: 详解 Unraid 缓存策略及应用案例 unRAID 存储目录结构说明 什么是校验盘,校验盘有什么作用 Unraid 默认共享文件夹的作用以及分配方法的说明 Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.