如何在Ubuntu中安装使用ZFS文件系统

简介:

Linux 操作系统支持和可用的文件系统类型非常多,既然这些文件系统都可以正常工作,我们为什么要去尝试一个新的文件系统呢?其实,不同 Linux 文件系统类型并不完全相同,不然也不用搞出这么多种类来了。其中有些还具有比较明显的优势,比如——ZFS 文件系统。

为什么选择ZFS文件系统

ZFS 文件系统非常之棒,它是一个真正的现代文件系统,其内置的功能对处理数据负载非常有意义。

如何在Ubuntu中安装使用ZFS文件系统

如果你正考虑将 ZFS 用于超快速 NVMe SSD,那它可能不是最佳选择。ZFS 速度相对较慢并不太关紧要,它旨在用于存储大量数据并保持安全,所以很多 NAS 平台都将 ZFS 用作默认(主要)的文件系统。

使用 ZFS 时无需配置传统的 RAID 阵列,相反,我们可以通过创建 ZFS 池的方式随时将磁盘驱动器添加到这些池(Pool)当中。ZFS 池的使用方式和行为几乎与 RAID 无异,但其功能还是建立在文件系统之上的。

ZFS 完全可以充当 LVM 的替代品,允许我们快速创建和管理分区,无需处理较低级别的内容并担心相关风险。同时,ZFS 也是一个 CoW 文件系统,这意味着 ZFS 可以保护你的数据不会随着时间的推移逐渐损坏,ZFS 还可以创建文件的校验和并允许将这些文件回滚到以前的工作版本。

安装ZFS文件系统支持

在 Ubuntu 中安装、使用 ZFS 文件系统非常简单,但 Ubuntu LTS 和最新 Ubuntu 版本的安装方式有所不同。

  • Ubuntu 16.04 LTS:sudo apt install zfs
  • Ubuntu 17.04 及更新:sudo apt install zfsutils

如何在Ubuntu中安装使用ZFS文件系统

在安装好实用程序后,就可以使用 ZFS 提供的工具来创建 ZFS 驱动器和分区了。

创建ZFS池

ZFS 池的概念与 RAID 非常类似,如果你了解 Windows 10 中的存储空间就不难理解它了。

如何在Ubuntu中安装使用ZFS文件系统

RAID0

RAID0 想必大家都知道,它只是将所有磁盘驱动器集成到一个巨大的存储空间而已。它可以提高驱动器读写速度,但无数据容错能力,只要有其中一块磁盘坏掉,就会有数据丢失。

要使用 ZFS 实现 RAID0,只需创建一个简单的池:

 
 
  1. sudo zpool create pool-name /dev/sdc /dev/sdd 

RAID1(镜像)

使用 mirror 关键字就可以实现 ZFS 的 RAID1 功能,RAID1 不用多介绍了吧,就是创建硬盘的 1 对 1 副本。这样不仅可以有数据的完整备份副本,同时还可以提高读写性能。当然,物理磁盘的总存储空间量也会减半。

 
 
  1. sudo zpool create pool-name mirror /dev/sdc /dev/sdd 

RAID5(RAIDZ1)

ZFS 将 RAID5 功能实现为 RAIDZ1。RAID5 要求驱动器的倍数为 3 , 其中 1/3 的空间用于写入奇偶校验数据,并保留 2/3 的数据存储空间。如果其中一个驱动器出现故障, 阵列将保持联机状态, 但应尽快更换故障磁盘。

 
 
  1. sudo zpool create pool-name raidz1 /dev/sdc /dev/sdd /dev/sde 

RAID6(RAIDZ2)

RAID6 与 RAID5 类似,但它的工作原理是磁盘数量的 4 倍,而非 3 倍。 它使用 2 倍的奇偶校验数据,允许最多 2 个驱动器故障。

 
 
  1. sudo zpool create pool-name raidz2 /dev/sdc /dev/sdd /dev/sde /dev/sdf 

RAID10

RAID10 旨在读写速度提升和数据冗余与条带化,需要至少 4 块磁盘的倍数,而且只有一半的数据存储空间,可通过创建两个镜像的方式来创建 RAID10。

 
 
  1. sudo zpool create pool-name mirror /dev/sdc /dev/sdd mirror /dev/sde /dev/sdf 

使用ZFS池

一旦在 Ubuntu 中创建了 ZFS 池,我们还需要使用一些管理工具。首先,可以通过如下命令来检查和查看 ZFS 池的状态:

 
 
  1. sudo zpool status 

如何在Ubuntu中安装使用ZFS文件系统

当检查 ZFS 状态时,池将通知你需要知道的所有更新。要更新池,请运行如下命令:

 
 
  1. sudo zpool upgrade pool-name 

也可以使用如下命令更新所有 ZFS 池:

 
 
  1. sudo zpool upgrade -a 

