Linux云计算架构-文件系统详解

Linux云计算架构-文件系统详解

1. 关于硬盘的一些结论

# 磁盘内部不是真空的,但空气很干净。
# 磁盘分扇区,是逻辑化数据的需要,能更好的管理硬盘空间。
# 硬盘的存储容量=磁头数(盘面数)×磁道(柱面)数×每道扇区数×每道扇区字节数
# 外圈数据读取快,内圈数据读取慢
# 磁盘写数据、windows的C盘、linux的boot分区都在磁盘的外圈,要求读写速度快。

2. 文件系统结构

Linux文件系统由三部分组成:文件名、inode、block
Linux文件系统: ext3、ext4、xfs
windows文件系统: FAT32、NTFS

# inode包含文件的元信息,具体来说有以下内容:
①文件的字节数
②文件拥有者的 User ID
③文件的 Group ID
④文件的读、写、执行权限
⑤文件的时间戳,共有三个:
  ctime指文件属性上一次修改的时间
  mtime指文件内容上一次修改的时间
  atime指文件上一次访问的时间。
⑥链接数,即有多少文件名指向这个inode
⑦文件数据 block 的位置
# 查看文件的inode信息
[root@master ~]# stat /etc/passwd
  文件:"/etc/passwd"
  大小:2262      	块:8          IO 块:4096   普通文件
设备:fd00h/64768d	Inode:35184466    硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:system_u:object_r:passwd_file_t:s0
最近访问:2020-07-14 22:26:24.741000178 +0800
最近更改:2020-06-23 17:54:17.315020864 +0800
最近改动:2020-06-23 17:54:17.315020864 +0800
创建时间:-
# inode详解
# inode号唯一标识一个文件
# 由于文件的实际内容和inode都会占用硬盘空间,在格式化时,操作系统自动将硬盘分为两个区域。一个是数据区,存放数据,另一个是inode区,存放inode所包含的信息。
# 在格式化时,inode节点的总数已经给定,用完了,就不能创建文件了。
# 每个inode节点的大小,一般是128字节或256字节。
# 假定在一块1GB的硬盘中,每个inode节点的大小为128字节,每1KB就设置一个inode,那么inode table的大小就会达到128MB,占整块硬盘的12.8%。
# inode数据量设置大一些:可以创建多个文件。占用空间比较大
# inode数据量设置小一些:可以创建很少文件。占用空间比较小


# 系统内部识别文件的过程:
# 首先,系统找到这个文件名对应的inode号码;
# 其次,通过inode号码,获取inode信息;
# 最后,根据inode信息,找到文件数据所在的block,读出数据。

# 查询一个普通文件的inode号码
[root@master ~]# ls -i a.txt
67394033 a.txt
# 查询一个目录文件的inode号码
[root@master ~]# ls -id /etc
33554497 /etc
# 查询系统中的inode的总数
[root@master ~]# df -i
文件系统                   Inode 已用(I)  可用(I) 已用(I)% 挂载点
/dev/mapper/centos-root 24637440  152916 24484524       1% /
devtmpfs                  228628     394   228234       1% /dev
tmpfs                     232906       1   232905       1% /dev/shm
tmpfs                     232906     935   231971       1% /run
tmpfs                     232906      16   232890       1% /sys/fs/cgroup
/dev/sda1                 524288     341   523947       1% /boot
tmpfs                     232906       6   232900       1% /run/user/42
tmpfs                     232906      17   232889       1% /run/user/0
/dev/sr0                       0       0        0        - /run/media/root/CentOS 7 x86_64


# 每次修改完服务器的配置文件,都要重启服务,即重新加载配置文件。原因在于:使用vim编辑配置文件,inode会变,要重新加载,才能找到并读取该配置文件。
# blocK详解【windows中称作 簇】
# block,也可以叫做IO块
# block是真正存储数据的地方。 
# block是文件系统中最小的存储单位
# 扇区是磁盘中最小的存储单位
# block设置大:效率高,利用率低。
# block设置小:效率低,利用率高。
# 查看系统blocK的大小
[root@master ~]# stat a.txt | grep IO
  大小:47        	块:8          IO 块:4096   普通文件

3. 如何解决磁盘空间未满,但是无法创建文件的问题?

# 成功创建文件有两个前提:①所在分区有剩余空间 ②所在分区有剩余索引节点
# 若存在剩余空间,但不存在剩余的索引节点,则不能成功创建文件。
[root@master ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   47G  3.9G   44G    9% /
devtmpfs                 894M     0  894M    0% /dev
tmpfs                    910M     0  910M    0% /dev/shm
tmpfs                    910M   11M  900M    2% /run
tmpfs                    910M     0  910M    0% /sys/fs/cgroup
/dev/sda1               1014M  179M  836M   18% /boot
tmpfs                    182M  8.0K  182M    1% /run/user/42
tmpfs                    182M   24K  182M    1% /run/user/0
/dev/sr0                 4.3G  4.3G     0  100% /run/media/root/CentOS 7 x86_64
[root@master ~]# df -i
文件系统                   Inode 已用(I)  可用(I) 已用(I)% 挂载点
/dev/mapper/centos-root 24637440  152916 24484524       1% /
devtmpfs                  228628     394   228234       1% /dev
tmpfs                     232906       1   232905       1% /dev/shm
tmpfs                     232906     936   231970       1% /run
tmpfs                     232906      16   232890       1% /sys/fs/cgroup
/dev/sda1                 524288     341   523947       1% /boot
tmpfs                     232906       6   232900       1% /run/user/42
tmpfs                     232906      17   232889       1% /run/user/0
/dev/sr0                       0       0        0        - /run/media/root/CentOS 7 x86_64
# 解决办法
①删除部分缓存文件,释放一部分的inode。
②备份部分缓存文件,删除文件,释放出inode。然后新建一个目录,重新挂载一个新分区,下次写数据写入新分区的挂载目录下。

# 一块新分区,在格式化后,inode总数已经固定了,可以通过-I参数指定inode的数量。

4. 如何修复服务器文件系统

# 当服务器宕机后,重启报错时,若要修复文件系统才好用,具体用法可以上网搜,这里只给出方法。
# 用之前了解清楚,请示领导才好用
输入root密码
fsck -f -y /dev/sda1   # 修复引导分区文件系统
fsck -f -y /dev/sda3   # 修复/dev/sda3对应的文件系统
reboot

想了解存储结构和磁盘分区、格式化、挂载内容的可以看博主的另一篇博客:存储结构和磁盘分区、格式化、挂载

两篇博客的学习,对linux文件系统的学习已经足够了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值