truenas 篇三:Truenas Scale 23.10设置保姆教程(数据保护)
数据安全是NAS最基本的,也是最核心的要求。Truenas使用的ZFS文件系统虽然以可靠、可伸缩、易管理著称,除了设置好raid确保硬盘冗余之外,还需要一些设置来提高数据安全性。本篇介绍一下Truenas Scale 23.10的数据保护设置。
一、数据清理任务
TrueNAS的数据清理任务,其实更准确的是指扫描任务,它会遍历一次存储池中的所有数据,并验证所有块都可以读取,如果发现错误将会发出警报。正常情况下,新添加一个存储池也会自动添加一个数据清理任务,保持默认的就行了。
自动生成的数据清理任务二、定期快照任务
ZFS快照是文件系统的一个只读副本,它记录了文件系统在创建快照当时的状态。由于ZFS使用Copy-on-Write(写时复制)技术,快照只记录文件系统中数据块的元数据信息,而不是实际数据本身,因此它几乎是瞬间创建的,也不会占用额外的存储空间,直到系统中的数据被修改或删除时,ZFS才会保留快照中的原始数据,从而占用空间。用户可以随时恢复到快照被创建时的状态。
要创建定期快照任务,在<数据保护>界面中,点击“定期快照任务”栏右侧的<添加>按钮:
“数据集”选择需要快照的数据集;勾选“递归的”可以为每个子数据集创建一个快照,从而更加灵活地进行恢复;
“快照保留周期”可以根据需要选择;“命名惯例”一般不需要修改;“计划”可以选择快照创建的频率,预设的有Hourly(每小时)、Daily(每天)、Weekly(每周)、Monthly(每月),也可以进行自定义。我这里选择每小时快照一次;默认勾选“允许创建空快照”和“已启用”。
添加定期快照任务保存之后,就可以在“定期快照任务”栏中看到这个任务了。
已经添加的定期快照任务点击右下角的<快照>就可以查看创建的快照。如果你的任务是新创建的,还没到创建快照的时间点,那么是看不到快照的。你也可以在<数据集>界面右侧的“数据保护”栏管理快照。
自动创建的快照点击某个快照,可以看到生存周期,以及操作按钮。
<删除>可以删除掉此快照。
<克隆到新数据集>可以将此快照状态复制到新的数据集,就可以查看此快照状态下的文件,如果需要找以前的某个文件又不想全部回滚,可以使用这个方法。
<回滚>就是放弃自此快照创建以来对文件系统所做的全部更改,在缺省情况下,该操作只能回滚至最新的快照,要回滚到更早的快照,必须销毁所有的中间快照。
三、复制任务
这里的复件任务并不是直接复制存储的数据,而是复制快照。可以将快照复制到其它池、集数集,或者远程复制到其它系统上。由于使用场景不多,这里不作介绍。
四、云同步任务
组raid只是本机硬盘冗余,要想数据更加安全可靠,就需要异地备份。云同步任务可以让truenas系统与你的云盘数据进行同步,从而实现异地容灾备份。目前系统支持Amazon S3、Backblaze B2、Box、Dropbox、Google Cloud Storage、Google Drive、Google Photos、Hubic、Mega、Microsoft Azure Blob Storage、OpenStack Swift、pCloud、Storj iX、Yandex等第三方云服务商,以及WebDAV、FTP、SFTP、HTTP等协议。
就目前国内用户来说,适合使用的基本上只能是通过这几个协议同步数据。要同步到国内各大云盘上,比较方便的方法是使用alist挂载云盘,然后再通过alist的WebDAV进行同步。truenas scale的应用里可以方便的添加alist,这里先不介绍怎么搭建,只讲解怎么使用,后面介绍应用使用时再专门介绍怎么搭建alist应用。
这里我以阿里云盘为例,介绍一下怎么将truenas中的数据同步到阿里云盘上。
首先在阿里云盘上创建一个新文件夹,名为“NAS”,用来存放同步过来的NAS数据。
阿里云盘APP界面然后将阿里云盘挂载到alist中,挂载目录为ali。
alist管理后台界面alist前端界面在Truenas中打开<用户凭证> - <备份凭证>,添加“云凭据”。
“提供者”选择WebDAV;“名称”自己填写一个,我这里填写alist。
“URL”填写webdav地址,alist的webdav地址是你的访问地址后面跟一个dav;“WebDAV服务”选择其他;“用户名”和“密码”填写你的alist用户名与密码。
添加云凭据填写完整之后,点击<验证凭据>,如果没有问题,会显示“凭据有效”。
验证凭据有效保存之后就会在“云凭据”这一栏看到了。
添加成功接着,打开左侧菜单栏<数据保护>,添加“云同步任务”。
“描述”填写一个能够识别的名称;“方向”选择推送,注意不要选错了,推送是将truenas中的数据发送到云盘,拉取是将云盘的数据发送到truenas,如果弄错了可能导致数据被覆盖;“传输模式”选择同步;“目录/文件”选择truenas中需要同步的目录。
“凭据”选择刚才创建的alist凭据;“文件夹”选择alist中需要同步的文件夹。
“计划”选择同步的周期;默认勾选“已启用”。
高级选项中,按需要选取。如果你有更高的数据保密要求,可以选择“远程加密”,但是密码一定要记好,否则将无法恢复数据。我这里就不进行加密了。
添加云同步任务保存之后就可以看到生成一个任务了。
添加成功后面有几个按钮,“立即运行”是马上进行同步,“Dry Run”是模拟运行,“恢复”是反方向操作,“删除”就是删除掉这个任务。我们点一下立即运行,可以看到状态变成“RUNNING”了。
云同步任务正在运行中点击“RUNNING”可以看到更加详细的状态。
详细状态我的picture数据集中是有这些内容:
NAS中的文件同步完成后,可以在alist中看到同步过来的内容。
Alist界面在阿里云盘APP中同样可以看到。
阿里云盘APP界面上面是使用truenas gui进行云同步的过程。如果你不想使用alist中转,而要直接同步到onedrive国际版、onedrive世纪互联版等其它不在系统支持列表中的云盘,也是可以的,只是更加复杂一点,这里我简单说一下方法,不具体进行操作演示。其实云同步任务底层是使用rclone进行同步,你可以创建一个rclone配置文件保存在数据盘中(不要放在默认位置,否则重启会丢失),然后编写一个同步脚本,指定自己的配置文件,再定期运行这个脚本就行了。
五、同步任务
这里的同步任务有别与前面的云同步任务。云同步任务是使用Rclone同步到云盘,同步任务则是使用Rsync同步到其它主机。我这里将演示将picture数据集中的文件同步到另外一个linux主机。
rsync有两种传输模式,module和ssh,由于module模式数据传输过程不加密,不够安全,我们这里使用ssh模式。
1.添加密钥对
转到<用户凭据> - <备份凭据>,在“SSH密钥对”栏点击<添加>,“名称”随便输入一个,我这里填写sshKey-01,然后点击<生成密钥对>,就会自动生成一个密钥对,然后保存。
2.将刚才生成的密钥对的公钥复制到远程主机上
以下几行命令操作在远程主机中进行:
$ cd /root/.ssh //如果没有.ssh目录,就使用自己创建一个
$ touch authorized_keys
$ chmod 600 authorized_keys
# nano authorized_keys
//将TrueNAS中生成的id_rsa.pub里的内容复制到这里然后保存
3.添加SSH连接
接着回到Truenas Scale系统,在“SSH Connections”栏点击<添加>:
“名称”输入必须是唯一的;“设置方法”里有两个选项,一个是手动,一个是半自动(仅限TrueNAS),由于我们连接到非TrueNAS系统,这里选择手动。
“主机”填写远程主机的地址;“端口”默认是22,如果你的远程主机ssh商品是其它的,按实际填写;“用户名”默认为root;“私钥”选择刚才创建的密钥对;接着点击<发现远程主机密钥>就行自动填入“远程主机密钥”,然后保存。
4.添加同步任务
转到<数据保护>界面,在“同步任务”栏点击<添加>:
“路径”选择需要几步的数据集;“用户”选择root;“方向”选择推送,这里同云同步任务是一样的,不要选择错了;“描述”可以填写一下备注。
“Rsync”模式选择SSH;“使用连接”选择来自钥匙串的SSH连接;“SSH连接”选择上一步创建的ssh连接;“远程路径”填写远程主机上用于存放同步数据的目录,勾选下方的“验证远程路径”,如果该目录不存在就会自动创建。
“计划”选择同步的周期;默认勾选“递归的”和“已启用”。
更多选项可以全部选中,点击后面的问题有具体提示。
保存之后就添加了一个定期同步任务
点击后面的<立即运行>就可以马上进行同步了。
现在可以在远程主机中看到同步过来的内容了。
六、SMART测试
在“S.M.A.R.T. Tests”栏点击<添加>就可以创建自动SMART检测任务了,比较简单,这里就不介绍了。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~