Linux文件系统的barrier:启用还是禁用

大多数当前流行的Linux文件系统,包括EXT3和EXT4,都将文件系统barrier作为一个增强的安全特性。它保护数据不被写入日记。但 是,在许多情况下,我们并不清楚这些barrier是否有用。本文就为什么要在你的Linux系统上启用barrier做出了解释。


Linux日志和barrier功能

要理解barrier,你首先需要理解文件系统日志功能。常用的文件系统使用日志功能来保证文件系统的完整性。该功能背后的思路很简单:在写入新的 数据块到磁盘之前,会先将元数据写入日志。预先将元数据写入日志可以保证在写入真实数据前后一旦发生错误,日志功能能很容易地回滚到更改之前的状态。这个 方法确保了不会发生文件系统崩溃的情况。

单独使用日志功能不能保证没有任何差错。现在的磁盘大都有大容量的缓存,数据不会立即写入到磁盘中,而是先写入到磁盘缓存中。到这一步,磁盘控制器 就能更加高效地将其复制到磁盘中。这对性能来说是有好处的,但是对日志功能来说则相反。为了保证日志百分之百可靠,它必须绝对保证元数据在真实数据写入之 前被预先写入。这就是我们要介绍文件系统barrier的原因。

我们很容易理解使用barrier的根本原因:barrier本身禁止在barrier之后写入数据,真实的数据块将在barrier被写入之前完 全写入磁盘。使用barrier可以确保文件系统的完整性,因为barrier功能在EXT4文件系统中是默认启用的(除非你的操作系统更改了这个默认设 置)。


Linux文件系统的barrier:启用还是禁用?

你可以通过/proc/mounts文件来监控文件系统barrier的当前状态;对于每一个挂载的文件系统,打开这个文件都能看到所有的挂载选项。如果你看到barrier=1,那么你的文件系统就正在使用barrier功能。下列信息是一个文件系统的例子:

/dev/sda1 /boot ext4 rw,seclabel,relatime,barrier=1,data=ordered 0 0
/dev/mapper/luks-3e67401f-44c6-4a27-a1bf-cdf0dcf45f65 /home ext4 rw,seclabel,noatime,barrier=1,data=ordered 0 0


文件系统barrier何时不工作?

Barrier的问题在于,它不能应用于所有条件下。如果设备映射器作为存储层的优先级使用,那么文件系统barrier就无法工作了,因为设备映 射器不支持barrier。所以,哪怕你的文件系统默认支持barrier,还是无法在逻辑卷、软RAID或者多路径磁盘上运行该功能(RED HAT和所有相关的Linux版本都将barrier作为默认选项)。

解决这个问题的方案之一就是避免使用设备映射器。所以在安装服务器时,你需要充分考虑配置选项。首先,你不该使用LVM安装服务器,而应该选择用传 统的分区方式。接着,你不能使用和设备映射器配合工作的多路径磁盘,它会在SAN上创建多个冗余路径。某些情况下,SAN供应商会提供一个专有驱动器作为 选择,但不是所有供应商都提供该选项。最好的办法是采用智能硬件。

使用barrier保护的风险之一是,在系统中断时,数据会留在缓存中,而永不会写入文件系统。一个简单的电池备份控制器可以避免这个问题。当服务器使用的这个控制器出故障了,磁盘控制器仍然能保证变更操作,这充分排除了barrier使用的需要。

使用barrier的另一个不利之处在于,你需要付出降低性能的代价。如果你需要顶级的性能,那么你可以用挂载选项-o barrier=0来关闭barrier功能,比如:mount /dev/sda2 -o barrier=0 /data。

文件系统barrier功能非常有用,但是不能和设备映射器配合工作。如果你需要使用这类设备,但是又想要保证文件系统完整性,那么你可以用电池备 份磁盘控制器。如果你的硬件不支持这个,那么你只能避免使用设备映射器,这样才能用barrier功能来保障文件系统完整性。还有,如果你希望得到更好的 系统性能,最好也不要开启barrier功能,它会降低系统运行速度。

[原文链接]http://blog.sina.com.cn/s/blog_6200c1440100w4mp.html

Linux文件系统的barrier:启用还是禁用

时间: 2024-08-28 03:48:03

Linux文件系统的barrier:启用还是禁用的相关文章

Linux 中如何启用和禁用网卡(不是很全面但是很好用)

启用禁用网卡可以使用以下方法来完成: ifconfig 命令:用于配置网卡,可以提供网卡的很多信息. ifconfig 的常用语法: # ifconfig [NIC_NAME] Down/Up 执行以下命令禁用 enp0s3 网卡. # ifconfig enp0s3 down 执行以下命令启用 enp0s3 网卡. # ifconfig enp0s3 up ifdown/up 命令:ifdown 命令用于禁用网卡,ifup 命令用于启用网卡. ifdown/ifup 的常用语法: # ifdo

