Btrfs和zfs,btrfa

http://www.itjxue.com  2023-01-22 08:19  来源:未知  点击次数: 

docker存储驱动

一句话,docker 存储驱动用于管理docker 镜像和容器。

在了解docker存储驱动之前,先了解下docker如何构建镜像,以及容器如何使用这些镜像。

下图为docker镜像的图形表示。

镜像为一系列只读层,当启动一个容器时,docker将读取只读镜像,并在顶部增加一个可读写层,如果正在运行的容器修改了现有文件,则该文件将从基础只读层复制到应用更改的最高读写层,读写层的版本会隐藏基础文件,但不会破坏它,它仍然处于基础层中。删除容器后,这些更改将丢失。

Docker使用存储驱动程序来管理镜像层和可写容器层的内容。

每个存储驱动程序处理实现的方式不同,但是所有驱动程序都使用可分层镜像和即写即拷(CoW)策略。

当使用docker pull拉取一个镜像时,每一层都是单独拉取的,并存储在本地/var/lib/docker/storage-driver中。

注意,/var/lib/docker/storage-driver中的目录名与层id不对应(自Docker 1.10以来一直如此)。

注意,多个容器可能共享部分或全部只读镜像数据。因此,不能只计算虚拟大小的总数。这可能过高估计了磁盘的总使用量。

如果一个文件或者目录处于只读层,而容器需要对其进行访问时,那么只使用现有文件。当容器需要修改文件时,那么文件被复制到读写层并修改,这将最小化IO和读写层的大小。

docker存储驱动分为两类,一类是overlays(覆盖),一类是Snapsshotting(快照)。

它们都使用可拔插的架构。

可以通过docker info查看当前使用的存储器驱动。

区别之处:

overlays文件系统,它们有多个目录,每层镜像都有不同的文件。

Snapsshottings包括devicemapper,btrfs和ZFS,它们在block级别上处理文件差异。

????○ overlay2是当前支持的所有Linux发行版的首选存储驱动程序,不需要额外配置。

????○ 当运行在内核3.13上的Ubuntu 14.04上时,aufs是Docker 18.06和更老版本的首选存储驱动程序,因为内核3.13不支持overlay2。

????○ 支持devicemapper,但是在生产环境中需要直接lvm,因为环回lvm虽然是零配置,但性能非常差。devicemapper是CentOS和RHEL推荐的存储驱动程序,因为它们的内核版本不支持overlay2。但是,CentOS和RHEL的当前版本现在支持overlay2,它现在是推荐的驱动程序。

????○ 如果btrfs和zfs存储驱动程序是后备文件系统(安装Docker的主机的文件系统),则使用它们。这些文件系统允许高级选项,比如创建“快照”,但是需要更多的维护和设置。这些都依赖于备份文件系统的正确配置。

????○ vfs存储驱动程序用于测试目的,并用于不能使用即写即拷文件系统的情况。这个存储驱动程序的性能很差,一般不推荐用于生产。

所有这些存储驱动程序,就是Union文件系统 的变体。

对于Docker,后备文件系统就是/var/lib/docker/所在的文件系统。有些存储驱动程序只与特定的后备文件系统(宿主机的文件系统)一起工作。

????○ overlay2、aufs和overlay都在文件层而不是块层操作。这样可以更有效地使用内存,但是容器的可写层可能会在写量大的工作负载中增长得相当大。

????○ 块级存储驱动程序(如devicemapper、btrfs和zfs)对于写量大的工作负载性能更好(尽管不如Docker卷)。

????○ 对于许多小的写操作或具有许多层的容器或深度文件系统,overlay的性能可能比overlay2好,但是消耗更多的inode,这可能导致inode耗尽。

????○ btrfs和zfs需要大量内存。

○ zfs对于高密度的工作负载(如PaaS)是一个很好的选择。

关于性能、适用性和最佳实践的更多信息可以在每个存储驱动程序的文档中找到。

请问unix分区类型有哪些?

