磁盘管理

                         磁盘管理

磁盘管理简介

   我们的计算机是有五大部件组成:输入设备、输出设备、运算器、控制器和存储器。其中运算器和控制器我们称之为CPU 。其实我们的计算机只要拥有了CPU和内存,就可以独立完成计算任务了。但是内存属于随机存储设备,断电会导致数据的丢失。因此,我们需要其它存储设备来弥补内存这个不足,如:磁盘、光盘等。

磁盘可以弥补内存断电易失的不足,同时还提供更大空间来储存我们的计算机数据等一系列的优点。那么在操作系统上,我们是用什么方式来读写磁盘内的数据呢??

大家都知道,对linux系统而言,其哲学思想之一就是一切皆文件。因此,在linux系统上对磁盘所有的操作都是通过文件接口来实现的。那么,我们拿到一个新的磁盘连接到计算机上,怎么样实现正常使用呢?这个就需要三个过程:创建分区、格式化、挂载。

1、创建分区:我们通过创建分区,我们可以便于磁盘的规划、文件的管理可有效地利用磁盘空间提高系统运行效率有利于病毒的防治和数据的安全(如:如果不分区磁盘,操作系统被病毒入侵,重装系统后,磁盘上的数据都会被删除,所以我们要分区,分区后就不会出现这中情况,因为我们将操作系统装在一个独立的分区,即使重装系统,也不会影响其他分区的数据。)等一系列优点。

2、格式化:格式化其实就是为磁盘装载文件系统,以便于我们更好使用和管理磁盘

3、挂载;所谓挂载就是将额外文件系统与根文件系统某现存的目录建立起关联关系,进而使得此目录做为其它文件访问入口的行为。所以只有将磁盘设备挂载,才能实现真正使用和管理磁盘。

 

                   第一部分 磁盘分区

一、磁盘简介

           

  (一)磁盘接口类型
     1、并行:
        IDE 133MB/s
        SCSI 640MB/s
     2、串口:
        SATA 6Gbps
        SAS 6Gbps
        USB 480MB/s
        rpm: rotations
        per minute

  (二)机械磁盘(HDD)和固态硬盘(SSD)

     1、 相较于HDD SSD在防震抗摔、传输速率、功耗、重量、噪有明显优势, SSD传输速率性能是HDD2
     2、相较于SSD HDD在价格、容量、使用寿命上占有绝对优势硬盘有价,数据无价,目前SSD不能完全取代HHD

  (三)磁盘设备的文件命名

     IDE: /dev/hd
     SCSI, SATA, SAS, USB: /dev/sd
     

     1、 不同设备: a-z区分
       /dev/sda, /dev/sdb, …
 

     2、 同一设备上的不同分区:

       1,2, …
       /dev/sda1, /dev/sda5
   (四) 磁盘存储术语

       机械式磁盘构造:盘片,轴,马达,机械臂,磁头
          head:磁头
          track磁道):每个盘片被切割成N个同心圆,称之为磁道

          sector(扇区):磁盘上每个磁道被分成若干个弧段,这些弧段我们称之为扇区
          cylinder(柱面):每个盘面上相同的位置都有一相同的编号,所有相同编号的磁道称之为柱面

   (五)两种分区方式: MBR GPT              

      1、MBR分区
          1)、 MBR: Master Boot Record 1982年, 使用32位扇区数, 分区不超过2T
          2)如何分区:按柱面
            0磁道0扇区: 512bytes
            446bytes: boot loader
            64bytes:分区表16bytes标识一个分区
            2bytes: 55AA
          3)支持:4个主分区; 3主分区+1扩展(N个逻辑分区)
      2、 GPT分区
          1)、GPT:GUID Globals Unique Identifierspartitiontable 支持128个分区,使用64位,支持8Z512Byte/block 64Z 4096Byte/block
          2)、 使用128UUID(Universally Unique Identifier) 示磁盘和分区 GPT分区表自动备份在头和尾两份,并有CRC校验位UEFI (统一扩展固件接口)硬件支持GPT,使操作系统 

