OpenZFS安装和使用

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
实时计算 Flink 版,1000CU*H 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
简介: 在Ubuntu 22.04.3 LTS上,本文介绍了OpenZFS的容错功能,如RAID-Z(类似RAID 5)、Mirror(类似RAID 1)、RAID-Z2和RAID-Z3,以及Hot Spare和Scrubbing。推荐使用RAID-Z1以平衡容量和预算。主要步骤包括安装zfsutils-linux,创建RAID-Z1存储池和ZFS文件系统,以及管理文件系统。此外,还提到了使用nfs共享ZFS文件系统的命令。

操作环境

其他环境请酌情转换处理

系统环境: Ubuntu 22.04.3 LTS
```bash

lsb_release -a

No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.3 LTS
Release: 22.04
Codename: jammy


> 磁盘情况
```bash
# lsblk -e 7
# -e 排除 loop设备类型

NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda           8:0    0   7.3T  0 disk
sdb           8:16   0   7.3T  0 disk
sdc           8:32   0   7.3T  0 disk
sdd           8:48   0   7.3T  0 disk

OpenZFS 中常见的容错功能

OpenZFS 是一个强大的文件系统和逻辑卷管理器,它提供了多种容错功能,可以保护数据免受硬件故障和数据损坏的影响。下面是一些 OpenZFS 中常见的容错功能:

  1. RAID-Z

    • RAID-Z1 是 RAID-Z 的别名。The raidz vdev type is an alias for raidz1
    • RAID-Z 是一种 ZFS 特有的软件 RAID 方案,类似于传统 RAID 5,但提供更强大的功能和更好的性能。
    • RAID-Z 通过在数据块中存储校验信息来提供数据完整性保护。在磁盘故障时,它可以使用校验信息恢复丢失的数据。
  2. Mirror

    • Mirror 是 OpenZFS 中的镜像功能,类似于传统 RAID 1。
    • 在 Mirror 中,数据被复制到至少两个磁盘上,如果一个磁盘失败,数据仍然可以从其他镜像中恢复。
  3. RAID-Z2 和 RAID-Z3

    • 类似于 RAID-Z,但提供了更高级别的容错保护。
    • RAID-Z2 允许在两个磁盘故障的情况下继续运行,而 RAID-Z3 允许在三个磁盘故障的情况下继续运行。
  4. Hot Spare

    • Hot Spare 是一种备用磁盘,当检测到磁盘故障时,它会自动替换故障磁盘。
    • 这可以减少故障对系统的影响,并在故障发生时自动恢复数据。
  5. Scrubbing

    • Scubbing 是一种定期检查和修复数据完整性的过程。
    • 它会定期扫描存储池中的所有数据,并检查它们与校验信息是否匹配,以及是否存在任何损坏的数据。

选择容错的方案

选择RAID-Z1, 如果有N个相等的磁盘 , 则容量为 (N-1)* 磁盘容量,读取、写入性能均为:N-1, 适用追求最大容量、最小预算的情况。

RAIDZ官网介绍: https://openzfs.github.io/openzfs-docs/Basic%20Concepts/RAIDZ.html

主要操作步骤

参考资料: https://openzfs.github.io/openzfs-docs/

  1. 安装 OpenZFS

On Ubuntu, ZFS is included in the default Linux kernel packages. To install the ZFS utilities, first make sure universe is enabled in /etc/apt/sources.list

deb http://archive.ubuntu.com/ubuntu CODENAME main universe

apt update
apt install zfsutils-linux

# zpool version
zfs-2.1.5-1ubuntu6~22.04.4
zfs-kmod-2.2.0-0ubuntu1~23.10.2

# zfs --version
zfs-2.1.5-1ubuntu6~22.04.4
zfs-kmod-2.2.0-0ubuntu1~23.10.2
  1. 创建 ZFS 存储池
    ```bash

    下面两条命令效果相同

    sudo zpool create mdata -m /mdata raidz1 /dev/sda /dev/sdb /dev/sdc /dev/sdd

    sudo zpool create mdata -m /mdata raidz /dev/sda /dev/sdb /dev/sdc /dev/sdd

zpool list

zpool status

pool: mdata
state: ONLINE
config:

    NAME        STATE     READ WRITE CKSUM
    mdata       ONLINE       0     0     0
      raidz1-0  ONLINE       0     0     0
        sda     ONLINE       0     0     0
        sdb     ONLINE       0     0     0
        sdc     ONLINE       0     0     0
        sdd     ONLINE       0     0     0

errors: No known data errors

zpool --help

销毁存储池

sudo zpool destroy mdata


3. 创建 ZFS 文件系统
```bash
# 创建文件系统
sudo zfs create -o mountpoint=/mdata/zfs mdata/zfs

