Linux磁盘管理

计算机硬盘简介

硬盘是计算机主要存储媒介之一,linux系统中硬件设备相关配置文件存放在/dev下,IDE硬盘接口在Linux中设备名为/dev/hda,  SAS,SCSI,SATA硬盘接口在linux中设备名为sda,高效云盘硬盘接口会识别为/dev/vda等

文件存储在硬盘上,硬盘的最小存储单位叫做sector(扇区),每个sector存储512字节,操作系统在读取硬盘的时候,不会逐个sector地去读,这样效率很低,为了提升读取效率,操作系统会一次性连续读取多个sector,即一次性读取多个sector称为一个block(块)

由多个sector组成的block是文件存储的最小单位,block的大小常见有1KB,2KB,4KB,block在linux中长设置为4KB,即连续8个sector组成一个block

一个block只能存放一个文件,如果文件的大小比block大,会申请更多的block,相反如果文件的大小比默认block小,扔会占用一个block,这样剩余的空间就会被浪费

 RAID简介

磁盘阵列(Redundant Arrays of Independent Disks,RAID),有冗余能力的阵列。原理是由多个磁盘组合在一起,提升整个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上。 在数组中任意一个硬盘故障时,仍可读出数据,在服务器当中必须要有raid阵列卡,不然识别不到硬盘,因此必须要做raid

类型

读写性能

安全性

磁盘利用率

成本

应用方面

RAID 0

最好(因并行性而提高)

最差(完全

无安全保障)

最高(100%)

最低

个人用户

RAID 1

读和单个磁盘无区别,

写则要写两边

最高(提供数

据的百分之百备份)

差(50%)

最高

适用于存放重要

数据,如服务器和

数据库存储等领域

RAID 5

读:RAID 5=RAID 0

(相近似的数据读取速度)

写:RAID 5<对单个

磁盘进行写入操作

(多了一个奇偶校验信息写入)

RAID 5<

RAID 1

RAID 5>

RAID 1

RAID 5<

RAID 1

是一种存储性能、

数据安全和存储成本

兼顾的存储解决方案

RAID 10

读:RAID 10=RAID 0

写:RAID 10=RAID 1

RAID 10=
RAID 1

RAID 10=

RAID 1(50%)

RAID 10=

RAID 1

集合了RAID 0、RAID

1的优点,但是空间上

由于使用镜像,而不

是类似RAID 5的“奇

偶校验信息”,磁盘

利用率一样是50%

 

硬盘block和inode概念

通常而言,操作系统对文件数据的存放包括两部分,一个是文件内容,一个是权限及文件属性,操作系统文件存放是基于文件系统,文件系统会将文件的实际内容存储到block中,而将权限与属性等信息存放至inode中

每个inode与block都有编号,而每个文件都会占用一个inode,inode内则有文件数据放置的block号码

操作系统进行格式化分区时,会自动将硬盘分成两个区域,一个是数据block区,用于存放文件数据,另一个是inode table区,用于存放inode包含的信息

每个inode节点的大小,可以在格式化的时候指定,默认为128B或256B,/boot分区inode默认为128B,其他分区默认为256B

硬链接介绍

一般情况下,文件名和inode编号是一一对应的关系,每个inode号码对应一个文件名,但是UNIX/linux系统多个文件名也可以指向同一个inode号码,这意味着可以用不同的文件名访问同样的内容,对文件内容进行修改,会影响到所有文件名,但是删除一个文件名,不会影响另一个文件名的访问,这种情况被称之为硬链接(hard link) 

创建硬链接

 软链接介绍

除了硬链接以外,还有一种链接--------软链接,文件1.txt和2.txt的inode号码虽然不同,但是文件2.txt的内容是文件1.txt的路径,读取2.txt时,系统会自动将访问者导向1.txt文件

无论打开哪个文件最终读取的都是1.txt,这种情况叫做软链接

软链接和硬链接最大的不同是2.txt指向1.txt,而不是1.txt和2.txt的inode相同,因此两个文件的inode不会发生变化

创建软链接:

 硬链接和软连接的区别:

1、硬链接

   不能对目录创建硬链接;

   不能跨文件系统创建硬链接,即两个文件名要在相同的文件系统下。

   不能对不存在的文件创建硬链接

2、软连接

   可以对目录创建软链接,遍历操作会忽略目录的软链接。

   可以跨文件系统

   可以对不存在的文件创建软链接

Linux磁盘管理常用命令

df:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。

参数:

1
2
3
4
5
6
7
-a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
-k :以 KBytes 的容量显示各文件系统;
-m :以 MBytes 的容量显示各文件系统;
-h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
-H :以 M=1000K 取代 M=1024K 的进位方式;
-T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
-i :不用硬盘容量,而以 inode 的数量来显示

一般我们用df -h检查磁盘空间使用率

1
2
3
4
5
6
[root@localhost ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/hdc2             9.5G  3.7G  5.4G  41% /
/dev/hdc3             4.8G  139M  4.4G   4% /home
/dev/hdc1              99M   11M   83M  12% /boot
tmpfs                 363M     0  363M   0% /dev/shm

将系统内的所有特殊文件格式及名称都列出来

1
2
3
4
5
6
7
8
9
10
11
[root@localhost ~]# df -aT
Filesystem    Type 1K-blocks    Used Available Use% Mounted on
/dev/hdc2     ext3   9920624 3823112   5585444  41% /
proc          proc         0       0         0   -  /proc
sysfs        sysfs         0       0         0   -  /sys
devpts      devpts         0       0         0   -  /dev/pts
/dev/hdc3     ext3   4956316  141376   4559108   4% /home
/dev/hdc1     ext3    101086   11126     84741  12% /boot
tmpfs        tmpfs    371332       0    371332   0% /dev/shm
none   binfmt_misc         0       0         0   -  /proc/sys/fs/binfmt_misc
sunrpc  rpc_pipefs         0       0         0   -  /var/lib/nfs/rpc_pipefs

df -i检查inode使用率

1
2
3
4
5
6
7
8
9
10
[root@localhost /]# df -hiT
  文件系统                类型     Inode 已用(I) 可用(I) 已用(I)% 挂载点
  /dev/mapper/centos-root xfs        17M     28K     17M       1% /
  devtmpfs                devtmpfs  120K     386    120K       1% /dev
  tmpfs                   tmpfs     123K       1    123K       1% /dev/shm
  tmpfs                   tmpfs     123K     472    122K       1% /run
  tmpfs                   tmpfs     123K      13    123K       1% /sys/fs/cgroup
  /dev/sda2               xfs       700K     329    700K       1% /boot
  tmpfs                   tmpfs     123K       1    123K       1% /run/user/0
 [root@localhost /]#

du:检查文件或目录占磁盘空间大小的命令

参数:

1
2
3
-a:显示每个子文件的磁盘占用量。默认只统计子目录的磁盘占用量。
-h:使用习惯单位显示磁盘占用量,如KB、MB或GB等。
-s:统计总磁盘占用量,而不列出子目录和子文件的磁盘占用量。

 

posted @   李志锋  阅读(195)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示