存储管理之硬件基础机械磁盘原理以及设备规范mbr格式的分区管理

author author     2022-10-05     614

关键词:

Linux系统管理

存储管理(服务器数据处理速度大于日常PC及移动端设备,多颗cpu,CPU多核心,每个核心可以完成一个进程的处理)

传统的机械磁盘及分区管理

RAID技术,软RAID实现

LVM

Btrfs


文件系统管理:

ext、xfs、btrfs


Linux存储管理(数据存储):

存储器在冯诺依曼体系中叫做存储器,存储设备在冯诺依曼体系中称为输入输出设备;

在计算机中除CPU【包括运算器(NU)和控制器(CU)】和内存外,其他都是输入输出设备;

北桥芯片是高速芯片,用来连接CPU和内存之间的数据传输(也会连接PCI-E高速率传输数据);南桥芯片是低速芯片,通常连接北桥芯片和输入输出设备(包括适配器)之间的数据传输;

适配器上的设备插拔最好在短点的额情况下进行插拔,否则可能会对主板造成毁灭性伤害;

不同(型号、厂家)的硬盘通过统一的磁盘控制器连接到主板上,进行数据交互;


磁盘控制器,总线(bus),接口


磁盘接口的类型:

IDE:并行接口,来源于ATA,133Mbps,266Mbps;

SCSI:小型计算机系统接口,

UltraSCSI320:320Mpbs

UltraSCSI640:640Mbps

窄带控制器:提供7个接口,连接7个硬盘;

宽带控制器:提供15个接口,连接15个硬盘;


SATA:Serial ATA,串行接口;

SATA1, SATA2, SATA3(可达6Gbps)

SAS:串行接口(运用于服务器,军用,少见于民用)

6Gbps

可以接1023个硬盘


USB:1.0 1.1 2.0 3.0 3.1

2.0:60Mbps

3.0:480Mbps

3.1:10Gbps


衡量磁盘IO能力的另一个指标:IOPS (一秒钟完成多少次读写操作)

IDE接口:机械磁盘,50-100 IOPS

SCSI接口:机械磁盘,100-200 IOPS

 固态磁盘,400 IOPS


SATA接口:机械磁盘,100 IOPS左右

 固态磁盘,400 IOPS左右


SAS接口:机械磁盘,200 IOPS左右

固态磁盘,800 IOPS左右


PCI-E接口的固态硬盘,接近于内存的速度

读的IOPS:400000-800000 IOPS

写的IOPS:50000-100000 IOPS


固态硬盘有读写寿命限制,但效率高


ES3000:华为PCI-E固态硬盘

DEC数字设备公司


普通的X86的主板上的磁盘控制器的接口:

IDE:2个接口,每个接口接一个主盘和一个从盘,共4块磁盘;如果有光驱的话,可能会减少至3个磁盘+1个光驱;


SATA:4-6个接口;


SCSI:7个接口或15个接口;


SAS:1023-16384个接口;


CPU:控制总线(控制器发送控制命令读取内存中的数据),数据总线(CPU通过内存RAM调取磁盘中的数据),地址总线(CPU通过内存RAM调取磁盘中的数据时,需要指定地址进行读取操作);

    控制总线、数据总线、地址总线这三条线在物理上的主板上是一条线,只是具有不同的功能,称为总线的复用;

    前段总线(DDR4 2666Mhz)的带宽速率与CPU的速率相当,否则无法进行数据的交互;



机械磁盘:现阶段最高是4TB;

磁盘的存储方式:磁头在磁盘的表面运动判断磁盘表面磁性材料N/S极来代表0/1进而转换为二进制来表示数据的存储状态;

磁盘转速:现阶段最高是15000rpm,磁盘内部绝对真空(绝对无尘)不存在任何灰尘

术语:

track:磁道(并不存在),磁头在磁盘表面的运行轨迹的投影;

sector:扇区(每个扇区大小相同),512Byte;现在所说的扇区,实际上是平均值,有些扇区跨磁道;最小管理单元;

cylinder:柱面,从某个磁道向所有盘片做投影,所形成的圆柱表面;实际上是由所有盘片上相同位置的磁道组成;

partition:分区,从某个柱面到另一个柱面之间所有的柱面存储空间;(逻辑映射分区,并不存在,只在操作系统内对硬盘的一个逻辑映射)

head:磁头(不与磁盘表面接触,一旦接触会导致磁盘完全损坏),每个盘片每个磁面都有一个磁头,用于数据的读写操作;


磁盘性能的指标:

