首先要明确“卷”的概念,在ZFS术语中,由ZFS管理的存储设备组称为“zpool”或者“池”,而在FreeNAS的WebUI中,用“volume”或者“卷”来表示ZFS池。就是同一样事物的不同称呼。对于ZFS文件系统,之前已经有一篇文章《了解FreeNAS中的ZFS文件系统》做了简单的介绍,在这里我主要讲一下如何在FreeNAS的WebUI中创建和删除卷或数据集。

安装好FreeNAS系统后,在这个系统能正常提供网络存储服务之前,必须先创建用于存储和共享数据的“卷”。FreeNAS系统提供了“卷管理器”,可以在WebUI管理界面中轻松创建和管理“卷”。

在FreeNAS中创建卷和数据集

首先通过浏览器打开FreeNAS的WebUI管理界面,点击“Storage”存储器图标,再点击“Volumes”卷选项卡中的“View Disks”查看磁盘按钮。

在FreeNAS中创建和删除卷或数据集

在“View Disks”查看磁盘选项页中,将会显示系统可管理的所有磁盘。

在FreeNAS中创建和删除卷或数据集

这里因为是虚拟机,所以只连接了6块虚拟磁盘,其中最小一块用于安装系统,剩下的5块将用来做存储。在实际应用中,最好采用型号和容量一样的磁盘作为存储,即使型号不同,那么容量也一定要相同,另外,也强烈不推荐只使用一块磁盘作为ZFS存储盘。

再次点击“Storage”存储器图标,再点击“Volume Manager”卷管理器按钮,打开FreeNAS的卷管理器。

在FreeNAS中创建和删除卷或数据集

介绍一下卷管理器窗口中的选项。

卷管理器选项说明
选项 允许的选项值 说明
Volume name string 给卷取一个名字,不可使用中文,见名知意即可。必须遵循ZFS Component Naming Requirements
Volume to extend drop-down menu 扩展已存在的卷。
Encryption checkbox 勾选表示创建加密的卷。注意,请不要随意加密卷。
Available disks display 当前可用磁盘,可以点击旁边的+号,将磁盘添加到下方的选项中。
Volume layout drag and drop 卷结构,用于指定磁盘以何种形式进行布局。可以通过灰色圆盘进行拖放进行布局。
Add Extra Device button 添加扩展磁盘,比如ZIL、L2ARC或者热备磁盘到卷中。
Manual setup button 手动创建卷。

点击“Available disks”里的+号后,磁盘被添加到“Volume layout”中,如果接入了足够数量的磁盘,“Volume layout”中的下拉菜单会出现所有可选的磁盘阵列方式。这些阵列方式与添加的磁盘数量相关,由于两块磁盘无法组成RAIDZ的任何一种形式,所以如果只安装了两块硬盘,那么这里不会显示RAIDZ、RAIDZ2、RAIDZ3。

在FreeNAS中创建和删除卷或数据集

卷结构的创建条件

以下为各种卷结构的创建条件:

  • RAID Z:最少由3块硬盘组成,其中一块硬盘的空间用作奇偶校验,允许一块硬盘损坏,不丢失数据。
  • RAID Z2:最少由3块硬盘组成,其中两块硬盘的空间用作奇偶校验,允许两块硬盘同时损坏,不丢失数据。
  • RAID Z3:最少由5块硬盘组成,其中三块硬盘的空间用作奇偶校验,允许三块硬盘同时损坏,不丢失数据。
  • Mirror 镜像:最少由2块硬盘组成,所有硬盘互作镜像,任何一块硬盘损坏,不丢失数据。
  • Stripe 带条:最少由1块硬盘组成,该形式无冗余,因此任何硬盘损坏,该卷下的所有数据均会丢失,这种类型的卷唯一有点是读写速度最快。
  • Log(ZIL):用于写操作的高速缓存,通常用 SSD 固态硬盘来创建该设备。
  • Cache(L2ARC):用于读操作的高速缓存,通常用 SSD 固态硬盘来创建该设备。
  • Spare:热备磁盘。

上述的卷结构中,RAIDZ、RAIDZ2、RAIDZ3、Mirror和Stripe都是用于存储数据的,Log(ZIL)、Cache(L2ARC)和Spare都是用于辅助数据存储的,其中关于Log(ZIL)和Cache(L2ARC)的相关介绍可以参看另一篇文章《ZFS高速缓存介绍:ZIL和L2ARC》。

根据具体的成本和安全性考虑来选择一种卷结构,点击左下角的“Add Volume”按钮,系统就开始创建卷。注意,FreeNAS创建卷时将会擦除磁盘上的所有数据,请确保磁盘上没有重要数据后再进行创建。

在FreeNAS中创建和删除卷或数据集

等待FreeNAS创建卷,创建完成后将会在“Volumes”卷选项卡中列出创建的卷。

