Linux的存储管理

在linux的哲学思想中第一条,一切皆文件;所以对与物理磁盘的管理就是在系统中对文件的管理,即操作对应的设备文件即可;

首先弄清楚机械硬盘的构造:

track : 磁道
       sector: 扇区 ,512Byte(字节)现在所说的扇区,实际上是平均值;
       cylinder:柱面,从磁道向所有盘片做投影
       patition:分区,分区就是基于柱面来划分的存储空间。
       head:磁头,每个磁盘表面都有一个磁头;

在linux中有专门的设备文件的存储目录——/dev

设备有两种类型:

①块设备:用于随机访问的设备,数据存储和交换的单位是块

②字符设备:用于线性访问的设备,数据的交换单位一般是字符

在RHEL6、CentOS6开始所有的接口类型的硬盘设备统一命名为sd[a-z]

(后面的数字表示磁盘的分区)

那么开始使用硬盘,要明白的是如何分区,如何创建文件系统(格式化)和如何挂载分区

磁盘的物理组成

⒈圆形的盘片,主要用来记录数据

⒉机械手臂与机械手臂上的磁头,读写数据

⒊主轴马达,可以转动盘片,让机械手臂的磁头在盘片上读写数据

盘片的物理组成

⒈扇区(sector)为最小的存储单位,大小为512bytes

⒉第一个扇区很重要,需要通过它来读取整个磁盘的状态。里面有MBR(主引导记录)和DPT(分区表)

⒊MBR占446bytes,DPT占64byte,剩下两位是分区有效标志(55AA)

MBR相关

主引导记录中包含了硬盘的一系列参数和一段引导程序。其中的硬盘引导程序的主要作用是检查分区表是否正确并且在系统硬件完成自检以后引导具有激活标志的分区上的操作系统,并将控制权交给启动程序。MBR是由分区程序(如Fdisk.exe)所产生的,它不依赖任何操作系统,而且硬盘引导程序也是可以改变的,从而实现多系统共存。

分区表相关

⒈64bytes的分区表最多分出4个区,成为主分区或者扩展分区

⒉扩展分区最多只能有一个

⒊扩展分区可以再划分出逻辑分区

⒋可以被格式化的只有主分区和逻辑分区,扩展分区不可以被格式化

⒌逻辑分区的数量上线根据不同的操作系统和硬盘格式而不同,linux中IDE硬盘最多划分59个,SATA最多划分11个(都是从5号开始)

按照每个扇区512bytes来算,一个分区的最大容量是2TB

对于开机状态下上插上SCSI接口的磁盘强制内核识别的方法:

echo "---" &> /sys/class/scsi_host/host2/scan

Ⅰ、如何分区

通常分区使用的工具为fdisk,gdisk

注:如果使用fdisk或gdisk命令对于已经有分区并挂载的磁盘的剩余空间进行再次分区,分区的信息即便是保存了,也不会被内核重新读取;

所以需要做以下操作就能重新读取:

1.重启计算机;
        2.partprobe命令或者partx命令,强制内核重读分区表;
             CentOS5/7:partprobe -a [device] 如果省略了设备名,则表示重读所有磁盘的分区表
             CentOS6/7:partx -a [device]
                 kpartx -af [device(=设备名)]

fdisk的使用:

fdisk子命令:
            d  删除分区
             l  列表已知的分区类型
            q  不保存退出编辑
            p  打印分区表

n  创建新分区
               e  扩展分区
               p  主分区
               l  逻辑分区
            m  显示帮助菜单
            t  修改分区的系统标识
            w  保存修改并保存

Ⅱ、创建文件系统

对于不同的发行版的linux,都有其默认的文件系统选择;
          RHEL、CentOS
           5:ext3
           6:ext4
           7:xfs

创建文件系统工具

mkfs命令:

mkfs [options] [-t type] [fs-options] device [size]

注意:
         1.不要使用磁盘设备名称和扩展分区设备名称作为mkfs命令的参数;
         如果使用磁盘设备作为mkfs的参数,所有的分区都将被删除
         如果使用扩展分区作为mkfs的参数,所有的逻辑分区都将被删除
         2.能够作为mkfs命令参数的设备,是主分区设备和逻辑分区设备;

 1.如果只计划创建ext系列文件系统的话,可以使用mke2fs命令:
        mke2fs
          mke2fs - create an ext2/ext3/ext4 filesystem
          常用选项:
           -b block-size:在创建文件系统时,调整块大小;
           -i bytes-per-inode:指明inode与字节的比率;即:多少个字节建一个inode,默认值为16384;
           -I inode-size :直接指定inode大小
           -J :创建有日志功能的文件系统,就是ext3
           -N number-of-inodes:直接指名要给此文件系统创建的inode的数量;
           -m reserved-blocks-percentage:指定为超级用户root预留的磁盘空间的百分比;默认是5;
           -t fs-type:指定文件系统类型,ext2 ext3 ext4,默认是ext2
           -O [^]feature[,...]:(加^表示关闭 不加表示开启)关闭或开启文件系统的特性
           -L volume-label:为文件系统指定卷标

