liunx磁盘存储

设备文件

在linux中一切皆文件,在linux之上所有的操作都是通过文件来实现的,每一个设备都有一个文件作为他的访问入口,此文件我们称为设备文件。
设备也分为:
  块设备:block 单位为 “块” 磁盘
  字符设备: char 单位为 “字符” 键盘 设备号码:用来标识设备。每一个设备都有不同的设备号
  主设备号:major numbar,标识设备类型
  次设备号:minor numbar,设备同一类型下不同的设备。

设备接口类型

并行:
  IDE: 133MB/s
  SCSI:640MB/s
串行:
  SATA :6Gbps
  SAS :6Gbps
  USB : 480MB/s
liunx磁盘存储

机械硬盘和固态硬盘

  • 机械硬盘(HDD)
      即传统的硬盘,构造一般由,盘片,轴,马达,机械臂,磁头组成。
  • 固态硬盘(SSD)
      用固态电子存储芯片组成的硬盘,使用方法和普通的硬盘相同。
    相较于HDD,SSD在防震抗摔、传输速率、功耗、重量、噪音上有明显优势,SSD传输速率性能是HDD的2倍
    相较于SSD,HDD在价格、容量占有绝对优势
    硬盘有价,数据无价,目前SSD不能完全取代HHD。

    设备文件

    磁盘设备的设备文件命名:/dev/DEV_FILE
    SCSI,SATA,SAS,IDE,USB:/dev/sd
    一些虚拟磁盘: /dev/vd , /dev/xvd
    不同磁盘标识:/dev/sda/, /dev/sdb, ...
    同一设备上的不同分区:1. 2 .....
             /dev/sda1, /dev/sda5
    磁盘存储术语:
      head :磁头
      track:磁道
      cylinder :柱面
      sector :扇区 , 512baytes(字节)

    机械磁盘结构

    liunx磁盘存储

    固态磁盘和机械磁盘对比

    liunx磁盘存储

硬盘存储术语

liunx磁盘存储

区位记录磁盘扇区结构

ZBR(Zoned Bit Recording)
liunx磁盘存储

  • CHS
    采用24bit位寻址
    其中前10位表示cylinder,中间8位表示head,后6位表示sector
    最大寻址空间8GB
  • LBA
    LBA是一个整数,通过转换成CHS格式完成磁盘具体寻址
    ATA-1规范中定义了28位寻址模式,以每扇区512位组来计算,ATA-1所定义的28位LBA上限达到128 GiB。2002年ATA-6规范采用48位LBA,同样以每扇区512位组计算容量上限可达128 Petabytes

    由于CHS寻址方式的寻址空间在大概8GB以内,所以在磁盘容量小于大概8GB时,可以使用CHS寻址方式或是LBA寻址方式;在磁盘容量大于大概8GB时,则只能使用LBA寻址方式

分区

两种分区方式: MBR , GPT .
MBR:1982年,使用32位表示扇区数,最大不超过2T
如何分区:按柱面
0磁道0扇区:512bytes
    446bytes: boot loader
    64bytes:分区表,其中每16bytes标识一个分区
    2bytes: 55AA
MBR分区中一块硬盘最多有4个主分区,也可以3个主分区加1个扩展分区。

MBR分区结构

liunx磁盘存储

硬盘主引导记录MBR由4个部分组成
主引导程序(偏移地址0000H--0088H),它负责从活动分区中装载,并运行系统引导程序
出错信息数据区,偏移地址0089H--00E1H为出错信息,00E2H--01BDH全为0字节
分区表(DPT,Disk Partition Table)含4个分区项,偏移地址01BEH--01FDH,
每个分区表项长16个字节,共64字节为分区项1、分区2分区项3、分区项4
结束标志字,偏移地址01FE--01FF的2个字节值为结束标志55AA

MBR结构

liunx磁盘存储

MBR中DPT结构

liunx磁盘存储

GPT 分区

  • GPT:支持128个分区 ,使用64位,支持8Z 64Z 容量
  • 使用128位UUID 表示磁盘和分区GPT分区表,自动备份在头尾两份,并有crc校验位
  • UEFI: 硬件支持GPT ,使操作系统启动
    liunx磁盘存储

BIOS+MBR与UEFI+GPT

liunx磁盘存储

管理分区

  • 列出块设备 :lsblk
  • 创建分区使用:
      fdisk :创建MBR分区
      gdisk :创建GPT分区
      parted: 高级分区操作
    重新设置内存中的内核分区表版本
      partprobe

    parted命令

    parted命令的操作都是实时生效的,一定要小心使用
    用法:
      parted /dev/sdb mklabel gpt|msdos   parted /dev/sdb print
      parted /dev/sdb mkpart primary 1 200(默认是M)
      parted /dev/sdb rm 1
      parted -l 列出分区信息

分区工具fdisk和gdisk

gdisk /dev/sdb 类fdisk的GPT分区工具
fdisk -l :查看分区
fdisk /dev/sdb 管理分区
子命令:
  p :分区列表
  t :更改分区类型
  n :创建新分区
  d :删除分区
  v :效验分区
  u :转换单位
  w :保存并退出
  q :不保存退出

同步分区表

  • 查看内核是否已经识别新的分区
      cat/proc/partations
  • centos6通知内核重新读取硬盘分区表
      新增分区用:
      partx -a /dev/DEVICE
      kpartx -a /dev/DEVICE
      删除分区用
      parts -d --nr M-N /dev/device
    centos5和7:使用partprobe
      partprobe /dev/device
上一篇:大数据分享常用的数据挖掘技术,新人学起来就可以用


下一篇:Grub