ZFS存储池速度以及RAID说明

2024-02-22 02:44
文章标签 说明 存储 速度 raid zfs

本文主要是介绍ZFS存储池速度以及RAID说明,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 前言
    • 1. STRIPED VDEV(RAID 0)
        • 性能示例:
    • 2. MIRRORED VDEV (RAID 1)
      • 1x 12-way mirror:
      • 6x 2-way mirror:
      • 4x 3-way mirro:
        • 性能示例:
    • 3. RAIDZ VDEV
      • RAIDZ3:
      • RAIDZ2(RAID6):
      • RAIDZ1 (RAID5):
        • 性能示例:
    • 总结
    • 参考


前言

RAID存储主要考虑以下6个指标:

  • 读取IOPS
  • 写入IOPS
  • 连续读取速度
  • 连续写入速度
  • 存储空间效率(冗余校验后的可用容量与总原始容量之比)
  • 容错能力(在数据丢失之前可以容忍的最大故障驱动器数量)

假设使用12个硬盘,每个硬盘的大小为6TB,100MB/s的连续读写速度,并且可以进行250次读写IOPS,来看不同RAID的**理论性能**。

1. STRIPED VDEV(RAID 0)

在这里插入图片描述

坏一个盘整个存储池就废掉。

在这里插入图片描述

性能示例:
属性N-wide striped12-wide striped
Read IOPSN * 单个驱动器的读取IOPS3000
Write IOPSN * 单个驱动器的写入IOPS3000
Streaming read speedN * 单个驱动器的连续读取速度1200 MB/s
Streaming write speedN * 单个驱动器的连续写入速度1200 MB/s
Storage space efficiency100%72 TB
Fault toleranceNoneNone

2. MIRRORED VDEV (RAID 1)

1x 12-way mirror:

相当于12个硬盘组RAID1

6x 2-way mirror:

相当于 每2个硬盘组RAID1,然后再6个组RAID0。

在这里插入图片描述

每个VDEV可坏一个

在这里插入图片描述

但是一个VDEV坏2个就废掉

在这里插入图片描述

4x 3-way mirro:

相当于 每3个硬盘组RAID1,然后再4个组RAID0。

在这里插入图片描述

每个VDEV可坏2个

在这里插入图片描述

但是一个VDEV坏3个就废掉

在这里插入图片描述

性能示例:
属性N-way mirror1x 12-way mirror6x 2-way mirror4x 3-way mirror
Read IOPSN * 单个驱动器的读取IOPS300030003000
Write IOPS单个驱动器的写入IOPS25015001000
Streaming read speedN * 单个驱动器的连续读取速度1200 MB/s3000 MB/s3000 MB/s
Streaming write speed单个驱动器的连续写入速度100 MB/s1500 MB/s400 MB/s
Storage space efficiency50% for 2-way, 33% for 3-way, 25% for 4-way, etc. [(N-1)/N]8.3% (6 TB)50% (36 TB)33% (24 TB)
Fault tolerance1 disk per vdev for 2-way, 2 for 3-way, 3 for 4-way, etc. [N-1]11每个vdev1个,总计6个每个vdev2个,总计8个

3. RAIDZ VDEV

RAIDZ3:

每个VDEV可坏3个硬盘

在这里插入图片描述

RAIDZ2(RAID6):

每个VDEV可坏2个硬盘

在这里插入图片描述

RAIDZ1 (RAID5):

每个VDEV可坏1个硬盘

在这里插入图片描述

性能示例:
属性N-wide RAIDZ, parity level p1x 12-wide Z32x 6-wide Z24x 3-wide Z1
Read IOPS单个驱动器的读取IOPS2505001000
Write IOPS单个驱动器的写入IOPS2505001000
Streaming read speed(N - p) * 单个驱动器的连续读取速度900 MB/s800 MB/s800 MB/s
Streaming write speed(N - p) * 单个驱动器的写入读取速度900 MB/s800 MB/s800 MB/s
Storage space efficiency(N - p)/N75% (54 TB)66.7% (48 TB)66.7% (48 TB)
Fault tolerance1 disk per vdev for Z1, 2 for Z2, 3 for Z3 [p]3每个vdev2个,总计4个每个vdev1个,总计4个

