第八章 储存管理

第八章 储存管理

  1. 机械硬盘主要由磁盘盘片、磁头、主轴、转动轴等组成;逻辑结构主要为磁道、扇区、柱面

  2. 硬盘大小:磁头数×柱面数×扇区数×每个扇区的大小

  3. 常见的机械硬盘接口:IDE、SATA、SCSI

  4. 硬盘识别MBR主引导记录,占据0磁道的第一个扇区,在一个512字节的MBR中
    boot loader引导加载程序:前446个字节
    partition table分区表:16×4个字节,主要存储分区号、分区的起始柱面、分区柱面数量
    结束标志:最后2字节

    常见的分区号:

    0x5或0xf:可拓展分区

    0x82:交换分区

    0x83:普通Linux分区

    0x8e:逻辑卷管理分区

    0xfd:Linux的RAID分区

  5. 一个硬盘最多可划分4个主分区,其他分区要在可拓展分区里增加,Linux内核中分区数量由如下限制:一个IDE硬盘最多可使用63个分区,一个SCSI最多可使用15个分区

  6. 分区的好处:方便管理控制、提高系统效率、限制用户使用的磁盘量、便于恢复备份

  7. 挂载:将硬件设备的文件系统和Linux的文件系统,通过指定目录进行关联。硬盘会在启动时自动挂载,光盘和U盘需要手动挂载

  8. 设备挂载命令

    • mount命令

      基本格式1:mount -l

      单纯使用mount会显示出系统中以挂载的设备信息,-l会额外显示出卷标名称

      基本格式2:mount -a

      自动检测/etc/fstab文件中有无因疏漏而未被挂载的文件,如果有则进行自动挂载

      基本格式3:mount [-t 系统类型] [-L 卷标名] [-o 特殊选项] [-n] 设备文件名 挂载点

      -t:指定欲挂载文件系统类型常见有EXT2、EXT3、EXT4,如不指定则系统自动检测

      -L:除了使用设备文件名之外,还可以利用文件系统的卷标名进行挂载

      -n:再默认情况下系统会将实际的挂载情况实时写入/etc/mtab文件中,-n刻意不写入

      -o:可以指定挂载的额外选项,比如读/写权限等。

      -o 特殊选项查询表

      选项解释
      rw/ro读写/只读,默认为rw,文件系统挂载后拥有的权限
      async/sync异步/同步 默认为异步
      auto/noauto自动/手动,在使用mount -a命令时,是否自动根据/etc/fstab文件内容挂载
      suid/nosuid具有/不具有suid权限,默认具有
      exec/noexec执行/不执行,默认为执行,设定是否允许可执行文件在该文件系统中运行
      user/nouser允许/不允许普通用户挂载,默认不允许
      defaults定义默认值 相当于rw,suid,dev,exec,auto,nouser,async
      remount重新挂载分区,设置特殊选项后需要重新挂载
      dev/nodev是否允许文件系统的block文件中提取数据

      挂载步骤:

      #挂载硬盘
      mkdir /mnt/disk1
      mount /dev/sdb1 /mnt/disk1
      #挂载光盘
      #查看设备名固定的
      cat /proc/sys/dev/cdrom/info
      mkdir /mnt/cdrom/
      mount /dev/cdrom /mnt/cdrom/
      #挂载U盘
      #查看设备名变动的
      fdisk -l
      mkdir /mnt/sub
      mount -t vfat -o incharset=utf8 /dev/sda1 /mnt/usb/
      
      

      自动挂载/etc/fstab文件

      UUID=cwca6f57-ba5c-43ea-bca0-f239083d8bd2 /ext4 defaults 1 1
      UUID=cwca6f57-ba5c-43ea-bca0-f239083d8bd2 /ext4 defaults 1 1
      

      字段一:挂载每个文件系统的分区设备文件名或UUID,UUID是通用唯一标识符是128比特的数字可以理解为硬盘的ID

      字段二:挂载点挂载点一定是已建立的空目录

      字段三:文件系统类型,CentOS6.0默认ext4

      字段四:挂载参数和mount一致

      字段五:分区是否被dump备份,0表示不备份,1表示备份,2表示不定期备份

      字段六:分区是否被fsck检测,0表示不检测,其他数字表示优先级,越小越优先

    • umount命令

      卸载已装载的文件系统

  9. 分区管理命令

    • fdisk命令

      2T以下硬盘分区,是一个交互式命令

      fdisk -l查询本机可识别的硬盘和分区

      fdisk 设备文件名

      [root@localhost beinan]# fdisk -l
      
      Disk /dev/hda: 80.0 GB, 80026361856 bytes
      255 heads, 63 sectors/track, 9729 cylinders
      Units = cylinders of 16065 * 512 = 8225280 bytes
      Sector size=512 bytes/512 bytes
      
         Device Boot      Start         End      Blocks   Id  System
      /dev/hda1   *           1         765     6144831    7  HPFS/NTFS
      /dev/hda2             766        2805    16386300    c  W95 FAT32 (LBA)
      /dev/hda3            2806        9729    55617030    5  Extended
      /dev/hda5            2806        3825     8193118+  83  Linux
      /dev/hda6            3826        5100    10241406   83  Linux
      /dev/hda7            5101        5198      787153+  82  Linux swap / Solaris
      /dev/hda8            5199        6657    11719386   83  Linux
      /dev/hda9            6658        7751     8787523+  83  Linux
      /dev/hda10           7752        9729    15888253+  83  Linux
      

      这个硬盘是80G的,有255个磁面;63个扇区;9729个磁柱;每个 cylinder(磁柱)的容量是 8225280 bytes,每个扇区大小是512bytes

      Device:分区设备文件名

      引导(Boot):表示引导分区,在上面的例子中 hda1 是引导分区;

      Start (开始):表示的一个分区从X cylinder(磁柱)开始;起始柱面

      End (结束):表示一个分区到 Y cylinder(磁柱)结束;终止柱面

      id:分区内文件系统的ID,可以使用fdisk -i查看

      system:分区内安装的系统

      Blocks(容量):这分区大小,单位KB

      • 分区交互界面指令表:

        a 设置可引导标记
        b 编辑bsd标签
        c 设置DOS支持系统兼容标记
        d 这是删除一个分区的动作;
        l 显示已知文件分区类型,82是SWAP分区,83是linux分区
        m 是列出帮助信息;
        n 新建添加一个分区;
        o 建立空白DOS分区
        p 列出分区表;
        q 不保存退出;
        s 建立空白SUN磁盘标签
        t 改变分区的系统ID
        u 改变显示记录单位
        v 验证分区表
        w 保存并退出
        x 扩展功能,专家功能;

      • 新建主分区过程:fdisk 硬盘名——n(新建)——p(建立主分区,e拓展分区,p主分区)——1(指定分区号)——按Enter键(默认从柱面1开始建立分区)——+5G(指定分区大小)——p(查看分区列表)

      • 新建拓展分区过程:fdisk 硬盘名——n(新建)——p(建立主分区,e拓展分区,p主分区)——2(指定分区号)——按Enter键(上次以建立主分区所以默认从柱面655开始建立分区)——按Enter键(剩余空间都为拓展分区)

      • 新建逻辑分区过程:fdisk 硬盘名——n(新建)——l(建立主分区,l逻辑分区,p主分区)+5G(指定分区大小)

        保存并退出:w

    • parted命令

      对2T以上的磁盘分区,也为交互式命令,立即生效不用保存,可以调整分区大小

      parted 设备文件名

      • 分区交互界面指令表:

        parted交互命令说 明
        check NUMBER做一次简单的文件系统检测
        cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER复制文件系统到另一个分区
        help [COMMAND]显示所有的命令帮助
        mklabel,mktable LABEL-TYPE创建新的磁盘卷标(分区表)
        mkfs NUMBER FS-TYPE在分区上建立文件系统
        mkpart PART-TYPE [FS-TYPE] START END创建一个分区
        mkpartfs PART-TYPE FS-TYPE START END创建分区,并建立文件系统
        move NUMBER START END移动分区
        name NUMBER NAME给分区命名
        print [devices|free|list,all|NUMBER]显示分区表、活动设备、空闲空间、所有分区
        quit退出
        rescue START END修复丢失的分区
        resize NUMBER START END修改分区大小
        rm NUMBER删除分区
        select DEVICE选择需要编辑的设备
        set NUMBER FLAG STATE改变分区标记
        toggle [NUMBER [FLAG]]切换分区表的状态
        unit UNIT设置默认的单位
        Version显示版本
      • print查看MBR分区表:

请添加图片描述

   number:分区号

   start:起始分区位置,不像fdisk用柱面表示,这里用字节表示

   end:结束分区位置

   size:分区大小

   type:分区类型

   filesystem:文件系统类型

   Flags:分区的标记

 - 格式化:parted的mkfs只能格式化为EXT2,如果要EXT4需使用系统的mkfs
  1. 磁盘管理工具

    • df命令

      用于显示Linux系统中各文件系统的硬盘使用情况,包括文件系统所在硬盘分区的总容量、已使用容量、剩余容量等

      基本格式:df [选项] 文件或目录名

      -a:显示所有文件系统,包括Linux特有的/proc、/sysfs

      -m:以MB为单位

      -k:以KB为单位

      -h:使用人们习惯的KB、MB、GB单位自行显示内容

      -T:显示该分区的文件系统名称

      -i:不显示硬盘容量。而显示inode数量

    • du命令

      统计目录或文件所占磁盘空间容量的命令

      基本格式:du [选项] 文件或目录名

      -a:显示所有子目录和子文件的磁盘占用量

      -h:使用习惯单位显示磁盘占用量

      -s:统计磁盘总占用量,不列出子文件

    • fsck命令

      用于检测文件系统并尝试修复错误,

      基本格式:fsck [选项] 分区设备文件名

      -a:自动修复文件系统

      -r:采取交互的修复模式

      -A:按照/etc/fstab配置文件的内容检查文件内罗列的全部文件系统

      -t 文件系统类型:指定要检查的文件系统类型

      -C:显示检查分区进度条

      -f:强制检测

      -y:自动修复

      修复时磁盘分区一定要处于挂载状态,否则可能破坏数据

  2. 磁盘列阵RAID

    • RAID 0

      也叫Stripe或Striping(带区卷),是RAID级别中存储性能最好的,如果组成RAID 0的两块硬盘大小不一致则会影响性能

