Linux实战教学笔记15

第十五节 磁盘原理

标签(空格分隔): Linux实战教学笔记


1,知识扩张

非脚本形式的一条命令搞定批量创建用户并安装随机10位字母数字组成密码。

1.1 sed的高档用法

[root@chensiqi1 ~]# echo chen{01..03}   #通配符创建用户
chen01 chen02 chen03
[root@chensiqi1 ~]# echo chen{01..03}|xargs -n1 #xargs将输出变成单列
chen01
chen02
chen03
[root@chensiqi1 ~]# echo chen{01..03}|xargs -n1|sed -r 's#(.*)#useradd &#' #拼接字符串
useradd chen01
useradd chen02
useradd chen03
[root@chensiqi1 ~]# echo chen{01..03}|xargs -n1|sed -r 's#(.*)#useradd & \&\& ps=`echo $RANDOM|md5sum|cut -c1-10`#'   #创建10位随机密码
useradd chen01 && ps=`echo $RANDOM|md5sum|cut -c1-10`
useradd chen02 && ps=`echo $RANDOM|md5sum|cut -c1-10`
useradd chen03 && ps=`echo $RANDOM|md5sum|cut -c1-10`
[root@chensiqi1 ~]# echo chen{01..03}|xargs -n1|sed -r 's#(.*)#useradd & \&\& ps=`echo $RANDOM|md5sum|cut -c1-10` \&\& echo $ps | passwd --stdin &#' #免交户设置密码
useradd chen01 && ps=`echo $RANDOM|md5sum|cut -c1-10` && echo $ps | passwd --stdin chen01
useradd chen02 && ps=`echo $RANDOM|md5sum|cut -c1-10` && echo $ps | passwd --stdin chen02
useradd chen03 && ps=`echo $RANDOM|md5sum|cut -c1-10` && echo $ps | passwd --stdin chen03
[root@chensiqi1 ~]# echo chen{01..03}|xargs -n1|sed -r 's#(.*)#useradd & \&\& ps=`echo $RANDOM|md5sum|cut -c1-10` \&\& echo $ps | passwd --stdin & \&\& echo "&:$ps">>/tmp/useradd_passwd#'  #将随机密码写入固定文件
useradd chen01 && ps=`echo $RANDOM|md5sum|cut -c1-10` && echo $ps | passwd --stdin chen01 && echo "chen01:$ps">>/tmp/useradd_passwd
useradd chen02 && ps=`echo $RANDOM|md5sum|cut -c1-10` && echo $ps | passwd --stdin chen02 && echo "chen02:$ps">>/tmp/useradd_passwd
useradd chen03 && ps=`echo $RANDOM|md5sum|cut -c1-10` && echo $ps | passwd --stdin chen03 && echo "chen03:$ps">>/tmp/useradd_passwd
[root@chensiqi1 ~]# echo chen{01..03}|xargs -n1|sed -r 's#(.*)#useradd & \&\& ps=`echo $RANDOM|md5sum|cut -c1-10` \&\& echo $ps | passwd --stdin & \&\& echo "&:$ps">>/tmp/useradd_passwd#'|bash    #把拼接的字符串交给bash执行命令
Changing password for user chen01.
passwd: all authentication tokens updated successfully.
Changing password for user chen02.
passwd: all authentication tokens updated successfully.
Changing password for user chen03.
passwd: all authentication tokens updated successfully.
[root@chensiqi1 ~]# cat /tmp/useradd_passwd   #查看密码文件
chen01:fd0721e461
chen02:a2bcb12670
chen03:25c6957b85

1.2 awk的次高级用法(还不可以一心呈现awk的兵不血刃)