二、磁盘分区

    (一)、创建MBR类分区使用fdisk命令

        fdisk -l [-u] [device…]   创建MBR分区

           -l:列出指定的磁盘的分区表状况;

                                   -u:搭配”-l”参数列表,会用分区数目取代柱面数来表示每个分区的起始地址;

        fdisk 创建分区是一个交互式界面,由许多字命令
           子命令:
             p 分区列表
             t 更改分区类型
             n 创建新分区
             d 删除分区
             w 保存并退出
             q 不保存并退出

    (二)创建GPT类分区 gdisk parted

       1、gdisk与fdisk使用方法相似

       2、parted

        parted的操作都是实时生效的,小心使用
        用法: parted [选项]… [设备 [命令 [参数]…]…]
            parted /dev/sdb mklabel gpt|msdos 对指定磁盘设定类型
            parted /dev/sdb print列出指定磁盘分区信息
            parted /dev/sdb mkpart primary # N (默认单位M):给指定磁盘创建一个N大小的主分区 ,其中#代表分区
            parted /dev/sdb rm #删除指定磁盘分区,#为分区号

            parted -l列出磁盘分区信息

三、内核识别分区

    创建分区后需要内核识别才能使用,不然下次开机,所有的分区信息都会没有了。

    内核识别分区对于CentOS系统来讲:方法如下

      entos6通知内核重新读取硬盘分区表
         新增分区用
          partx -a /dev/DEVICE
          kpartx -a /dev/DEVICE -f: force
        删除分区用
          partx -d –nr M-N /dev/DEVICE

          注意:N-M表示从N号分区到M号分区

      CentOS 5 7: 

          partprobe [/dev/DEVICE]

                

 

                    第二部分 磁盘管理之格式化

 一、文件系统

     文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构;在存储设备上组织文件的方法。操作系统中负责管理和存储文件息的软件结构称为文件管理系统,简称文件系统。
     从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,安全控制,日志,压缩,加密等
   (一)常见的几种文件系统

      Linux文件系统: ext2(Extended file system), ext3,ext4, xfs SGI , btrf Oracle , reiserfs, jfsAIX , swap
      光盘: iso9660
      Windows fat32(不能是设定权限), ntfs
      Unix: FFS fast , UFS unix , JFS2
      网络文件系统: NFS(不适合并发访问), CIFS
      集群文件系统: GFS2, OCFS2 oracle
      分布式文件系统: fastdfs,ceph, moosefs, mogilefs,glusterfs, Lustre
      RAW:未经处理或者未经格式化产生的文件系统

   (二)文件系统分类
      根据其是否支持“journal”功能:
      1)、 日志型文件系统: ext3, ext4, xfs, …
      2)、非日志型文件系统: ext2, vfat

   (三)Linux的虚拟文件系统:VFS
      允许众多不同的文件系统共存,并支持跨文件系统的文件操作,这是因为有虚拟文件系统的存在。虚拟文件系统,即VFS(Virtual File System)是 Linux 内核中的一个软件抽象层。它通过一些数据结构及其方法向实际的文件系统如 ext2vfat 提供接口机制。VFS 是一套代码框架(framework),它处于文件系统的使用者与具体的文件系统之间,将两者隔离开来。这种引入一个抽象层次的设计思想,即“上层不依赖
于具体实现,而依赖于接口;下层不依赖于具体实现,而依赖于接口”,它在 Linux内核中随处可见。

   (四)查看当前支持的文件系 

      cat /proc/filesystems

(五) blkid:块设备属性信息查看
      blkid [OPTION]… [DEVICE]
        -U UUID: 根据指定的UUID来查找对应的设备
        -L LABEL:根据指定的LABEL来查找对应的设备

二、磁盘格式化命令

