TrueNAS磁盘扩容(VDEV 和 RAID 技术)

news2025/1/19 11:30:51

目录

  • 背景
  • 扩容前准备
    • 扩容有风险
    • 安装新的硬盘到卡槽
    • 扩容测试
    • 一个VDEV
    • 两个VDEV
  • 正式扩容
  • 关于Raid
  • 总结

背景

    这几天将原来windows服务器上的文件拷贝到新做好的TrueNAS上,发现磁盘满了,服务器上还有硬盘卡槽,就新买了12块盘,准备扩容。
在这里插入图片描述

扩容前准备

扩容有风险

    其实给 TrueNAS 扩容可能会有一些风险,这是因为扩容涉及到数据存储和磁盘管理,如果不小心操作可能会导致数据丢失或系统损坏。
    在扩大存储池或卷的大小时,如果没有正确地将数据从一个位置移动到另一个位置,就有可能丢失数据。例如,在将磁盘添加到存储池或卷时,如果没有正确地分配磁盘空间,就有可能覆盖现有数据或使数据无法访问。
    如果在扩容过程中断电、断网或出现其他错误,可能会导致文件系统损坏。这可能会导致数据损坏或无法访问。或者如果正在使用的磁盘已经损坏,扩容可能会加重磁盘负载,并导致更多的磁盘故障。

安装新的硬盘到卡槽

红框中是将要新增硬盘的卡槽(硬盘都是用螺丝固定在卡槽上的)
在这里插入图片描述
一定记得装好之后将所有卡槽推进去,灯全亮
在这里插入图片描述

扩容测试

    其实在第一次安装完Truenas系统之后,在进行存储池设置的时候,也就是拷贝数据之前我是进行过扩容测试的,再正式说扩容之前,先说下关于简单说下VDEVs,后面会详细介绍。

    VDEVs (Virtual Device)是组成存储池的基本构建块,在 TrueNAS 中,可以通过组合不同类型的 VDEVs 来创建存储池,并根据需求配置数据保护和性能。存储池是由一个或多个 VDEVs 组成的逻辑存储单元。创建存储池时,可以选择将多个 VDEVs 组合在一起以扩展存储容量或增加数据冗余。过在存储池中使用不同类型的 VDEVs,可以配置数据保护级别,确保数据的安全性和可靠性。例如,可以使用镜像 VDEVs 实现数据完全镜像,或者使用 RAIDZ VDEVs 实现数据条带化和冗余。
在前面一篇博客中有讲过存储池和数据集,现在又来了一个VDEVs,它们之前什么关系呢?

    存储池就像是整个房子一样。它是一个大的容器,用于存放所有的数据。存储池可以由一个或多个 VDEVs 组成,就像一个房子可以由不同的房间构成。VDEVs 就好比房子中的房间。每个 VDEV 是存储池中的一个独立子集,可以包含物理磁盘、文件、分区等不同类型的存储设备。这些房间(VDEVs)可以独立地进行管理和配置,就像房子中的各个房间可以分别装修和布置。

    数据集可以比喻为房间里的抽屉。每个数据集都是存储池中的一个逻辑单元,用于组织和存储特定类型的数据。就像在房间里使用抽屉来整理和存放物品一样,数据集更好地组织和管理存储池中的数据。

    也就是一个存储池可以包含多个 VDEVs,而每个 VDEVs 可以包含多个数据集。

    如果这样还不是很好理解,就看下面的例子

创建存储池
在这里插入图片描述
选择硬盘之后此处默认会有一个数据VDev点击箭头添加硬盘,选择Raid类型点击创建,我这里选择的是RAIDZ3
在这里插入图片描述
这里来说一下一个VDEVs和两个VDEVs的区别

一个VDEV