Linux文件系统ext3与ext4主要区别

很长一段时间以来,ext3是很多linux发行版默认的文件系统,现在ext4已经发布,并且已经有发行版开始使用ext4作为默认的文件系统了(其实最初的时候ext4是作为ext3的扩展,但是为了保证ext3的稳定性等原因,很多人反对直接对ext3进行扩展,所以单独作为了ext4项目). ext3还是使用15个inode来查找数据块,前12个为直接数据块,直接指向存储数据的数据块,接下来分别为一级间接块,二级间接块,三级间接块,如下图: 其中point本来也是数据块,现在拿来做数据块的索引用,其中e

Linux文件系统创建,格式化,修改,检测

前言:    本文耗费笔者大量时间编写,转载声明anyisalin.blog.51cto.com. 本文大多数为操作过程,不对理论知识进行过多阐述 1.文件系统的创建 在Linux创建文件系统有几个工具供我们使用:fdisk,parted...,这里我们只对fdisk进行相应讲解. fdisk命令的语法  fdisk [选项]... [设备文件] fdisk命令的常用选项  -l [设备文件]:不加设备文件路径显示系统上所有磁盘分区的信息,加上设备文件路径显示指定磁盘的分区信息 不加参数显示如下

Linux文件系统的创建及挂载

日期: 2015年09月01日 Linux文件系统管理 VFS:(Virtual File System 虚拟文件系统) VFS 是一种软件机制,与它相关的数据结构只存在于物理内存当中.所以在每次系统初始化期间,Linux 都首先要在内存当中构造一棵 VFS 的目录树(在 Linux 的源代码里称之为 namespace),实际上便是在内存中建立相应的数据结构.VFS 中的各目录其主要用途是用来提供实际文件系统的挂载点. VFS 目录树结构: Linux文件系统支持的类型: 基本文件系统:Ext

如何查看linux文件系统类型?

以往使用的linux命令,一定要善于总结. 如何查看linux文件系统类型? 1. df 命令报告文件系统磁盘空间利用率,使用-T选项显示特定的磁盘分区的文件系统类型,-h人类可读方式显示. [[email protected] ~]# df -Th Filesystem     Type   Size  Used Avail Use% Mounted on /dev/sda2      ext4    19G   12G  6.3G  65% / tmpfs          tmpfs  4

linux 文件系统及磁盘管理

一个新的磁盘盘需要经过分区.格式化(创建文件系统),挂载之后才能正常使用.关于磁盘的分区表有两种格式:MBR(Master Boot Record)和GPT(GUID Partition Table)     MBR:      也称为主引导扇区,是计算机开机后访问硬盘时必须读取的首个扇区,也就是0柱面0磁头1扇区,MBR由bootload(446字节).分区表(64字节).MBR结束标志(2字节)共512字节组成.最大支持2TB的分区.MBR格式的分区表支持3个主分区和1个扩展分区. GPT:

Linux文件系统简介及常用命令

在linux系统中一切皆是文件,下面简要总结了一下linux文件系统中分区类型.文件系统类型以及常用命令. 一.分区类型1.主分区:最多只能有四个2.扩展分区:只能有一个,也可以看做是主分区的一种.即主分区加扩展分区最多只能有四个.但是扩展分区不能存储数据和格式化,必须要划分成逻辑分区才能使用.3.逻辑分区:是在扩展分区中划分得到的,分区号从5开始(1-4被主分区和扩展分区占用),如果是IDE硬盘linux最多支持59个逻辑分区,如果是SCSI硬盘linux最多支持11个逻辑分区. 格式化:写入

Linux文件系统操作命令

文件系统操作命令: 1. cat:可以显示文件的内容(经常和more搭配使用),或将多个文件合并成一个文件. 2. chgrp:用来改变文件或目录所属的用户组,命令的参数以空格分开的要改变属组的文件列表,文件名支持通配符,如果用户不是该文件的所有者,则不能改变该文件的所属组. 3. chmod:用于改变文件或目录的访问权限,该命令有两种用法:一种是使用图形化的方法,另一种是数字设置法. 4. chown:用来将指定用户或组为特定的所有者.用户可以设置为用户名或用户ID,组可以是组名或组ID.特定

Vim,find,bash,Linux文件系统的特殊权限2015.8.30作业

一   Vim 1.vim的使用方法 1.1 三种模式化 编辑模式.输入模式.末行模式 1.2 模式转换 编辑模式 --> 输入模式: i:在当前光标所在字符的前面,转为输入模式 a:在当前光标所在字符的后面,转为输入模式 o:在当前光标所在行的下方,新建一行,并转为输入模式 I:在当前光标所在行的行首,转为输入模式 A:在当前光标所在行的行尾,转为输入模式 O:在当前光标所在行的上方,新建一行,并转为输入模式 输入模式 --> 编辑模式:ESC 编辑模式 --> 末行模式:: 末行模式