[root@chensiqi1 ~]# echo chen{01..03} | xargs -n1 #批量创建用户                        
chen01
chen02
chen03
[root@chensiqi1 ~]# echo chen{01..03} | xargs -n1 | awk '{print "useradd",$0}'  #拼接字符串
useradd chen01
useradd chen02
useradd chen03
[root@chensiqi1 ~]# echo chen{01..03} | xargs -n1 | awk '{print "useradd",$0,"&& ps=`echo $RANDOM|md5sum|cut -c1-10`"}' #创建10位随机密码
useradd chen01 && ps=`echo $RANDOM|md5sum|cut -c1-10`
useradd chen02 && ps=`echo $RANDOM|md5sum|cut -c1-10`
useradd chen03 && ps=`echo $RANDOM|md5sum|cut -c1-10`
[root@chensiqi1 ~]# echo chen{01..03} | xargs -n1 | awk '{print "useradd",$0,"&& ps=`echo $RANDOM|md5sum|cut -c1-10` && echo $ps | passwd --stdin",$0}'  #免交户设置密码
useradd chen01 && ps=`echo $RANDOM|md5sum|cut -c1-10` && $ps | passwd --stdin chen01
useradd chen02 && ps=`echo $RANDOM|md5sum|cut -c1-10` && $ps | passwd --stdin chen02
useradd chen03 && ps=`echo $RANDOM|md5sum|cut -c1-10` && $ps | passwd --stdin chen03
[root@chensiqi1 ~]# echo chen{01..03} | xargs -n1 | awk '{print "useradd",$0,"&& ps=`echo $RANDOM|md5sum|cut -c1-10` && echo $ps | passwd --stdin",$0,"&&   echo",$0":$ps>>/tmp/useradd_passwd"}' #将账号信息写入固定文件
useradd chen01 && ps=`echo $RANDOM|md5sum|cut -c1-10` && $ps | passwd --stdin chen01 && echo chen01:$ps>>/tmp/useradd_passwd
useradd chen02 && ps=`echo $RANDOM|md5sum|cut -c1-10` && $ps | passwd --stdin chen02 && echo chen02:$ps>>/tmp/useradd_passwd
useradd chen03 && ps=`echo $RANDOM|md5sum|cut -c1-10` && $ps | passwd --stdin chen03 && echo chen03:$ps>>/tmp/useradd_passwd
[root@chensiqi1 ~]# echo chen{01..03} | xargs -n1 | awk '{print "useradd",$0,"&& ps=`echo $RANDOM|md5sum|cut -c1-10` && echo $ps | passwd --stdin",$0,"&& echo",$0":$ps>>/tmp/useradd_passwd"}'|bash #将拼接的字符串交给bash执行
Changing password for user chen01.
passwd: all authentication tokens updated successfully.
Changing password for user chen02.
passwd: all authentication tokens updated successfully.
Changing password for user chen03.
passwd: all authentication tokens updated successfully.
[root@chensiqi1 ~]# cat /tmp/useradd_passwd  #查看文件内容
chen01:a855e2cd51
chen02:3b71412cdc
chen03:14c12c0089

2,磁盘知识详解

2.1磁盘知识的系列布局

图片 1

2.2 回顾Linux buffer和cache的区别

[root@chensiqi1 ~]# free -m
             total       used       free     shared    buffers     cached
Mem:           980        407        572          0         82        191
-/+ buffers/cache:        133        847
Swap:          767          0        767

提示:
1)linux系统的特性是将系统不用的物理内存做为缓存区缓冲区使用,因此572不是系统的真是内存。
2)系统真正的可用内存是847M
3)buffers为写入缓冲区,sync将缓冲区数据写入磁盘
4)cache为读取数据的缓存区
5)硬盘是机械的,无论是写入还是读取都太慢了,所以读取和写入都是用了缓存及缓冲技术。
6)门户架构网站都会用缓存技术,来让用户写入读取尽可能不接触磁盘,或者说把用户的请求尽可能往前推。

2.3 磁盘

2.3.1 混合硬盘与普通磁盘相比,拥有以下优点

固态磁盘优点 优点说明 备注
启动块 没有电机加速旋转的过程
读取延迟小 不用磁头,快速随机读取,读延迟极小。根据相关测试:同样配置的两台电脑下,搭载固态磁盘的笔记本从开机到出现桌面一共18秒,而搭载传统磁盘的笔记本总共用31秒,两者几乎有将近一半差距
碎片不影响读取时间 相对固定的读取时间。由于寻址时间与数据存储位置无关,因此磁盘碎片不会影响读取时间 机械磁盘
写入速度快 基于DRAM的固态磁盘写入速度极快
无噪音 因为没有机械马达和风扇,工作时噪音值为0分贝。某些高端或大容量产品装有风扇,因此仍会产生噪音
发热量较低 低容量的基于闪存的固态磁盘在工作状态下能耗和发热量较低,但高端或大容量产品能耗会较高
无机械故障 内部不存在任何机械活动部件,不会发生机械故障,也不怕碰撞,冲击,震动。这样即使在高速移动甚至伴随翻转倾斜的情况下也不会影响到正常使用,而且在笔记本电脑发生意外掉落或与硬物碰撞时能够将数据丢失的可能性降到最小
工作温度范围更大 典型的磁盘驱动器只能在5度到55度范围内工作。而大多数固态磁盘可在-10~70度工作,一些工业级的固态磁盘还可在-40~85度,甚至更大的温度范围下工作
体积小重量轻 低容量的固态磁盘比同容量磁盘体积小,重量轻。但这一优势随容量增大而逐渐减弱。直至256GB,固态磁盘仍比相同容量的普通磁盘轻
抗振动 比起传统磁盘,固态磁盘抗震能力要强很多,使得数据能更加安全的保存