cd /mdata/
chown -R user:user admin-user zfs

zfs list

# 移除文件系统
sudo zfs unmount mdata/zfs
sudo zfs destroy -r mdata/zfs

其他命令

nfs共享

zfs set sharenfs="rw,root=192.168.xxx.xxx,root=172.10.xxx.xxx" /mata/share
目录
相关文章
|
Ubuntu
ubuntu 软 raid配置
ubuntu 软 raid配置
2550 2
|
NoSQL Java
简析Cassandra的BATCH操作
cassandra中批量写入的操作称为batch,通过batch操作可以将多个写入请求合并为一个请求。这样有如下作用: 把多次更新操作合并为一次请求,减少客户端和服务端的网络交互。 batch中同一个partition key的操作具有隔离性。
6965 0
|
存储 SQL 分布式计算
Apache Iceberg数据湖基础
Apache Iceberg 是新一代数据湖表格式,旨在解决传统数据湖(如 Hive)在事务性、并发控制和元数据管理上的不足。它支持 Spark、Flink、Trino 等多种计算引擎,提供 ACID 事务、模式演化、分区演化等核心特性,具备良好的云存储兼容性和高性能查询能力,适用于大规模结构化数据分析场景。
|
缓存 Linux 开发工具
CentOS 7- 配置阿里镜像源
阿里镜像官方地址http://mirrors.aliyun.com/ 1、点击官方提供的相应系统的帮助 :2、查看不同版本的系统操作: 下载源1、安装wget yum install -y wget2、下载CentOS 7的repo文件wget -O /etc/yum.
255307 0
|
安全 Linux 数据安全/隐私保护
docker运行报错docker: Error response from daemon: AppArmor enabled on system but the docker-default prof
docker运行报错docker: Error response from daemon: AppArmor enabled on system but the docker-default prof
874 0
|
存储 Ubuntu Linux
揭开自制NAS的神秘面纱:一步步教你如何用Linux打造专属网络存储王国!
【8月更文挑战第22天】构建Linux NAS系统是技术爱好者的热门项目。通过选择合适的发行版如Alpine Linux或Ubuntu Server,并利用现有硬件,你可以创建一个高效、可定制的存储解决方案。安装Linux后,配置网络设置确保可达性,接着安装Samba或NFS实现文件共享。设置SSH服务方便远程管理,利用`rsync`与`cron`进行定期备份。还可添加Web界面如Nextcloud提升用户体验。这一过程不仅节约成本,还赋予用户高度的灵活性和控制权。随着技术发展,Linux NAS方案持续进化,为用户带来更丰富的功能和可能性。
999 1
|
存储 Linux 网络安全
Linux版百度网盘丨直接在服务器SSH命令行中使用百度云,轻松解决数据传输和分享难题
Linux版百度网盘丨直接在服务器SSH命令行中使用百度云,轻松解决数据传输和分享难题
|
运维 Kubernetes Go
"解锁K8s二开新姿势!client-go:你不可不知的Go语言神器,让Kubernetes集群管理如虎添翼,秒变运维大神!"
【8月更文挑战第14天】随着云原生技术的发展,Kubernetes (K8s) 成为容器编排的首选。client-go作为K8s的官方Go语言客户端库,通过封装RESTful API,使开发者能便捷地管理集群资源,如Pods和服务。本文介绍client-go基本概念、使用方法及自定义操作。涵盖ClientSet、DynamicClient等客户端实现,以及lister、informer等组件,通过示例展示如何列出集群中的所有Pods。client-go的强大功能助力高效开发和运维。
945 1
|
Web App开发 安全 Linux
Linux系统之安装Firefox浏览器
【7月更文挑战第8天】Linux系统之安装Firefox浏览器
685 10