16、FreeNAS系统高级配置全解析

FreeNAS系统高级配置全解析

1. 新增加密磁盘

在FreeNAS中添加新的加密磁盘,其流程与普通磁盘添加类似,但在步骤1和步骤2之间多了创建加密卷这一步骤。具体步骤如下:
1. 在“Disks: Add”中添加磁盘。
2. 在“Disks: Encryption”中使用之前添加的磁盘创建加密卷。
3. 在“Disks: Format”中格式化磁盘。
4. 在“Disks: Mount Point”中添加挂载点。

需要注意的是,加密卷的创建要在磁盘格式化之前进行。这是因为FreeNAS采用的是底层加密方式,它基于扇区加密,而非基于文件(即每个文件单独加密),这意味着写入硬盘的所有信息(包括目录名等)都会被加密。

2. 是否真的需要加密

加密数据实际上会增加数据丢失的风险。与数据被盗相比,因加密配置错误或密钥丢失导致的数据丢失可能性更大。加密硬盘没有密码恢复系统,如果密码丢失、遗忘或密码持有者无法提供密码,数据实际上就会丢失。

3. 在FreeNAS中加密磁盘

如果要加密之前已有数据的磁盘,在用于加密之前,必须彻底擦除所有旧数据。因为在磁盘进行加密初始化时,旧数据不会被物理覆盖,若磁盘被盗并被分析,旧数据在扇区层面仍可访问。遗憾的是,FreeNAS没有提供擦除旧数据的方法,需要将磁盘从FreeNAS服务器中取出,在其他机器上进行安全擦除。

加密磁盘的操作步骤如下:
1. 确保磁盘已通过“Disks: Add”页面添加到系统中。
2. 进入“Disks: Encryption”。
3. 点击添加圆圈以添加新的加密磁盘,添加加密磁盘有四个参数:
- Disk :选择要加密的磁盘,必须是整个磁盘,不能是磁盘的分区。例如,不能对安装了FreeNAS的磁盘的第二个分区进行加密。并且,该磁盘必须之前已在“Disks: Add”中添加。
- Encryption algorithm :可以从三种不同的加密算法中选择一种来加密数据。如果不确定,建议选择AES,它是美国政府使用的标准加密方法,经过了广泛分析,目前在全球范围内使用。
- Passphrase :即密码。每次在FreeNAS服务器上挂载磁盘(通常在重启后),都需要输入密码来解锁加密驱动器。使用一个强大、难以猜测的密码对于磁盘加密至关重要,不要使用生日或女儿的名字等容易猜测的密码。
- Initialize :如果该磁盘之前从未用作加密磁盘,则需要进行初始化,使其为加密过程做好准备。除非是之前已加密的磁盘重新添加到FreeNAS服务器,否则需要勾选此框。初始化磁盘将导致该磁盘上的所有数据丢失。

选择磁盘、算法,输入一个难以猜测的密码并勾选初始化框后,点击“Add”,磁盘将进行准备和加密。输出信息类似如下:

Encrypting '/dev/ad1'... Please wait!
Calculating number of iterations...
Done, using 38638 iterations.
Metadata value stored on /dev/ad1.
Done.
Attaching provider '/dev/ad1'.
Attached to /dev/ad1.
Done.

看到“Done.”表示操作成功,但最好仔细检查输出是否有错误。

加密设置完成后,磁盘可以像其他磁盘一样使用,可以进行格式化、挂载,并通过CIFS、NFS和AFP等协议在网络上共享。

4. 重启时输入密码

由于磁盘是加密的,需要输入密码才能解锁并访问。每次FreeNAS服务器重启后,在输入密码之前,加密卷将无法访问。具体操作步骤如下:
1. 系统启动后,进入“Disk: Mount Point”,会看到错误信息,因为FreeNAS没有密码无法挂载加密卷。
2. 进入“Disk: Encryption”,加密卷状态显示为“Not attached”。
3. 点击“Tools”选项卡,从“Encrypted disk name”下拉列表中选择加密磁盘,选择“attach”命令(通常为默认选项)。
4. 输入密码,点击“Send Command!”,输出信息类似如下:

Attached to /dev/ad0.
Done.
Mounting device.
Successful.

如果密码输入错误,输出信息可能如下:

Wrong key for ad0.
  1. 点击“Management”选项卡,磁盘状态将显示为“Attached”。
  2. 最后回到“Disk: Mount Point”,检查挂载点状态是否正常。如果不正常,点击“Retry”(强制FreeNAS重新挂载磁盘),状态应该会显示正常。