*ext2:老牌 Linux 档案系统,不支援 journaling。

*ext3:当今各大 Linux 预设使用的档案系统。支援 journaling。

*ext3 (data):加上 journal_data 功能的 ext3。

*ext4:ext3 的下一版本。已正式进入 kernel 2.9.28 中。

*reiserfs:号称最快的 FS。Linux 上第一个支援 journaling 的档案系统。

*reiserfs (data):加上 journal_data 功能的 reiserfs。

*reiser4:reiserfs 的下一版。(尚未进入 kernel 中)

*jfs:由 IBM 所开发的 journaling 型档案系统。已停止开发。

*xfs:由 SGI 所开发的 journaling 型档案系统。

*vfat:古老 DOS/Windows 档案系统,不支援 journaling。

*ntfs:现今 Windows 的主流档案系统。在 Linux 上是经由 fuse 来支援 ntfs。

*zfs:由 Sun 所开发的终极档案系统。在 Linux 上是经由 fuse 来支援 zfs。

*btrfs:下一代 Linux 预设使用的档案系统。已进入 kernel 2.9.29 RC1 的测试分支中。

UNIX系统不止是一家公司出而且互不兼容所以格式也稍有不同

操作系统中,文件系统格式的类型有哪 那些?区别是什么?

操作系统的文件系统是操作系统用于明确磁盘或分区上的文件的方法和数据结构;即在磁盘上组织文件的方法。文件系统的格式大致有如下:

FAT

PC机使用的文件系统是FAT16。像基于MS-DOS,Win 95等系统都采用了FAT16文件系统。后来在Win 98开始推出了增强的文件系统FAT32。同FAT16相比,FAT32主要具有以下特点:

同FAT16相比FAT32最大的优点是可以支持的磁盘大小达到32GB,但是不能支持小于512MB的分区。基于FAT32的Win 2000可以支持分区最大为32GB;而基于 FAT16的Win 2000支持的分区最大为4GB。

NTFS

NTFS文件系统是一个基于安全性的文件系统,是Windows NT所采用的独特的文件系统结构,它是建立在保护文件和目录数据基础上,同时照顾节省存储资源、减少磁盘占用量的一种先进的文件系统。

exFAT

全称Extended File Allocation Table File System,扩展FAT,即扩展文件分配表是

Microsoft在Windows Embeded 5.0以上(包括Windows CE 5.0、6.0、Windows Mobile5、6、6.1)中引入的一种适合于闪存的文件系统,为了解决FAT32等不支持4G及其更大的文件而推出。对于闪存,NTFS文件系统不适合使用,exFAT更为适用。

Ext2

Ext2是 GNU/Linux 系统中标准的文件系统,其特点为存取文件的性能极好,对于中小型的文件更显示出优势,这主要得利于其簇快取层的优良设计。

其单一文件大小与文件系统本身的容量上限与文件系统本身的簇大小有关,在一般常见的 x86电脑系统中,簇最大为 4KB,则单一文件大小上限为 2048GB,而文件系统的容量上限为 16384GB。

Ext3

Ext3是一种日志式文件系统,是对ext2系统的扩展,它兼容ext2。日志式文件系统的优越性在于:由于文件系统都有快取层参与运作,如不使用时必须将文件系统卸下,以便将快取层的资料写回磁盘中。因此每当系统要关机时,必须将其所有的文件系统全部shutdown后才能进行关机。

Ext4

Linux kernel 自 2.6.28 开始正式支持新的文件系统 Ext4。Ext4 是 Ext3 的改进版,修改了 Ext3 中部分重要的数据结构,而不仅仅像 Ext3 对 Ext2 那样,只是增加了一个日志功能而已。Ext4 可以提供更佳的性能和可靠性,还有更为丰富的功能与 Ext3 兼容。

Btrfs