2.3.2 固态磁盘SSD缺点

固态磁盘与观念磁盘相比,拥有以下缺点:

固态磁盘缺点 缺点说明 备注
成本高 每单位容量价格是传统磁盘的5~10倍(基于闪存),甚至200~300倍(基于DRAM)
容量低 目前固态磁盘最大容量远低于传统磁盘。传统磁盘的容量仍在迅速增长,据称IBM已测试过4TB的传统磁盘
写入寿命有限 写入寿命有限(基于闪存)。一般闪存写入寿命为1万到10万次,特制的可达100万到500万次,然而整台计算机寿命期内文件系统的某些部分的写入次数仍将超过这一极限。特制的文件系统或者固件可以分担写入的位置,使固态磁盘的整体寿命达到20年以上
数据难以恢复 数据损坏后难以恢复。一旦在硬件上发生损坏,如果是传统的磁盘或者磁带存储方式,通过数据恢复也许还能挽救一部分数据。但是如果是固态存储,一旦芯片发生损坏,要想在碎成几瓣或者被电流击穿的芯片中找回数据那几乎就是不可能的。当然这种不足也是可以牺牲存储空间来弥补的,主要用RAID

2.3.3 SSD固态磁盘与传统机械磁盘优劣相比较

项目 固态磁盘 传统机械磁盘
容量 较小
价格
随机存取 极快 一般
写入次数 SLC:10万次,MLC:1万次 无限制
盘内阵列 极难
工作噪音
工作温度 极低 较明显
数据恢复 可以
重量

上表是对固态磁盘和价值观磁盘特性的一个相比。从中能够见见固态盘的优势和症结。
关键优势:随机存取速度,功耗,防震,重量方面优势很大。
着重缺点:容量,价格,写寿命,数据恢复生机难

2.4 生产环境磁盘的选型和动用案例

2.4.1 生产工作中服务器的选型

DELL,HP,IBM等,其中DELL,HP是互联网公司的主流服务器,这五个品牌的服务器综合性价比相比较高。百度广大用IBM的服务器,前面的章节会细说,这里就不多做牵线了。

2.4.2 公司生产工作中磁盘的选型

磁盘:
时下服务器市场:主流磁盘为SAS,SATA,SSD硬盘

1)企业级SAS硬盘(默认)

  • 集团里大面积的SAS硬盘是15000转/分(这里是主轴的转数)。当前主流300G,600G,1000G,从现实的事体需求及性价比考虑,我在工作中多用300-600G的SAS硬盘。
  • 一般选6300G,6600G,单盘容量不要太大,除非纯备份!(比如RAID
    5,磁盘越大损失越大 )
  • 用途:用于提供生产线上的通常对外提供劳务的政工服务器:
  • 譬如:生产线上的数据库业务,存储业务,图片工作及相关高并发工作(web
    http,cache服务),总的来说,假如没有例外事情要求,SAS磁盘是生育环境首选的磁盘配置。

2)企业级SATA硬盘:
商店级SATA硬盘,7200-10000转/分,常见的容量为1T和2T,4T,6T,优点是经济实用,容量大,从切实的政工需求及性价比考虑,我在工作中多用SATA磁盘做线下不提供劳务的数量存储或者出现业务访问不是很大的作业应用。比如站点程序及数据库,图片的线下备份等。
特征:容量性价比高,一般2T的SATA磁盘较佳