(一) mkfs命令:
      (1) # mkfs.FS_TYPE /dev/DEVICE

      FS_TYPE:表示文件系统类型

      -t {ext2|ext3|ext4}指定文件系统的类型
        -b {1024|2048|4096}指定块大小

      -L ‘LABEL’指定设备卷标

      -i #: 为数据空间中每多少个字节创建一个inode;此大小不应该小于block的大小
        -N #:为数据空间创建个多少个inode
        -I 一个inode记录占用的磁盘空间大小, 128—4096
        -m #: 默认5%,为管理人员预留空间占总空间的百分

      -O:指定分区特性
   () # mkfs -t FS_TYPE /dev/DEVICE
        -L ‘LABEL’: 设定卷标

      -t:指定文件系统类型
   (三)创建ext文件系统的专用命令
      mke2fs ext系列文件系统专用管理工具
                   

      -t {ext2|ext3|ext4}指定文件系统的类型
        -b {1024|2048|4096}指定块大小

      -L ‘LABEL’指定设备卷标
        -j: 相当于 -t ext3 增加日志功能创建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:关闭指定特性

三、文件系统管理命令

(一)e2label:管理ext系列文件系统的LABEL
      e2label DEVICE [LABEL]

(二)  findfs :查找分区
       findfs [options] LABEL=<label>
       findfs [options] UUID=<uuid>

   (三)tune2fs:重新设定ext系列文件系统可调整参数的值
        -l:查看指定文件系统超级块信息; super block
        -L ‘LABEL’:修改卷标
        -m #:修预留给管理员的空间百分比
        -j: ext2升级为ext3
        -O: 文件系统属性启用或禁用, –O ^has_journal
        -o: 调整文件系统的默认挂载选项, –o ^acl
        -U UUID: 修改UUID
   (四)dumpe2fs
        -h:查看超级块信息,不显示分组信息

          超级块的内容包括:文件系统的大小、空闲块数目、空闲块索引表、空闲节点数、空闲节点索引表、封锁标记等,超级块是系统为文件分配存储空间和回收存储空间的依据。

四、文件系统检测和修复
       常发生于死机或者非正常关机之后,挂载为文件系统标记为no clean
    注意:一定不要在挂载状态下修复
      fsck: File System Check
        fsck.FS_TYPE
      fsck -t FS_TYPE
        -p: 自动修复错误
        -r: 交互式修复错误
        FS_TYPE一定要与分区上已经文件类型相同
      e2fsck ext系列文件专用的检测修复工具
        -y:自动回答为yes
        -f:强制修复

 

                  第三部分 文件系统挂载

一、挂载使用mount
  注意:1、一个设备可以挂载到多个挂载点

   2、一个目录不可以同时挂载多个设备

   3、挂载点下原有文件在挂载完成后会被临时隐藏挂载点目录一般为空

挂载方法: mount DEVICE MOUNT_POINT
        mount:通过查看/etc/mtab文件显示当前已挂载的所有设备
        mount [-fnrsvw] [-t vfstype] [-o options] device dir
         device:指明要挂载的设备;
            (1) 设备文件:例如/dev/sda5
            (2) 卷标: -L ‘LABEL’, 例如 -L ‘MYDATA’
            (3) UUID, -U ‘UUID’:例如 -U ‘0c50523c-43f1-45e7-85c0-a126711d406e’
            (4) 伪文件系统名称: proc, sysfs, devtmpfs, configfsdir

       挂载点
            事先存在;建议使用空目录

       选项:
            -t vsftype:指定要挂载的设备上的文件系统类型
            -r: readonly,只读挂载
            -w: read and write, 读写挂载
            -n: 不更新/etc/mtab mount不可见
            -a:自动挂载所有支持自动挂载的设备(定义在了/etc/fstab文件中,且挂载选项中有auto功能)
            -L ‘LABEL’: 以卷标指定挂载设备
            -U ‘UUID’: UUID指定要挂载的设备
           -B, –bind: 绑定目录到另一个目录上
      常用命令选项
            -o options (挂载文件系统的选项),多个选项使用逗号分隔
             async:异步模式
             sync:同步模式,内存更改时,同时写磁盘
             atime/noatime:包含目录和文件
             diratime/nodiratime:目录的访问时间戳
             auto/noauto:是否支持自动挂载,是否支持-a选项
             exec/noexec:是否支持将文件系统上运行应用程序
             dev/nodev:是否支持在此文件系统上使用设备文件
             suid/nosuid:不否支持suidsgid权限
             remount:重新挂载

           ro:只读
             rw 读写
             user/nouser:是否允许普通用户挂载此设备,默认管理员才能挂载acl:启用此文件系统上的acl功能
          Defaults:相当于rw, nosuid, dev, exec, auto, nouser, async
