磁盘及文件系统管理

磁盘及系统管理

  • 磁盘基本概念
  • 磁盘分区管理
  • 文件系统管理
  • 设备挂载管理

磁盘基本概念:

硬盘分类

  • 机械硬盘:

    组成部件:   圆形的磁盘盘(主要记录数据的部分);
                机械手臂,与在机械手臂上的磁盘读取头(可擦写磁盘盘上的数据);
                主轴马达,可以转动磁盘盘,让机械手臂的读取头在磁盘盘上读写数据。
    
    主要优势: 相对于固态硬盘来说,硬盘价格低,容量大,数据可恢复,使用寿命长
    
  • 固态硬盘:

    组成部件: 固态电子存储芯片阵列,FLASH芯片(控制单元)、DRAM芯片(存储单元)
    
    主要优势:  防震抗摔、传输速率、功耗、重量、噪音上有明显优势,固态硬盘传输速率性能是机械硬盘的2倍
    

    硬盘接口类型

     并行:
        IDE:每个控制器可接两块硬盘,早期PC机用的比较多,现在已经淘汰。133MB/s
    
        SCSI:可以接 N多块硬盘。转速高,寿命长,早期的服务器用的很多。320MB/s,目前面临淘汰。
    串口:
        SATA:串行高级技术附件,一种基于行业标准的串行硬件驱动器接口。传输速率为:6Gbps            
    
        SAS:串行连接SCSI,是新一代的SCSI技术。可以与SATA兼容。600MB/s传输速率为:6Gbps
    
        USB:通用串行总线,是一个外部总线的标准。
                传输速率为: USB2.0:60MB/s
                            USB3.0:500MB/s
                            USB3.1(也叫type-c):1.2GB/s
    

设备文件:

在linux当中一切皆文件: open(),read(),write(),close()

设备文件:关联至一个设备驱动程序,进而能过和对应的硬件设备进行通信

设备类型:

块设备:block,存储单位为‘块’,通过磁盘存储

字符设备:char,存储单位为‘字符’,通过键盘存储

设备号码:

    主设备号:major number,能过标识设备类型

    次设备号:minor number,能过标识同一类型下的不同设备    

磁盘设备文件命名:/dev/DEV_FILE

IDE: /dev/hd[a-z]         例如:/dev/hda, /dev/hdb

SCSI, SATA, USB, SAS:        /dev/sd[a-z]

虚拟磁盘:/dev/vd

不同磁盘标识:a-z,aa,ab…
    /dev/sda, /dev/sdb, ...

同一设备上的不同分区:1,2, ...
    主分区:/dev/sda[1-4]
    拓展分区: /dev/sda[5+]

注意:CentOS 6和7统统将硬盘设备文件标识为/dev/sd[a-z]#

引用设备的方式:

设备文件名:
卷标:
UUID:生成一个随机的128位编号

注:在脚本中,尽量避免使用磁盘设备文件名诸如sda,名称不稳定,应使用UUID

磁盘存储术语:

磁盘三维(chs): 柱面、磁头、扇区

head:磁头;         8bit寻址 2**8=256

track:磁道;

ctlinder:柱面       10bit寻址       2**10=1024

sector:扇区       6bit寻址 2**6=64   

一个扇区共有512Byte,CHS可定义255*63*1024个扇区信息

echo 512*63*1024*255/1024/1024 | bc

8032M

CHS:老的命名方式,不超过8G

LBA:逻辑的块寻址,超过8G

磁盘分区管理

  • 使用磁盘的步骤:

    设备识别
    
    设备分区
    
    创建文件系统(格式化)
    
    标记文件系统
    
    在/etc/fstab文件中创建条目
    
    挂载新的文件系统
    
  • 为什么要分区:

    1.优化 IO性能
    
    2.实现磁盘空间配额限制
    
    3.提高修复速度
    
    4.隔离系统和程序
    
    5.安装多个OS
    
    6.采用不同的文件系统
    

    .

分区类型 MBR、GPT

MBR:Master Boot Record 主引导记录