在这里插入图片描述
    可以看到上面的单个磁盘大小显示的是12.73T,实际上硬盘是14T,这里显示12.37T的原因可能是启用了空间保留功能,保留一些磁盘空间作为写入缓存,以提高数据写入性能。启用此功能后,TureNAS 将显示可用空间小于实际物理容量。在某些情况下,空间保留也可以防止空间耗尽,从而导致系统崩溃。

    另外这里需要注意,TureNAS 采用ZFS 文件系统格式,在使用 ZFS 文件系统时,一个池中的所有设备必须具有相同的容量,因此如果池中有一个容量较小的设备,它将限制整个池的容量。所以买盘的时候尽量选择大小一致的盘。

    另外,ZFS 还需要一些空间用于元数据和磁盘块分配。在 TureNAS 中,ZFS 还会保留一定的空间作为快照。这些因素都可能导致总可用空间小于设备的实际容量。

    再来简单说下RAIDZ3 (后面也还会再介绍)。RAIDZ3 是一种基于 ZFS 文件系统的磁盘阵列技术,它提供了比传统 RAID 类型更高的容错能力。在 RAIDZ3 中,每个 stripe 组包含一个或多个数据块和三个纠错编码块(parity block)。三个纠错编码块中的任何一个都可以恢复任意单个硬盘的数据,这意味着在 RAIDZ3 中可以同时容忍任意三个硬盘的故障。在具有 N 个硬盘的 RAIDZ3 阵列中,N - 3 块硬盘用于存储数据,而剩余的3块硬盘用于保存纠错编码块。如果使用 12 块 14T 的硬盘划分为一个 RAIDZ3 VDEV,则将有 9 块硬盘用于存储数据,而剩下的 3 块硬盘用于存储纠错编码

    现在来算一下RAIDZ3 单个 VDEV 情况:

  • 磁盘大小:12.73T(按照上图中给的数据)
  • RAIDZ3,VDEVs 数量为 1
  • Total raw Capacity 为 114.58T

对于单个 VDEV 的情况,有 12.73T 的每块磁盘,减去 3 个用于纠错编码的磁盘,剩下 9个 用于数据存储。因此,总的原始容量为:

12.73 * 9= 114.57T(四舍五入可能就成114.58T)

两个VDEV

在这里插入图片描述

    经过上面的分析,现在算一下有两个 VDEVs 情况。
    如果使用两个 RAIDZ3 VDEVs,要将磁盘分成两组,每组 6 块硬盘。每组中3 个用于纠错编码的磁盘,剩下 3* 12.73T = 38.19T 可用于数据存储。
    两组的总容量:38.19*2=76.38T(四舍五入可能就成76.39T)

    根据标准的 RAIDZ3 计算方式,单个 VDEV 的总原始容量是 114.58T,而两个 VDEV 的总原始容量是76.38T。可以看出每一个VDEV都是单独的个体,都有单独的纠错编码盘。

    在 ZFS 存储池中,每个 VDEV 都会应用 ZFS 的数据完整性保护机制,如校验和和镜像等。

    选择更多的 VDEV 可以增加存储池的总体可靠性和冗余性,因为数据可以分布在多个磁盘上,并且可以通过镜像或者 RAID-Z 等方式实现数据冗余和纠错功能。这意味着即使某个 VDEV 中的某个磁盘发生故障,存储池仍然可以继续运行,并且不会丢失数据。

    然而,选择更多的 VDEV 也会导致存储池的存储容量减少,因为一部分空间被用于实现冗余和纠错。因此,在选择 VDEV 数量时,需要权衡存储容量、性能和可靠性之间的关系。

    总的来说,选择更多的 VDEV 可以提高存储池的安全性和可靠性,但会牺牲一定的存储容量。如果重视数据可靠性和冗余性,选择多个 VDEV 是一个不错的选择。

    后面拷贝数据进行了 一下测试,没有问题

正式扩容

1、将新磁盘添加到池(显示的14块,除了12块新硬盘,还有之前放进去的两个固态,用来做读缓存用的)
在这里插入图片描述

2、选择现有池
在这里插入图片描述

3、数据–布局仍然使用RAIDZ3,12块,一个VDEVs(注意这里是一个新的VDEVs)

    在 ZFS 中,一个 VDEV 的大小是在创建时确定的,无法像传统的 RAID 那样动态地扩展。因此,在扩展存储池容量时,通常需要添加一个新的 VDEV 来实现。

    当向现有池添加新的存储设备时,无法将这些设备直接附加到现有的 VDEV 上,因为每个 VDEV 的大小和配置在创建时就已经确定了。ZFS 的设计理念是确保数据的完整性和可靠性,因此在扩展存储池时,最常见的做法是添加一个新的 VDEV,并将其加入到存储池中以增加总的存储容量。

在这里插入图片描述

4、缓存(仍然使用固态两块)
在这里插入图片描述

5、Review

在这里插入图片描述

