所谓的inode就是索引节点(index node)的意思,在每一个存储设备被格式化创建文件系统后,所有的文件大致被分为了两部分,分别是inode和block。
其中inode用来存储文件属性信息,其中包括了文件大小,文件的归属者,文件的归属组,权限,类型,修改时间,以及指向文件实体数据(block)的指针。
block中存储的就是文件的实际数据,比如说,照片,视频,音频等等,但是有一点需要注意!就是inode当中不包含文件名!一个文件的文件名,存储在上级目录的block中!
其实inode和block之间的关系就像是一本书一样,inode是一本书的目录,一本书会有很多内容,一个知识点或者一个故事会占很多页,一个block就相当于书中的一页内容。
磁盘分区后格式化为etx4文件系统后,产生一定数量的inode和block
inode存放文件属性信息以及指向文件实体的指针
ext3/ext4文件系统block存放文件的实际数据
inode表现形式为一串数字,不同文件对应的inode在os中是唯一的
ext3/ext4文件系统下,正常情况一个文件创建有且只能占用一个inode和至少占用一个block,大文件占用多个block,如果一个block未占完,剩余空间也无法使用
磁盘读取数据是按block为单位读取
一个文件可能占有多个block,每读取一个block就会消耗一次磁盘IO,想提升IO性能,尽可以一次读取尽量多。
一个block只能存放一个文件,也就是无论文件多小,这个block剩余空间浪费掉了,假如一个文件大小为4k,但是一个小文件1k,3k剩余空间被浪费了,磁盘IO是衡量磁盘性能重要指标。
每个inode都有一个号码,操作系统用inode号码来识别不同的文件
linux系统内部不使用文件名,而是用inode号码来识别文件
对于用户来说,文件名只是inode号码便于识别的别称,即系统识别文件的inode号码,用户识别文件的文件名
ls -i命令,查看文件名对应的inode号码
[root@localhost ~]# ls -i
268638004 anaconda-ks.cfg 268876608 模板 2562798 文档 2562797 桌面
268638003 original-ks.cfg 403106047 视频 135191453 下载
403106045 公共 268876616 图片 135191480 音乐
查看文件系统的inode数量信息(总数,已用,可用)
[root@localhost ~]# df -i
文件系统 Inode 已用(I) 可用(I) 已用(I)% 挂载点
/dev/sda3 103654400 148467 103505933 1% /
devtmpfs 478738 383 478355 1% /dev
tmpfs 482689 1 482688 1% /dev/shm
tmpfs 482689 1454 481235 1% /run
tmpfs 482689 16 482673 1% /sys/fs/cgroup
/dev/sda1 153600 341 153259 1% /boot
tmpfs 482689 6 482683 1% /run/user/42
tmpfs 482689 16 482673 1% /run/user/0
Linux df命令用于显示目前在Linux系统上的文件系统的磁盘使用情况统计
1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
2.软链接可以 跨文件系统 ,硬链接不可以
3.软链接可以对一个不存在的文件名进行链接
4.软链接可以对目录进行链接
1.硬链接,以文件副本的形式存在。但不占用实际空间。
2.不允许给目录创建硬链接
3.硬链接只有在同一个文件系统中才能创建
软连接(符号链接) | 硬链接 | |
---|---|---|
删除原始文件(即文件名)后 | 失效 | 仍旧可用 |
适用范围 | 适用于文件或目录 | 只可用于文件 |
保存位置 | 与原始文件可以位于不同的文件系统中 | 必须与原始文件在同一个文件系统(xfs系统,或者ext4等)中,如一个Linux分区内 |
日志文件是用于记录系统操作事件的记录文件或文件集合,可分为事件日志和消息日志。具有处理历史数据、诊断问题的追踪以及理解系统的活动等重要作用。
日志文件主要包括:
[root@localhost ~]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=6553600 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=26214400, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=12800, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@localhost ~]# mkdir /data
[root@localhost ~]# mount /dev/sdb1 /data
[root@localhost ~]# cd /data/
[root@localhost data]# ls
[root@localhost data]# cp /etc/passwd ./
[root@localhost data]# ls
passwd
[root@localhost data]# mkdir test
[root@localhost data]# ls
passwd test
[root@localhost data]# touch test/a01.txt
[root@localhost data]# ls
passwd test
[root@localhost data]# tree
.
├── passwd
└── test
└── a01.txt
1 directory, 2 files
[root@localhost data]# xfsdump -f /opt/xfs_dump /dev/sdb1 ///备份///
xfsdump: using file dump (drive_simple) strategy
xfsdump: version 3.1.7 (dump format 3.0) - type ^C for status and control
============================= dump label dialog ==============================
please enter label for this dump session (timeout in 300 sec)
-> xfs_dump 、///备份的文件///
session label entered: "xfs_dump"
--------------------------------- end dialog ---------------------------------
xfsdump: level 0 dump of localhost.localdomain:/data
xfsdump: dump date: Fri Jul 3 06:26:51 2020
xfsdump: session id: 2e16c81a-18a3-4388-b1c6-0a237622522a
xfsdump: session label: "xfs_dump"
xfsdump: ino map phase 1: constructing initial dump list
xfsdump: ino map phase 2: skipping (no pruning necessary)
xfsdump: ino map phase 3: skipping (only one dump stream)
xfsdump: ino map construction complete
xfsdump: estimated dump size: 25856 bytes
xfsdump: /var/lib/xfsdump/inventory created
============================= media label dialog =============================
please enter label for media in drive 0 (timeout in 300 sec)
-> sdb1 ///备份的位置///
media label entered: "sdb1"
--------------------------------- end dialog ---------------------------------
xfsdump: creating dump session media file 0 (media 0, file 0)
xfsdump: dumping ino map
xfsdump: dumping directories
xfsdump: dumping non-directory files
xfsdump: ending media file
xfsdump: media file size 25560 bytes
xfsdump: dump size (non-dir files) : 2592 bytes
xfsdump: dump complete: 23 seconds elapsed
xfsdump: Dump Summary:
xfsdump: stream 0 /opt/xfs_dump OK (success)
xfsdump: Dump Status: SUCCESS
[root@localhost data]# xfsrestore -f /opt/xfs_dump /data/
xfsrestore: using file dump (drive_simple) strategy
xfsrestore: version 3.1.7 (dump format 3.0) - type ^C for status and control
xfsrestore: searching media for dump
xfsrestore: examining media file 0
xfsrestore: dump description:
xfsrestore: hostname: localhost.localdomain
xfsrestore: mount point: /data
xfsrestore: volume: /dev/sdb1
xfsrestore: session time: Fri Jul 3 06:26:51 2020
xfsrestore: level: 0
xfsrestore: session label: "xfs_dump"
xfsrestore: media label: "sdb1"
xfsrestore: file system id: 14c8601d-3477-4f61-b775-39d9e837f98b
xfsrestore: session id: 2e16c81a-18a3-4388-b1c6-0a237622522a
xfsrestore: media id: 7657c754-3585-4d6f-bfed-59037a046006
xfsrestore: using online session inventory
xfsrestore: searching media for directory dump
xfsrestore: reading directories
xfsrestore: 2 directories and 3 entries processed
xfsrestore: directory post-processing
xfsrestore: restoring non-directory files
xfsrestore: restore complete: 0 seconds elapsed
xfsrestore: Restore Summary:
xfsrestore: stream 0 /opt/xfs_dump OK (success)
xfsrestore: Restore Status: SUCCESS
[root@localhost data]# ls /data/
passwd test