总结

只有RAID0这种可提升写IOPS!

参考

RAID重建计算 (R2-C2)

OpenZFS 容量计算

OpenZFS the final word in file systems

这篇关于ZFS存储池速度以及RAID说明的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/733903

相关文章

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

Tomcat版本与Java版本的关系及说明

《Tomcat版本与Java版本的关系及说明》:本文主要介绍Tomcat版本与Java版本的关系及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Tomcat版本与Java版本的关系Tomcat历史版本对应的Java版本Tomcat支持哪些版本的pythonJ

Nginx指令add_header和proxy_set_header的区别及说明

《Nginx指令add_header和proxy_set_header的区别及说明》:本文主要介绍Nginx指令add_header和proxy_set_header的区别及说明,具有很好的参考价... 目录Nginx指令add_header和proxy_set_header区别如何理解反向代理?proxy

Oracle存储过程里操作BLOB的字节数据的办法

《Oracle存储过程里操作BLOB的字节数据的办法》该篇文章介绍了如何在Oracle存储过程中操作BLOB的字节数据,作者研究了如何获取BLOB的字节长度、如何使用DBMS_LOB包进行BLOB操作... 目录一、缘由二、办法2.1 基本操作2.2 DBMS_LOB包2.3 字节级操作与RAW数据类型2.

Java实现数据库图片上传与存储功能

《Java实现数据库图片上传与存储功能》在现代的Web开发中,上传图片并将其存储在数据库中是常见的需求之一,本文将介绍如何通过Java实现图片上传,存储到数据库的完整过程,希望对大家有所帮助... 目录1. 项目结构2. 数据库表设计3. 实现图片上传功能3.1 文件上传控制器3.2 图片上传服务4. 实现

C语言中的浮点数存储详解

《C语言中的浮点数存储详解》:本文主要介绍C语言中的浮点数存储详解,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、首先明确一个概念2、接下来,讲解C语言中浮点型数存储的规则2.1、可以将上述公式分为两部分来看2.2、问:十进制小数0.5该如何存储?2.3 浮点

JAVA SE包装类和泛型详细介绍及说明方法

《JAVASE包装类和泛型详细介绍及说明方法》:本文主要介绍JAVASE包装类和泛型的相关资料,包括基本数据类型与包装类的对应关系,以及装箱和拆箱的概念,并重点讲解了自动装箱和自动拆箱的机制,文... 目录1. 包装类1.1 基本数据类型和对应的包装类1.2 装箱和拆箱1.3 自动装箱和自动拆箱2. 泛型2

MySQL常见的存储引擎和区别说明

《MySQL常见的存储引擎和区别说明》MySQL支持多种存储引擎,如InnoDB、MyISAM、MEMORY、Archive、CSV和Blackhole,每种引擎有其特点和适用场景,选择存储引擎时需根... 目录mysql常见的存储引擎和区别说明1. InnoDB2. MyISAM3. MEMORY4. A

MyBatis的配置对象Configuration作用及说明

《MyBatis的配置对象Configuration作用及说明》MyBatis的Configuration对象是MyBatis的核心配置对象,它包含了MyBatis运行时所需的几乎所有配置信息,这个对... 目录MyBATis配置对象Configuration作用Configuration 对象的主要作用C

Golang基于内存的键值存储缓存库go-cache

《Golang基于内存的键值存储缓存库go-cache》go-cache是一个内存中的key:valuestore/cache库,适用于单机应用程序,本文主要介绍了Golang基于内存的键值存储缓存库... 目录文档安装方法示例1示例2使用注意点优点缺点go-cache 和 Redis 缓存对比1)功能特性