磁盘选购小结:
1)线上的作业,用SAS磁盘。
2)线下的事务,用SATA磁盘,磁带库
3)线上高并发,小容量的事体,SSD磁盘
4)成本考虑:依照数量的造访热度(热点存储),智能分析分层存储。SATA+SSD

特别注意:
【集团案例】千万不要用SATA磁盘来做在线高并发服务的数据存储或数据库业务,这是有教训的。
某商厦采用SATA做数据库的积存盘,结果造成数据库连续当机12月。
5台SATA盘RAID5
化解:重新买5台,把磁盘从SATA(RAID5)换成SAS(RAID10)。6个月内没事。

3)SSD固态电子盘:
特色:容量小,价格贵,速度快。一般用于数据量小而且有超大规模高并发的事体(这不是绝无仅有的法子,仍是可以够透过磁盘加内存缓存的技巧方法化解那些广阔出现的题目)
百度,腾讯,360主导工作都会动用SSD磁盘,应用层也不可能不已经做了各类缓存。
特别指示:
大商厦如taobao,某些事情或者会按照数量的热度来概括使用分层存储,以高达性价比最佳的情事。80GSSD+500GSATA

2.4.3 不同品种磁盘的一些利用数据相比较

类型 性质 转数 主流产品 价格(企业级)
SATA 机械 7.2K-10K转/分 1T-2T 2T 800RMB 1400RMB(7.2K 2T)
SAS 机械 15K转/分 300-600G-1000G 1200-2000RMB(15K)
SSD 电子 40-600GB 600RMB-7500RMB

2.4.4 不同体系磁盘的标价容量普及度相比较

生儿育女条件主流磁盘的相干音讯比较:
合作社生产推广水平:SAS>SATA>SSD
单位容量相比较性能价格:SSD>SAS>SATA
单位价格购入磁盘容量:SATA>SAS>SSD

时下的办事,SAS,SATA是主流生产环境使用,SSD固态磁盘,功能最高,非机械式的,是电子装备,价格高。

2.4.5 天猫网CDN缓存对象分别存储策略案例

提议问题
在仓储数据中,18KB以下的对象数量占总额的80%,而其存储量占总量不到40%;同时,80%平日被访问的靶子所占有的囤积空间不到总量20%。

浅析问题:
上述的问题表示“热点数据”(即访问频次高的内容)需要更快的性能,而占的半空中并不大,而“冷数据”(访问频次低的始末)所需存储量很大,对性能要求不需要高。

缓解问题:
所以,服务器引入分层存储机制,单台服务器(实际会多台)的磁盘可由一块80GB的SSD磁盘和两块500GB的SATA盘组成。然后把“热数据”存放在SSD盘上,“冷数据”存放在SATA盘上,冷热数据可以动态调度,从而兼顾性能,容量与成本。另:分层存储调度软件由Tmall开发。
地方的策略是飞快,低本钱方案,这是我们运维工作要尊重的,实际工作中不容许不考虑资产,而无界定的去提高性能。

3,磁盘知识与读写原理

3.1 磁盘相关名词翻译

英文 汉语
Disk 磁盘
Head 磁头
Sector 扇区
Track 磁道
Cylinder 柱面
Units 单元块(一个柱面的大小)
Block 数据块
Inode 索引节点

3.2 磁盘内部有关名词知识

貌似的话,一块磁盘有1个到数个盘片不等,其中每个盘片的有效性盘面对应一个读写磁头,从上往下从0开端相继编号,不同的磁盘盘面在逻辑上被分割为磁道,柱面以及扇区,一般在出厂时就设定好了这一个,磁盘及盘片的刨面如下图:

图片 2

3.2.1 磁盘的磁头

  • 磁盘的各种盘片的各类有效盘面都会有一个读写磁头(磁头数=盘片个数*2),磁盘盘面区域的细分如图所示:

图片 3

  • 在磁盘不坐班的时候,磁头停靠在靠近主轴接触盘片的外表,即线速度最小的地点,这里是一个不存放任何数据的例外区域,称为启停区或着陆区,启停区以外就是数据区。
  • 在磁盘的最外面,离主轴最远的磁道称为“0”磁道,磁盘数据的寄放就是从最外面“0”磁道初始的。既然磁盘数据从最外侧起始,而止住时磁头又是在最内圈启停区,那么磁头是怎么找到“0”磁道的岗位的吧?这是因为在磁盘中还有一个用来完成磁盘初阶定位的“0”磁道检测器构件,由这些构件完成磁头对“0”磁道的原则性。
  • “0”磁道分外首要,我们领会,系统的指点程序就在0柱面0磁道1扇区的前446Bytes。