5. 加密工具

FreeNAS服务器重启时,需要使用“Disk: Encryption”中的“Tools”选项卡输入密码来解锁加密卷。以下是对加密磁盘可以执行的其他操作概述:
- 解锁加密磁盘 - Attach和Detach :“Attach”和“Detach”是FreeBSD中用于解锁和锁定的专业术语。“Attach”表示使用提供的密码打开磁盘并设置必要的解密参数,成功解锁后,磁盘可以像其他硬盘一样使用;“Detach”则相反,磁盘被锁定,没有正确密码无法访问数据。要分离已挂载的磁盘,从“Encrypted disk name”下拉列表中选择已挂载的加密磁盘,选择“detach”命令,然后点击“Send Command!”。
- 更改加密磁盘的密码 - setkey :在“Disk: Encryption”页面的“Tools”选项卡中,可以使用“setkey”命令更改加密磁盘的密码。从“Encrypted disk name”下拉列表中选择加密磁盘,选择“setkey”命令,输入旧密码和新密码,然后点击“Send Command!”,输出信息仅显示“Done.”。需要注意的是,不会要求确认新密码,如果输入新密码时出错,将无法解锁磁盘,所有数据将丢失。
- 检查加密磁盘的状态 - list和status :可以使用“status”和“list”命令获取加密驱动器的简单状态信息。
- “status”命令只是列出哪些驱动器已加密,甚至可能不显示其状态,示例输出如下:

Name  Status  Components
ad0.eli     N/A  ad0
- “list”命令的输出更详细,示例输出如下:
Geom name: ad0.eli
EncryptionAlgorithm: AES-CBC
KeyLength: 128
Crypto: software
UsedKey: 0
Flags: NONE
Providers:
1. Name: ad0.eli
   Mediasize: 10262568448 (9.6G)
   Sectorsize: 512
   Mode: r1w1e2
Consumers:
1. Name: ad0
   Mediasize: 10262568960 (9.6G)
   Sectorsize: 512
   Mode: r1w1e1

“Geom name”显示加密磁盘的名称,通常是磁盘设备名称后面加上“.eli”;“EncryptionAlgorithm”显示使用的加密算法;“KeyLength”显示加密强度。在FreeBSD中,“provider”和“consumer”分别表示物理硬盘和加密后的伪设备。写入数据时,加密软件对伪设备(如“ad0.eli”)应用算法,将加密数据写入物理硬盘(如“ad0”);读取数据时,从硬盘读取加密数据,经过解密软件处理后再向上传递。

6. 高级硬盘参数(S.M.A.R.T)

Self-Monitoring, Analysis, and Reporting Technology(S.M.A.R.T)是一种用于监控硬盘的系统,可报告与硬盘可靠性相关的各种特征。监控这些特征理论上有助于预测硬盘故障。根据硬盘制造商希捷的说法,机械故障(通常是可预测的故障)占硬盘故障的60%。

并非所有硬盘都具备S.M.A.R.T功能,不同制造商测量的特征和定义的故障阈值也不同。每个硬盘模型根据制造商设定的规则来定义其健康状态,因此不同型号的硬盘对同一特征的测量值可能不同,但制造商可能都认为它们是可接受的。

每个硬盘的特征或属性有两个值:一个是原始值,其含义由硬盘制造商定义;另一个是归一化值,范围从1到253(1表示最差情况,253表示最佳情况)。

6.1 在FreeNAS中启用和使用S.M.A.R.T

在FreeNAS服务器上使用S.M.A.R.T之前,需要检查硬盘是否支持该功能。操作步骤如下:
1. 进入“Diagnostics: Information”,点击“S.M.A.R.T.”选项卡。输出将显示磁盘列表(包括IDE、SATA、SCSI甚至闪存盘)以及可用的S.M.A.R.T信息。
- 如果某个设备不支持S.M.A.R.T,输出将显示:

Device does not support SMART
- 如果设备支持S.M.A.R.T,将报告更多关于硬盘的信息,包括型号。例如,一个老化的10GB Quantum Fireball磁盘的信息如下:
Device Model:     QUANTUM FIREBALLlct10 10
Serial Number:    872001057089
Firmware Version: A03.0900
User Capacity:    10,262,568,960 bytes
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   4
ATA Standard is:  ATA/ATAPI-4 T13 1153D revision 15
Local Time is:    Tue Mar 18 21:22:34 2008 UTC
SMART support is: Available - device has SMART capability.
SMART support is: Disabled

