磁盘管理

1.存储基础

 I/O Ports: I/O设备地址
 一切皆文件:

open(), read(), write(), close()

 设备类型:

块设备:block,存取单位“块”,磁盘(可以随机读写,有缓存)
字符设备:char,存取单位“字符”,键盘(顺序读写,无缓存,虚拟设备)

 设备文件:

关联至一个设备驱动程序,进而能够跟与之对应硬件设备进行通信

 设备号码:

主设备号:major number, 标识设备类型(设备的类别)
次设备号:minor number, 标识同一类型下的不同设备(同一类设备中第几个)
最小分区为一个扇区
Paste_Image.png

2.计算

(1) 一个盘面的数量=512*scetors/track(一个磁道扇区数)*track(磁盘数)
(2) 1cyliner柱面=512scetors/trackhead(磁头数)

3.设备文件

 磁盘设备的设备文件命名:/dev/DEV_FILE
 SCSI, SATA, SAS, IDE,USB: /dev/sd
 虚拟磁盘:/dev/vd
 不同磁盘标识:a-z,aa,ab…
/dev/sda, /dev/sdb, ...
 同一设备上的不同分区:1,2, ...
/dev/sda1, /dev/sda5

 硬盘存储术语

 head:磁头
 track:磁道
 cylinder: 柱面
 sector: 扇区,512bytes

4.CHS和LBA

(1) CHS:

 采用24bit位寻址,
 前10位表示cylinder,中间8位表示head,后面6位表示sector。
 最大寻址空间8GB

(2) LBA(logical block addressing)

 LBA是一个整数,通过转换成CHS格式完成磁盘具体寻址
 LBA采用48个bit位寻址
 最大寻址空间128PB
 由于CHS寻址方式的寻址空间在大概8GB以内,所以在磁盘容量小于大概8GB时,可以使用CHS寻址方式
  或是LBA寻址方式;在磁盘容量大于大概8GB时,则只能使用LBA寻址方式

5.MBR分区

为什么分区:

 优化I/O性能
 实现磁盘空间配额限制
 提高修复速度
 隔离系统和程序
 安装多个OS
 采用不同文件系统
  • MBR: Master Boot Record
 如何分区:按柱面
2bytes: 55AA
 4个主分区;3主分区+1扩展(N个逻辑分区)MBR分区结构
  • 硬盘主引导记录MBR由4个部分组成
(1)主引导程序(偏移地址0000H--0088H),它负责从活动分区中装载,并运行系统引导程序。
(2) 出错信息数据区,偏移地址0089H--00E1H为出错信息,00E2H--01BDH全为0字节。
(3) 分区表(DPT,Disk Partition Table)含4个分区项,偏移地址01BEH--01FDH,每个分区表项长16个字节,共64字节为分区项1、分区项2、分区项3、分区项4
(4) 结束标志字,偏移地址01FE--01FF的2个字节值为结束标志55AA

6.GPT分区

 GPT:GUID(Globals Unique Identifiers) partition table 支持128个分区,使用64位,支持8Z(512Byte/block )64Z ( 4096Byte/block)
 使用128位UUID(Universally Unique Identifier) 表示磁盘和分区 GPT分区表自动备份在头和尾两份,并有CRC校验位
 UEFI (统一扩展固件接口)硬件支持GPT,使操作系统启动
Paste_Image.png

7.管理分区

  • 列出块设备
    • lsblk
  • parted 高级分区操作
     partprobe-重新设置内存中的内核分区表版本parted命令
    (CentOS7同步分区表)
     parted的操作都是实时生效的,可能会破坏磁盘数据,小心使用
    用法:parted [选项]... [设备 [命令 [参数]...]...]
# parted /dev/sdb mklabel gpt|msdos(MBR)(指定分区类型)
# parted /dev/sdb print
# parted /dev/sdb mkpart primary 1 200 (默认M)(从1M开始分200M)
# parted /dev/sdb rm 1
# parted -l

Paste_Image.png
磁盘管理_第1张图片
Paste_Image.png
磁盘管理_第2张图片
Paste_Image.png
Paste_Image.png
  • fdisk -l [-u] [device...] 查看分区
 fdisk /dev/sdb 管理分区
 子命令:
 p 分区列表
 t 更改分区类型
 n 创建新分区
 d 删除分区
 v 校验分区
 u 转换单位
 w 保存并退出
 q 不保存并退出
  • 创建分区使用:
• fdisk 创建MBR分区
• gdisk 创建GPT分区

8.同步分区表

  • 查看内核是否已经识别新的分区:
# cat /proc/partations
  • centos6通知内核重新读取硬盘分区表
    新增分区用
# partx -a /dev/DEVICE
# kpartx -a /dev/DEVICE -f: force

删除分区用

# partx -d --nr M-N /dev/DEVICE
  M-N连续的分区号

 CentOS 5,7: 使用partprobe

#partprobe [/dev/DEVICE]

你可能感兴趣的:(磁盘管理)