主轴转速:磁盘每分钟旋转的圈数(5400rpm、7200rpm、10000rpm、15000rpm);

平均寻道时间:磁头从某个位置移动到指定的磁道位置所用的时间,所用时间越短,数据读写速度越快;

缓存:预先加载数据,需要的时候直接被内存瞬间取走,但是缓存有限(局限性);


   基于一切皆文件的Linux的思想,磁盘也是文件:

/dev用于存放硬件设备被映射出的文件,磁盘的设备文件也存放于此;

设备文件:是关联到硬件设备的驱动程序和设备的访问入口;


设备号:

major, minor


major:主设备号,区分不同设备的设备类型,用于标明设备所需的驱动程序;

主设备号8:代表磁盘设备;

主设备号4:代表虚拟终端设备;

主设备号5:代表控制台物理终端设备;(这里的主设备号4、5虽然主设备号不同,但是他们是同一个类型的设备)

主设备号10:代表虚拟机设备;

minor:次设备号,在同种类型的设备中的不同设备,用于对设备提供访问入口;

主设备号10,次设备号238:代表虚拟机网卡设备;

主设备号10,次设备号56:代表虚拟机套接字设备;

主设备号1(内核当中虚拟出来的设备),次设备号5:zero代表设备;


设备类型:

块设备:

以块为基本单位进行随机访问的设备,通常为存储数据的设备;

字符设备:

以字节为基本单位进行线性访问的设备,通常为处理数据的设备;


设备文件名:

IANA (美国国内互联网地址委员会)--> ICANN(互联网名称与数字地址分配机构,管理域名,硬件命名)


设备文件存放在/dev目录下:

IDE接口设备: hd[a-d]

SCSI|SATA|SAS|USB接口设备: sd[a-z]+ (+代表sd后面可以加1个或多个小写字母来代表磁盘名称)


RedHat Enterprise Linux 从RHEL6开始,将IDE接口的磁盘也命名为sd*,自此以后,所有的磁盘设备被统一命名为sd[a-z]+


设备的引用方式:

1.设备文件名

2.卷标(Volume Lable)

3.UUID:全局唯一标识符;Universal Unique IDentifier(最无解的引用方式,标识符重复几率为0)


mknod命令来引用设备:

mknod - make block or character special files

制造一个块或者设备特殊文件

格式:

mknod [OPTION]... NAME TYPE [MAJOR MINOR]

选项      设备名 设备类型  [主设备号 次设备号]

常用选项:

-m:指明设备权限,否则默认是读写权限减去权限遮罩码;

-b:创建一个块设备或者一个缓冲区设备;

-c | -u :创建一个非块设备或者非缓冲区设备;

-p:创建一个管道设备;



如何使用的新的磁盘设备?

1.让Linux系统内核识别设备,对设备进行分区;

2.格式化

低级格式化:磁盘初始化,磁道划分;

高级格式化:创建或重建文件系统;

3.使用文件系统:

挂载

卸载


为何分区?

1.优化磁盘IO性能;

2.可以实现对某个存储空间的配额限制;

3.进行高速的磁盘问题修复;

4.隔离系统文件和其他应用程序文件;

5.安装多个操作系统;


如何分区?

MBR:整个磁盘空间小于2TB容量,建议使用MBR分区格式;

MBR:Master(Main) Boot Record,主引导记录,始于1982年(比尔盖茨提出,他认为分隔出四个分区足够);

MBR其实也是一段数据,默认保存在磁盘的0磁道0扇区中(磁盘的第一个磁道第一个扇区中);

MBR数据分为三部分:

446Bytes:boot loader,引导加载程序;

Windows中:NTLDR(windows引导加载程序)

Linux中:LILO,GRUB(Linux默认的引导加载程序,但是446bytes不足以存放下全部的引导程序数据,将会存放在磁盘的1磁道1扇区到1磁道14扇区中)

64Bytes:Partition table,分区表;每16Bytes为一段,表明一个分区的内容,因此,默认最多只有四个分区;

1.最多有四个主分区;

分区编号依次为:1, 2, 3, 4

2.想要划分更多的分区数量时,可以将任意一个主分区改为扩展分区,在扩展分区中建立逻辑分区;

逻辑分区的编号默认从5开始,不管前面的四个数字是否都被占用;


sda1, sda3, sda5


注意:扩展分区可以没有,但最多只能有一个,只要是5之后的编号数字的分区就是扩展分区;

2Bytes:MBR结束标记,55AA;


GPT:整个磁盘空间超过2TB容量,建议使用GPT分区格式;