关于Raid

    在 TrueNAS 中,可以根据自己的需求选择合适的存储模式来配置存储系统。不同的存储模式提供了不同的容错能力和性能特点,用户可以根据自己的需求进行选择。

  • 条带模式(Stripe):

    每个磁盘都用于存储数据,没有数据冗余。最少需要一个磁盘,但是如果其中一个磁盘损坏,整个数据集将会丢失。这种模式在性能方面表现最佳,但数据最不安全,不适合存储关键数据。

  • 镜像 (Mirror):

    每个磁盘中的数据都是相同的,提供了最高级别的冗余。至少需要两个磁盘来创建镜像,但容量利用率较低。

  • RAID-Z:

    使用一个磁盘进行奇偶校验,而其他磁盘存储数据。至少需要三个磁盘。RAID-Z 提供了一定程度的冗余,最多允许损坏1块硬盘数据仍能安全存储。

  • RAID-Z2:

    使用两个磁盘进行奇偶校验,而其他磁盘存储数据。至少需要四个磁盘。RAID-Z2 提供了更高级别的冗余,最多允许损坏2块硬盘数据仍能安全存储。

  • RAID-Z3:

    使用三个磁盘进行奇偶校验,而其他磁盘存储数据。至少需要五个磁盘。RAID-Z3 提供了最高级别的冗余,最多允许损坏3块硬盘数据仍能安全存储。

总结

    本文主要介绍了如何在 TrueNAS 中进行磁盘扩容,并在此过程中提到了 VDEV 类型和 RAID 技术。磁盘扩容是指向现有存储系统添加更多的磁盘空间,以增加总容量和满足不断增长的存储需求。在 TrueNAS 中,可以选择不同的 VDEV 类型,如条带式、镜像、RAID-Z 等,来组合磁盘以创建存储池,并通过添加新的 VDEV 来实现磁盘扩容。这样可以有效地平衡性能、容量和冗余需求,提供稳定可靠的存储解决方案。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1458265.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

人工智能|深度学习——基于对抗网络的室内定位系统

代码下载: 基于CSI的工业互联网深度学习定位.zip资源-CSDN文库 摘要 室内定位技术是工业互联网相关技术的关键一环。该技术旨在解决于室外定位且取得良好效果的GPS由于建筑物阻挡无法应用于室内的问题。实现室内定位技术,能够在真实工业场景下实时追踪和…

小程序--本地存储API

1、存储数据 wx.setStorageSync():无需转换数据类型,存什么类型的就是什么类型的,data中的数据,使用时是this.data.名称。 saveData() {wx.setStorageSync(list, this.data.list)wx.showToast({title: 存储成功,})}, 2、读取数据…

163邮箱发邮件

1、Jenkins安装Email Extension Plugin 2、网易邮箱里获取授权码:qa_jenkins_robot@163.com 开启POP3/SMTP 我已经配置过了,所以这里会有一个使用设备 3、配置Jenkins邮箱通知 Manage Jnekins-Configuration System Jenkins Location: Extended E-mail Notification: …

关于三维GIS开发成长路线的一些思考

三维GIS是将GIS三维化表达,从一个三维GIS开发门外汉的角度来看,三维GIS开发成长路线分几个层面: 第一层面 做三维开发,最基本的Cesium、ThreeJS、MapBox这些要能做到接口级熟悉,熟悉接口是用来干嘛的,接口…

HarmonyOS4.0系列——08、整合UI常用组件

HarmonyOS4.0 系列——08、UI 组件 Blank Blank 组件在横竖屏占满空余空间效果 // xxx.ets Entry Component struct BlankExample {build() {Column() {Row() {Text(Button).fontSize(18)Blank()Toggle({type: ToggleType.Switch}).margin({top: 14,bottom: 14,left: 6,righ…

Camtasia 2023 v23.4.2.51146 Win功能强大的屏幕录制和视频编辑软件

Camtasia 2023.3.4.2是一款适用于各类用户的屏幕录制和视频编辑软件,特别适合需要制作教育、培训和营销视频的专业人士。它结合了易用性和多样的功能,使视频制作变得更加高效和专业。 软件安装 适用于 Win10.win11系统 1.直接安装软件,安装…

自定义异常处理演示

​ 为了防止黑客从前台异常信息,对系统进行攻击。同时,为了提高用户体验,我们都会都抛出的异常进行拦截处理。 一、全局异常处理 编写一个异常拦截类,如下:ControllerAdvice,很多初学者可能都没有听说过…

【Go语言】Go语言中的变量和常量

Go语言中的变量和常量 1 变量 变量相当于是对一块数据存储空间的命名,程序可以通过定义一个变量来申请一块数据存储空间,之后可以通过引用变量名来使用这块存储空间。 Go 语言是强类型静态语言,所以变量的声明与赋值方式与 PHP/Python 等动…