2.如果只计划修改ext系列文件系统的卷标,可以使用e2label命令:
      e2label
      e2label - Change the label on an ext2/ext3/ext4 filesystem
      e2label device [ new-label ]

注意: 如果不加卷标信息,表示查看指定设备的卷标;
             如果添加了倦鸟信息,表示修改指定设备的卷标;

  3.如果想要修改ext系列文件系统的属性,可以使用tune2fs命令:
      tune2fs
      tune2fs - adjust tunable filesystem parameters on ext2/ext3/ext4 filesystems

4.调整那些在ext2,3,4文件系统上的可修改的参数;
         常用选项:
          -j:将ext2文件系统修改为ext3
          -m reserved-blocks-percentage:修改为超级用户预留的磁盘空间百分比
          -o  [^]mount-options[,...]:修改文件系统默认的挂载选项
          -r reserved-blocks-count:修改为超级用户预留的磁盘空间的块的数量;
          -L  volume-name:修改文件系统的卷标
          -O [^]feature[,...]:修改文件系统的特性,将其关闭或启用;
          -l :显示超级块的内容 相当于dumpe2fs -h

5.文件系统的检测修复工具:
     fsck
      -t fstype:指定要检测的文件系统类型;
      -a:无需交互自动修复所有问题
      -r:交互式修复问题

  6.ext系列文件系统专门的检测修复工具:
        e2fsck
         -y:在交互过程的所有的问题,都以“yes”回答;
         -f:强制检测修复;即使文件系统处于clean状态;

blkid
          blkid - locate/print block device attributes
          blkid -L label:根据卷标进行查找
          blkid -U uuid:跟去UUID进行查找
        findfs
          findfs - find a filesystem by label or UUID
          findfs LABEL=label
          findfs UUID=uuid
     
   创建swap文件系统
     前提:分区类型必须是swap类型
       修改的方法是:在fdisk交互模式中,使用t命令将指定分区的类型修改为82即可

mkswap
      mkswap - set up a Linux swap area
       -L LABEL:设置交互分区的卷标
       -f:强制执行

Ⅲ、文件系统的挂载

      挂载用mount命令

mount
         mount - mount a filesystem
         mount [-fnrsvw] [-t vfstype] [-o options] device dir

常用选项:
       -r:readonly,以只读的方式挂载目标文件系统;(光盘)
       -w:read and write,以读写的方式挂载目标文件系统;
       -n:默认情况下,设备挂载或卸载的操作会同步更新到/etc/mtab中,如果在挂载时使用-n选项,表示我们要禁用此特性,即便挂载成功,也不会更新到/etc/mtab中;
       -t vsftype:指明要挂载的设备上创建的文件系统类型;如果省略该选项,mount命令会通过blkid来判断要挂载的目标设备的文件系统类型;
       -L LABEL:挂载文件系统时,使用卷标代替设备名称
       -U UUID:挂载文件系统时,使用UUID代替设备名称;
       -a:mount -a:按照/etc/fstab文件中填写的设备进行自动挂载
       -o option:
         sync/nosync:同步/异步操作
         atime/noatime:文件或目录被读取访问时,是否更新访问时间戳;
         diratime/nodiratime:目录被读取访问时,是否更新访问时间戳;
         ro/rw:是以只读/读写的方式挂载文件系统
         dev/nodev:在此文件系统中是否允许创建设备文件;
         exec/noexec:在此文件系统中是否允许运行程序文件;
         auto/noauto:是否允许使用mount -a方式挂载/etc/fstab中的文件系统;
         user/nouser:是否允许普通用户挂载此文件系统;
         suid/nosuid:是否允许程序文件上的SUID和SGID特殊权限生效;
         relatime/norelatime:是否参考inode访问时间来修改其修改时间和改变时间
         remount:不经卸载实现重新挂载,可以应用新的挂载选项;
         acl:可以使文件系统支持facl功能;
         defaults:默认选项:包括:rw, suid, dev, exec, auto, nouser, async and relatime
         loop:使用环回设备;将镜像文件挂载到挂载点;
         defaults,ro,nosuid
       -B,--bind:将某个目录绑定至另一个目录
         mout --bind|-B 源目录 目标目录