Btrfs(通常念成Butter FS),是由Oracle于2007年宣布并进行中的copy-on-write文件系统。目标是取代Linux目前的ext3文件系统,改善ext3的限制,特别是单个文件的大小,总文件系统大小或文件检查和加入目前ext3未支持的功能,像是 writable snapshots、snapshots of snapshots、内建磁盘阵列(RAID)支持,以及 subvolumes。Btrfs 也宣称专注在“容错、修复及易于管理”。

ZFS

ZFS源自于Sun Microsystems为Solaris操作系统开发的文件系统。ZFS是一个具有高存储容量、文件系统与卷管理概念整合、崭新的磁盘逻辑结构的轻量级文件系统,同时也是一个便捷的存储池管理系统。ZFS是一个使用CDDL协议条款授权的开源项目。

HFS

HFS文件系统概念分层文件系统(Hierarchical File System,HFS)是一种由苹果电脑开发,并使用在Mac OS上的文件系统。

ReiserFS

ReiserFS,是一种文件系统格式,作者是Hans Reiser及其团队Namesys,1997年7月23日他将ReiserFS文件系统在互联网上公布。Linux内核从2.4.1版本开始支持ReiserFS。

JFS

JFS( JOURNAL FILE SYSTEM),一种字节级日志文件系统,借鉴了数据库保护系统的技术,以日志的形式记录文件的变化。JFS通过记录文件结构而不是数据本身的变化来保证数据的完整性。这种方式可以确保在任何时刻都能维护数据的可访问性。

VMFS

VMware Virtual Machine File System (VMFS )是一种高性能的群集文件系统,它使虚拟化技术的应用超出了单个系统的限制。VMFS的设计、构建和优化针对虚拟服务器环境,可让多个虚拟机共同访问一个整合的群集式存储池,从而显著提高了资源利用率。VMFS 是跨越多个服务器实现虚拟化的基础,它可启用VMware VmotionTM 、Distributed Resource Scheduler 和 VMware High Availability 等各种服务。VMFS 还能显著减少管理开销,它提供了一种高效的虚拟化管理层,特别适合大型企业数据中心。采用 VMFS 可实现资源共享,使管理员轻松地从更高效率和存储利用率中直接获益。

XFS

XFS 是 Silicon Graphics,Inc. 于 90 年代初开发的文件系统。它至今仍作为 SGI 基于 IRIX 的产品(从工作站到超级计算机)的底层文件系统来使用。现在,XFS 也可以用于 Linux。XFS 的 Linux 版的到来是激动人心的,首先因为它为 Linux 社区提供了一种健壮的、优秀的以及功能丰富的文件系统,并且这种文件系统所具有的可伸缩性能够满足最苛刻的存储需求。

UFS

UFS文件系统:基于BSD高速文件系统的传统UNIX文件系统,是Solaris的默认文件系统。默认启用UFS 日志记录功能。在早期的Solaris 版本中,UFS 日志记录功能只能手动启用。Solaris 10在运行64位Solaris内核的系统上支持多TB UFS文件系统。以前,UFS文件系统在64位系统和32位系统上的大小仅限于约1 TB(Tbyte)。现在,所有UFS文件系统命令和公用程序已更新为支持多TB UFS文件系统。

VXFS

VeritasFileSystem(VxFS)是首个商业日志记录文件系统。通过日志记录功能,元数据更改首先写入到日志,然后再写入到磁盘。由于无需在多处写入更改,且元数据是异步写入的,因此吞吐量的速度较快。VxFS也是基于扩展区的意向日志记录文件系统。VxFS设计用于要求高性能和高可用性,并且可以处理大量数据的操作环境。

上述资料整理于网络。

已用ext4格式安装ubuntu,有方法无损转换成btrfs格式吗

没问题使用livecd等等,

方法

可以做到无损转换我的电脑就安装deepin使用的ext4转换的btrfs

记得要先备份系统防止出错?

具体去hu60.cn找用户名罐子或者是老虎会游泳

(责任编辑:IT教学网)

更多

相关JSP教程文章

推荐JSP教程文章