极狐GitLab 如何配置多个 LDAP?

本文仅适用于极狐GitLab私有化部署场景。 场景化痛点 极狐GitLab 的多 LDAP 接入功能解决了企业在以下场景中可能遇到的痛点: 多个组织/部门的整合:在大型企业或跨国公司中,往往存在多个组织或部门,它们可能拥有独立的 LDAP 服务…

kuka示教器嵌套UR界面操作ros中rviz的UR机器人

摘要 本例展示了用QT增加一个网页视图,背景是kuka示教器界面,中间增加UR的VNC网页界面显示。本人博客中一起有写过ros2运行UR的操作。 ros2 UR10仿真包运行_基于ros的ur仿真-CSDN博客 效果如下: 1.打开UR机器人的ros2仿真文件 sudo su ros2…

【Python数据分析系列】实现dataframe逐行遍历和逐列遍历(案例+源码)

一、引言 在处理和分析表格数据时,我们经常需要对数据进行遍历,然后做进一步后续处理,这里涉及到表格数据的逐行遍历或者逐列遍历的操作,本文将通过一个案例教你实现这个操作。 二、实现过程 准备数据 代码: # 准备…

【plt.hist绘制直方图】:从入门到精通,只需一篇文章!【Matplotlib可视化】

【📊plt.pie绘制直方图】:从入门到精通,只需一篇文章!【Matplotlib可视化】! 利用Matplotlib进行数据可视化示例 🌵文章目录🌵 📈 一、引言🔍 二、plt.hist()函数基础&am…

【Linux 内核源码分析】虚拟内存地址空间

在现代操作系统中,每个进程被分配了独享的虚拟内存地址空间。这个地址空间可以视为一维线性空间,由多个连续的内存页组成。初始时,操作系统会将整个虚拟地址空间分成几个不同的区域,每个区域用于特定的目的。以下是一个常见的布局…

如何理解景深

直观理解 先看两幅图片: 图片虽然是二维的,但描述的是三维的场景。 近处的场景较为清晰,而远处的却逐渐模糊。但是景深大的排出的图片前后清晰的范围越大! 所以,初步理解景深就是图片清晰的前后范围,景深…

机器人十大前沿技术(2023-2024年)

2023-2024年机器人十大前沿技术 1. 具身智能与垂直大模型 具身智能是指拥有自主感知、交互和行动能力的智能体,能够与环境进行实时互动,从而实现对环境的理解和适应。 “大模型”是指在深度学习和人工智能领域中,使用大量参数和数据进行训…

阿里云ECS服务器如何选择操作系统?

阿里云服务器镜像怎么选择?云服务器操作系统镜像分为Linux和Windows两大类,Linux可以选择Alibaba Cloud Linux,Windows可以选择Windows Server 2022数据中心版64位中文版,阿里云服务器网aliyunfuwuqi.com来详细说下阿里云服务器操…

Nginx解决单页应用刷新报错404的问题

一、问题 1.1 问题概述 将React应用打包后,部署到服务器上,在非首页的地方使用浏览器自带的刷新功能,页面刷新失败,显示404; 如果你的问题和我类似,可以往下看~ 1.2 问题详细描述 在项目开发完成后&am…

Python爬虫之图形验证码的识别

爬虫专栏:http://t.csdnimg.cn/WfCSx 前言 目前,许多网站采取各种各样的措施来反爬虫,其中一个措施便是使用验证码。随着技术的发展,验证码的花样越来越多。验证码最初是几个数字组合的简单的图形验证码,后来加入了英…

单片机01天---stm32基本信息了解

下载数据手册 以STM32F407ZG为例 网站:www.st.com,搜索芯片型号,下载“数据手册”使用 数据手册使用 查看芯片型号信息 芯片资源信息 时钟框图 芯片资源表格下方 GPIO口表格 一般位于下图后面的位置 ①工作电压:1.8V – 3.6V…

看小姐姐的效果棒极了,写了一个工具,逐帧解析视频转成图片,有没有带上商业思维的小伙伴一起研究下

一个突然的想法,促成了这个项目雏形。 原理是: 上传一个视频,自动将视频每一帧保存成图片 然后前端访问 就能实现如图效果 后端是python/flask 数据库mysql 前端uniapp 项目演示: xt.iiar.cn 后端代码如下: #学习…