查看挂载信息  mount df  /etc/mtab /proc/mounts

    卸载文件系统:
           umount mount_point|device
               fuser可以查看谁在使用
                 -km 将正在使用的用户kill掉

转载于:https://blog.51cto.com/xredm/1929143

Linux系统的存储管理相关推荐

  1. linux 内核 scsi底层驱动程序,Linux系统下基于SCST的SCSI_Target驱动设计.doc

    Linux系统下基于SCST的SCSI target驱动设计 摘要 随着信息数字化的深入发展,数据存储的需求日益增长.存储虚拟化带给我们最直接的益处就是,提高存储利用率,降低成本,简化存储管理,而基于 ...

  2. 看看这几个版本Linux系统总有一款适合你

    说到物联网应用的操作系统,就不能不提Linux,因为Linux系统是目前物联网设备中应用最广泛的操作系统,之前我有讲过关于Windows物联网操作系统,那么本文就来详细介绍一下基于Linux的物联网操 ...

  3. 服务器系统的王者——Linux 系统

    2019独角兽企业重金招聘Python工程师标准>>> 1.模块化程度高 Linux的内核设计非常精巧,分成进程调度.内存管理.进程间通信.虚拟文件系统和网络接口五大部分;其独特的模 ...

  4. linux系统基础与应用,Linux操作系统:基础、原理与应用

    <Linux操作系统:基础.原理与应用> 第1部分基础篇 第1章操作系统概述/3 1.1认识操作系统3 1.1.1操作系统的概念3 1.1.2操作系统的功能4 1.2操作系统的发展与现状5 ...

  5. 用ghost备份和还原Linux系统

    备份是容灾的基础,是指为防止系统出现操作失误或系统故障导致数据丢失,而将全部或部分数据集合从应用主机的硬盘或阵列复制到其它的存储介质的过程.传统的数据备份主要是采用内置或外置的磁带机进行冷备份.但是这 ...

  6. 用ghost备份和还原Linux系统(一)

              备份是容灾的基础,是指为防止系统出现操作失误或系统故障导致数据丢失,而将全部或部分数据集合从应用主机的硬盘或阵列复制到其它的存储介质的过程.传统的数据备份主要是采用内置或外置的磁带 ...

  7. 《Linux就该这么学》培训笔记_ch00_认识Linux系统和红帽认证

    <Linux就该这么学>培训笔记_ch00_认识Linux系统和红帽认证 文章最后会post上书本的笔记照片. 文章主要内容: 认识开源 Linux系统的种类及优势特性 认识红帽系统及红帽 ...

  8. 学习第1天:认识Linux系统和红帽认证

    文章主要内容: 认识开源 Linux系统的种类及优势特性 认识红帽系统及红帽阶梯认证 书本笔记 关于开源 开源软件最重要的特性:低风险.高品质.低成本.更透明. GNU GPL(GNU General ...

  9. Linux系统的历史发展演绎

    回顾:Linux系统的历史发展演绎 作者:mary 来源:settingyin 发布时间:2006.09.06 本章讲述linux发展历程及基本概况.即使你对linux一无所知,学完本章,也会发现此时 ...

最新文章

  1. springmvc工作流程简单易懂_三极管的结构和工作特性,简单易懂
  2. 深入理解iframe
  3. flex----导航
  4. 从无到有算法养成篇-单向循环链表的常规操作
  5. 论面向组合子程序设计方法 之 重构
  6. Python基础教程(六):list、tuple、dictionary
  7. 解决win7下netbeans安装的错误问题
  8. 把室友的STM32换成了GD32,会被打吗?
  9. HDU 3488 KM
  10. 服务端架构中的“网关服务器”
  11. 八数码深度优先搜索_深度优先搜索和广度优先搜索
  12. Notepad++的json 格式化
  13. python threading-单线程 多线程 主线程 子线程 setDeamon join
  14. Mac下查看Git的安装目录
  15. Java编程思想1-对象导论
  16. Root原理分析及防Root新思路
  17. 机器学习:数据归一化(Scaler)
  18. C++行为型模式-中介者模式
  19. CSS 控制边框样式
  20. 帮我写一个无数爱心滑落的html

热门文章

  1. python到底能用来做啥-Python那么火,到底能用来做什么?
  2. python3菜鸟教程中文-Python3菜鸟教程 1.介绍
  3. 3_HEIF/heic格式图片文件解析(20190107)
  4. 微服务架构设计模式读书笔记
  5. LeetCode Longest Substring with At Least K Repeating Characters(递归)
  6. 【Spark】为什么没有任务调度到新增的Worker之上???
  7. Linux配置免密登录
  8. selendroid之inspector
  9. java后台访问接口
  10. Windows 7系统垃圾清理自写程序