linux存储管理
磁盘接口的类型:
IDE:并行接口,来源于ATA,133Mbps,266Mbps
SCSI:小型计算机系统接口,
SATA:Serial ATA 串行接口;
SAS:串行接口
USB:
衡量磁盘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:50000-100000
普通的X86的主板上的磁盘控制器的接口:
IDE:2个接口,每个接口一个主盘和一个从盘,共4块磁盘;如果有光驱的话,可能会减少至3个磁盘+1个光驱;
SATA:4-6个接口;
SCSI:7个接口或15个接口;
SAS:1023-16384个接口;
CPU:控制总线,数据总线,地址总线;
linux存储管理(2)
机械磁盘:
术语:
track:磁道,磁头在磁盘表面的运行轨迹的投影;
sector:扇区,512Byte,现在所说的扇区,实际上是平均值;最小管理单元;
cylinder:柱面,从某个磁道向所有盘片做投影,所形成的圆柱表面;实际上是由所有盘片上相同位置的磁道组成;
partition:分区,从某个柱面到另一个柱面之间所有的柱面存储空间;
head:磁头,每个盘片每个磁面都有哦一个磁头,用于数据的读写操作;
磁盘性能的指标:
主轴转速:磁盘每分钟旋转的圈数;
平均寻道时间:
缓存:
/dev用于存放硬件设备被映射出的文件,磁盘的设备文件也存放于此;
设备文件:关联到硬件设备的驱动程序和设备的访问入口;
设备号:
major,minor
major:主设备号,区分不同设备的设备类型,用于标明设备所需的驱动程序;
minor:次设备号,在同种类型的设备中的不同设备,用于对设备提供访问入口;
设备类型:
块设备:
以块为基本单位进行随机访问的设备,通常为存储数据的设备;
字符设备:
以字节为基本单位进行线性访问的设备,通常为处理数据的设备;
设备文件名:
IANA --> ICANN
/dev
IDE:hd[a-d]
SCSI|SATA|SAS|USB:sd[a-z]+
Redhat Enterprise linux 从RHEL6开始,将IDE接口的磁盘也命名sd*,自此以后所有的磁盘设备统一命名为sd[a-z]+
设备的引用方式:
1.设备文件名
2.卷标(Volume lable)
3.UUID:全局唯一标识符; Universal Unique IDentifier
mknod
mknod - 建立块专用或字符专用文件
格式:
mknod [options]... name TYPE [major minor]
如何使用新的磁盘设备?
1.让linux系统内核识别设备,对设备进行分区;
2.格式化
低级格式化:磁盘初始化,磁道划分;
高级格式化:创建或重建文件系统;
3.使用文件系统:
挂载
卸载
为何分区?
1.优化磁盘IO性能;
2.可以实现对某个存储空间的配额限制;
3.进行高速的磁盘问题修复;
4.隔离系统文件和其他应用程序文件;
5.安装多个操作系统;
如何分区?
MBR:整个磁盘空间小于2TB容量,建议使用MBR分区格式;
MBR:MAster Boot Record,主引导记录,始于1982年;
MBR其实也是一段数据,默认保存在磁道的0磁道0扇区中;
分为三部分:
446Bytes:boot loader,引导加载程序;
Windows:BTLDR
linux的系统管理:LILO,GRUB(默认)
64Bytes:Partition table,分区表;每16Bytes为一段,表明一歌分容区的内,因此,默认最多只有四个分区;
1.最多有4个主分区
分区编号依次为:1,2,3,4
2.想要划分更多的分区数量时,可以将任意一个主分区改为扩展分区,在扩展分区中建议逻辑分区;
逻辑分区的编号默认从5开始,不管前面的四个数字是否被占用;
注意:扩展分区可以没有,最多只能有一个;
2Bytes:MBR结束标记,55AA
GPT:整个磁盘空间超过2TB容量,建议使用GPT分区格式;
GUID Partition table,支持128个主分区;
linux常用的分区工具:
fdisk
用于创建和管理MBR分区,对同一块磁盘,最多只能管理15个分区
gdisk: GUN disk
用于创建和管理GPT分区;
注意:
如果使用fdisk或者gdisk命令对于一个已经有分区被挂载的磁盘的剩余空间再次进行分区,即便将分区的结果保存下来,也不会被内核立即识别;
想要让内核识别出此类新建分区,可以采用下列方法;
1.重启计算机;
2.强制内核重读分区表:
partprobe命令
partx命令
在RHEL系或Centos系5|7:
partprobe [device]
注意:如果省略了设备名,则表示重读所有磁盘设备的分区表;强烈建议,直接给出指定的磁盘设备名称;
在RHEL系或Centos系6|7:
partx -a [device]
kpartx -ax [device]
fdisk 分区
fdisk - Linux分区表操作工具软件
格式:
fdisk device
fdisk -l [device..]
选项:
-l:表示查看之意,如果给出设备名称,则查看指定设备的分区表;否则查看所有磁盘的设备文件的分区表;
fdisk device:
对于指定设备进行操作:
命令(输入 m 获取帮助):m
命令操作
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
w write table to disk and exit
在fdisk交互式菜单模式中创建分区的过程:
n --> p|e|l --> 分区的其实扇区(柱面),直接回车使用默认值设置 --> 分区的结束扇区(柱面),也可以使用+#UNIT 直接指定分区大小
parted命令:高级分区工具,其操作结果实时生效
parted - a partition manipulation program
格式:
parted [options] [device [command [options...]...]]
示例:
~]# parted /dev/sda mkpart logical 103GB 105GB
~]# parted /dev/sda rm 8
在通电开机状态下添加SCSI接口的磁盘至本服务器,要想使设备被内识别并创建出相应的设备文件,有下列方法:
1.重启计算机;
2.~]# echo "- - -" > /sys/class/scsi_host/host2/scan
强制内核识别在通电状态下热插接的新SCSI接口的磁盘设备;