GUID Partition table,支持128个主分区;


Linux下常用的分区工具:

fdisk:

用于创建和管理MBR分区,对同一块磁盘,最多只能管理15个分区;


gdisk:GNU disk

用于创建和管理GPT分区;


注意:

如果使用fdisk或gdisk命令对于一个已经有分区被挂载的磁盘的剩余空间再次进行分区,即便将分区的结果保存下来,也不会被内核立即识别;


想要让内核识别出此类新建分区,可以采用下列方法:

1.重启计算机(线上生产环境避免重启);

2.强制内核重读分区表:

partprobe命令

partx命令


在RHEL系或CentOS系5|7:

partprobe [device]

注意:如果省略了设备名,则表示重读所有磁盘设备的分区表;强烈建议,直接给出指定的磁盘设备名称;


在RHEL系或CentOS系6|7:

partx -a [device]

kpartx -af [device]


fdisk分区工具:

fdisk - manipulate disk partition table

操纵磁盘分区表,是一个菜单化工具;不能查看单个分区超过2^64Gb(超过这个大小需要使用parted命令);在这个菜单化工具中删除输入的字符需要按住“Ctrl”键+backspace键进行删除操作;

格式:

fdisk device

      fdisk -l [device...]


    选项:

    -c=dos | -u=cylinders :来查看Dos系统的分区表;

    -l:表示查看之意,如果给出设备名称,则查看指定设备的分区表;否则查看所有磁盘设备文件的分区表;


fdisk device

对于指定设备进行分区管理和操作;(在这个菜单化工具中删除输入的字符需要按住“Ctrl”键+backspace键进行删除操作;)

Command action

  d   delete a partition   :删除一个分区;

  l   list known partition types  :当前支持哪些分区类型;

  m   print this menu :显示当前菜单;

  n   add a new partition  :添加一个新分区;

  p   print the partition table :显示分区列表;

  q   quit without saving changes :不保存退出;

  t   change a partition's system id :改变一个分区的系统id;

  w   write table to disk and exit :保存分区并退出;


在fdisk交互式菜单模式中创建分区的过程:

n --> p|e|l --> 分区的起始扇区(柱面),直接回车使用默认值设置 --> 分区的结束扇区(柱面),也可以使用+#UNIT(#指数字,UNIT指单位)直接指定分区大小


parted命令:高级分区工具,其操作结果实时生效;

parted - a partition manipulation program

格式:

parted [options] [device [command [options...]...]]

1  2

 常用选项:

  -l:查看分区列表;

  -s:执行一个脚本;

  -v:查看版本号;

  -a alignment-none:使用最小化的配置参数;

  -a alignment-cylinder:设置这个分区有多少柱面;

  -a alignment-minimal:创建一个最小化的分区;

  -a alignment-optimal:使用一个可选的内容;


示例:

~]# parted /dev/sda mkpart logical 103GB 105GB

~]# parted /dev/sda rm 8


在通电开机状态下添加SCSI接口的磁盘至本服务器,要想使设备被内识别并创建出相应的设备文件,有下列方法:

1.重启计算机;

2.~]# echo "- - -" > /sys/class/scsi_host/host2/scan

强制内核识别在通电状态下热插接的新SCSI接口的磁盘设备;


1.硬盘了解

1.硬盘1.1分类分类:根据存储数据的介质可以分为机械硬盘(HDD,HardDiskDrive)和固态硬盘(SSD,SolidStateDisk)。机械硬盘采用磁性碟片来存储数据,而固态硬盘通过闪存颗粒来存储数据。1.2接口类型1.IDE接口(ATA)传输慢,不支持热插拔&n... 查看详情

第八课-第三讲磁盘及文件系统管理详解之一

...系统。操作系统不能直接访问MBR。独立在操作系统之外的存储空间。划分为3段,第一段:1-466字节放的是BootLoader,引导加载器,是一 查看详情

9=3磁盘存储与分区

磁盘存储与分区设备文件一切皆文件:open(),read(),write(),close()设备类型:块设备:block,存取单位“块”,磁盘字符设备:char,存取单位“字符”,键盘设备文件:关联至一个设备驱动程序,进而能够跟与之对应硬件设备进行通... 查看详情

linux系统磁盘管理

一、磁盘设备基础知识1、一切皆文件  文件操作:create(),open(),read(),write(),close()2、设备文件:关联至一个设备驱动程序,进而能够跟与之对应硬件设备进行通信 设备号码: 主设备号:majornumber,标识设备类型 次设备号:mi... 查看详情