MBR 是位于磁盘最前边的一段引导(Loader)代码。它负责磁盘操作系统(DOS)对磁盘进行读写时分区合法性的判别、分区引导信息的定位,它由磁盘操作系统(DOS)在对硬盘进行初始化时产生的。

诞生于1982年,使用32位表示扇区数,分区不能超过2T

MBR如何分区:按柱面

0磁道0扇区:512bytes

446bytes:boot loader

64bytes:分区表

16bytes:标识一个分区(最多4个分区)

2bytes:55AA(分区标识位)

支持4个主分区;3个主分区+1扩展分区(N个逻辑分区)

注:生产中最好给MBR分区表进行备份

BIOS+MBR

传统BIOS运行流程:

开机–>BIOS初始化–>BIOS自检–>引导操作系统–>进入系统
GPT:GUID磁盘分区表

GPT为“全局唯一标识磁盘分区表”,是一个实体硬盘的分区表的结构布局的标准。它是可扩展固件接口(EFI)标准(被Intel用于替代个人计算机的BIOS)的一部分,被用于替代BIOS系统中的一32bits来存储逻辑块地址和大小信息的主开机纪录(MBR)分区表。

支持128个分区,使用64位,支持8Z(512Byte/block),64Z(4096Byte/block)

使用128位的通用唯一识别码UUID 表示磁盘和分区表自动备份在头和尾两份,并有CRC校验位

UEFI(同一扩展固件接口):硬件支持GPT,使操作系统启动

分区表

MBR保护+GPT分区表+GPT划分数据+备份

UEFI+GPT

UERI运行流程

开机–>UEFI初始化–>引导操作系统–>进入系统

管理分区

fdisk -l 列出所有磁盘信息。

Id:  83:Linux可以使用的文件系统。
      8e:指的是逻辑卷(logical volume)
查看分区

df查看磁盘状态

df:disk free

磁盘及文件系统管理_第1张图片

创建分区

fdisk /dev/sda进入管理sda磁盘

常用的几个:

m:menu,列出帮助菜单
d:delete,删除
n:new,新建
p:print,列出
t:调整分区ID
l:list,列出内核支持的分区ID
83 Linux(linux基础分区)
5 extend(扩展分区)
8e LVM(逻辑卷管理)
ee GPT(2T以上硬盘)
w:write,保存退出
q:quit,不保存退出

new新分区的时候,如果是加主分区,只能加到第四个。如果想要更多的分区,可以把第四个加为扩展分区。然后再在扩展分区上创建分区。

删除分区(删)
fdisk /dev/sda   

d             #进入删除模式

#             输入要删除的分区号

w             #保存退出

修改分区格式(改)

fdisk /dev/sda

t                 # 进入修改模式# 输入要修改的分区

L                 # 列出可以修改的格式# 输入要修改的格式的代码

w                 # 保存退出# 然后用到上面让内核识别的两个命令:

kpartx -af /dev/sda    # 强制添加分区到内核中

同步分区表

cat/proc/partations        查看内核是否已经识别新的分区

partprobe                 同步分区表(centos5,7可用)

partx -a  /dev/sda         增加分区同步分区表(centos6可用)时使用;

partx -d –nr M-N /dev/sda    删除分区同步分区表(centos6可用)时使用;

通知内核识别新分区

CentOS 5,7:partprobe

parprobe /dev/sda

CentOS 6 :partx,kpartx

kpartx -l /dev/sda   # 列出sda中可重新加载到内核的分区
kpartx -af /dev/sda  # 强制添加分区到内核中
partx -a /dev/sda    # 再添加一次

CentOS 6 有时候不管用,只能重启系统(目前版本6.9,这个bug还没有修复。),不过对于新硬盘,进行创建操作的时候,CentOS6不会有这个问题。

CentOS 5 和 7 使用partprobe即可,无bug。

文件系统管理

所谓文件系统,它是操作系统中藉以组织、存储和命名文件的结构。磁盘或分区和它所包括的文件系统的

不同是很重要的,大部分应用程序都基于文件系统进行操作,在不同种文件系统上是不能工作的。

