zoukankan      html  css  js  c++  java
  • linux系统ext文件系统知识

     ext2文件系统细节

    我们都知道,操作系统中的数据分为文件内容和文件属性两部分,其中文件内容就是文件的实体数据,而文件属性就是文件类型、权限、属主、修改时间等信息。操作系统会将上述文件的内容放入磁盘文件系统的inode中,而把文件的实体数据存放于对应的block中。除了inode和block信息外,操作系统还会记录文件系统的整体信息于superblock中,这个superblock包括整个文件系统的inode和block的总的数量,已经使用的数量,剩余数量等。

    在linux支持的文件系统类型中,其中ext2、ext3、ext4是Red hat和Centos采用的默认文件系统类型,其中ext2、ext3、ext4是依次升级的ext文件系统版本,这些不同的文件系统的高版本是向下兼容的,因此,我们就从ext2文件系统开始给大家文件系统的相关知识体系。

    相关操作系统使用的文件系统:

    SUSE linux的默认文件系统ReiserFS文件系统

    IBM的AIX使用的jfs日志文件系统

    Sun OS所用的文件系统ufs

    Centos7采用XFS文件系统

    Centos6采用ext4文件系统

    Centos5采用ext3文件系统

    一个ext2文件系统一般都会包含至少inode内容与block区域这两个部分

    mkfs  -t  ext2  -b  4096  -i  1024  /dev/sdb1

    在inode中一般包括如下文件属性信息:

    文件的拥有者和所属用户组

    文件的访问权限

    文件的类型

    文件的访问、修改等时间

    文件的大小

    文件的各种标志,如SUID和SGID等

    指向文件内容数据块的指针。

    一个inode的大小通常为128字节。(ext4中的inode大小将扩展到256字节)

    inode表用于跟踪定位每个文件,包括位置、大小等(但不包括文件名,文件名包含于dentry结构中),一个块组只有一个inode表。

    文件系统小结:

    1、文件系统是对一个存储设备上的数据和元数据进行组织的一种机制

    2、分区必须格式化创建文件系统才能存放数据

    3、一个分区只能有一种文件系统

    4、linux下常见文件系统ext2、ext3、ext4、zfs、xfs(Centos7)和Reiserfs(单独安装)。windows下常见文件系统NTFS,FAT32

    文件系统选型简单介绍

    1)SAS/SATA硬盘文件系统选择:

    a.reiserfs     大量小文件业务首选reiserfs(100K以内)

    b.xfs            有的门户的数据库MySQL业务

    c.ext4          视频下载 ,流媒体,数据库,小文件业务也OK,可以用默认的

    d.ext2          没有日志,蓝汛的cache业务,CDN网站加速服务的

    常规应用:

    对于Centos5.x系列,常规应用就默认的 ext3 文件系统即可

    对于Centos6.x系列,常规应用就默认的 ext4 文件系统即可

    对于Centos7.x系列,常规应用就默认的 xfs 文件系统即可

    注意:如果服务器数量少,怎么选择都可以

    如果海量服务器,考虑维护成本和性能,选一个折中

    选择小结:

    a.Centos默认的文件系统都是比较优秀的

    b.xfs、reiserfs需要单独安装。默认不支持的。海量服务器使用多种文件系统维护可能不方便

    c.大并发做磁盘系统的优化是一方面,但更多的还是在网站前端增加缓存服务器(squid、vamish),存储数据库的前端增加缓存(memcache、redis),这是架构师的能力

    2)SSD文件系统选择

    ext4/reiserfs可以作为SSD文件系统,但未对SSD做优化,不能充分发挥SSD性能,并影响SSD使用时间

    btrfs对SSD作了优化,mount通过参数启用。但btrfs仍处于实验阶段,生产环境谨慎使用

    安装 xfs 文件系统步骤:

    yum  install  xfsprogs  kmod-xfs  xfsdump  xfsprogs-devel

    rpm  -qa  xfsprogs  kmod-xfs  xfsdump  xfsprogs-devel

    modprobe  xfs

    lsmod  |  grep  xfs

    mkfs.xfs  /dev/sdc

    dd  if=/dev/zero  of=/dev/sdc  bs=1M  count=100

    mount  -t  xfs  -o  loop  /dev/sdc  /mnt

    df  -hT(查看当前挂载的文件系统)

    普通ext4文件系统格式化及挂载:

    mkfs  -t  ext4  -b  4096  -I  256  /dev/sdb1

    tune2fs  -c  -1  /dev/sdb1(防止自动检查)

    [root@redhat~]#  mount  -t  ext4  /dev/sdb1  /mnt

    [root@redhat~]#  df  -hT

    磁盘管理命令总结:

    磁盘与目录的容量:df,du

    df:列出文件系统的整体磁盘使用量

    du:评估文件系统的磁盘使用量(常用于评估目录所占容量)

    1、将容量结果以易读的容量格式显示出来:df  -h

    2、将 /etc 下面的可用的磁盘容量以易读的容量格式显示出来:df  -h  /etc

    3、将目前各个分区当中可用的 inode 数量列出:df  -ih

    4、检查根目录下面每个目录所占用的容量:du  -sm  /*

    dumpe2fs  /dev/sdb1:查看文件系统的内部细节

    磁盘分区:fdisk

    fdisk  /dev/sda   

    parted  /dev/sda(支持大于2T的硬盘分区)

     swapon/swapoff  使用swap分区,例如:swapon  /dev/sdb1

    mkswap,格式化swap分区

    磁盘格式化:mkfs  -t  ext3  /dev/sda6

    磁盘检验:fsck,badblocks

    fsck  -C  -f  -t  ext3  /dev/sda6   没坏的磁盘一定不要用

    badblocks  -sv  /dev/sda6         此命令可被fsck替代

    设置开机挂载

    1、开机挂载 /etc/fstab 及 /etc/mtab

     将/dev/sdb2每次开机都自动挂载到/tmp/sdb2

    编辑/etc/fstab

    写入:/dev/sdb2     /tmp/sdb2     ext3     dufaults     0     0

    其他:

    tune2fs 修改文件系统信息

    megacli 查看raid信息

    ipmitools 查看硬件信息工具

    resize2fs 调整文件系统大小(LVM,drbd)

  • 相关阅读:
    批量新增百万条数据 十百万条数据
    sqlserver 组内排序
    EF ++属性会更新实体
    Entity Framework Core: A second operation started on this context before a previous operation completed
    abp Cannot access a disposed object. A common cause of this error is disposing
    abp xunit Can not register IHostingEnvironment. It should be a non-abstract class. If not, it should be registered before.”
    hangfire enqueued but not processing(hangfire 定时任务入队列但不执行)
    EF 更新实体 The instance of entity type 'BabyEvent' cannot be tracked because another instance
    datatable to entiy list 不支持可空类型和枚举类型
    webapi 设置不显示接口到swaggerUI
  • 原文地址:https://www.cnblogs.com/axzq/p/9691547.html
Copyright © 2011-2022 走看看