关键信息是“SMART support is: Available—device has SMART capability”,但“SMART support is: Disabled”。
2. 要启用该磁盘的S.M.A.R.T监控,进入“System: Advanced”,勾选“S.M.A.R.T Daemon”框。这将启用S.M.A.R.T守护进程(监控进程),并将状态记录到日志文件中。
3. 再次返回“Diagnostics: Information”页面,点击“S.M.A.R.T.”选项卡,会发现输出发生了显著变化。首先,“SMART support is: Enabled”。初始摘要下方现在是一个全面的硬盘属性列表,与硬盘的可靠性相关。

第一行通常是硬盘整体健康状况的报告。如果硬盘健康,报告可能如下:

SMART overall-health self-assessment test result: PASSED

如果整体健康状况显示为“FAILED”,则需要立即备份硬盘并更换。

整体健康检查下方是硬盘特定信息,最后是“Vendor Specific SMART Attributes with Thresholds”列表,该列表显示每个属性的归一化值、该属性在硬盘使用寿命内的最差值以及阈值。阅读这些值时,要记住1是最差情况,253是最佳情况。例如:

Vendor Specific SMART Attributes with Thresholds:
ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH RAW_VALUE
Raw_Read_Error_Rate     0x0029   100   253   020    0
Spin_Up_Time            0x0027   083   081   020    2195
Start_Stop_Count        0x0032   093   093   008    5025
Reallocated_Sector_Ct   0x0033   100   100   020    0
Seek_Error_Rate         0x000b   100   100   023    0
Power_On_Hours          0x0012   090   090   001    6675
Calibration_Retry_Count 0x0013   100   100   020    0
Power_Cycle_Count       0x0032   093   093   008    4740
Read_Soft_Error_Rate    0x000b   100   100   023    0
UDMA_CRC_Error_Count    0x001a   116   116   000    84
Reallocated_Event_Count 0x0010   100   100   020    0
Current_Pending_Sector  0x0032   100   100   020    0
Offline_Uncorrectable   0x0010   100   253   000    0

以“Raw_Read_Error_Rate”为例,其归一化值为100,原始值为0,这意味着该硬盘在制造商归一化后没有读取错误。但重要的是阈值为20,如果该硬盘开始出现读取错误,归一化值将开始减小,直到达到20,此时硬盘的整体健康状况将报告为“FAILED”。

一个即将故障的硬盘的属性可能如下:

ATTRIBUTE_NAME      VALUE WORST THRESH   WHEN_FAILED
Reallocated_Sector_Ct   136   136   140 FAILING_NOW

“when_failing”列显示硬盘正在故障中。归一化值为136,阈值为140,数值越低情况越差,说明该属性刚刚超过阈值,触发了故障警告。

在FreeNAS服务器上,当某个属性超过阈值时,将在“Diagnostics: Logs”页面的“SMARTD”日志中报告。以下是一些关键的S.M.A.R.T属性,当它们超过阈值时,硬盘处于临界状态:
| 属性 | 含义 |
| ---- | ---- |
| Read Error Rate | 测量读取硬盘数据时发生的读取错误率。 |
| Reallocated Sectors Count | 重新分配的扇区数量。当硬盘发现有错误的扇区时,将其标记为“重新分配”,并将数据转移到特殊的保留区域。如果重新分配的扇区数量过多,硬盘开始出现故障。 |
| Spin Retry Count | 旋转启动尝试的重试次数,即旋转重试的总次数。该数值增加表明存在机械问题。 |
| Uncorrectable Sector Count | 读取或写入扇区时的不可纠正错误总数。如果该数值开始增加,可能意味着硬盘磁表面存在问题。 |

7. 文件系统一致性检查(FSCK)

FreeNAS服务器有一个工具用于验证磁盘上的文件系统是否健康。这与检查硬盘的S.M.A.R.T状态不同,S.M.A.R.T是在硬件层面,由硬盘制造商提供支持。而FreeBSD/FreeNAS以特定顺序和特殊结构将数据写入磁盘,这种特殊结构称为文件系统,定期验证文件系统是否完整且无错误非常重要。文件系统错误通常在FreeNAS服务器未正确关机时发生,这可能导致文件系统处于写入操作排队或缓存但未实际完成的状态,从而造成文件系统不一致。