文件系统类型

常见的几种文件格式:

基本:ext3(CentOS 5默认), ext4(CentOS 6默认),xfs(CentOS 7 默认)btrfs,reiserfs,jfs,swap
光盘:iso9660(国际标准)
网络文件系统:nfs, cifs
集群文件系统:gfs2, ocfs2
内核级分布式文件系统:ceph
伪文件系统:proc, sysfs, tmpfs, hugepagefs
Unix的文件系统:UFS, FFS, JFS
交换文件系统:swap
用户空间的分布式文件系统:mogilefs, moosefs, glusterfs
可移动U盘:fat32(文件最大不能超过4G), exfat
windows:ntfs(linux可编译安装ntfs-3g来识别)
RAW:未经处理或者未经格式化产生的文件系统(性能好,但不便于管理)
根据文件系统是否支持“journal(日志)”功能可分为:
  • 日志型文件系统:ext3,ext4,xfs,…(牺牲读取性能,防止数据文件破坏)

  • 非日志型文件系统:ext2,vfat(易造成数据文件破坏)

文件系统的组成部分:

内核中的模块:ext4,xfs,vfat

用户空间的管理工具:mkfs.ext4,mkfs.xfs,mkfs.vfat

Linux的虚拟文件系统:VFS

查看支持的文件系统:cat /proc/filesystems

创建文件系统

  • mkfs命令两种用法:

    1、mkfs.FS_TYPE /dev/DEVICE 建议使用此用法,直观不易出错

    ext4
    
    xfs
    
    btrfs
    
    vfat
    

    2、mkfs -t FS_TYPE /dev/DEVICE

    -L ‘LABEL’                 设定卷标(分区标签)
    
  • mke2fs ext系统文件系统专用的管理工具

    -t{ext2|ext3|ext4} 创建文件系统类型
    
    -b{1024|2048|4096}      设定block块的大小
    
    -i #                     为数据空间每多少字节创建一个inode,此大小不应小于
    

    block大小

    -L                       添加卷标签(建议使用挂载点作卷标)
    
    -N #                   指定分区中创建#个inode
    
    -l                        一个inode记录占用磁盘空间的大小,128-4096
    
    -m #                          默认5%,管理员用户预留空间占总空间百分百
    

文件系统标签LABEL

它是指向设备的另一种方法,与设备无关

blkid 块设备属性信息查看

格式:blkid [option]…[DEVICE]

-U UUID 根据指定UUID来查找对应设备

-L LABEL 根据指定卷标来查找对应设备

e2label:管理ext系列文件系统的LABEL卷标

格式:e2label DEVICE[LABEL]

findfs 查找分区

格式:findfs [option] LABEL = 根据卷标查找

findfs [option] UUID = 根据UUID查找

tune2fs 重新设定ext系列文件系统可调整参数的值

-l 查看指定文件系统超级块信息

-L ‘LABEL’ 修改卷标

-m # 修改预留给管理员空间的百分百

-j 将ext2升级到ext3

-O 文件系统属性启用或禁用,-O ^has_journal

-o 调整文件系统的默认挂载选项,-o^acl

-U UUID 修改UUID号

dumpe2fs

块分组管理,32768

-h 查看超级块信息,不显示分组信息

超级块(superblock)

dumpe2fs /dev/sda1 查看分区下所有超级块

-h 查看超级块信息

tune2fs -l 查看超级块信息

超级块时存储文件系统的大小、有多少是空的和已经填满的占多少,以及它们各自的总数和其他诸如此类的信息。

要使用一个分区来进行数据访问,那么第一个要访问的就是超级块,由此可见超级块的重要性。

超级块占用第一号物理块,是文件系统的控制块。超级块包括:文件系统的大小、空闲块数目、空闲块索引表、空

闲i节点数目、空闲i节点索引表、封锁标记等。超级块时系统为文件分配存储空间、回收存储空间的依据。

所以,为了防止超级块数据损坏,就需要对超级块数据进行备份,以便于损坏时进行修复。

你可能感兴趣的:(linux)