3.2.2 磁盘的盘面

磁盘的盘片一般是用铝合金材料或玻璃做基片。磁盘的每一个盘片都有五个盘面,即上,下盘面,一般的话,每个盘面都得以储存数据,成为有效盘面,也有极个其它磁盘盘面数为单数。每一个那样的有效盘面都有一个盘面号,按梯次从上至下从“0”伊始相继编号。因为每一个实惠盘面都有一个应和读写磁头,盘面号又叫磁头号。磁盘的盘片组在2~14片不等,平时有2~3个盘片(如300G15KSAS盘就是3个盘片),故盘面号(磁头号)0~3或0~5不等,注意:盘面个数等于磁头个数。

图片 4

3.2.3 磁盘的磁道

  • 磁盘在格式化时被分割成许多同心圆,这个同心圆的轨迹叫做磁道。磁道由盘面从外向内依次从0起首相继编号。
  • 磁盘的每一个盘面一般有300~1024个磁道,新式大容量磁盘每个磁盘每个盘面的磁道数可能会更多。音信以脉冲串的花样记录在这一个轨道中,那多少个同心圆轨迹不是接二连三的笔录数据,而是被分开成一段段的半圆形,这么些圆弧的角速度一样。由于径向长度不平等,所以,线速度也不平等,外圈的线速度较内圈的线速度大,即一律的中转下,外圈在平等时间段里,划过的弧形长度要比内圈划过的弧形长度大(可是读取到的数据是同等的)。这样的每段圆弧叫做一个扇区,扇区从“1”起始编号,每个山区中的数据做为一个单元同时读出或写入。一个正经的3.5寸磁盘盘面平常有300~1024个磁道。特别表达,磁道是“看”不见得,只是在盘面上以异样形式磁化了的有些磁化区,我们给我们画的图片是磁道形象的显示,在磁盘格式化时就已计划完毕了。

提示:
面前讲过的,给磁盘分区实际就是分开柱面号及扇区号。
柱面是怀有盘面上同一半径的不比磁道的集纳。

3.2.4 磁盘的柱面

  • 一个磁盘所有的盘面上同一个半径相同的磁道的圆形轨迹从上倒下相继组成一个圆柱体,就叫做柱面,每个圆柱上的磁头由上而下从“0”伊始编号。
  • 一块磁盘的柱面数(或每个盘面的磁道�数)既取决于每条磁道的宽窄(也会与磁头的分寸有关),也有赖于定位机构所设定的磁道间步距的深浅。那一个都是在出厂前就成功设定的。特别注意:这里的柱面数和前面的磁道数是一律的。

3.2.5 磁盘的扇区

  • 操作系统是以扇区为单位将音信存储在磁盘上的,一般情状下,每个扇区的轻重是512字节。一个扇区首要有两局部内容:存储数据地方的标识符和仓储数据的数据段。
    图片 5

图片 6

  • 扇区的第一个重点部分是标识符。标识符就是扇区头标,包括组成扇区三维地质的七个数字:扇区所在的磁头(或盘面),磁道(或柱面号)以及扇区在磁道上的岗位即扇区号。头标中还包括一个字段,其中有体现扇区是否能可靠存储数据,或者是不是已觉察某个故障由此不宜拔取的符号。
  • 有些磁盘控制器在扇区头标中还记录有指令字,可在原扇区出错时引导磁盘转到替换扇区或磁道。最终,扇区头标以循环冗余校验(CRC)值做为截止,以供控制器检验扇区头标的读出情况,确保准确科学。
  • 扇区的第二个重点部分是储存数据的数据段,可分为数据和保障数量的纠错码(ECC)。在起首准备期间,统计机用512个虚拟新闻字节(实际数目标存放地)和与这么些虚构音信字节相应的ECC数字填入这几个片段。

3.2.6 磁道柱面扇区总括

磁盘最基本的组成部分是由坚硬的金属材料制成的涂以磁性介质的盘片,不同容量磁盘的盘片数不等。

