Ceph入门到精通- Linux 磁盘管理(block 与 inode)

news2024/9/24 13:20:56

1  硬盘 block 与 inode 详解

1.1  Sector(扇区)与 Block(块)

1)  硬盘的最小存储单位:sector(扇区),每个扇区储存 512 字节;操作系统会一次性连续读取多个扇区,即一次性读取多个扇区称为一个 block(块)

2)  文件存取的最小单位:block(块),由多个扇区组成;block 的大小常见的有 1KB、2KB、4KB,在 linux 中常见设置为 4KB,即连续 8 个扇区组成一个 block;/boot 分区的 block 一般为 1KB

3)  查看 block 的方法:

ext3 与 ext4 格式化文件系统:

       dumpe2fs /dev/sda1 | grep "Block size"

       tune2fs -l /dev/sda1 | grep "Block size"

       stat /boot/ | grep "IO Block"

   xfs 格式化文件系统:

       xfs_info /dev/sda1

 

stat /boot/ | grep "IO Block"

4)  每个 block 只能存放一个文件,如果文件的大小比 block 大,会申请更多的 block;如果文件的大小比 block 小,仍会占用一个 block,剩余的空间会浪费

例:有 1 万个文件,大小为 10B,block 为 4KB

理论上占用空间大小:10000 * 10B=97.656MB

实际上占用空间大小:10000 * 4KB = 40GB

1.2  硬盘 block 与 inode 详解

1.2.1   superblock、inode 与 block

操作系统对于文件数据的存放包括两个部分:1 文件内容、2 权限及文件属性

在硬盘分区中,还有一个超级区块(superblock)

1)  superblock:记录文件系统的整体信息,包括 inode 与 block 的总量、使用大小、剩余大小以及文件系统的格式与相关信息等

2)  inode:记录文件的属性、权限,同时会记录该文件的数据所在的 block 编号

3)  block:存储文件的内容

1.2.2   inode 与 block

每个 inode 与 block 都有编号,而每个文件都会占用一个 inode,inode 内则有文件数据放置的 block 号码;能够找到文件的 inode 就可以找到该文件所放置数据的 block 号码,从而读取文件内容

1)在格式化时可以指定默认的 inode 与 block 的大小;-b 指定默认 block 值,-I 指定默认 inode 值,例:mkfs.ext4 –b 4096 –I 256 /dev/sdb

2)查看 inode 的方法:

ext3 与 ext4 格式化文件系统:

dumpe2fs /dev/sda1 | grep "Inode size"

tune2fs -l /dev/sda1 | grep "Inode size"

 

   xfs 格式化文件系统:

 

2  硬链接

硬链接:Linux 系统多个文件名可以指向同一个 inode,这意味着可以用不同的文件名访问同样的内容,对文件内容进行修改会影响到所有文件名;但删除一个文件名不会影响另一个文件名的访问。

硬链接不能跨分区链接,只能对文件生效,对目录无效,链接后的文件不占用系统多余的空间

命令:ln test1.txt test2.txt         #test1.txt 为源文件,test2 为目标文件

 

3  软链接(符号链接)

软链接文件的 Inode 号不同,可以跨分区链接,支持目录同时也支持文件的链接;不管是删除源文件还是重启系统,该软链接还存在,但文件内容会丢失,一旦新建源同名文件,软链接文件恢复正常

命令:ln –s test1.txt test2.txt

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/798419.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

抖音短视频seo矩阵系统源码开发部署技术分享

抖音短视频的SEO矩阵系统是一个非常重要的部分,它可以帮助视频更好地被搜索引擎识别和推荐。以下是一些关于开发和部署抖音短视频SEO矩阵系统的技术分享: 一、 抖音短视频SEO矩阵系统的技术分享: 关键词研究:在开发抖音短视频SEO矩…

cvc-complex-type.2.4.a: 发现了以元素 ‘base-extension‘ 开头的无效内容。应以 ‘{layoutlib}‘ 之一开头。

✍️作者简介:沫小北(专注于Android、Web、TCP/IP等技术方向) 🐳博客主页:沫小北 CSDN、51cto博客、稀土掘金、简书、知乎、开源中国、博客园、慕课网 🌐系列专栏:码农小北 🔔如果文…

防止连点..

