磁盘存储和文件系统 概述

磁盘存储和文件系统 概述

  • 设备文件

    1. 磁盘设备的设备文件命名: /dev/DEV_FILE
    2. SCSI,SAS,IDE,USB:/dev/sd
    3. 虚拟磁盘:/dev/vd、/dev/xvd
    4. 硬盘存储术语:head 磁头 、track 磁道、cylinder 柱面、sector 扇区,512bytes
  • CHS 和 LBA

    CHS

    1. 采用24bit位寻址
    2. 其中前十位表示cylinder,中间8位表示head,后面6位表示sector
    3. 最大寻址空间8G
      LBA
    4. LBA是一个整数,通过转换化成chs格式完成磁盘具体寻址
    5. 由于chs寻址方式的寻址空间在大概8G以内,所以在磁盘容量小于大概8G时,可以使用chs寻址方式或是lba寻址方式;在磁盘容量大于8G时,则只能使用lba寻址方式
  • 分区

    分区可以优化I/O性能,实现磁盘空间配额限制,提高修复速度,隔离系统和程序,安装多个os,采用不同文件系统。
    两种分区方式: MBR,GPT

    1. MBR:按柱面分区,使用32位表示扇区数,分区不超过2T
      MBR分区中一块硬盘最多有四个主分区,也可以3主分区+1扩展(N个逻辑分区)
      MBR分区结构:硬盘主引导记录MBR由主引导程序、出错信息数据区、分区表、结束标志字四个部分组成。
    2. GPT:使用128位UUID表示磁盘和分区,GPT分区表自动备份在头和尾两份,并有CRC校验位。
  • 管理分区

    • lsdik:列出块设备
    • fdisk:创建MBR分区
    • gdisk:创建GPT分区
    • parted:高级分区操作
    • partprobe:重新设置内存中的内核分区表版本
      子命令:
      p:分区列表
      t:更改分区类型
      n:创建新分区
      d:删除分区
      v:校验分区
      u:转换单位
      w:保存并退出
      q:不保存直接退出
  • 同步分区表
    cat /proc/partations 查看内核是否已经识别新的分区

文件系统

类型:

  • Linux文件系统:
    • ext2:适用于分区容量不大,更新不频繁的情况,例如/boot分区
    • ext3:ext2的改进版,支持日志功能。
    • ext4:ext系统的最新版,支持纳秒级时间戳、创建和使用巨型文件、最大1E的文件系统。
    • 光盘:iso9660
    • windows:FAT32,exFAT,NTFS
    • UNIX:FFS(fast),UFS(unix),JSS2
    • 网络文件系统:NFS,CIFS
    • 集群文件系统:GFS2,OCFS2(oracle)
    • 分布式文件系统:fastdfs,ceph,moonsefs,mogilefs,lustre
    • RAW:未经处理或者未经格式化产生的文件系统

      创建文件系统

      mkfs:

      1. mkfs.FS_TYPE[ext4|xfs|btrfs|vfat] /dev/DEVICE
      2. mkfs -t FS_TYPE /dev/DEVICE
        -L 'LABEL' 设定卷标
        创建ext文件系统
  • mke2fs:ext系列文件系统专用管理工具
    • -t {ext2|ext3|ext4} 指定文件系统类型
    • -b {1024|2048|4096} 指定块大小
    • -L ‘LABEL’ 设置卷标
    • -j 相当于 -t ext3
  • mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3
    • -i # 为数据空间中每多少个字节创建一个inode;不应该小于block大小
    • -N # 指定分区中创建多少个inode
    • -I 一个inode记录占用的磁盘空间大小,128---4096
    • -m # 默认5%,为管理人员预留空间占总空间的百分比
    • -O FEATURE[,...] 启用指定特性
    • -O ^FEATURE 关闭指定特性
  • tune2fs :重新设定ext系列文件系统可调整参数的值
    -l:查看指定文件系统的超级块信息;super block
    -L 'LABEL' 修改卷标
    -m # 修改预留给管理员的空间百分比
    -j 将ext2升级为ext3
    -O 文件系统属性启用或禁用,-O^has_journal
    -o 调整文件系统的默认挂载选项,-o ^acl
    -U UUID 修改UUID号
  • 文件系统检测和修复
    fsck:
    fsck.FS_TYPE
    -p 自动修复错误
    -r 交互式修复错误
    FS_TYPE 一定要与分区上的文件类型相同
  • e2fsck:ext系列文件专用的修复工具
    -y 自动回答为yes
    -f 强制修复

  • 挂载

    将额外文件系统与根文件系统某现存的目录建立起关联关系,进而使得此目录作为其他文件访问入口的行为,叫做挂载。 卸载则是解除此关联关系的过程。
    mount point :把设备关联挂载点
    umount point: 卸载
    挂载成功后,挂载点下原有文件在挂载完成后会被隐藏,所以挂载点目录一般为空。卸载时,可以用设备,也可以使用挂载点。

    • mount常用命令选项
      -t vsftype 指定要挂载的设备上的文件系统类型
      -r readonly,只读挂载
      -w read and write, 读写挂载
      -n 不更新/etc/mtab,mount不可见
      -a 自动挂载所有支持自动挂载的设备(定义在了/etc/fstab文件
      中,且挂载选项中有auto功能)
      -L 'LABEL' 以卷标指定挂载设备
      -U 'UUID' 以UUID指定要挂载的设备
      -B, --bind 绑定目录到另一个目录上
      cat /proc/mounts 查看内核追踪到的已挂载的所有设备

猜你喜欢

转载自blog.51cto.com/14233371/2372023