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

相关文章

Linux join命令的使用及说明

《Linuxjoin命令的使用及说明》`join`命令用于在Linux中按字段将两个文件进行连接,类似于SQL的JOIN,它需要两个文件按用于匹配的字段排序,并且第一个文件的换行符必须是LF,`jo... 目录一. 基本语法二. 数据准备三. 指定文件的连接key四.-a输出指定文件的所有行五.-o指定输出

Redis中Hash从使用过程到原理说明

《Redis中Hash从使用过程到原理说明》RedisHash结构用于存储字段-值对,适合对象数据,支持HSET、HGET等命令,采用ziplist或hashtable编码,通过渐进式rehash优化... 目录一、开篇:Hash就像超市的货架二、Hash的基本使用1. 常用命令示例2. Java操作示例三

Redis中Set结构使用过程与原理说明

《Redis中Set结构使用过程与原理说明》本文解析了RedisSet数据结构,涵盖其基本操作(如添加、查找)、集合运算(交并差)、底层实现(intset与hashtable自动切换机制)、典型应用场... 目录开篇:从购物车到Redis Set一、Redis Set的基本操作1.1 编程常用命令1.2 集

Python sys模块的使用及说明

《Pythonsys模块的使用及说明》Pythonsys模块是核心工具,用于解释器交互与运行时控制,涵盖命令行参数处理、路径修改、强制退出、I/O重定向、系统信息获取等功能,适用于脚本开发与调试,需... 目录python sys 模块详解常用功能与代码示例获取命令行参数修改模块搜索路径强制退出程序标准输入

MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决

《MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决》MyBatis默认开启一级缓存,同一事务中循环调用查询方法时会重复使用缓存数据,导致获取的序列主键值均为1,... 目录问题原因解决办法如果是存储过程总结问题myBATis有如下代码获取序列作为主键IdMappe

k8s搭建nfs共享存储实践

《k8s搭建nfs共享存储实践》本文介绍NFS服务端搭建与客户端配置,涵盖安装工具、目录设置及服务启动,随后讲解K8S中NFS动态存储部署,包括创建命名空间、ServiceAccount、RBAC权限... 目录1. NFS搭建1.1 部署NFS服务端1.1.1 下载nfs-utils和rpcbind1.1

Redis高性能Key-Value存储与缓存利器常见解决方案

《Redis高性能Key-Value存储与缓存利器常见解决方案》Redis是高性能内存Key-Value存储系统,支持丰富数据类型与持久化方案(RDB/AOF),本文给大家介绍Redis高性能Key-... 目录Redis:高性能Key-Value存储与缓存利器什么是Redis?为什么选择Redis?Red

MySQL之复合查询使用及说明

《MySQL之复合查询使用及说明》文章讲解了SQL复合查询中emp、dept、salgrade三张表的使用,涵盖多表连接、自连接、子查询(单行/多行/多列)及合并查询(UNION/UNIONALL)等... 目录复合查询基本查询回顾多表查询笛卡尔积自连接子查询单行子查询多行子查询多列子查询在from子句中使

MyBatis-plus处理存储json数据过程

《MyBatis-plus处理存储json数据过程》文章介绍MyBatis-Plus3.4.21处理对象与集合的差异:对象可用内置Handler配合autoResultMap,集合需自定义处理器继承F... 目录1、如果是对象2、如果需要转换的是List集合总结对象和集合分两种情况处理,目前我用的MP的版本

Redis中哨兵机制和集群的区别及说明

《Redis中哨兵机制和集群的区别及说明》Redis哨兵通过主从复制实现高可用,适用于中小规模数据;集群采用分布式分片,支持动态扩展,适合大规模数据,哨兵管理简单但扩展性弱,集群性能更强但架构复杂,根... 目录一、架构设计与节点角色1. 哨兵机制(Sentinel)2. 集群(Cluster)二、数据分片