1.连点js文件 let timer; letflag /*** 节流原理:在一定时间内,只能触发一次** param {Function} func 要执行的回调函数* param {Number} wait 延时的时间* param {Boolean} immediate 是否立即执行* return null*/ function throttle(func, wait 500…

[Java] 单例设计模式详解

模式定义:保证一个类只有一个实例,并且提供一个全局访问点,时一种创建型模式 使用场景:重量级的对象,不需要多个实例,如线程池,数据库连接池 单例设计模式的实现 1.懒汉模式:延迟…

牛客上面的约瑟夫环问题

对于本题 我感觉还是链表做起来舒服 数组也可以做 但是数组需要去控制循环 不太好控制 我之前搞了 最后看别人的实现 但是链表搞了一次就搞好了 香的嘞~ 下面是代码 用单链表实现循环 再去删除要删除的人 5个人 数到2 你们在纸上画图 我就不画了 对于数组实现你们可以去…

python读取json文件

import json# 文件路径(同目录文件名即可,不同目录需要绝对路径) path 1.json# 读取JSON文件 with open(path, r, encodingutf-8) as file:data json.load(file)#data为字典 print(data) print(type(data))

前端Vue入门-day03-用Vue实现工程化、组件化开发

(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 生命周期 Vue 生命周期 和 生命周期的四个阶段 Vue 生命周期函数(钩子函数) 案例…

为公网远程访问树莓派配置一个固定TCP地址

今天我们就为大家介绍,如何设置cpolar,为树莓派的SSH构建一个永久固定TCP地址。 如果看过我们之前的文章介绍,就会很轻易的发现,能够让公共互联网通过SSH访问树莓派的关键,是cpolar打通的数据隧道,因此想要…

【双指针优化DP】The 2022 Hangzhou Normal U Summer Trials H

Problem - H - Codeforces 题意: 思路: 首先很明显是DP 因为只有1e6个站点,因此可以以站点作为阶段 注意到K很小,因此可以尝试把这个当作第二维 设dp[i][j]为到达第i个站点,已经花了j元钱的最小步数 然后就想了一…

Redis持久化机制 RDB、AOF、混合持久化详解!如何选择?| JavaGuide

本文已经收录进 JavaGuide(「Java学习+面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。) Redis 持久化机制属于后端面试超高频的面试知识点,老生常谈了,需要重点花时间掌握。即使不是准备面试,日常开发也是需要经常用到的。 最近抽空对之前写的 Redis 持久化…

18 张图,总结 Java 容器化的最佳实践~

一、系统选择 关于最基础的底层镜像, 通常大多数我们只有三种选择: Alpine、Debian、CentOS; 这三者中对于运维最熟悉的一般为 CentOS, 但是很不幸的是 CentOS 后续已经不存在稳定版, 关于它的稳定性问题一直是个谜一样的问题; 这是一个仁者见仁智者见智的问题, 我个人习惯是能…

RunnerGo:详细使用教程,带你轻松拿捏性能测试

RunnerGo简介: RunnerGo是基于go语言开发的轻量级性能测试平台,支持接口测试、自动化测试、性能测试等3大测试模块,相对于传统的性能测试工具,它具有运行速度快、资源占用少等特点。并且还支持可实时查看性能测试报告的平台 Run…

mybatisplus入门教程

mybatisplus入门教程 文章目录 mybatisplus入门教程什么是Mybatis Plus快速入门创建数据库 gk_mybatis_plus创建数据库表添加数据创建空的Spring Boot项目添加依赖配置数据库连接MySQL编写代码实体类 GkUserDomainmapperxml映射文件业务层,实现类控制层创建请求配置…

Vue2基础八、插槽

零、文章目录 Vue2基础八、插槽 1、插槽 (1)默认插槽 作用:让组件内部的一些 结构 支持 自定义需求: 将需要多次显示的对话框, 封装成一个组件问题:组件的内容部分,不希望写死,希望能使用的时候自定义。…

Redission分布式锁详解

前言 ​ 在分布式系统中,当不同进程或线程一起访问共享资源时,会造成资源争抢,如果不加以控制的话,就会引发程序错乱。而分布式锁它采用了一种互斥机制来防止线程或进程间相互干扰,从而保证了数据的一致性。 常见的分…

【低代码】对低代码未来发展方向的思考

写在前面 看似不起波澜,日复一日的努力,会突然在某一天,让你看到坚持的意义。 1 基础介绍 1.1 什么是低代码 低代码开发是一种软件开发方法,它允许开发人员使用图形界面和少量代码来快速构建应用程序。开发人员可以使用预定义的…

Docker 之 Consul容器服务更新与发现

一、Consul介绍 1、什么是服务注册与发现 服务注册与发现是微服务架构中不可或缺的重要组件。起初服务都是单节点的,不保障高可用性,也不考虑服务的压力承载,服务之间调用单纯的通过接口访问。直到后来出现了多个节点的分布式架构&#xff…

你们公司的【前端项目】是如何做测试的?字节10年测试经验的我这样做的...

前端项目也叫web端项目(通俗讲就是网页上的功能)是我们能够在屏幕上看到并产生交互的体验。 前端项目如何做测试? 要讲清楚这个问题,先需要你对测试流程现有一个全局的了解,先上一张测试流程图: 测试流程…

QT--day3(定时器事件、对话框)

头文件代码&#xff1a; #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTimerEvent> //定时器事件处理时间头文件 #include <QTime> //时间类 #include <QtTextToSpeech> #include <QPushButton> #include <QLabel&g…

AXI协议之AXILite开发设计(二)

微信公众号上线&#xff0c;搜索公众号小灰灰的FPGA,关注可获取相关源码&#xff0c;定期更新有关FPGA的项目以及开源项目源码&#xff0c;包括但不限于各类检测芯片驱动、低速接口驱动、高速接口驱动、数据信号处理、图像处理以及AXI总线等 二、AXI-Lite关键代码分析 1、时钟与…