linux barrier,如何决定何时启用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功能,它会降低系统运行速度。
linux barrier,如何决定何时启用Linux文件系统barrier功能?相关推荐
- linux日志本地存储和网络存储,文件系统和本地存储管理 1
Linux系统管理 1.存储管理 传统的磁盘分区 RAID技术,软RAID的实现 LVM 文件系统管理 ext,xfs,btrfs(了解) 2.程序包管理 rpm.yum.dnf 3.sed.gawk ...
- Linux(6)磁盘管理和文件系统
文章目录 6.Linux(6)磁盘管理和文件系统 前言 基础资源 磁盘管理 磁盘简介 基本磁盘管理.分区 SWAP 交换分区管理 简介 交换分区管理流程 swap 逻辑卷LVM 概述 特点 可操作性的 ...
- windows 子系统 linux (WLS):启用Win10的Linux子系统
windows 子系统 linux (WLS)系列文章目录: windows 子系统 linux (WLS):启用Win10的Linux子系统 windows 子系统 linux (WLS): ifc ...
- Linux有问必答-如何创建和挂载XFS文件系统
Linux有问必答-如何创建和挂载XFS文件系统 问题: 我听说一个牛X的文件系统XFS,打算在我的磁盘上试试XFS.那格式化和挂载XFS文件系统的Linux命令是什么呢? XFS是高性能文件系统,S ...
- Linux/Centos7系统管理之深入理解Linux文件系统与日志分析
前言:inode(文件节点)与block(数据块)硬链接与软连接恢复误删除的文件 (即rm-rf 的操作,可以先进行备份的操作,然后可以进行恢复ext4和xfs文件系统皆可)日志文件的分类用户日志与程 ...
- Linux学习之CentOS(三)--初识linux的文件系统以及用户组等概念
进入到了Linux学习之CentOS第三篇了,这篇文章主要记录下对linux文件系统的初步认识,以及用户组.用户权限.文件所有者.文件所在组等概念 一.Linux文件结构及基本文件夹 文件系统是Lin ...
- 在Linux以及Mac OS X启用F#
随着.NET Core的推进,如今我们在Linux和Mac OS X平台上也可以和原先Windows平台之下一样运行F#程序.Microsoft的F#项目经理David Stephens先生在Buil ...
- linux bash环境,Win10系统怎样启用Linux Bash环境
不久前,微软召开了Build 2016大会,会上微软宣布将在Windows10系统中内置Linux Bash,这一消息引起了非常大的轰动.到了Windows10内部预览版Build 14316,该特性 ...
- linux 删除分区_详解linux系统架构--文件系统体系
概述 之前已经对Linux系统架构的内核部分单独做了深入介绍,今天就拿Linux系统架构中的文件系统做一下介绍吧~先介绍下概念: 文件系统是文件存放在磁盘等存储设备上的组织方法.Linux系统能支持多 ...
最新文章
- 2022-2028年中国锂电材料产业投资分析及前景预测报告
- 20.Valid Parentheses (python)
- 目标检测+mAP+IoU
- new Vue 发生了什么
- 知识点讲解七:Python中的异常处理机制
- 【费用流】【线性规划】志愿者招募(luogu 3980)
- QTextEdit实现图片和文本同行显示
- python图片保存为txt文件_python + opencv实现提取png图像的像素信息并存储到txt文件中(附安装指导)...
- 【kafka】kafka duplicate brokers in replica assignment
- 逻辑回归与梯度下降法
- 深入理解Nginx:模块开发与架构解析
- html弹出广告设计,全屏弹出广告交互设计探讨
- 【死磕DDD】聊聊领域建模方法论
- 由马斯克的Space X 火箭的主芯片程序编写语言说起
- 【比较】2022 程式语言排名与分析,该学习哪一种程式语言?
- 知乎网站2010年12月开放,三个月后获得了李开复的天使投资
- python解释器cpython的源码简要介绍
- 在自行下载的背景图片上写字
- java实现一台电脑控制多台手机_一台电脑控制多部手机怎么实现?
- 时间复杂度的计算详解
热门文章
- [SDOI2007] 单词接龙游戏 dp
- linux 打开db文件怎么打开方式,linux服务器打开数据库文件
- Azkaban 进程和任务监控(任务状态从MySQL同步到SqlServer)
- Android:内部存储(读写文件、追加模式)
- html列表逆序输出,JS实现倒序输出的几种常用方法示例
- Unity3D 使用 GL 绘制线条
- IOS应用程序发布到苹果APP STORE完整流程使用教程
- 【蜕变之路】第15天 Eclipse常用问题 (2019年3月5日)
- 为什么“how to say”是错的?
- DNSChanger路由器DNS劫持木马 新版本正在攻击家庭及小企业路由器 企图推送广告...