记得要点:
1)一块磁盘有2-14个盘片,每个盘片有两个面,每个面对应一个读写磁头,用磁头号来区别盘面,即盘面数就是磁头数,盘片数*2=磁头数(盘面数)
2)不同盘面的磁道被剪切为六个扇区区域,每个区域就是一个扇区(Sector)。
3)同一个盘面,以盘片要旨为圆心,每个不同半径的圆形轨迹就是一个磁道。
4)不同盘面相同半径的磁道组成一个圆柱面就是柱面
5)一个柱面包含五个磁道(这个磁道的半径相同),一个磁道包含三个扇区。
6)数据音讯记录可代表为:某磁头,某磁道(柱面),某扇区

3.2.7 一句话概括定义(磁道,扇区,柱面)

  • 磁道:每个盘片有多少个面,都可记下音讯。盘片表面以盘片中央为圆心,用于记录数据的两样半径的圆形磁化轨迹就称为磁道。磁化轨迹是磁化区域,是看不见的。磁道看起来是一个平面圆周形
  • 扇区:盘面由圆心向周围画直线==半径,不同的磁道被直线分成很多扇形的区域,每个弧形的区域叫做扇区,每个扇区大小相似为512字节,扇区看起来就是圆弧或扇形。
  • 柱面:磁盘中,不同的盘片(或盘面)相同半径的磁道轨迹从上到下所结合的圆柱型区域就叫做柱面,柱面看起来是一个圆柱形。

3.2.8 磁盘工作原理

图片 7

磁盘的读写流程及原理
磁盘的多少读/写一般是按柱面举行的,即次头读/写多少时首先在同一柱面内从“0”磁头起始展开操作,依次向下在同一柱面的不比盘面即不同磁头上展开操作,只有�同一柱面怀有的磁头全部读/写完毕后,磁头才更换来下一柱面(即寻道),因为切换磁头只需经过电子装备切换即可,而切换柱面则必须通过机械设备切换。电子磁头间的切换比机械磁头向邻近磁道或柱面切换要快的多。所以,数据的读/写按柱面举行,而不按盘面举行。也就是说,一个磁道写满数据后,就在同一柱面的下一个盘面的一致半径磁道来写,一个柱面写满后,才移到下一个柱面起初写多少。读数据也遵照这种方法举办,这样就大大提高了磁盘的读/写效用。

机械磁盘读写磁盘数据的规律小结
1)磁盘是比照柱面为单位读写多少的,即先读取同一个盘面的某一个磁道,读完之后,假诺数额尚未读完,磁头也不会切换其他的磁道,而是精选切换磁头,读取下一个盘面的同样半径的磁道,直到所有盘面的同一半径的磁道读取完成将来,倘若数量还从未读写完成,才会切换其他不同半径的磁道,这多少个切换磁道的过程称为寻道。
2)不同磁头间的切换是电子切换,而各异磁道间的切换需要磁头做径向移动,这么些通往运动需要步进电动机调节,这么些动作是形而上学的切换。
磁头寻道是形而上学运动,切换磁头是电子切换。

4,本有的重点总结:

1,名词:磁道(track),柱面(cylinder),扇区(sector)
2,数据在磁盘的岗位,三维地址,0磁头0磁道1扇区。MBR
0磁头0磁道1扇区前446字节

图片 8

3,磁盘读写多少原理

5,为了下一节的学问做准备,我们最终说一下DPT(磁盘分区表)中的每一个分区表项的布局。16字节的表项,由低到高字节,如下表所示:

字节数 说明
1Bytes State:分区状态,0=未激活,0x80=激活
1Bytes StartHead:分区起始磁头号
2Bytes StartSC:分区起始扇区和柱面号。低字节的低6位为扇区号,高2位为柱面号的第9,10位,高子节为柱面号的低8位
1Bytes Type:分区类型,如0x0B=FAT32,0x83=Linux等,00表示此项未用
1Bytes EndHead:分区结束磁头号
2Bytes EndSC:分区结束扇区和柱面号,定义同前
4Bytes Relative:线性寻址方式下分区相对扇区地址(对于基本分区即为绝对地址)
4Bytes Sectors:分区大小(总扇区数)

表明:这就是一个磁盘分区的分区表,例如:/dev/sda1,使用fdisk,pated分区工具分区的真面目就是改变上述64子节的分区表音信。

相关文章