存储稳定性测试与数据一致性校验工具和系统:https://github.com/zhangyoujia/hd_write_verify
腾讯云官网中有一篇帮助文档“扩容Linux文件系统,https://www.qcloud.com/document/product/362/6738,讲解了GPT分区云硬盘扩容后修改分区指引和MBR分区云硬盘扩容后修改分区指引。其中MBR分区扩容下,若扩容后的空间已经大于2TB则不可选择。官网文档没有涉及到MBR的分区扩展到2T以上该怎么处理。
首先简单认识一下硬盘的物理结构,总体来说,硬盘结构包括:盘片、磁头、盘片主轴、控制电机、磁头控制器、数据转换器、接口、缓存等几个部分。所有的盘片(一般硬盘里有多个盘片,盘片之间平行)都固定在一个主轴上。在每个盘片的存储面上都有一个磁头,磁头与盘片之间的距离很小(所以剧烈震动容易损坏),磁头连在一个磁头控制器上,统一控制各个磁头的运动。磁头沿盘片的半径方向动作,而盘片则按照指定方向高速旋转,这样磁头就可以到达盘片上的任意位置了。
在TS过程中会碰到很多磁盘异常出现影响系统数据或者生产数据的情况,但是有时候无法判断磁盘出现问题是由于磁盘物理损坏还是磁盘SATA口接触不良导致,这个时候smartctl命令就可以很容易判断出磁盘是否存在物理损坏问题,并且及时作出预警。
我们知道SSD是一场存储革命,设计和制造一个好的SSD固然重要,但如何正确使用以充分发挥SSD性能同样重要。SSD内在的并行性和先擦再写的特性决定了它不同于机械硬盘简单的LBA和存储块一一对应,要充分挖掘SSD的并行性,提升性能,延长寿命,缩短延迟,就必须在上层应用做出改动。很多SSD的使用大户都作出了这种尝试,从国外的Google,Microsoft,Facebook,到国内的Baidu,Alibaba等,本站就曾经介绍过百度的软件定义闪存,把对象存储和SSD内部结构统一起来使用。但对大部分企业来讲,这种结构还是太独特了,我们还是要关注通用的架构,首先来了解离硬盘最近的软件:文件系统。本系列文章将以Linux系统最常见的EXT4文件系统为例,从SSD爱好者的角度来揭开文件系统的庐山真面目。
avahi-daemon是一种Linux操作系统上运行在客户机上实施查找基于网络的Zeroconf service的服务守护进程。 该服务可以为Zeroconf网络实现DNS服务发现及DNS组播规范。 用户程序通过Linux D-Bus信息传递接收发现到网络服务和资源的通知。该守护进程配合缓存用户程序的答复,以帮助减少因答复而产生的网络流量。 每个客户的都需要安装vdbench,路径保持一致
1、查看硬盘分区情况和各分区挂载情况 fdisk -l df -h 📷 2、将未分区空间进行分区 # 磁盘命令操作: # a toggle a bootable flag # b edit bsd disklabel # c toggle the dos compatibility flag # d delete a partition # g create a new empty GPT partition table # G create an IRIX (SGI) partit
硬盘的物理结构是比较复杂的,这里我们只需要知道最常用到的几个术语即可,也就是chs寻址中所涉及到的结构
fdisk - Partition table manipulator for Linux ,译成中文的意思是磁盘分区表操作工具;本人译的不太好,也没有看中文文档;其实就是分区工具
MBR的缺点主要在于他是个程序。引导程序和磁盘分区原本是不太相关的两个事情,但是MBR却用一种及其原始的方式把它们混合在了一起。此外,MBR程序本身也带来了不少麻烦。由于MBR运行在实模式,因此它的编写与引导过程的其它程序有诸多不同。而且由于MBR是直接写在引导扇区的,并不是以文件的形式存在,因此对MBR进行管理也十分麻烦。缺少程序校验也使黑客可以通过更改MBR,让病毒在操作系统引导前就完成载入。总而言之,MBR的设计真的太过时了。
前些天群友@Seraph_JACK在整引导,于是我也跟着云了一下。结果发现,我对引导相关的了解着实拉跨。所以趁此机会,正好完整学习一下引导相关的知识。本篇文章大致会涉及MBR、GPT、UEFI等内容,以使用Grub引导Linux为例,来分析启动的具体过程。
((1)通过fdisk -l 查看机器所挂硬盘个数及分区情况;一、fdisk用法详解
在之前我写过一篇关于linux的虚拟文件系统的博客,不过那篇主要是介绍打开的文件是如何在linux系统中被管理和存储的,那么这篇进阶版文件系统就要介绍一下,当文件没有被打开的时候,它在linux系统中是如何被管理和存储的。
fdisk 操作硬盘的命令格式如下: [root@localhost beinan]# fdisk 设备 比如我们通过 fdisk -l 得知 /dev/hda 或者 /dev/sda设备;我们如果想再添加或者删除一些分区,可以用 [root@localhost beinan]# fdisk /dev/hda 或 [root@localhost beinan]# fdisk /dev/sda 注 在以后的例子中,我们要以 /dev/sda设备为例,来讲解如何用fdisk 来操作添加、删除分区等动作; 1、fdisk 的说明; 当我们通过 fdisk 设备,进入相应设备的操作时,会发现有如下的提示;以 fdisk /dev/sda 设备为例,以下同;
保护MBR包含一个DOS分区表(LBA0),只包含一个类型值为0xEE的分区项,在小于2TB的磁盘上,大小为整个磁盘;在更大的磁盘上,它的大小固定为2TB。它的作用是阻止不能识别GPT分区的磁盘工具试图对其进行分区或格式化等操作,所以该扇区被称为“保护MBR”。实际上,EFI根本不使用这个分区表。
全局唯一标识分区表(GUID Partition Table,缩写:GPT)是一个实体硬盘的分区结构。它是可扩展固件接口标准的一部分,用来替代BIOS中的主引导记录分区表。传统的主启动记录 (MBR) 磁盘分区支持最大卷为 2.2 TB (terabytes) ,每个磁盘最多有 4 个主分区(或 3 个主分区,1 个扩展分区和无限制的逻辑驱动器)。与MBR 分区方法相比,GPT 具有更多的优点,因为它允许每个磁盘有多达 128 个分区,支持高达 18 千兆兆字节 (exabytes,1EB=10^6TB) 的卷大小,允许将主磁盘分区表和备份磁盘分区表用于冗余,还支持唯一的磁盘和分区 ID (GUID)。 与 MBR 分区的磁盘不同,GPT的分区信息是在分区中,而不象MBR一样在主引导扇区。为保护GPT不受MBR类磁盘管理软件的危害,GPT在主引导扇区建立了一个保护分区 (Protective MBR)的MBR分区表,这种分区的类型标识为0xEE,这个保护分区的大小在Windows下为128MB,Mac OS X下为200MB,在Window磁盘管理器里名为GPT保护分区,可让MBR类磁盘管理软件把GPT看成一个未知格式的分区,而不是错误地当成一个未分区的磁盘。另外,GPT 分区磁盘有多余的主要及备份分区表来提高分区数据结构的完整性。
近期回顾了下HDD磁盘的结构知识点,重新又理下几个比较有意思的问题稍作整理记录分享下。
ROM Code是固件在STM32MP157内部的一段程序,是在复位后执行的第一段程序,复位后STM32MP157内部的两个A核执行相同的程序,由于ROM Code中进行了判断,所以ROM Code只在Core0上运行。
有一天,小H在吃完午饭回到办公室,旁边几位同学在打《王者荣耀》,并且在挑拨匹配到的一对情侣队友分手。
| 导语 随着云业务的扩张和服务器数量的增加,硬盘Media Error的现象也越来越受到用户的关注。本文结合腾讯云海量服务器运营经验,浅谈产生Media Error的原因和硬盘自身容错机制,以及应用层的处理建议。 一、 什么是Media Error Media Error,有时也称为Medium Error,一般是指硬盘在读操作中遇到了不可纠正的扇区从而无法给host返回准确的数据,对应到SCSI协议KCQ代码为03/11/xx。Media Error的产生意味着即使硬盘自身已经用尽了所有容错手段(
1.检测LINUX系统识别的硬盘设备 [root@localhost ~]# fdisk -l 磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x000d3824 设备 Boot Start
文件分为 内存文件 和 磁盘文件,内存文件 相关知识前面已经介绍过了,接下来谈谈 磁盘文件,这是一个特殊的存在,因为它不属于冯诺依曼体系,而是位于专门的存储设备中,因此 磁盘文件 存在的意义是将文件更好的存储起来,以便后续对文件进行访问。在高效存储 磁盘文件 这件事上,前辈们研究出了十分巧妙的管理手段及操作方法,而这些手段和方法共同构成了我们今天所谈的 文件系统
这本书是个人看过的讲操作系统底层里面讲的最通俗易懂的了,但是200多页的内容确实讲不了多深的内容,所以不要对这本书抱有过高期待,当一个入门书了解即可。
磁盘存储和文件系统管理 1. 磁盘结构 1.1设备文件 1. 设备类型: 2. 磁盘设备的设备文件命名: 3. 虚拟磁盘: 4. 不同磁盘标识:a-z,aa,ab… 5. 同一设备上的不同分区:1,2, ... 6. 创建设备文件 7. 工具 dd 常用选项 示例 demo 8. hexdump指令 1.2 硬盘类型 1.硬盘接口类型 2. 服务器硬盘大小 3. 机械硬盘和固态硬盘 4. 硬盘存储术语 CHS CHS LBA(logical block addressing) 5. 识别SSD和机械硬盘类型
按照知识共享署名-非商业性使用 4.0 国际协议进行许可,转载引用文章应遵循相同协议。
今天我们所使用的机械硬盘实质上都是温彻斯特硬盘,最早是在 1973 年由 IBM 研制的一种新型硬盘 IBM 3340。它使用了一种了不起的技术:磁头不与盘片接触,只有不予接触才可能有着更高的转速而且磁盘才不易损坏。至于这个名字的来历,是因为 IBM3340 拥有两个 30MB de 存储单元,而当时一种很有名的 “温彻斯特来福枪” 的口径和装药也恰好包含了两个数字 “30”;于是这种硬盘的内部代号就被定为 “温彻斯特”。
LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制。LVM将一个或多个磁盘分区(PV)虚拟为一个卷组(VG),相当于一个大的硬盘,我们可以在上面划分一些逻辑卷(LV)。当卷组的空间不够使用时,可以将新的磁盘分区加入进来。我们还可以从卷组剩余空间上划分一些空间给空间不够用的逻辑卷使用。
场景 创建Linux时分配磁盘空间随着使用的增加,使用率逐渐升高,此时需要在添加或者扩展一下磁盘。 比如:此Linux(CentOS 7.3)的磁盘为20G,目前已经使用到接近80%
说明:系统版本为 Linux version 3.10.0-327.el7.x86_64
文件有很多,但是被打开的文件很少,这些没有被打开的文件在磁盘中,这就叫做磁盘文件。每次先打开一个文件,需要先找到这个文件,需要通过文件路劲及文件名先在磁盘中找到这个文件。本篇文章要研究的是磁盘文件,核心问题是如何存取问题。在研究这些问题之前,需要先认识一下硬件–磁盘
假如你有个大木桶要装东西,如果木桶没有划分层,所有东西全部放入里面,虽然可以装,但是对大木桶的使用就合不合理,造成杂乱无章,寻找东西时候也耗时,甚至还有不同物品之间不能存放在一起而导致危险,那更好的做法自然是给大木桶画一下不同的区域,分成不同的层,每个层放不同的东西,即安全,寻找起来也方便;
不得不说,关于磁盘的各种概念网上说法很多,看了半天快把我看晕了,最后总结了总结,基于我的认知基本理顺了。
最近需要安装一款Linux, 由于使用的计算机系统为 fedora 28, 所以只能在linux 制作U盘
检查 /dev/mapper/VolGroup00-LogVol02 是否有问题,如发现问题便自动修复:
如果一个存储设备已经分过区,并且是 mbr 格式的,那么只能继续使用 fdisk 或 parted 工具进行分区。
持久化内存访问链路 📷 访问链路说明 第一种,应用端发起read/write操作,会进入内核的vfs的相关函数,如果数据在page cache中,直接访问page cache.如果不在则从磁盘中读取。通常内核会通过磁盘文件系统确定文件所在文件系统块的大小,根据你文件系统块大小计算出请求数据的长度,通过磁盘文件系统的函数来访问inode,然后根据inode来确定数据所在磁盘的位置。内核将所有请求转发到通用块设备,通过IO调度将IO进行重排和合并,最终通过块设备驱动层向持久化内存硬件发送IO指令进行实际的IO
分布式存储系统需要一个一致性的协议,去保证所有的 commit 对数据的修改能在不同的情况下,不丢失数据。在设计之初,我们在深刻的考虑部署的复杂性等问题后,我们选择了 raft 协议,然而马上就出现了陷阱。
Blobstore是位于SPDK bdev之上的Blob管理层,用于与用户态文件系统Blobstore Filesystem (BlobFS)集成,从而代替传统的文件系统,支持更上层的服务,如数据库MySQL、K-V存储引擎Rocksdb以及分布式存储系统Ceph、Cassandra等。以Rocksdb为例,通过BlobFS作为Rocksdb的存储后端的优势在于,I/O经由BlobFS与Blobstore下发到bdev,随后由SPDK用户态driver写入磁盘。整个I/O流从发起到落盘均在用户态操作,完全bypass内核。此外,可以充分利用SPDK所提供的异步、无锁化、Zero Copy、轮询等机制,大幅度减少额外的系统开销。它们之间的关系如下所示(以NVMe bdev为例):
我们之前讨论的都是进程和被打开文件的关系,而如果一个文件是没有被打开呢?没有被打开的文件操作系统如何管理?
我们在之前的文章中讨论的都是进程和被打开的文件的关系,但是如果一个文件时没有被打开,它是否需要被管理?它该如何被管理呢? 本文介绍了文件存储的位置:磁盘,它的三种结构(物理结构、存储结构以及逻辑结构);管理文件的结构:文件系统与inode;以及文件与inode之间的关系:软硬链接等相关概念。
【1】 Best-Arm Identification in Correlated Multi-Armed Bandits 标题:相关多臂强流中的最佳臂识别 链接:https://arxiv.org/abs/2109.04941
磁盘分区表是一种存储在磁盘上的数据结构,用于存储关于磁盘分区的信息,包括分区的大小、位置和类型。MBR 和 GPT 是两种常见的磁盘分区表格式。GPT 格式较新,具有较多优势,包括:
在如今大数据的环境中,磁盘的性能和稳定性是非常重要的一个业务因素。在Linux系统中,smartctl是较为常用的磁盘检测工具。
最近刚刚跳槽,新单位同事问了我个问题,突然把我问懵了,因为好久没有接触底层磁盘了,于是做了以下的实验。
操作系统是用来管理与协调硬件工作的,开发一款操作系统有利于理解底层的运转逻辑,本篇内容主要用来理解操作系统是如何启动的,又是如何加载磁盘中的内核的,该系列文章参考各类底层书籍,通过自己的理解并加以叙述,让内容变得更加简单,一目了然,即可学到知识又能提高自己的表述能力。
刚看了一下,上一次我分享完内存篇的时候是2019年12月25号。没想到在我酝酿和打磨磁盘篇的这段时间里,我们的生活发生了如此大的变化。人类一直觉得自己是地球上所有生物的主宰,没想到这次被一个小小的病毒狠狠地咬了一口,而且还在欧美继续猖狂。也许是人类安逸太久了,早已经没有原始社会那种需要战战兢兢过日子的心态,在病毒初见端倪的时候,并没有得到足够的重视。甚至中国已经和病毒进行着全国大战役的时候,欧美的同学们还在开开心心的闲逛,聚会。本来他们有足够多的时间和机会的,结果却演变到了今天这个局面。我想说的一句是,人类在宇宙中能够存在,本来就已经是一个极低概率的事件了,宇宙中的各种射线,上千度万度的高温,都是脆弱的人类生命的不可承受之重。人类现在已经把宇宙观测到放大到星系团了暂时也没发现其它文明存在。不管自己多牛逼,始终还是要保存一颗敬畏自然、敬畏其它物种的心,且行且珍惜。
教程更新中:http://www.armbbs.cn/forum.php?mod=viewthread&tid=108546 第3章 ThreadX USBX协议栈移植到STM32F407 本章节
教程更新中:http://www.armbbs.cn/forum.php?mod=viewthread&tid=108546 第3章 ThreadX USBX协议栈移植到STM32F429 本章节
机械磁盘在物理结构上是由磁片、马达、磁头、定位系统等部件构成,通常一块磁盘有若干块磁片构成,为了方便定位统一管理,将这些磁片进行了编号。一个盘片的两面各有一个磁头(Heads),每个盘片被划分成若干个同心圆磁道,每个盘片的半径均为固定值R的同心圆形成柱面(Cylinders),从外至里编号为0、1、2……每个盘片上的每个磁道又被划分为若干个扇区,一个扇区通常容量为512byte,并按照一定规则编号为1、2、3……形成Cylinders×Heads×Sector个扇区,这三个参数即可定位一个扇区。从这里可以看出扇区是磁盘的最小存储单元,对磁盘的读写只能以扇区为单位。(请务必注意最后一句话,后面的实验会用到)
领取专属 10元无门槛券
手把手带您无忧上云