FreeBSD用于检查文件系统一致性的工具是“fsck”(File System Consistency checK)。运行文件系统一致性检查的操作步骤如下:
1. 进入“Disks: Mount Point”,点击“Fsck”选项卡。
2. 首先,从下拉框中选择要检查的磁盘。
3. 然后,决定如何运行文件系统检查:
- 如果未勾选“Unmount disk/partition”,则“fsck”以只读模式运行。此时,文件系统将被检查是否存在错误,但只报告错误,不进行纠正。在繁忙的磁盘上运行文件系统检查可能会降低性能。
- 如果勾选“Unmount disk/partition”,则磁盘将首先被卸载,所有错误将自动修复。在文件系统检查期间,磁盘上的数据对网络用户不可用。

“fsck”的输出信息类似如下:

** /dev/ad0p1 (NO WRITE)
** Last Mounted on /mnt/store
** Phase 1 - Check Blocks and Sizes
** Phase 2 - Check Pathnames
** Phase 3 - Check Connectivity
** Phase 4 - Check Reference Counts
** Phase 5 - Check Cyl groups
317 files, 17249 used, 4833873 free (121 frags, 604219 blocks, 0.0% fragmentation)
Successful
7.1 大磁盘和fsck

根据硬盘大小,运行“fsck”可能需要几分钟到几小时。因此,在大硬盘上通过Web界面运行“fsck”可能会导致超时。“fsck”会修复文件系统上的所有错误,但在Web界面上可能看不到输出信息。

此外,运行“fsck”需要大量的RAM。对于大容量磁盘(2TB或更大),建议至少有512MB的RAM。也可以从命令行运行“fsck”工具,这对于大硬盘在Web界面等待命令完成超时时可能会有用。

8. 高级操作系统调整

FreeNAS的底层操作系统是FreeBSD。和所有复杂系统一样,FreeBSD有许多配置参数可以改变其行为。FreeBSD系统的核心是其内核,在某些情况下可以对内核进行“调整”以提高性能。FreeNAS开发人员定义了一组可以通过鼠标点击进行调整的内核参数,具体如下:
| 参数 | 正常值 | 调整后的值 | 含义 |
| ---- | ---- | ---- | ---- |
| net.inet.tcp.delayed_ack | 1 | 0 | 告诉FreeBSD尝试将TCP ACK信息包含在数据包中,而不是发送额外的数据包来表示连接结束。 |
| net.inet.tcp.sendspace | 32768 | 65536 | 与“net.inet.udp.recvspace”一起定义最大网络数据包大小。增加数据包大小可以提高网络性能,但也会增加内存使用。 |
| net.inet.udp.recvspace | 42080 | 65536 | 与“net.inet.tcp.sendspace”一起定义最大网络数据包大小。增加数据包大小可以提高网络性能,但也会增加内存使用。 |
| net.inet.udp.maxdgram | 9216 | 57344 | 最大外出UDP数据报大小。增加该值可以提高网络性能,但也会增加内存使用。 |
| net.local.stream.recvspace | 8192 | 65535 | 与“net.local.stream.sendspace”是网络的进一步缓冲区调整。可以提高性能,但也会增加内存使用。 |
| net.local.stream.sendspace | 8192 | 65535 | 与“net.local.stream.recvspace”是网络的进一步缓冲区调整。可以提高性能,但也会增加内存使用。 |
| kern.ipc.maxsockbuf | 262144 | 2097152 | TCP套接字两侧的最大组合缓冲区大小。与其他网络相关参数一起增加,以提高网络性能。 |
| kern.ipc.somaxconn | 128 | 8192 | 控制系统尝试处理的同时连接尝试的数量。 |
| kern.ipc.maxsockets | 3072 | 16424 | 系统上可用的套接字总数。每个网络连接需要一个套接字。 |

通过对这些参数的调整,可以根据实际需求优化FreeNAS系统的性能。但在调整时要注意,一些参数的调整可能会增加内存使用,需要根据服务器的硬件配置进行合理调整。

综上所述,FreeNAS系统提供了丰富的高级配置选项,包括磁盘加密、S.M.A.R.T监控、文件系统检查和操作系统内核参数调整等。通过合理使用这些功能,可以提高系统的安全性、可靠性和性能。在实际操作中,需要根据具体需求和硬件条件进行配置和调整,以确保系统的稳定运行。

FreeNAS系统高级配置全解析

9. 配置流程总结

为了更清晰地展示FreeNAS系统高级配置的流程,下面用mermaid流程图来呈现主要操作步骤:

