linux磁盘及文件系统管理初步
目录
1.磁盘及文件系统管理 2.机械磁盘结构 3.mknod命令 4.parted命令 5.GPT分区&UEFI 6.二进制单位
Linux系统管理
磁盘分区及文件系统管理
RAID
LVM
网络属性管理
程序包管理
sed and awk
进程查看和管理
内核管理(编译和安装)
系统启动流程
定制、编译内核、busybox
系统安装:kickstart,dhcp,pxe
shell脚本编程
1.磁盘及文件系统管理
cpu、内存、I/O
IO:ram,disk,NIC(network interface card)
键盘鼠标:南桥
ram:北桥
|———————|
|北桥 |ram
|--------------|------------------------
|CPU |
|--------------|------------------------
| 南桥 |键盘,鼠标,硬盘
|--------------|
硬盘接口:
IDE接口:133MB/s
并行总线,双向四车道
//并行数据容易产生干扰,导致数据损坏重传,因此效率低
//并行越高,干扰频率越高
SCSI:并口,Ultrascci320,320MB/s
Ultrascci640,640MB/s
SCSI的费用更高
sata接口:6Gbps
串行总线,有前后,不能并行传输
SAS:串口时的scsi技术6Gbps
USB:串口3.0,480MB/s 理论
并口:同一线缆可以接多块硬盘
IDE:两个,主、从
SCSI:
宽带:16-1个设备
窄带:8-1个设备
串口:同一线缆,只可以接一个设备
IOps //IO per second
IDE:100次左右IO
SCSI:150左右
SATA:100多
SAS:100多到200
固态硬盘:400左右
7200 rpm的磁盘 IOPS = 1000 / (9 + 4.17) = 76 IOPS
10000 rpm的磁盘IOPS = 1000 / (6+ 3) = 111 IOPS
15000 rpm的磁盘IOPS = 1000 / (4 + 2) = 166 IOPS
PCI-E接口的固态硬盘IOPS都是
440k IOPS //44万
硬盘:机械硬盘,固态硬盘
固态硬盘:类似于U盘,内部是多个并行
CPU和硬盘设备之间的 连接器:适配器
负责硬盘控制芯片和CPU之间信号的翻译与转换
2.机械硬盘结构
多块盘片
track:磁道一个同心圆
角速度一致,
每一个盘片的双面都可以读取//每一个盘片的每一面都有磁头
rpm:rotation per minute //一分钟
5400rpm,7200rpm,10000rpm
每个磁道的周长是不一样的,因此不能按照磁道进行存储,不便于管理
磁道划分扇区:更容易管理
//扇区大小一般是固定的,一般为512字节
Cylinder:柱面:不同盘面的同一个编号的磁道上,就成为一个柱面
//第一个盘面的1号磁道,第二个盘面的1号磁道,第三个盘面的1号磁道,称为一个柱面
//磁头是固定的,上下两个,多个盘面
分区:基于柱面进行
越靠近外部磁道的分区,性能越好
//单位时间内划过的距离教程,获取的数据较多
//C盘及时最外面的分区
track磁道:同心圆,从外圈开始,磁道被分成0磁道,1磁道,2磁道
Cylinder:柱面,具有相同磁道编号的同心圆组成柱面,那么这柱面就像一个没了底的铁桶
柱面数:就是磁盘上的磁道数
磁面数==磁头数
不同盘片相同半径构成的圆柱面即柱面
扇区sector:扇区就是每一个磁道中被分成若干等分的区域.相邻磁道是有间隔的,这是因为磁化单元太近会产生干扰.
每个柱面包括512个字节。固定值
硬盘的容量=柱面数(CYLINDER)*磁头数(HEAD)*扇区数(SECTOR)*512B.
存储容量=磁头数×磁道(柱面)数×每道扇区数×每扇区字节数
Linux的哲学思想:一切皆文件
设备类型:
块(block):随机访问,数据交换单位是“块”
//sda,sdb
字符(character):线性访问,数据交换单位是字符
//tty1,tty2,pts
设备文件:FHS
/dev目录下
设备文件:用于实现将设备关联至其驱动程序
//任何时候打开一个设备文件,其实相当于打开该文件的驱动程序
设备号:major :主设备号,区分设备类型,用于标明设备所需要的驱动程序
minor:次设备号,区分同种类型下的不同设备;是特定设备的访问入口
3.mknod命令
mknod命令
创建块设备和字符设备
mknod [OPTION] ... NAME TYPE [MAJOR MINOR]
mknod /dev/testdev c 111 1
-m MODE 直接指定其权限 //调用系统调用来实现权限修改
TYPE:
b 块设备
c,u 字符设备,(unbuffered)
p FIFO设备
设备文件名:是统一定义的,ICANN
磁盘:
IDE:/dev/hd
SCSI,SATA,USB,SAS :/dev/sd[a-z]
引用设备的方式:
设备文件名
卷标
UUID//128位
分区:
/dev/sda[1-4]
注意:Centos6和7统统将硬盘设备文件表示为/dev/sd[a-z]#
硬盘分区:MBR,GPT
MBR:0 sector//0扇区,
master boot record//主引导记录
512字节
446字节:bootloader,程序,引导启动操作系统的程序
64字节:分区表,每16bytes标识一个分区,最多4个分区
2字节:MBR区域的有效性,55AA为有效
//假如要实现更多的分区,
//例如:用其中一个主分区不用来标识分区的开始和结束为止,而是指向一个存储空间,当做新的分区表
//这个用来指向其他分区表的成为扩展分区,但是扩展分区需要再次分区才能使用
例如:
4主分区:
3扩展分区:
扩展分区:
n个逻辑分区
主分区和扩展分区的标识:1-4
逻辑分区:5+
fdisk 命令分区
-l 列出信息
centos6:start。。end:柱面
centos7:start。。end:扇区
2.管理分区
fdisk /dev/sdb
fdisk提供了交互式接口来管理分区,它有很多子命令,分别用于不同的管理功能,所有操作均在内存中完成,没有直接同步磁盘
直到w保存
n:创建新分区
d:删除新分区
4.parted命令
parted 分区命令
help COMMAND//获取帮助信息
print [devices|all|free] //查看所有细腻
mkpart PARTTYPE [FSTYPE] START END
PARTTYPE:primary,extended,logical,
mkpart primary ext4 30G 50G
select /dev/sdb //选中
set NUMBER FLAG STATE
FLAG:boot引导,hidden隐藏,raid软raid,LVM等
STATE:on/off
set 1 boot on
unit UNIT //设置默认输出时表示磁盘大小的单位
MB,GB,%占用百分比,compat人类易读方式,
s扇区,cy柱面,chs柱面磁头扇区的地址
mkfs NUMBER FS-TYPE //对指定编号NUMBER的分区创建指定FS-TYPE的文件系统
print //查看信息
resize 1 //重新修改分区
rm 2 //删除2分区
check NUMBER //检查指定编号NUMBER分区中的文件系统是否有什么错误
resize NUMBER START END //调整分区大小
move NUMBER START END //分区移动到其他位置
只能移动到空闲分区上
虽然分区被移动了,但是分区的编号不会变动
cp [FROM-DEVICE] FROM-NUMBER NUMBER-TONUMBER
复制文件系统到分区
5.GPT分区&UEFI
GPT分区:
GPT硬盘中,分区表的位置存储在GPT头中,处于兼容性考虑,硬盘的第一个扇区仍用MBR
之后才是GPT头
MBR最多支持2TB
GPT支持18EB
每个磁盘128个分区//windows只认,默认不受限
更安全,分区表会备份,且加入校验算法,一旦病毒感染,及时使用备份恢复
硬盘容量的识别,更安全,分区数量上
与 MBR 分区的磁盘不同,GPT的分区信息是在分区中,而不象MBR一样在主引导扇区。
为保护GPT不受MBR类磁盘管理软件的危害,GPT在主引导扇区建立了一 个保护分区 (Protective MBR)的MBR分区表,
这种分区的类型标识为0xEE,
这个保护分区的大小在Windows下为128MB,Mac OS X下为200MB,
在Window磁盘管理器里名为GPT保护分区,
可让MBR类磁盘管理软件把GPT看成一个未知格式的分区,而不是错误地当成一个未分 区的磁盘。
另外,GPT 分区磁盘有多余的主要及备份分区表来提高分区数据结构的完整性。
UEFI:是bios的一种替代方案
UEFI已经具备文件系统的支持,能够直接读取FAT分区表中的文件
而在UEFI下,不再需要主引导记录,不再需要活动分区,不需要任何工具,
只要复制安装文件到一个FAT32(主)分区/U盘中,然后从这个分区/U盘启动,安装Windows就是这么简单。
PMBR
GPT分区表
备份GPT分区表
可以看到,在GTP磁盘的第一个数据块中同样有一个与MBR(主引导记录)类似的标记,叫做PMBR。
PMBR的作用是,当使用不支持GPT的分区工具时,整个硬盘将显示为一个受保护的分区,以防止分区表及硬盘数据遭到破坏。
UEFI并不从PMBR中获取GPT磁盘的分区信息,它有自己的分区表,即GPT分区表。
GPT的分区方案之所以比MBR更先进,是因为在GPT分区表头中可自定义分区数量的最大值,也就是说GPT分区表的大小不是固定的。
Windows中,微软设定GPT磁盘最大分区数量为128个。另外,GPT分区方案中逻辑块地址(LBA)采用64位二进制数表示,
可以计算一下2^64是一个多么庞大的数据,以我们的需求来讲完全有理由认为这个大小约等于无限。
除此之外,GPT分区方案在硬盘的末端还有一个备份分区表,保证了分区信息不容易丢失。
6.二进制单位
MB,GB,TB,PB,EB,ZB,YB,BB,NB,DB