在FreeNAS中创建和删除卷或数据集

注意列表中有两个”VM-Zpool”,第一行的是刚创建的卷,第二行是FreeNAS自动创建的同名”Dataset”数据集。所谓数据集,是ZFS文件系统的一种文件组织形式,可以把它理解成“文件夹”,它主要用于对数据和权限进行归类,可以根据具体需要创建多个数据集,数据集支持嵌套,可以分别指定权限。点击第二行的VM-Zpool数据集,页面下方将出现多个按钮,这时就可以点击”Create Dataset”创建数据集按钮进行创建数据集的操作。

在FreeNAS中创建和删除卷或数据集

介绍一下创建数据集窗口的选项。

创建数据集选项说明
选项 允许的选项值 说明
Dataset Name string 给数据集取一个名字,不可使用中文,见名知意即可。必须遵循ZFS Component Naming Requirements
Comments string 对此数据集做一个简单的说明。
Sync drop-down menu 数据写入同步方式:Inherit继承父数据集的同步设置;Standard使用客户端软件请求的同步设置;Always始终等待数据写入完成;Disabled从不等待写入完成。
Compression Level drop-down menu 压缩方式:支持lz4、gzip、zle、lzjb,默认采用lz4压缩方式。
Share type drop-down menu 共享类型:UNIX用于NFS共享;Windows用于SMB共享;Mac用于AFP共享。
Enable atime Inherit, On, or Off 控制文件在被读取时是否进行更新:将此属性设置为Off 可以避免在读取文件时产生日志流量,并提高性能。
Quota for this dataset integer 高级选项:设置此数据集的配额。默认值0表示禁用配额,否则表示配额大小。
Quota for this dataset
and all children
integer 高级选项:设置属于此数据集的子数据集的配额。默认值0表示禁用配额,否则表示配额大小。
Reserved space for this
dataset
integer 高级选项:设置此数据集的预留空间。默认值0表示不预留,否则表示预留空间大小。
Reserved space for this
dataset and all children
integer 高级选项:设置属于此数据集的子数据集的预留空间。默认值0表示不预留,否则表示预留空间大小。
ZFS Deduplication drop-down menu 是否进行重复数据删除。默认值为off。如果开启,非常消耗系统资源。
Read-Only drop-down menu 高级选项:设置是否为只读模式。
Record Size drop-down menu 高级选项:默认情况下ZFS会根据数据大小自动设置记录文件大小。建议仅当数据大小固定时(比如数据库)才进行设置。
Case Sensitivity drop-down menu 是否区分大小写。sensitive(大小写敏感)对文件名区分大小写;insensitive(大小写不敏感)对文件名不区分大小写;mixed(混合模式)我也没搞懂这个到底是区分还是不区分。

作为家庭使用,一般设置下数据集名称,选择下共享方式就可以了,其他都可以留默认值,但如果需要一些高级功能,比如配额和预留空间等,就必须在高级选项中进行设置。另外关于压缩方式和重复数据删除这两个有利于节约空间的选项,在后文《为FreeNAS节约存储空间,是压缩还是重复数据删除?》中再进行详细介绍。这里简单新建几个数据集。

在FreeNAS中创建和删除卷或数据集

至此,卷和数据集就创建完成了,此时最好对用于存储重要数据的数据集或者卷设置定期快照任务,以最大程度的报障数据安全。具体设置方法请参看《在FreeNAS中管理与创建Snapshot》。

在FreeNAS中删除卷和数据集

在FreeNAS中删除数据集只需要选中数据集,再点击页面底部的”Destroy dataset”删除数据集按钮。这是系统会以红色背景提示这是一个危险操作:如果删除数据集,将会清空数据集中的所有文件。选择”Yes”确定删除数据集。

在FreeNAS中创建和删除卷或数据集

在 FreeNAS 中,删除卷的操作被称为“Detach Volume”分离卷,意思是将组成某个卷的所有硬盘从卷中分离出去。分离卷的操作很简单,在存储选项卡的列表中点选要删除的卷,点击页面下方出现的“Detach Volume”分离卷按钮。与删除数据集时一样,FreeNAS也会用红色背景表示这是一项危险操作。

在FreeNAS中创建和删除卷或数据集

如果希望删除卷的同时清空硬盘中的所有数据,则选中“Mark the disks as new (destory data)”销毁数据选项。注意:如果这个卷中存储了敏感数据,可能希望对硬盘执行数据销毁操作。但如果还希望重新导入这个卷,并且还需要使用这个卷中已存储的数据,则不要勾选此项。点击 “Yes” 确定按钮,系统会自动将选择的卷删除。如果在分离卷时,没有勾选“销毁数据”选项,且分离卷以后,也没有使用分离出来的硬盘再次创建其他的卷。满足上述两种条件,可以使用存储选项卡中的“Import Volume”导入卷工具,将这个被分离的卷重新还原回来。