Linux磁盘及文件系统管理初步

(一)Linux系统管理

  • 磁盘分区及文件系统管理
  • RAID
  • LVM
  • 网络属性管理
  • 程序包管理
  • sed and awk
  • 进程查看和管理
  • 内核管理(编译和安装)
  • 系统启动流程
  • 定制、编译内核、busybox
  • 系统安装:kickstart,dhcp,pxe
  • shell脚本编程

(二)磁盘分区及文件系统管理

  • 计算机组成:CPU,Memory(RAM),I/O
    • 对于服务器来说,I/O主要包括:Disks,EhterCard
    • Disks:持久存储数据
    • 磁盘的接口类型
      • IDE(ata,二者不完全等同):并口,133MB/s;iops:100次
      • SCSI:并口,UltraSCSI320:320MB/s; UltraSCSI640:640MB/s;iops:150次
      • SATA:串口,6gbps,处以8后单位才和IDE一致,一个是字节,一个是位;iops:100次
      • SAS:串口,6gbps;iops:150次
      • SATA是IDE的升级版
      • SAS是SCSI的升级版
      • IDE和SATA设计为桌面应用,在服务器上使用很快会损坏
      • USB:串口,3.0:480MB/s
      • 并口:同一线缆可以接多块设备
        • IDE:两个,主,从
        • SCSI
          • 宽带:16个设备-1,因为有一个接口被使用
          • 窄带:8个设备-1
      • 串口:同一线缆只能接一个设备
    • 硬盘的存储机制
      • 机械硬盘
      • 固态硬盘:PCI-E接口的固态硬盘iops可以达到几十万,高端服务器使用;普通桌面固态硬盘使用SATA接口,速度比机械硬盘提高三到五倍
    • 机械硬盘工作原理
      • track/磁道:同心圆
      • 平均寻道时间:5000rpm,7200rpm,10000rpm,15000rpm;rotation per minute
        • 旋转如此之快,必须真空封装,否则一粒灰尘就像巨石一样
      • sector/扇区:512bytes
      • cylinder/柱面:像一个薄薄的铁桶
        • 分区的划分基于柱面。越靠外的分区性能越好,因为单位时间内划过的距离大,C盘在最外层。
  • Linux哲学思想:一切皆文件
    • 设备类型
      • 块设备(block):随机访问,数据交换单位是“块”
      • 字符设备(character):线性访问,数据交换单位是字符
    • 设备文件
      • /dev
      • 关联至设备的驱动程序;设备的访问入口
      • 没有大小,只有设备号
        • major:主设备号,区分设备类型;用于标明设备所需要的驱动程序
        • minor:次设备号,区分同种类型下的不同设备;是特定设备的访问入口
      • mknod命令:创建块或字符的特殊文件(设备文件,虽然二者不完全等同)
        • mknod [OPTION]... NAME TYPE [MAJOR MINOR];TYPE指块(b)还是字符(c)。例如:mknod /var/testdev c 111 1
          • -m MODE:创建后的设备文件的权限
      • 设备文件名:由“ICANN/互联网名称地址分配机构”决定
        • IDE:/dev/hd[a-z]
        • SCSI, SATA, USB, SAS:/dev/sd[a-z]
        • 分区是设备名加数字,例如:/dev/sda1
        • 注意:CentOS 6和7将硬盘设备文件统统标识为sd
        • 以上命名在每次开机时,顺序有可能变,因此引用设备采用下面的方式
        • 引用设备的方式
          • 设备文件名
          • 卷标
          • UUID
      • 磁盘分区两种类型:MBR,GPT
        • MBR:Master Boot Record/主引导记录,编号为0的扇区,512bytes。分为三个部分
          • 前446bytes:bootloader,引导启动操作系统的程序
          • 64bytes:分区表,每16bytes标识一个分区,所以一共只能有四个分区
            • 可以再拿出一个分区包含一个新分区表
            • 主分区,扩展分区,逻辑分区
            • 4个主分区
            • 3个主分区1个扩展分区,扩展分区里包括N个逻辑分区
          • 2bytes:MBR区域的有效性标识:55AA表示有效,否则为无效
          • 主分区和扩展分区的标识:1-4,如sda1
          • 逻辑分区只能从5开始,即使1-4没用完
        • GPT:课外作业
      • fdisk:分区命令
        • 查看磁盘的分区信息:fdisk -l [-u] [device...]:列出指定磁盘设备上的分区情况
        • 管理分区:fdisk device
          • fdisk提供了一个交互式接口来管理分区,它有许多子命令,分别用于不同的管理功能;所有的操作均在内存中完成,没有直接同步到磁盘,直到使用w命令保存到磁盘上
          • 子命令:
            • m:获取帮助
            • n:添加新分区
            • d:删除分区
            • t:改一个分区的system id
              • 主分区:83
              • 扩展分区:5
              • 逻辑分区:82
            • l:列出已知的分区类型
            • p:显示现有分区信息
            • w:保存退出
            • q:不保存退出
          • 注意:在已经分区,并且已经挂载其中某个分区的磁盘设备上创建的新分区,内核可能在创建后无法直接直接识别
            • 查看内核是否已经识别新分区的方法是:cat /proc/partitions
            • 通知内核强制重读磁盘分区表
              • CentOS 5:partprobe [device];如果device省略,则强制重读所有设备的分区表
              • CentOS 6/7:partx,kpartx
                • partx -a [device]
                • kpartx -af [device
            • 可能需要多次通知强制读取才能有效
      • 其它分区创建工具:parted,sfdisk

 

实际操作的一个列子:

第一步:fdisk /dev/sda

第二步:键入“P”,分区信息

第三步:键入“n”,添加一个新分区

  • 自动给定分区编号(5已经有了,所以新分区编号为6)
  • 指定起始扇区,直接按回车表示使用默认值
  • 指定扇区大小(结束扇区):+size。直接按回车表示使用默认值
  • 再次键入“P”查看一下
  • 键入“d”
  • 键入“6”,把刚才的分区删除

第四步:再次键入“n”,添加一个新分区

第五步:再次键入“n”,添加一个新分区

第六步:键入“w”,保存退出

 

      • 文件系统
        • 格式化
          • 低级格式化:出厂时,由硬件生产商进行的,在分区之前进行,作用是划分磁道
          • 高级格式化:在分区之后对分区进行,不是对磁盘进行,作用是创建文件系统
        • 元数据区,数据区
          • 元数据区:
            • 文件元数据:inode(index node)
              • 大小,权限,属主属组,时间戳,数据块指针(限制了文件的大小),等等。但是不包含文件名。
            • 因为inode大小都是一样的,所以高级格式化的时候,会直接创建好所有的inode,只不过都是空的
          • 数据区:包含了若干个block块
            • 每个文件只能包含整数个block,会有一定的浪费;这就是为什么文件的总大小和使用的总空间有时候会不一致;
            • 如果文件包含的block都是不连续的,说明碎片很多
            • 数据区里需要有一段预留空间,供管理人员移动文件等管理操作时使用
          • 不同的文件系统设计,导致了各个的特点不同
          • 块和inode的比率,需要根据经验值来判断,让浪费不要太多
          • 符号链接文件:元数据中,数据块指针里存储的是真实文件的访问路径
          • 设备文件:元数据中,数据块指针里存储的是设备的主设备号和次设备号
        • bitmap index / 位图索引:在元数据区,有两段存储空间,每一位对应一个inode或者block,表示该inode或者block是否被使用
        • 实际中,每个分区被分成了很多个块组,每个块组包含自己元数据区和数据区,
          • 块组信息存储在超级块中,超级块和它的冗余备份分别存储在块组中
          • 每个块组的元数据区中有块组描述符 / group descriptor,记录了该块组的信息
          • 位图索引都是在块组级别实现的
        • ls -i:查看文件的inode编号
        • 目录机制:
          • 目录也是文件
          • 数据块中存储的是内部的一级子目录和文件对应的inode
        • VFS:virtual file system,屏蔽底层不同的文件系统的差异
        • 各种文件系统
          • Linux的文件系统
            • ext2,ext3(CentOS 5),ext4(CentOS 6),该系列的文件系统表现不佳,接近于废弃状态
            • xfs(CentOS 7),企业级的64位文件系统,单个文件大小没有上限
            • reiserfs,反删除功能非常好,很容易将删除的文件找回来。但是领导者入狱,所以江河日下。
            • btrfs:目前仍然处于测试实验型阶段
          • 光盘的文件系统:iso9660
          • 网络文件系统:nfs,cifs
          • 集群文件系统:gfs2,ocfs2
          • 内核级分布式文件系统:ceph
          • windows文件系统:vfat,ntfs
          • 伪文件系统:proc,sysfs,tmpfs,hugepagefs
          • Unix文件系统:UFS,FFS,JFS
          • 交换文件系统:swap(虚拟内存和真实内存进行数据交换时使用)
          • 用户空间的分布式文件系统:mogilefs,moosefs,glusterfs
        • 文件系统管理工具
          • 创建文件系统的工具
            • mkfs
              • 具体实现各不相同,mkfs.ext2, mkfs.ext3, mkfs.ext4, mkfs.xfs, mkfs.vfat...
              • 或者统一使用mkfs -t命令,例如mkfs -t ext2 /dev/sda3
          • 检测及修复文件系统的工具
            • fsck
              • fsck.ext2, fsck.ext3...
          • 查看文件系统属性的工具
            • ext系列文件系统:dumpe2fs,tune2fs
            • 其它各个文件系统工具各不相同
          • 调整文件系统特性的工具
            • ext系列文件系统:tune2fs
            • 其它各个文件系统工具各不相同
        • journal/日志
          • 文件系统可以分为有日志的文件系统和无日志的文件系统
            • ext2无日志,其它linux的文件系统都有日志
          • 日志原理是,除了元数据区和数据区,再划分一个日志区,在创建一个文件的时候,先把元数据放到日志区,如果创建成功,再把元数据移到元数据区。如果中间出现断电等问题,查看日志区即可知道哪些文件的创建有问题
        • 链接文件:访问同一个文件的不同路径
          • 硬链接:指向同一个inode的多个文件路径
            • 目录不支持硬链接,避免循环链接
            • 硬链接不能跨文件系统
            • 创建硬链接会增加inode的引用计数
            • 创建方式:ln SourceFile LinkFile
              • -v:verbose,显示过程
          • 软链接/符号链接:指向一个文件路径的另一个文件路径;即inode的数据指针里存放了一个字符串(一个路径)
            • 软链接文件与源文件是两个独立的文件,各自有自己的inode
            • 支持对目录创建符号链接
            • 可以跨文件系统
            • 删除软链接文件不影响源文件;但删除源文件,软链接会变成无效链接
            • 创建软链接不会增加源文件inode的引用计数
            • 文件大小为其指向的源文件路径字符串的字节数
            • 软链接文件的权限通常为777,但是这不是源文件的权限
            • 创建方式:ln -s SourceFile LinkFile
              • -v:verbose,显示过程
posted on 2017-10-19 01:19  小兔无情  阅读(218)  评论(0编辑  收藏  举报