磁盘管理与文件系统

  计算机上主要部件有运算器、控制器、存储器、输入输出设备,也就是上图中cpu,内存和其他IO设备,内存作为易失性存储设备,所以需要通过IO设备磁盘来持久化的存储数据。而IO设备这些硬件设备怎么被计算机识别管理呢... 查看详情

文件系统和磁盘工作原理

...件系统和磁盘驱动中间的一个块设备抽象层:可以把Linux存储系统的I/O栈,由上到下分为三个层次,分别是文件系统层、通用块层和设备层。这三个I/O层的关系如下图所示:根据这张I/O栈的全景图,可以更清楚地理解,存储系统I... 查看详情

存储管理之磁盘分区

在使用一块磁盘的之前,我们要对其进行分区处理,为的是优化这块磁盘的I/O性能;为不同的目的分配不同的空间,来实现空间的配额限制,就好像Windows中的C、D盘那样,给其一定的空间;进行高速修复和隔离系统文件与其他文... 查看详情

管理系统存储

######1.mbr#####mbr(主引导记录(MasterBootRecord))MBR,即主引导记录,是对IBM兼容机的硬盘或者可移动磁盘分区时,在驱动器最前端的一段引导扇区。MBR概念是在1983年PCDOS2.0支持硬盘后才有的。[1]  MBR描述了逻辑分区的信息,... 查看详情

mysql:32linux操作系统的存储系统软件层原理剖析以及io调度优化原理

1.操作系统的意义所谓的操作系统,无论是Linux也好,还是Windows也好,他们本身就是软件系统。由于我们不可能直接去操作CPU、内存、磁盘这些硬件,所以必须要用操作系统来管理CPU、内存、磁盘这些硬件设备。Wi... 查看详情

系统管理之小结

硬件运算器,控制器,存储器,I/O设备内核:1、协调硬件工作2、抽象底层硬件功能为系统调用3、让硬件工作(硬件驱动,数字签名防恶意代码)4、cpu和内存资源分配5、网络管理6、安全管理I/O事件的基础概念:硬件级别:CPU通过轮循或... 查看详情

磁盘存储和文件系统管理

磁盘存储和文件系统管理磁盘结构设备文件一切皆文件:open(), read(), write(), close()设备文件:关联至一个设备驱动程序,进而能够跟与之对应硬件设备进行通信设备号码:主设备号:major number, 标识设备类型次... 查看详情

计算机基础小结

...么?操作系统能干什么?计算机三大组成?应用程序操作系统硬件应用程序的启动和操作系统的启动?编程语言分类机器语言汇编语言高级语言解释型语言编译型语言网络的瓶颈效应计 查看详情

磁盘系统管理

...区或安腾计算机2.    特殊的卷:启动卷:存储系统文件,可以是主分区或逻辑驱动器系统卷:存储启动 查看详情

网络基础知识之tcp的三次握手

网络是企业对外提供服务的一个重要因素,网络管理也是一个Linux运维人员的必学技能之一。网络是一个复杂的体系结构,一般将网络分成多个层次,主要有tcp/ip模型和osi模型。分层的网络模型可以大大简化网络的复杂度,可以... 查看详情

11磁盘存储和系统分区管理1gtp和mbr分区管理

现在主要的分区方式为GTP分区和MBR分区进行磁盘分区的原因优化I/O性能隔离系统和应用程序实现磁盘空间的配额限制同一磁盘可以采用不同的文件系统统一磁盘上可以安装多个操作系统MBR分区主引导记录(MasterBootRecord)又叫做... 查看详情

磁盘存储和文件系统(代码片段)

分区两种分区格式:MBR、GPTMBR分区MBR分区磁盘的分区表信息存放在硬盘0磁道第0个扇区内总共512字节前446字节为bootloader中间64位为磁盘分区表信息,每个分区信息占16个字节,总计存放4个分区。(这段就是需要备份出来的数据)最... 查看详情

14磁盘及文件系统管理详解

...和I/O设备;其中磁盘就是属于外部的I/O设备,用于永久的存储文件数据;相对于CPU和内存而言,当前使用较多的机械磁盘还是处于“上一个阶段”的产品,对比起CPU内存这样的电子产品而言,速度可想而知。  我们常见... 查看详情

:操作系统基础知识笔记

...作生产者——消费者问题进程通信与管程进程调度与死锁存储管理存储管理的概念地址重定位存储管理的方式:设备管理设备管理主要技术设备管理软件数据传输控制方式磁盘调度算法文件管理文件的结构和组织作业管理作... 查看详情