一.磁盘知识体系说明

  

 

 

   磁盘的结构体系:如上图所示

  01.磁盘物理知识(外部结构  内部结构)

    磁盘外部结构  接口  内部结构  工作原理  读写原理

  02.磁盘阵列说明

    raid知识  配置LVM(L-逻辑  V-卷组  M-管理)-逻辑卷管理-->实现可以弹性的调整磁盘分区大小

  03.磁盘分区概念

    分区的知识  主,扩展,逻辑分区  分区表知识  

    给容量较小的磁盘进行分区:小于2T  fdisk

    给容量较大的磁盘进行分区:大于2T  parted

  04.磁盘格式化操作

    格式化知识  文件系统知识  挂载知识  创建文件系统

  05.磁盘管理此方法

    df  fdisk  mkfs  mkfs.xfs  parted  swapon  swapoff  /etc/fstab  /etc/rc.local

二.磁盘体系结构详述

  1.磁盘的外部结构

    01.组成部分

      001 磁盘主轴

        决定磁盘转速(rpm-round per minute)

          家用磁盘转速  7200rpm  5400rpm

          企业磁盘转速  15000rpm  10000rpm

      002 磁盘盘片

        用于存储数据

      003 磁盘磁头

        用于读取数据

      004 磁盘接口

        用于连接主板

    02.接口类型

      SATA  SCSI  SAS  PCI-E

      磁盘结构分类:  机械硬盘  固态硬盘

      磁盘接口分类  SATA(串行)  SCSI  SAS 

      磁盘的选择:

        机械硬盘:

          SATA: 备份  性能要求不高  大量存储  线下服务  

            10000 rpm    2T 3T 4T

          SAS: 服务器标配 线上/生产环境使用

            15000 rpm  10000rpm  7200rpm  300G 600G

        固态硬盘: 大量的读写  要求很高的性能  数据量小

      机械银盘与固态硬盘的对比

        机械:  容量大价格低 抗击打能力弱 读写速度稍慢(io) 数据恢复容易

        固态:  容量小价格高 抗击打能力强 读写速度很快(io) 数据恢复难

  2.磁盘的内部结构(机械磁盘)

    01.磁盘(disk)

    02.磁头(head)

      作用说明:用来写入和读取数据的

      特点说明:盘面数量等于磁头数量

      工作原理:词用径向运动读写数据

    03.磁道(track)

      作用说明:用来存储用户数据

      特点说明:由多个同心圆组成    存储计数:最外面同心圆为0磁道

      工作原理:磁盘默认按照磁道寻找数据

        重点原理:磁头径向运动为机械运动(寻道)

        原理特点:磁头机械运动较慢

    04.扇区(sector)

      作用说明:用来存储用户数据

      特点说明:磁盘存储最小单位(系统存储最小单位是block)  存储计数:默认磁盘扇区从1扇区开始,扇区大小为512字节

    05.柱面(cylinder)

      作用说明:用来存储用户数据

      特点说明:不同盘面上相同的磁道组成(圆柱体)

      工作原理:磁盘默认按照柱面进行读写

        重点原理:磁头之间的切换为电子切换(相对于寻道操作来说,磁头之间的电子切换能更快的定位到需要的磁道)

        原理特点:磁头电子切换较快

    06.单元块(units)

      作用说明:用来存储用户数据

      特点说明:表示单个柱面大小

    07.根据磁盘内部结构计算磁盘大小

      

 

       

       001 磁盘大小=柱面大小(unit)*柱面数量

          命令运算:echo unit*柱面数量|bc

          命令运算:awk 'BEGIN{print unit*柱面数量}'

三.磁盘阵列概念说明

  1.磁盘阵列概念说明

    01.概念介绍:Redundant Arrays of Independent Disks RAID(独立磁盘构成的具有冗余能力的阵列)

    02.作用说明:

      001 获得更大的容量

      002 获得更高的性能

      003 或得更好的安全

  2.磁盘阵列级别说明

    01 阵列级别 raid0

      性能:提供更高的存储效率(存储效率高)

      容量:不会损耗磁盘容量

      需求:至少需要一块硬盘

      缺陷:数据安全性保障不高(数据安全性低)

    01 阵列级别 raid1

      性能:数据安全保障提高(数据安全性高)

      容量:磁盘容量会损耗(损耗一块硬盘)

      需求:只能使用两块硬盘

      缺陷:数据存储效率低(存储效率低)

    01 阵列级别 raid5

      性能:数据安全保障提高(数据安全性较高)

        数据存储效率较高

      容量:磁盘容量将会损耗(损耗一块硬盘容量)

      需求:至少使用三块硬盘    最多只能坏一块硬盘

    

    01 阵列级别 raid10

      性能:数据安全保障提高

        数据存储效率提高

      容量:磁盘容量将会损耗

      需求:需要成对添加磁盘

      

    01 阵列级别 raid01

      性能:数据安全性提高

        数据存储效率提高

      容量:磁盘容量将会损耗

      需求需要成对添加磁盘

      

