设为首页 收藏本站
查看: 505|回复: 0

[经验分享] Linux磁盘及文件系统管理初步

[复制链接]

尚未签到

发表于 2017-11-17 18:52:55 | 显示全部楼层 |阅读模式
  (一)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,显示过程







运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-408002-1-1.html 上篇帖子: Linux Supervisor的安装与使用入门 下篇帖子: Linux 基本命令-----常用操作分类
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表