修改SMB最小协议
服务器最小协议由FreeNAS上的sysctl控制。 在System-> Tunables 下添加sysctl来使其永久化:Variable = freenas.services.smb.config.server_min_protocol Value = NT1 Type = Sysctl Comment =“您想要的任何内容” 注意:一旦更改此值,应该在服务器 - > SMB的UI中切换“开”/“关”按钮或重新生成smb4.conf文件
sharing>windows(SMB)shares>添加目录后配置参数勾选Default Permissions并取消Use as home share
各种卷结构的创建要求
- RAID Z:最少由3块硬盘组成,其中一块硬盘的空间用作奇偶校验,允许一块硬盘损坏,不丢失数据。
- RAID Z2:最少由3块硬盘组成,其中两块硬盘的空间用作奇偶校验,允许两块硬盘同时损坏,不丢失数据。
- RAID Z3:最少由5块硬盘组成,其中三块硬盘的空间用作奇偶校验,允许三块硬盘同时损坏,不丢失数据。
- Mirror 镜像:最少由2块硬盘组成,两块硬盘互作镜像,任何一块硬盘损坏,不丢失数据。
- Stripe 带条:最少由1块硬盘组成,该形式无冗余,因此任何硬盘损坏,该卷下的所有数据均会丢失,这种类型的卷唯一有点是读写速度最快。
- Log(ZIL):用于写操作的高速缓存,通常用 SSD 固态硬盘来创建该设备。
- Cache(L2ARC):用于读操作的高速缓存,通常用 SSD 固态硬盘来创建该设备。
- Spare:备用设备,此处略过不谈。
数据集创建选项介绍
- Dataset Name:数据集名称,为数据集设置一个名称,该项必填,且不可使用中文,建议只使用英文字母;
- Compression Level:压缩级别,系统的默认采用 lz4 压缩算法,如果不做修改,新数据集将继承系统的默认值。本教程后面会对压缩方式做单独介绍;
- Share type:共享类型,创建数据集的目的是用于文件共享,如果该数据集用作 NFS 共享,则选择 UNIX,如果用作 CIFS 共享,则选择 Windows,如果用于 AFP 共享,则选择 Mac。
- Case Sensitivity:大小写敏感,即指定存储到该数据集中的文件名称是否区分大小写,默认为 sensitive 区分大小写,也可以选择 insensitive 不区分大小写或** mixed 混合**(智能识别)。
- Enable atime:记录文件访问时间,此选项用来控制是否实时更新文件被访问的时间,默认为 继承上级卷/数据集的设置,也可以设置为 On 启用,或 Off 禁用。设置为禁用可以避免访问文件时产生过多的日志流量,同时也有助于提高系统性能;
- Quota for this dataset:空间限额,默认值为 0 即不限制该数据集的存储容量;例如,输入 20GiB 代表该数据集有 20 GB 的可用存储空间。
- Quota for this dataset and all children:该数据集和其子数据集的空间限额,默认值为 0 即不限制该数据集的存储容量;例如,输入 20GiB 代表该数据集以及其子数据集共有 20 GB 的可用存储空间。
- Reserved space for this dataset:预留空间,在硬件容量允许的情况下,为此数据集预留指定的存储空间。默认值为 0 即不预留存储容量;例如,输入 20GiB 代表在硬盘容量允许的情况下,确保预留20 GB 的存储空间给该数据集。
- Reserved space for this dataset and all children:为该数据集和其子数据集预留的空间,默认值为 0 即不预留存储容量;例如,输入 20GiB 代表在硬盘容量允许的情况下,确保预留20 GB 的存储空间给该数据集和其子数据集。
- ZFS Deduplication:ZFS 重复数据删除,默认为集成上级卷/数据集设置,也可以设置为 On 启用,Verify 验证,Off 禁用。本教程后面会对 ZFS 重复数据删除做单独介绍;
- Record Size:记录大小,即指定扇区大小,默认情况下 ZFS 会根据存入的数据自动调整这个值,但如果存入的文件大小是固定的(例如数据库),则可以在此处指定一个固定的记录大小,从而获得更好的性能。可以通过查阅固态硬盘 4K 对齐方面的教程来对比理解记录大小的概念。
为数据集指定一个名称,再结合上述选项介绍进行调整以满足你的需求,点击 “Add Dataset” 添加数据集按钮,数据集就创建好了。
数据集支持嵌套,即可以在某个数据集中再次创建数据集,没有数量限制,可以根据需要自由创建。也可以在数据集中创建 Zvol 虚拟硬盘,用于 iSCSI 块级共享,本教程点到为止。与 iSCSI 相关的内容将在单独的篇幅中进行介绍。
压缩方式介绍
压缩可以节省更多的存储空间,但强度过大的压缩会对系统性能造成一定的影响,应该为数据集指定哪一种类型的压缩,需要在性能和存储空间之间做权衡。ZFS 提供的压缩算法对客户端和应用程序是透明的,即对数据压缩和解压均在 NAS 服务器端进行,用户存取数据时是察觉不到的。以下是可以选择的压缩算法:
- lz4:这是自 FreeNAS 9.2.1 开始系统默认选用的压缩算法,它对系统性能影响小,向数据集中存取数据的速度几乎与不采用压缩时一样,推荐选用。
- gzip:此压缩算法分为 9 个级别,数字越大,压缩效果越好,速度也最慢。fastest (level 1) 压缩率最低,速度最快。 maximum (level 9) 压缩率最高,速度最慢。系统给 Gzip 压缩算法的默认值为 level 6 即压缩率适中,速度也适中。
- zle:快速但简单的算法,以消除 runs of zeroes。
- lzjb:压缩能力很好,但相比 lz4 压缩算法,它的性能要差一些。
通常,不推荐禁用压缩,建议采用 lz4,用微乎其微的性能损失,换取更多的存储空间。
重复数据删除技术
Deduplication(重复数据删除)对存入数据集中的相同文件只保留一个副本,从而节约存储空间。 取决于存入数据集中重复数据的总量,重复数据删除技术可以通过减少数据的写入,从而有效节省存储空间。但是,这种技术非常耗费内存,通常 1TB 存储空间需要额外提供 5GB 的内存。相比之下,同样是为达到节省存储空间的目的,使用压缩,性价比要更高。
需要格外注意的是,一旦为数据集启用了重复数据删除功能,已存入的数据无法取消该技术的控制。向启用重复数据删除功能的数据集中存入越多的数据,就需要越多的内存,当内存空间不足以容纳 DDT 表时,系统会将 DDT 表存入硬盘,这样一来,系统性能将会一落千丈(大坑)。重复数据删除技术是性能的噩梦,内存的克星,请务必谨慎启用。
删除数据集
删除数据集的操作非常简单,点选要删除的数据集,在界面下方找到并点击 “Destroy Dataset” 销毁数据集按钮,然后点击弹出提示框中的 “Yes” 确定按钮即可。