当然,你也可以随时向池中添加新的磁盘驱动器,只需使用 zpool 指定池名称和驱动器位置即可:

 
 
  1. sudo zpool add pool-name /dev/sdx 

最后提醒大家,ZFS 池会在 Linux 的根文件系统中创建一个目录以供用户使用。你可以使用 GUI 文件管理器或 CLI 来浏览、使用它们。 


原文发布时间为:2017-10-12

本文作者:佚名

本文来自云栖社区合作伙伴“51CTO”,了解相关信息可以关注。

相关文章
|
Ubuntu
Ubuntu 安装使用yum
Ubuntu 安装使用yum
2094 0
|
Ubuntu Linux Docker
[笔记]Centos/Ubuntu/Windows/Docker 安装使用Aria2及Aria2基本使用
[笔记]Centos/Ubuntu/Windows/Docker 安装使用Aria2及Aria2基本使用
541 0
|
2月前
|
Kubernetes 容器
基于Ubuntu-22.04安装K8s-v1.28.2实验(三)数据卷挂载NFS(网络文件系统)
基于Ubuntu-22.04安装K8s-v1.28.2实验(三)数据卷挂载NFS(网络文件系统)
149 0
|
3月前
|
Ubuntu Linux Shell
使用ramdisk启动ubuntu文件系统(pivot_root)
使用ramdisk启动ubuntu文件系统(pivot_root)
|
4月前
|
Ubuntu Linux Windows
如何在WSL中的ubuntu编译Linux内核并且安装使用ebpf?
请注意,在WSL1中可能会由于内核架构限制而无法成功进行以上过程,WSL2对于Linux内核的完整支持更为合适。此外,部分步骤可能因不同的Linux发行版或内核版本而异。
213 4
|
4月前
|
Ubuntu 网络协议 搜索推荐
Ubuntu系统上定制文件系统
基于全志T507H处理器设计研发的OKT507-C开发板为例进行介绍。 Forlinx Desktop(Ubuntu)系统基于Ubuntu官方为嵌入式设备制作的操作系统-Lubuntu,该操作系统具备apt-get、ldd等常用的命令,若需要安装软件则直接apt-get在线安装即可,不需进行交叉编译移植等繁琐操作。但是每次重新烧写镜像之后,之前安装的软件就得重新安装,比较繁琐,如果需要批量操作则每块开发板都需要去apt-get安装,这样会大幅增加工作量,很不便于批量化生产。 能不能把软件一起打包到镜像呢?这样每次烧写完就不用再去apt-get在线安装了。答案当然是肯定的,这就涉及到文件系统
|
6月前
|
Ubuntu 网络协议 搜索推荐
在Ubuntu系统上定制文件系统
在Ubuntu上定制全志T507H开发板的文件系统,包括解压文件系统、安装QEMU、修改配置、挂载文件系统、安装软件及打包文件系统。使用QEMU模拟器来挂载和操作文件系统,通过`apt-get`在线安装所需软件,例如minicom。最后,将定制的文件系统打包成新的ISO镜像,用于烧录到开发板,实现预装软件的自动化流程,简化批量生产中的系统配置步骤。
|
6月前
|
Ubuntu
蓝易云 - 解决ubuntu文件系统变成只读的方法
请注意,上述操作可能会导致数据丢失,所以在操作前最好备份重要数据。如果问题依然存在,可能需要考虑更深入的系统诊断或者重装系统。
233 1
|
7月前
|
Ubuntu 网络协议 搜索推荐
Ubuntu系统上定制文件系统
基于全志T507H处理器设计研发的OKT507-C开发板为例进行介绍。 Forlinx Desktop(Ubuntu)系统基于Ubuntu官方为嵌入式设备制作的操作系统-Lubuntu,该操作系统具备apt-get、ldd等常用的命令,若需要安装软件则直接apt-get在线安装即可,不需进行交叉编译移植等繁琐操作。但是每次重新烧写镜像之后,之前安装的软件就得重新安装,比较繁琐,如果需要批量操作则每块开发板都需要去apt-get安装,这样会大幅增加工作量,很不便于批量化生产。 能不能把软件一起打包到镜像呢?这样每次烧写完就不用再去apt-get在线安装了。答案当然是肯定的,这就涉及到文件系统
|
7月前
|
Ubuntu 网络协议 搜索推荐
如何在Ubuntu系统上定制文件系统
该文介绍了如何在基于全志T507H处理器的OKT507-C开发板上定制Ubuntu文件系统。首先,通过解压文件系统到指定目录。接着,安装QEMU模拟器并修改配置,包括复制QEMU静态文件和DNS配置到文件系统,以及更新下载源。然后,挂载文件系统并使用shell脚本进行挂载和卸载,接着在挂载的文件系统中通过apt-get安装所需软件,如minicom。最后,打包文件系统为tar.gz格式,替换旧的文件系统压缩包,重新编译生成新的镜像烧录到开发板。通过这种方法,可以方便地批量定制和预装软件到开发板,提高生产效率。