• 第十三周学习笔记


    文件系统:

    block:
    文件系统以block为单位,一般大小为1024bytes(1k)或2K或4K。块的出现用以提升读写性能,一般来讲不到一个block的文件也以一个block来存储,虽然浪费,但是比起速度来讲还是很值得


    inode
    一个大的文件包含多个block,block在磁盘上分散,如果不予以指针,每次读取需要扫描整个磁盘。所以inode中主要记录了元数据(inode号、文件类型、权限、文件所有者、大小、时间戳等)另外最重要的是还存储了指向属于该文件的block的指针


    bmap
    在写入文件的时候,如果需要找出空闲的block而整个磁盘扫描的话就会很慢,bmap能够标识block,从而更快的找出空闲的block,bmap的一个字节能够标识8个block,bmap自身需要占用一些block


    inode表
    用一个1k的block来存储一个128字节的inode太浪费了。所以将ionde组合起来成为inode表(ionde table)来存储,当一个文件系统创建时,所有的inode已经成为ionde表的形式进行管理了

    块组(block group)
    bmap和inode表都需要存储空间,如果数据大了,也需要不小的存储空间来存储,主要是解析起来也慢,所以利用块组来进行优化。每个组中都存有本组的inode table范围, bmap等。块组的大小根据一个block的大小能够标识多少个block来划分,一个完整占用的bmap能够标识1024*8=8192个block(这些block存储数据区和元数据区)。所以一个块组的大小大概是8M

    超级块(superblock)
    用以存放一个文件系统究竟存放了多少个块组,每个块组又有多少block和多少inode号等等信息,还有本间系统本身的属性信息如各种时间戳。block总数量和空间数量、inode总数量和空闲数量,以及当前文件系统是否正常等等。用df -hT命令就能读取每个文件系统的超级块。超级块对文件系统及其重要,超级块的丢失或者损坏都将会导致文件系统的损坏,所以一般会在多个块组中备份。ext家族的文件系统可以使用dumpe2fs -h来获取

    磁盘Raid

    Raid0
    Raid0至少需要两块磁盘,将一个数据切割,写入到两个磁盘的block上。这样做能大大提高磁盘的读写能力。但是坏处是非常的不安全,当有一个磁盘损坏,另一块磁盘因为数据的不完整,也随之废弃。

    Raid1
    Raid1至少也需要两块磁盘,将一个数据同时写入到两个磁盘的block上,就相当于将一份数据复制成两份写到不同的磁盘上。这样做的好处是大大提高了磁盘的安全性,即使一块磁盘损坏了,另一块磁盘也能立刻投入工作。缺点是:增加了磁盘的成本的同时,容量却没有增大,仅仅只有一个磁盘的容量。另外虽然写入磁盘的速度不变,但是同时又系统调用IO写入磁盘的压力就会变大,增加了系统的压力。另外理论上来说,读的速度和Raid0的速度是一样的

    Raid10
    Raid10至少需要4块磁盘,如字面意思先对两两磁盘进行Raid1操作,形成两个Raid1,再对两个Raid1进行Raid0操作。这样当数据写入的时候,就能分片写入到Raid1中,Raid1又会对其进行“备份"。即使一个Raid1中的一个磁盘废弃,这样也不会导致数据的丢失,除非同组的Raid1全部报废,那么就会造成数据的丢失。所以,这样大大提高了数据的安全和读写速度

    Raid01

    Raid10至少需要4块磁盘,如字面意思先对两两磁盘进行Raid0操作,形成两个Raid0,然后对这两个Raid0进行Raid1操作。
    这种方案安全性完全得不到保证,因为一个Raid0中的磁盘损坏,这个Raid0就会损坏,读写压力也就完全的到了另外一个RAID0上。所以这种方案很少人使用,基本可以忽略。

  • 相关阅读:
    Crontab '2>&1 &' 含义
    form提交方式Methor
    oracle基本术语
    在工作中常用的sql语句
    常用的删除大数据方法(游标+分段)
    oracle9i、10g、11g区别
    SSH面试总结(Hibernage面试)
    实习生招聘笔试
    TopCoder上一道600分滴题
    Oracle数据库面试题汇总
  • 原文地址:https://www.cnblogs.com/gohrx/p/10928920.html
Copyright © 2020-2023  润新知