From Linux Storage Stack Diagram
Mysql专栏 - Linux底层交互和Raid存储架构 前言 在专栏之前的几篇文章中,我们总结了缓冲池,缓存页,redo log,undo log,以及数据页和数据行在底层是如何进行存储的,后续介绍了表空间...Linux系统分层 下面我们进入正题,简单来说Linux的存储系统分为「VFS层、文件系统层、Page Cache缓存层、通用Block层、IO调度层、Block设备驱 动层、Block设备层」,如下图...cat /etc/security/limits.conf 以及 cat /etc/rc.local Raid存储架构的初步了解 了解完系统分层下面我们来聊聊Raid的存储架构。...raid磁盘意味着每两块磁盘形成一个互为镜像的架构,一共有三组,所以会形成3组镜像的数据冗余。...「(配合第二个策略使用)」 总结 本节内容也是偏向理论为主,简单介绍了mysql的磁盘随机写和磁盘顺序写,并且简单介绍了linux的系统分层的逻辑结构,最后我们了解了Raid的存储架构,以及RAID的锂电池的细节
它拥有“温彻斯特”这个绰号,也就是我们现在所熟知的“温氏架构”。来源于它两个30MB的存储单元,恰好是当时出名的“温彻斯特来福枪”的口径和填弹量。至此,硬盘的基本架构被确立。...从硬盘问世至今已经过了56个年头,不管是容量、体积还是生产工艺都较之前有了重大革新和改进,但一直都保持了“温氏”的架构(固态硬盘除外,它不是我们今天的主角)。...所以,最后看一下硬盘的容量计算公式: 硬盘容量=盘面数×柱面数×扇区数×512字节 在博文“Linux启动过程分析”中我们提到过MBR,它是存在于硬盘的0柱面,0磁头,1扇区里,占512... Start End Blocks Id System /dev/sda1 * 1 19 152586 83 Linux... 20 2569 20482875 83 Extended /dev/sda5 2570 19457 4128705 82 Linux
架构师在做架构设计时一定绕不开存储的设计,本文我们一起来了解一下存储的相关知识。主要内容包括存储使用方式、常见协议、链接方式以及分布式存储架构中的典型架构案例。...存储分类 存储架构 从架构角度分类存储一般可以分为:集中式存储和分布式存储。...) GlusterFS(文件) Ceph(块、文件、对象) 分布式存储架构 集中式存储一般使用商业软件且由厂家负责安装配置,我们这里主要讲一下分布式存储架构。...按照元数据的管理方式,存储架构可分为对称式和非对称式两种架构模式。 在对称式架构中每个节点的角色均等,共同管理和维护元数据,节点间通过高速网络进行信息同步和互斥锁等操作。...(元数据节点与存储节点分离) 接下来我们看看两种不同架构模式下的代表产品:FastDFS 和 swift。 FastDFS典型架构 ?
现有的存储系统经过长期发展,种类及其繁多,架构也各不相同,仅靠一文不可能讲得完全详尽。笔者试图在各个存储系统中,按照从底层到上层的思路,抽象出某些共性,也就是:物理层、协议层、架构层、连接层四个层次。...主要的的文件系统有:Windows的FAT、FAT32、NTFS,Linux的EXT2、EXT3、EXT4、XFS、BtrFS等。...架构层: 在协议层,我们了解了存储设备是如何对使用者呈现数据的,再往上,我们需要考虑如何对各个服务器、机房、资源池进行管理,我们将这一层称为架构层,可分为集中式存储和分布式存储两种。...分布式存储是采用分布式架构的存储集群,将数据分布在不同物理位置,并通过网络把它连接起来。...通过后端端口机头可以连接更多的存储设备。从这个角度来看该方式也可并入架构层。
这是因为即使不是所有的数据都存储在存储设备上,最重要的数据以及分析结果也会被存储在存储设备上。这将导致存储空间的需求增加。...是什么使对象存储更好地适应数据爆炸要理解对象存储所提供的好处,必须首先了解文件存储和块存储的旧概念,因为它们之间有很大的差异。...文件、块和对象存储之间的区别 文件存储和块存储是在NAS和SAN存储系统上存储数据的方法。 在NAS系统上,它将其存储作为网络文件系统公开。...存储应用程序然后决定数据块是否存储在系统中,以及存储在什么特定的磁盘或存储介质上。最后如何组合这些块以及如何访问它们决定了存储应用程序。SAN中的块没有与存储系统或应用程序相关的元数据。...对象存储系统中的许多对象都存储在给定的存储磁盘上。在纯形式的对象存储中,“只能”保存一个文件(对象)的一个版本。如果用户进行了更改,相同文件的另一个版本将存储为新对象。
存储结构与管理硬盘一、添加硬盘设备一、添加硬盘设备添加硬盘设备的操作思路:首先需要在虚拟机中模拟添加入一块新的硬盘存储设备,然后再进行分区、格式化、挂载等操作,最后通过检查系统的挂载状态并真实地使用硬盘来验证硬盘设备是否成功添加...fdisk命令用于新建、修改及删除磁盘的分区表信息分区 [root@rhel ~]# fdisk /dev/sdb 依次输入 p n p 1 +1024G 回车 p w Linux
我以下图为基础,说明Linux的架构(architecture)。...还记得Linux启动。Linux首先启动内核 (kernel),内核是一段计算机程序,这个程序直接管理管理硬件,包括CPU、内存空间、硬盘接口、网络接口等等。所有的计算机操作都要通过内核传递给硬件。...为了方便调用内核,Linux将内核的功能接口制作成系统调用(system call)。系统调用看起来就像C语言的函数。你可以在程序中直接调用。Linux系统有两百多个这样的系统调用。...可以在架构图中看到,shell下通系统调用,上通各种应用,同时还有许多自身的小工具可以使用。Shell脚本可以在寥寥数行中,实现复杂的功能。 UNIX的一条哲学是让每个程序尽量独立的做好一个小的功能。...总结 Linux利用内核实现软硬件的对话。 通过系统调用的这个接口,Linux将上层的应用与下层的内核分离,隐藏了底层的复杂性,也提高了上层应用的可移植性。
在今年年初我们对几份数据的存储架构进行了改造,记录一下改造过程。 二、改造 1、数据A (1)旧架构 ?...(2)新架构 ?...这份数据是比较新接入的数据,所以从一开始的设计上就使用了比较新、完善的存储架构,例如已经是partition by day、使用SummingMergeTree引擎,所以对于不同粒度的数据直接多写来实现...这样子也省去了再在ch中存储这2个维度的数据。其实还是考虑到数据量太大,直接聚合风险比较高,所以才采用了层层聚合的模式。 这个存储架构的弊端就是中间过滤表就是多余的,占写入、占存储。...(2)新架构 之前的数据存储是直接存时间戳,现在把时间解析拆解,改成存储hour_in_12,hour,minute_in_5,minute这4个字段,并时间粒度由大到小按顺序创建索引。
还记得Linux启动。Linux首先启动内核 (kernel),内核是一段计算机程序,这个程序直接管理管理硬件,包括CPU、内存空间、硬盘接口、网络接口等等。所有的计算机操作都要通过内核传递给硬件。...为了方便调用内核,Linux将内核的功能接口制作成系统调用(system call)。系统调用看起来就像C语言的函数。你可以在程序中直接调用。Linux系统有两百多个这样的系统调用。...Linux定义一些库函数(library routine)来将系统调用组合成某些常用的功能。上面的分配内存的操作,可以定义成一个库函数(像malloc()这样的函数)。...可以在架构图中看到,shell下通系统调用,上通各种应用,同时还有许多自身的小工具可以使用。Shell脚本可以在寥寥数行中,实现复杂的功能。 UNIX的一条哲学是让每个程序尽量独立的做好一个小的功能。...总结 Linux利用内核实现软硬件的对话。 通过系统调用的这个接口,Linux将上层的应用与下层的内核分离,隐藏了底层的复杂性,也提高了上层应用的可移植性。
存储加速方向 存储软件自身软件栈 存储软件自身一般通过是通过减少软件栈开销来达到优化自身的目的,比如软件栈的一些校验或者保护算法可以通过CPU的特殊指令集对存储校验或者保护算法进行优化 网络IO Linux...存储IO 操作系统到实际存储设备落盘过程中,可以采用用户态的驱动和IO栈的旁路操作系统内部大部分IO栈进行加速,比如SPDK CPU处理器的加速 超线程技术 超线程技术是操作系统将每个物理核心识别为2个可以并行的功能工作逻辑核...AES-NI是为了加速AES算法,提高加密的数据吞吐量而设计的扩展指令 CRC32扩展指令集,循环冗余校验(CRC)算法用于网络和存储领域进行的数据一致性检查。...数据计算加速 可以通过FPGA加速纠删码(EC)、数据压缩算法(gzip/LZO/LZ4)、加解密算法、哈希算法 可以通过软件自定义 网络负责复制和备份工作,这一网络可以通过采用FPGA的硬件改造来加速存储协议转换
一.存储基础知识 从工作原理区分: 机械 HDD 固态 SSD SSD的优势: SSD是摒弃传统磁介质,采用电子存储介质进行数据存储和读取的一种技术,突破了传统机械硬盘的性能瓶颈,拥有极高的存储性能...,被认为是存储 技术发展的未来新星。...: 本地存储:例如DellR730本地磁盘 外部存储:scsi线、stat线、sas线、FC线 网络存储:以太网络、FC网络 从kernel对不同接口硬盘命名方式: OS IDE(并口) ...因此,在对存储设备进行分区后还需要进行格式化操作。在Linux系统中用于格式化操作的命令是mkfs。...,接下来就是要来挂载并使用存储设备了。
在本系列中,我们还介绍了如何选择发行版,Linux 内核如何与硬件交互 以及如何Linux 管理系统服务 和权限。 最常见的 Linux 系统管理员任务 之一是管理存储空间。...您可以使用这些命令而无需任何额外的设置,但您可能会发现查看 了解 Linux 命令行 文章很有用。您需要将存储磁盘添加到您的实验室计算机或虚拟机以练习添加存储。...识别存储设备 假设用户已消耗了其 Linux 系统存储驱动器上的所有空间,或者服务器的存储磁盘已满。虽然教用户有效地管理空间很有帮助,但通常情况下,消耗驱动器的数据是合法且必要的。...使用 mount 命令将存储空间挂载到目录。 使用 df 和 du 命令检查存储空间。 设置标准的 Linux 权限(或访问控制列表)来控制对存储空间的访问。...管理员还将存储容量挂载到目录,使其可供最终用户使用。标准的 Linux 权限控制对该存储空间的访问。 除了配置之外,Linux 用户还必须分析存储空间的使用方式。
前言: 随着Linux的版本升高,存储栈的复杂度也随着增加。作者在这里简单介绍目前Linux存储栈。...理解LVM的逻辑的核心在于上文的图中:理解清楚存储栈的层次关系,虚拟块设备到物理块设备之间的映射。...11,uninterruptable sleep 使用Linux的人,或多或少可能都遇到过进程的D状态,也就是uninterruptable sleep。...12,其他问题 scsi已经是 很成熟的框架了,但是在Linux4.14上,作者还是看到了scsi引起的kernel die。...尝试把存储栈迁移到虚拟机中,也许是一个不错的选择。哪怕虚拟机真的出现了kernel die,也不会真正影响到宿主机的运行,以及宿主机上的业务至少还是没有崩溃的。
导读:《架构设计》系列为极客时间李运华老师《从0开始学架构》课程笔记。本文为第五部分,主要介绍高可用存储架构,分别介绍了双机架构和集群架构以及各种具体方案的优缺点和应用场景。...场景 主备复制是最常见也是最简单的一种存储高可用方案,几乎所有的存储系统都提供了主备复制的功能,例如 MySQL、Redis、MongoDB 等 主从复制 主机负责读写操作,从机只负责读操作,不负责写操作...主从复制架构中,从机提供读业务,如果主从复制延迟比较大,业务会因为数据不一致出现问题。 故障时需要人工干预。 场景 综合主从复制的优缺点,一般情况下,写少读多的业务使用主从复制的存储架构比较多。...分区 数据分区指将数据按照一定的规则进行分区,不同分区分布在不同的地理位置上,每个分区存储一部分数据,通过这种方式来规避地理级别的故障所造成的巨大影响 设计一个良好的数据分区架构,需要从多方面去考虑 数据量...成本较高,需要建设一个独立的备份中心 互备式:指每个分区备份另外一个分区的数据 设计比较复杂,各个分区除了要承担业务数据存储,还需要承担备份功能,相互之间互相关联和影响。
通过提供更低的成本,更高的性能并减少数据的丢失,混合云可以帮助一些企业优化其分层存储系统。 分层存储架构并不是什么新鲜事。...最后,归档存储层是最便宜的,但也最慢的系统,用于存储很少使用的数据。 在混合云中建立分层存储架构 在混合云中,主存储系统一般存放于私有云,如果应用也在私有云中的话。...该存储系统存储文件和应用程序的数据,并且应当是分层存储架构中性能最高的存储系统。 二级存储系统主要存放于公有云。...分层存储架构的优势和挑战 使用混合云的分层存储架构对企业有几个好处。首先,由于它建立了两个或三个不同价格和性能水平的存储系统,分层存储可以帮助开发人员和管理员创建应用程序特定的存储策略。...企业必须精心设计和规划他们的多层存储架构以及自动化过程。对系统进行测试以确保你的混合云分层存储系统是满足预期的。
这不是第一次“换芯” 原因也很简单,存储系统被称为外部存储,作为一个独立设备提供数据存储集中存储共享,主机只要将数据交给外部存储系统,至于存储系统可靠、完整存储数据,就是专业存储的事情了。...信创存储“换芯”看似简单,就是一个处理器的更换,但是因为主流信创架构芯片生态的欠缺,以及标准化、通用性的不足,使得软件适配工作量会非常大,加上规模的限制,造成了信创存储系统成本居高不下,信创存储初期,几乎...据了解,如今主流信创架构芯片存在多种技术路线,有x86、MIPS,也有ARM体系,且大多数芯片更专注计算市场,对于外部存储关注不够,典型的如PCIe外部连接通道的数量,不能够满足信创存储的需要。...汪振浩透露:对于ARM架构处理器,如对华为鲲鹏处理器的支持,宏杉科技也在积极布局之中。...也因为长期技术创新能力的积累,面对困难,宏杉科技的选择了因地制宜,最大程度发挥信创架构芯片潜力和价值的策略。
系统架构与存储机制 HDFS系统架构 HDFS是主从架构(Master/Slave),当然这也是大数据产品最常见的架构。主节点为NameNode,从节点为DataNode。...其中DataNode用于存储数据,存储的数据会被拆分成Block块(默认按照128M进行切分),然后均匀的存放到各个DataNode节点中,为了保证数据安全性,这些Block块会进行多副本的存储,备份到不同的节点...而NameNode则负责管理整个集群,并且存储数据的元数据信息(记录数据被拆分为哪几块,分别存储到了哪个DataNode中)。...DataNode会通过心跳机制,与NameNode进行通信(默认3秒),汇报健康状况和存储的Block数据信息,如果NameNode超过一定时间没有收到DataNode发送的心跳信息,则认为DataNode
本文介绍了如何将 Markdown 格式与模板一起用于架构文档。 带有 Markdown 的架构文档 与代码一起管理软件的架构设计和设计决策将为项目提供极大的便利。...】或者加QQ群【792862318】公众号 【jiagoushipro】 【超级架构师】 精彩图文详解架构方法论,架构实践,技术原理,技术趋势。...QQ群 【792862318】深度交流企业架构,业务架构,应用架构,数据架构,技术架构,集成架构,安全架构。以及大数据,云计算,物联网,人工智能等各种新兴技术。...视频号【超级架构师】 1分钟快速了解架构相关的基本概念,模型,方法,经验。 每天1分钟,架构心中熟。 知识星球向大咖提问,近距离接触,或者获得私密资料分享。...知识星球【职场和技术】微博【智能时刻】智能时刻哔哩哔哩【超级架构师】抖音【cea_cio】超级架构师快手【cea_cio_cto】超级架构师 小红书【cea_csa_cto】超级架构师 谢谢大家关注
Linux虚拟存储管理分析 摘 要:本文通过解剖Linux操作系统的虚拟存储管理机制,说明了Linux虚拟存储的特点、虚拟存储器的实现方法,并基于Linux Kernel Source 1.0,详细分析有关虚拟存诸管理的主要数据结构之间的关系...本文介绍了Linux虚拟存储技术的特点,并结合操作系统原理和Linux内核源码,通过分析虚拟存储管理所需的主要数据结构及其相互关系,来更深入地了解Linux虚拟存储管理机制。...段页式存储管理 Linux中的内存管理技术采用的是段页式虚存技术。...图 3 虚拟存储管理的数据结构关系 数据结构介绍 vm_area_struct Linux采用了虚拟存储区域的方式来管理虚拟存储空间,一个虚拟存储区域是某个进程的一段虚拟存储空间...限于篇幅,本文仅简单介绍Linux在虚拟存储管理上的技术特点与实现的数据结构之间的关系,作为深入探讨Linux虚拟存储管理源码细节的入门性文章,希望能起到抛砖引玉的作用。
领取专属 10元无门槛券
手把手带您无忧上云