四.磁盘分区方法实践

  1.磁盘分区概述

    01.系统启动引导记录 

      MBR主引导记录(用于引导磁盘空间大于2T)

       

 

 

         磁盘的 0磁头 0磁道 1扇区 为一个扇区大小占用512字节   其中MBR主引导记录占用446个字节  磁盘分区表(DPT)占用66个字节 其中两个字节是分区结束标识

         每个分区占用16个字节,所以总共能分4个主分区       扩展分区占用16个字节,最多只能存在一个扩展分区

      GPT主引导记录(用于引导磁盘空间大于2T)

    02.系统分区类型说明

      主分区(primary)  最多4个主分区,每个分区占16个字节(64字节)

      扩展分区(extend)  最多只能存在一个扩展分区,用来添加逻辑分区.无法存储数据信息

      逻辑分区(logical)  可以有多个逻辑分区,用来存储数据信息(逻辑分区都是从5开始计数.1-4是主分区和扩展分区的计数,逻辑分区不能占用)

    03.系统分区命名说明

      步骤一:按硬盘类型命名(SATA SAS SCSI)

        第一块: /dev/sda

        第二块: /dev/sdb

        第三块: /dev/sdc

      步骤二:按分区数量命名

        主分区和扩展分区

          第一个分区: /dev/sda1

          第二个分区: /dev/sda2

          第三个分区: /dev/sda3

        逻辑分区(逻辑分区的编号都是从5开始的1-4的编号是属于主分区和扩展分区的,无论主分区和扩展分区有没有分都不能占用)

          第一个分区: /dev/sda5

          第二个分区: /dev/sda6

      分区命名测验

        第1块SATA硬盘的第一个主分区: /dev/sda1

        第2块SATA硬盘的第二个扩展分区: /dev/sdb2

        第3块SATA硬盘的第一个逻辑分区: /dev/sdc5        

  2.磁盘分区实践

    01 搭建磁盘分区的环境

      添加两个虚拟磁盘大小分别是小于2T和大于2T

      

 

 

       重启系统,加载硬盘信息,利用fdisk  -l 查看系统中硬盘信息

      

    02 磁盘信息查看方法

      fdisk  -l|grep 'sd[c,d]'

      

    03 磁盘分区工具说明

      分区工具 fdisk

        应用场景:磁盘空间小于2T,创建的分区表为MBR的

        分区操作:

          fdisk -cu /dev/sdc---->centos6

          

 

          fdisk /dev/sdc---->centos7

          

 

 

         分区参数:

          

 

         开始分区:

          1.规划4个主分区,每个分区1G

            操作过程

            

 

            

 

 

             检查分区

            

            保存退出

            

            让系统可以加载识别分区信息(此条命令适用于真实机环境.虚拟机不需要此条命令会自动加载分区信息文件)

            

           2.规划3个主分区 一个扩展分区 每个主分区1G 剩余都给扩展分区

             操作过程

            

 

             

 

             检查分区

            

            保存退出

            

            让系统可以加载识别分区信息(此条命令适用于真实机环境.虚拟机不需要此条命令会自动加载分区信息文件)

            

           3.规划2个主分区,每个分区1G 划分2个逻辑分区 每个分区2G

            操作过程

            

 

 

             

 

             检查分区

            

            保存退出

            

            让系统可以加载识别分区信息(此条命令适用于真实机环境.虚拟机不需要此条命令会自动加载分区信息文件)

            

           4.其他参数作用说明

           l   list known partition types     列出可以分区的类型

           t   change a partition's system id  改变分区的系统id==改变分区类型(LVM 增加swap分区大小)  

          

 

               

 

      分区工具 parted

        应用场景:磁盘大小大于2T分区工具(创建分区表GPT)

        分区操作:parted(分区操作实时生效)

          分区参数:

          

 

 

           开始分区

          

 

 

           

 

           

 

           步骤详解:

          步骤一:mklabel gpt 创建分区表gpt

          步骤二:mkpart primary 0 1000G  创建分区信息

              mkpart primary 1000G 2000G

          步骤三:print(p)          打印分区信息

              rm n          删除分区信息

          步骤四:quit(q)          退出保存分区信息

          让系统可以加载识别分区信息

           

    04磁盘创建文件系统

        格式化操作(创建文件系统-磁盘分区存储数据的方式)

          作用:磁盘中诞生了iinode和block

          常见文件系统:

            ext3/4   centos6

            xfs      centos7 格式化效率较高,数据存储效率提升

          操作命令:

            mkfs.xfs /dev/sd[a-d]n

            mkfs.ext4 /dev/sd[a-d]n

           

 

 

        进行磁盘挂载(磁盘需挂载到目录才能被用户使用)

          挂载命令:mount /dev/sd[a-d]n /mount

          

 

 

        系统开机自动挂载(磁盘空间若要使用,则必须挂载,而上述挂载信息在系统重启后将不复存在,所以我们需要开机自动挂载,保证磁盘开机可用)

         方法一:将挂载命令放入/etc/rc.local

          

 

 

           

 

           注意:在上述文件中编写执行命令时,注意查看/etc/rc.local文件的权限,由于文件为脚本文件.系统在开机时会运行此文件,而脚本文件一般会像命令文件一样直接执行,执行时文件需具备执行权限才可能被系统正确执行.

              若无执行权限,则上述文件执行不会被执行,那么文件中的命令自然不会执行.所以得保证文件具有执行权限

            

 

           方法二:在/etc/fstab中设置    ******

            

    05 系统分区实践步骤

      步骤一:创建磁盘分区并保存查看

        fdisk 磁盘小于2T(分区表MBR)    w保存退出

        parted 磁盘空间大于2T(分区表GPT)  q退出保存

      步骤二:系统加载识别分区信息(告知系统分区以创建)

        partprobe  ll(查看设备文件)

      步骤三:磁盘分区后创建文件系统

        mkfs.xfs  注意识别扩展分区(不占用实际磁盘空间,无法创建文件系统)

        blkid     查看磁盘分区文件系统

      步骤四:磁盘分区挂载(磁盘需要挂载方可被系统使用)

        mount /dev/sd** /挂载点

      步骤五:分区开机自动挂载

        方法一:挂载命令写入/etc/rc.local    注意查看文件的执行权限x

        方法二:编辑文件/etc/fstab       注意格式 blkid命令可查看设备文件唯一识别号UUID