请添加图片描述

  优点:

  - 通过把多块硬盘合并成一块大的逻辑硬盘,实现了数据跨硬盘存储
  - 通过把数据分割成相等大小的区块,分别存入不同硬盘,加快了读写速度
  - 没有容量损失

  缺点:

  - 没有数据冗余功能,任何一块硬盘损坏丢失所有数据

- RAID 1

  也叫Mirror或Mirroring(镜像卷),两块硬盘大小最好一致否子以小的为准,有数据冗余

请添加图片描述

  优点:

  - 有数据冗余,数据不易丢失
  - 比单一硬盘读取速度快,因为RAID1会自动分配读取进程

  缺点:

  - 容量只有总量的50%
  - 写入性能差,负责写入的芯片只有一个

- RAID 10或RAID 01

  RAID 0和RAID1的组合

- RAID 5

  由至少三块硬盘组成,每块硬盘容量一致,每次循环写入向其中一块硬盘加入奇偶校验值

请添加图片描述

  优点:

  - 有数据冗余功能
  - 容量损失比RAID1小
  - 读写性能比RAID1好,写入性能比RAID1差

  缺点:

  - 只支持一块硬盘数据损坏
  - 相当于有一块硬盘用来保存奇偶校验
  1. mdadm命令

    基本格式:mdadm [模式] [RAID 设备文件名] [选项] [成员设备名称]

    模式:

    Assemble:加入一个已经存在的阵列;

    Build:创建一个没有超级块的阵列;

    Create:创建一个阵列,每个设备都具有超级块;

    Manage:管理阵列,如添加设备和删除损坏设备;

    Misc:允许单独对阵列中的设备进行操作,如停止阵列;

    Follow or Monitor:监控RAID状态; Grow:改变RAID的容量或阵列中的数目;
    选项:

    -s,-scan:扫描配置文件或/proc/mdstat文件,发现丟失的信息;

    -D,-detail:查看磁盘阵列详细信息;

    -C,-create:建立新的磁盘阵列,也就是调用 Create模式;

    -a,-auto=yes:采用标准格式建立磁阵列

    -n,-raicklevices=数字:使用几块硬盘或分区组成RAID

    -l,-level=级别:创建RAID的级别,可以是0,1,5

    -x,-spare-devices=数字:使用几块硬盘或分区组成备份设备

    -a,-add 设备文件名:在已经存在的RAID中加入设备

    -r,-remove 设备文件名名:在已经存在的RAID中移除设备

    -f,-fail设备文件名:把某个组成RAID的设备设置为错误状态

    -S,-stop:停止RAID设备

    -A,-assemble:按照配置文件加载RAID

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值