OpenZFS安装和使用

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
智能开放搜索 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
目录
相关文章
|
Web App开发 安全 程序员
Bito安装及使用
Bito安装及使用
718 0
|
NoSQL 网络安全 Redis
redisd的简易安装运用
redisd的简易安装运用
75 0
ceres安装
ceres安装
501 0
ceres安装
|
Python
Anconda安装(超详细 3.5X)
Anconda安装(超详细 3.5X)
152 0
Anconda安装(超详细 3.5X)
|
NoSQL MongoDB
Robomongo 的安装
Robomongo 的安装
136 0
Robomongo 的安装
|
SQL 监控 关系型数据库
|
JSON Shell 网络安全
HTTPie的安装及使用
**HTTPie**(发音为*aitch-tee-tee-pie*)是一个命令行HTTP客户端。其目标是使与Web服务的CLI交互尽可能人性化。它提供了一个简单的`http`命令,允许使用简单自然的语法发送任意HTTP请求,并显示彩色输出。
8748 0
|
弹性计算 Shell 开发工具
RODPS介绍以及安装
RODPS介绍以及安装
2112 0
|
Kubernetes API 开发工具
Kubernate之安装-yellowcong
Kubernate安装的时候,需要先安装主节点,然后安装从节点,主节点中,需要注意配置文件的配置,而且ETCD最好做单独服务,让etcd先启动后,然后再启动kubernate的master和node子节点,Master节点 有apiServer ,Scheduler,Controller-manager,Node节点有:kubelet和proxy和flanned,flanned是用来管理docker容器网络的,而且需要结合etcd来使用。
2794 0