五.磁盘文件系统介绍

  1.文件系统概述说明

    文件系统就是一种存储和组织计算机数文件的机制或方法

  2.文件系统分类说明

    centos5 ext3

    centos6 ext4

    centos7 xfs  数据库服务上存储数据 在格式化大的磁盘时效率更高

六.磁盘分区企业案例

  1.磁盘满的情况 No space left on device

    01 情况一:存储的数据太多了(block空间不足)

      模拟磁盘空间不足(创建大文件)

      dd if=/dev/zero of=/mount07/oldboy.txt bs=10M count=10
      

 

      解决办法:删除没有的大文件-------->如何找到大文件?

      找出系统中大的文件

        方法一:find / -type f -size +100M

        方法二:du -sh / |sort -h

        

 

    01 情况二:存储的数据太多了(inode空间不足)

      inode存储空间不足:出现大量小文件

  2.java环境内存不够用了,大量使用swap分区

    步骤一:创建系统交换分区使用文件(利用文件占用磁盘部分空间)

      dd if=/dev/zero of=/tmp/1G bs=10M count=100

      利用一个大文件(dd可创建一个全是0的任意大小文件)占据磁盘空间

    步骤二:设置文件被交换分区所使用(指定被占用的空间被交换分区使用)

      mkswap /tmp/1G

    步骤三:文件划到交换分区使之生效(加载使用swap空间)

      swapon /tmp/1G

      swapoff /tmp/1G(卸载使用swap空间)

      free -h(查看内存空间)

    

七.磁盘课程知识总结