二、卸载命令 umount
   卸载时:可使用设备,也可以使用挂载点       

卸载:
    umount DEVICE
    umount MOUNT_POINT
三、查看挂载情况:
    findmnt MOUNT_POINT
四、查看正在访问指定文件系统的进程:
    lsof MOUNT_POINT
    fuser -v MOUNT_POINT(查看那个用户在访问此设备)
      终止所有在正访问指定的文件系统的进程:
      fuser -km MOUNT_POINT

五、关于挂载的配置文件/etc/fstab

将挂载信息写入配置文件,磁盘才能正常使用
   使用mount -a 命令挂载/etc/fstab中的所有文件系统
   /etc/fstab 每行定义一个要挂载的文件系统;

    磁盘管理


        第一段:要挂载的设备或伪文件系统

              设备文件、 LABEL(LABEL=””) UUID(UUID=””)、伪文件系统名称(proc,
sysfs)
        第二段:挂载点
        第三段:文件系统类型
        第四段:挂载选项
        第五段:转储频率

          0:不做备份

          1:每天转储
            2:每隔一天转储
        第六段:自检次序
            0:不自检
            1:首先自检;一般只有rootfs才用1

 

原创文章,作者:zq,如若转载,请注明出处:http://www.178linux.com/73905

(0)
zqzq
上一篇 2017-04-22
下一篇 2017-04-23

相关推荐

  • Linux之bash shell脚本编程入门篇(三)之循环以及函数function的使用

    bash shell脚本编程入门篇(三)之循环 什么是循环执行?     将某代码段重复运行多次     重复运行多少次:         循环次数事先已知    &nb…

    Linux干货 2016-08-22
  • MySQL-MMM实现MySQL高可用读写分离

    实验环境 实验拓扑 主机配置环境说明 主机名 IP地址 角色/用途 MySQL Server_ID master1 192.168.80.101 MySQL主节点,可读写操作 11 master2 192.168.80.102 MySQL备节点,可读写操作 12 slave1 192.168.80.103 MySQL从节点,仅能读 13 slave2 192…

    Linux干货 2016-06-01
  • keepalived+nginx 实现 sharepoint 负载均衡

    keepalived 实现虚拟路由
    nginx 做反向代理和负载均衡

    Linux干货 2017-12-20
  • Linux文本处理及用户组管理命令练习

    一.文本处理基础命令 (1).  列出当前系统上所有已经登录的用户的用户名。           完成命令:who  |  cut  -d’ ‘  -f1  |  uniq  -u 示例: (2).取出最后登录到当前系统对的用户的相关信息。         完成命令:w  |  tail -1 示例: (3).取出当前系统上被用户当作…

    2018-03-11
  • heartbeat实现高可用集群(1)

    环境 node1 192.168.1.35 node2 192.168.1.36 fip 192.168.1.80 daemon httpd nfs 192.168.1.15 配置HA集群的前提 1.节点时间必须同步,使用ntp协议实现 2.节点间需要通过主机互相通信,必须解析主机名至IP地址 a.建议名称解析功能能使用hosts文件实现 b.通信中使用的名…

    Linux干货 2017-11-03
  • N25_第四周作业(补)

    1、复制/etc/skel目录到/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 [root@EASTED tmp]# cp -r /etc/skel/ /home/tuser1/ [root@EASTED tmp]# cp …

    Linux干货 2017-01-02

评论列表(1条)

  • renjin
    renjin 2017-04-28 09:43

    对linux下的磁盘管理进行了详细的介绍,内容总结的非常不错,包括对磁盘管理的介绍,工具的详细用法等等,但是版本还是要注意一下,那样就更好了。