graph LR
    classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px
    classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px

    A([开始]):::startend --> B{添加磁盘}:::decision
    B -->|是| C(Disks: Add):::process
    C --> D{加密磁盘?}:::decision
    D -->|是| E(Disks: Encryption):::process
    E --> F(格式化磁盘: Disks: Format):::process
    F --> G(添加挂载点: Disks: Mount Point):::process
    D -->|否| F
    G --> H{启用S.M.A.R.T?}:::decision
    H -->|是| I(Diagnostics: Information - S.M.A.R.T. 检查支持):::process
    I -->|支持| J(System: Advanced - 勾选S.M.A.R.T Daemon):::process
    J --> K(Diagnostics: Information - S.M.A.R.T. 查看状态):::process
    H -->|否| L{运行文件系统检查?}:::decision
    I -->|不支持| L
    K --> L
    L -->|是| M(Disks: Mount Point - Fsck选项卡):::process
    M --> N{卸载磁盘?}:::decision
    N -->|是| O(卸载磁盘并自动修复错误):::process
    N -->|否| P(只读模式检查错误):::process
    O --> Q([结束]):::startend
    P --> Q
    L -->|否| Q

这个流程图涵盖了从添加磁盘到进行各种高级配置的主要步骤,包括磁盘加密、S.M.A.R.T监控和文件系统检查等。通过这个流程图,可以更直观地理解各个配置步骤之间的关系和顺序。

10. 常见问题及解决方法

在进行FreeNAS系统高级配置过程中,可能会遇到一些常见问题,以下是一些问题及对应的解决方法:
| 问题 | 现象 | 解决方法 |
| ---- | ---- | ---- |
| 加密磁盘无法挂载 | 重启后进入“Disk: Mount Point”显示错误,加密卷无法挂载 | 进入“Disk: Encryption”,点击“Tools”选项卡,选择加密磁盘和“attach”命令,输入正确密码后点击“Send Command!”。若密码错误,重新输入正确密码。 |
| S.M.A.R.T监控未显示信息 | 在“Diagnostics: Information - S.M.A.R.T.”中没有显示磁盘的S.M.A.R.T信息 | 检查磁盘是否支持S.M.A.R.T功能,若支持,进入“System: Advanced”勾选“S.M.A.R.T Daemon”框,然后再次查看。 |
| 文件系统检查超时 | 在大磁盘上通过Web界面运行“fsck”时出现超时现象 | 可以尝试从命令行运行“fsck”工具。同时,确保服务器有足够的RAM(对于2TB或更大的磁盘,至少512MB)。 |
| 调整内核参数后系统性能未提升 | 按照参数表调整内核参数后,网络性能等未得到明显改善 | 检查服务器的硬件配置是否能够支持参数调整带来的内存增加等变化。可以逐步调整参数,观察系统性能的变化,避免一次性调整过多参数导致问题。 |

11. 配置建议

根据不同的使用场景和需求,以下是一些FreeNAS系统高级配置的建议:
- 安全性优先场景
- 对重要数据所在的磁盘进行加密,选择AES加密算法,并设置强密码。
- 定期运行文件系统检查(fsck),确保文件系统的一致性,防止数据丢失。
- 性能优先场景
- 调整内核参数,如增大“net.inet.tcp.sendspace”、“net.inet.udp.recvspace”等参数的值,以提高网络性能。但要注意服务器的内存是否足够支持这些调整。
- 对于支持S.M.A.R.T的磁盘,启用S.M.A.R.T监控,及时发现硬盘潜在问题,避免因硬盘故障导致系统性能下降。
- 数据可靠性优先场景
- 密切关注S.M.A.R.T属性,特别是“Read Error Rate”、“Reallocated Sectors Count”等关键属性,当这些属性接近或超过阈值时,及时备份数据并更换硬盘。
- 定期进行文件系统检查,确保数据的完整性。

12. 总结与展望

FreeNAS系统的高级配置功能为用户提供了强大的工具来管理和优化系统。通过磁盘加密可以保护数据的安全性,S.M.A.R.T监控可以提前发现硬盘故障,文件系统检查可以确保数据的一致性,而内核参数调整则可以根据不同需求提升系统性能。

在未来的使用中,随着数据量的不断增加和业务需求的变化,可能需要进一步优化配置。例如,对于更大容量的磁盘,可能需要更精细地调整内核参数以适应其性能需求;对于更高的安全性要求,可能需要探索更高级的加密技术和安全策略。同时,随着硬件技术的发展,S.M.A.R.T功能可能会更加完善,能够提供更准确的硬盘健康信息,帮助用户更好地管理存储设备。

总之,合理运用FreeNAS系统的高级配置功能,并根据实际情况不断调整和优化,将有助于确保系统的稳定运行和数据的安全可靠。用户可以根据自己的需求和经验,灵活运用这些配置选项,打造一个满足自身业务需求的高性能存储系统。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值