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)