zoukankan      html  css  js  c++  java
  • linux 简单记录6--存储结构与磁盘划分

    --常见的EXT3,EXT4,XFS文件系统的不同
    --硬盘设备分区、格式化及挂载
    --部署SWAP交换分区、配置quota磁盘配额服务,ln软硬连接

    在linux中,目录、字符设备、块设备、套接字、打印机等都被抽象成文件。
    1 常见的目录以及对应的存放的内容

    /boot 开机所需文件—内核、开机菜单以及所需配置文件等
    /dev 以文件形式存放任何设备与接口
    /etc 配置文件
    /home 用户家目录
    /bin 存放单用户模式下还可以操作的命令
    /lib 开机时用到的函数库,以及/bin 与/sbin 下面的命令要调用的函数
    /sbin 开机过程中需要的命令
    /media 用于挂载设备文件的目录
    /opt 放置第三方的软件
    /root 系统管理员的家目录
    /srv 一些网络服务的数据文件目录
    /tmp 任何人均可使用的“共享”临时目录
    /proc 虚拟文件系统,例如系统内核、进程、外部设备及网络状态等
    /usr/local 用户自行安装的软件
    /usr/sbin Linux 系统开机时不会使用到的软件/命令/脚本
    /usr/share 帮助与说明文件,也可放置共享文件
    /var 主要存放经常变化的文件,如日志
    /lost+found 当文件系统发生错误时,将一些丢失的文件片段存放在这里

    物理设备的命名规则
    在 Linux 系统中一切都是文件,硬件设备也不例外。

    IDE 设备         /dev/hd[a-d]
    SCSI/SATA/U 盘  /dev/sd[a-p]
    软驱             /dev/fd[0-1]
    打印机             /dev/lp[0-15]
    光驱             /dev/cdrom
    鼠标             /dev/mouse
    磁带机             /dev/st0 或/dev/ht0

    一般的硬盘设备都会是以“/dev/sd”开头
    而一台主机上可以有多块硬盘,因此系统采用 a~p 来代表 16 块不同的硬盘默认从 a 开始分配),而且硬盘的分区编号也很有讲究
    --主分区或扩展分区的编号从 1 开始,到 4 结束;
    --逻辑分区从编号 5 开始

    分区的数字编码不一定是强制顺延下来的,也有可能是手工指定的。因此 sda3 只能表示是编号为 3 的分区,而不能判断 sda 设备上已经存在了 3 个分区。

    例如:/dev/sda5
    /dev :硬件设备文件所在的目录
    sd :hd表示ide设备,sd表示SCSI设备
    a5 :a硬盘的顺序号,以字母a,b,c..表示,5 表示分区的顺序号
    “/dev/sda5”表示的就是“这是系统中第一块被识别到的硬件设备中分区编号为 5 的逻辑分区的设备文件”。
    硬盘设备是由大量的扇区组成的,每个扇区的容量为 512 字节。
    其中第一个扇区最重要,它里面保存着主引导记录与分区表信息。
    就第一个扇区来讲,主引导记录需要占用 446 字节,分区表为 64 字节,结束符占用 2 字节;
    其中分区表中每记录一个分区信息就需要 16 字节,这样一来最多只有 4 个分区信息可以写到第一个扇区中,
    这 4 个分区就是 4 个主分区。
    问题来了—第一个扇区最多只能创建出 4 个分区?为了解决分区个数不够
    的问题,可以将第一个扇区的分区表中 16 字节(原本要写入主分区信息)的空间(称之为扩展分区)拿出来指向另外一个分区。
    也就是说,扩展分区其实并不是一个真正的分区,而更像是一个占用 16 字节分区表空间的指针—一个指向另外一个分区的指针。
    用户一般会选择使用 3 个主分区加 1 个扩展分区的方法,然后在扩展分区中创建出数个逻辑分区,从而来满足多分区(大于 4 个)的需求。
    注:所谓扩展分区,严格地讲它不是一个实际意义的分区,它仅仅是一个指向下一个分区的指针,这种指针结构将形成一个单向链表。

    2 文件系统与数据资料
    用户在硬件存储设备中执行的文件建立、写入、读取、修改、转存与控制等操作都是依
    靠文件系统来完成的。

    --EXT3: 日志文件系统,能够在系统异常宕机时避免文件系统资料丢失,并能自动修复数据的不一致与错误。
    --EXT4: ext3的改进版本,RHEL6系统的默认文件管理系统,支持的存储容量1EB,能够有无限多的子目录,EXT4能够批量分配block块
    --XFS: 一种高性能的日志文件系统,是RHEL7中默认的文件管理系统

    在拿到了一块新的硬盘存储设备后,也需要先分区,然后再格式化文件系统,最后才能挂载并正常使用
    可以选择不进行分区,但是必须对硬盘进行格式化处理
    Linux 只是把每个文件的权限与属性记录在inode 中,而且每个文件占用一个独立的 inode 表格,该表格的大小默认为 128 字节,里面记录了

    --该文件的访问权限(read、 write、 execute);
    --该文件的所有者与所属组(owner、 group);
    --该文件的大小(size)
    --该文件的创建或内容修改时间(ctime);
    --该文件的最后一次访问时间(atime);
    --该文件的修改时间(mtime);
    --文件的特殊权限(SUID、 SGID、 SBIT);
    --该文件的真实数据地址(point)
    而文件的实际内容则保存在 block 块中(大小可以是 1KB、 2KB 或 4KB),一个 inode 的默认大小仅为 128B(Ext3)

    3 挂载硬件设备

    mount 用于挂载文件系统,“mount 文件系统 挂载目录”
    挂载是在使用硬件设备前所执行的最后一步操作。
    只需使用mount 命令把硬盘设备或分区与一个目录文件进行关联,然后就能在这个目录中看到硬件设备中的数据了。
    -a 挂载所有在/etc/fstab 中定义的文件系统(会在执行后自动检查/etc/fstab文件中有无疏漏被挂载的设备文件,如果有,则进行自动挂载操作。)
    -t 指定文件系统的类型
    # mount /dev/sdb2 /backup
    重启后挂载生效,把信息写入/etc/fstab文件中,各个字段的含义
    设备文件     一般为设备的路径+设备名称,也可以写唯一识别码(UUID, Universally Unique Identifier)
    挂载目录     指定要挂载到的目录,需在挂载前创建好
    格式类型     指定文件系统的格式,比如 Ext3、 Ext4、 XFS、 SWAP、 iso9660(此为光盘设备)等
    权限选项     若设置为 defaults,则默认权限为: rw, suid, dev, exec, auto, nouser, async
    自检         若为 1 则开机后进行磁盘自检,为 0 则不自检
    优先级         若“自检”字段为 1,则可对多块硬盘进行自检优先级设置
    /dev/sdb2 /backup ext4 defaults 0 0
    将文件系统为ext4的硬件/dev/sdb2在开机后自动挂载在/backup目录,并保持默认权限且无须开机自检
    [root@iscsi opt]# cat /etc/fstab 
    
    #
    # /etc/fstab
    # Created by anaconda on Fri Apr 17 01:00:00 2020
    #
    # Accessible filesystems, by reference, are maintained under '/dev/disk'
    # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    #
    UUID=1d476910-14ed-4b13-9552-f8b5827b23cc /                       xfs     defaults        0 0
    UUID=90158b02-2610-4365-80e4-404db8b18a76 /boot                   xfs     defaults        0 0
    UUID=f59c87c8-d44e-478f-b52e-62142da65e61 swap                    swap    defaults        0 0
    
    umount 命令,用于撤销已经挂载的设备文件,“umount [挂载点/设备文件]”
    # umount /dev/sdb2

    4 添加硬盘设备

    fdisk 用于管理磁盘分区,“fdisk [磁盘名称]”,添加、删除、转换分区等功能
    m 查看全部可用的参数
    n 添加新的分区
    d 删除某个分区信息
    l 列出所有可用的分区类型
    t 改变某个分区的类型
    p 查看分区信息
    w 保存并退出
    q 不保存直接退出
    [root@iscsi opt]# file /dev/sdb1
    /dev/sdb1: block special
    # mkfs.xfs /dev/sdb1  #格式化分区xfs的文件系统
    # mkdir /newFS
    # mount /dev/sdb1 /newFS/
    vim /etc/fstab
    /dev/sdb1 /newFS xfs defaults 0 0
    添加交换分区
    SWAP(交换)分区是一种通过在硬盘中预先划分一定的空间,然后将把内存中暂时不常
    用的数据临时存放到硬盘中,以便腾出物理内存空间让更活跃的程序服务来使用的技术,其设
    计目的是为了解决真实物理内存不足的问题。
    使用 SWAP 分区专用的格式化命令 mkswap,对新建的主分区进行格式化操作
    # mkswap /dev/sdb2
    # swapon /dev/sdb2 #把准备好的swap分区设备挂载到系统
    # vim /etc/fstab

    ---本章节,大量文章描述来自于《linux就该这么学》

  • 相关阅读:
    Win7下通过eclipse远程连接CDH集群来执行相应的程序以及错误说明
    Java中的Scanner类和String类
    java的eclipse操作和常用类Object的使用
    如何利用Cloudera Manager来手动安装parcel包
    java.io.IOException: Too many open files
    java中的包以及内部类的介绍
    HDFS中的checkpoint( 检查点 )的问题
    HDFS中Java的API使用测试
    利用ClouderaManager启动HBase时,出现 master.TableNamespaceManager: Namespace table not found. Creating...
    MapReducer程序调试技巧
  • 原文地址:https://www.cnblogs.com/yhq1314/p/13267724.html
Copyright © 2011-2022 走看看