识别设备与文件系统
目标
识别文件系统层次结构中的目录,以及它存储在哪一设备上。
名词定义
- **存储管理概念
Linux服务器上的文件是按文件系统层次结构(一个颠倒的目录树)访问的。该文件系统层次结构则是由系统可用的存储设备所提供的文件系统组装而来。每个文件系统都是一个已格式化的存储设备,可用于存储文件。
从某种意义上说,Linux系统层次结构可在独立的存储设备上显示文件系统的集合,就如同是一个可浏览的巨型存储设备上的一组文件。大多数情况下,您无需知道特定文件所在的存储设备,只需要知道该文件所在的目录即可。
不过,这一信息有时也很重要。您可能需要确定存储设备的空间实用情况以及文件系统层次结构中受影响的目录。日志中可能存在由存储设备引起的错误,而您需要知道哪些文件系统存在风险。您可能只想在两个文件之间创建硬链接,因此需要知道它们是否位于同一系统上,以确定上述操作的可行性。
- 文件系统和挂载点
要让文件系统的内容在文件系统层次结构中可用,必须将它挂载到一个空目录上。该目录被称为挂载点。挂载后,如果实用ls列出该目录,您就会看到已挂载文件系统的内容,并可以正常访问和使用这些文件。许多文件系统都会作为启动进程的一部分自动挂载。
如果您只用过Microsoft Windows的驱动盘符,两者的概念完全不同。它与NTFS挂载文件夹功能有点类似。
- 文件系统、存储和块设备
在Linux中,对存储设备的低级别访问是由一种称为块设备的特殊类型文件提供的。在挂载这些块设备前,必须先使用文件系统对其进行格式化。
块设备文件与其他的设备文件一起存储在/dev目录中。设备文件是由操作系统自动创建的。在红帽企业Linux中,检测到的第一个SATA/PATA、SAS、SCSI或USB硬盘驱动器被称为/dev/sda,第二个被称为/dev/sdb,以此类推。这些名称代表整个磁盘驱动器。
其他类型的存储设备有另外的命名方式。
块设备命名
| 名称 | 描述 |
|---|---|
| SATA/SAS/USB附加存储 | /dev/sda、/dev/sdb |
| virtio-blk超虚拟化存储(部分虚拟机) | /dev/vda、/dev/vdb |
| NNMe附加存储(很多SSD) | /dev/nvme0、/dev/vnme1 |
- 磁盘分区
通常,您不会将整个存储设备设为一个文件系统。存储设备通常划分为更小的区块,称为分区。
分区用于划分硬盘:不同的部分可以通过不同的文件系统进行格式化或用于不同的用途。例如,一个分区可以包含用户主目录,另一个分区则可包含系统数据和日志。如果用户在主目录分区中填满了数据,系统分区可能依然有可用的空间。
分区本身就是块设备。在SATA附加存储中,第一磁盘上的第一个分区是/dev/sda1。第二磁盘上的第三个分区是/dev/sdb3,以此类推。超虚拟化存储设备采用了类似的命名体系。
NVMe附加SSD设备命名分区的方式却有所不同。其第一磁盘上的第一个分区时/dev/nvme0p1。第二磁盘上的第三个分区是/dev/nvme1p3,以此类推。SD或MMC卡采用了类似的命名体系。
host上/dev/sda设备文件的长列表显示其特殊文件类型为b,代表块设备。
- 逻辑卷
整理磁盘和分区的另一种方式是通过逻辑卷管理(LVM)。通过LVM,一个或多个块设备可以汇集为一个存储池,称为卷组。然后,卷组中的磁盘空间被分配到一个或多个逻辑卷,它们的功能等同于驻留在物理磁盘上的分区。
LVM系统在创建时为卷组和逻辑卷分配名称。LVM在/dev中创建一个名称与组名匹配的目录,然后在新目录中创建一个与逻辑卷同盟的符号链接。之后,可以挂载该逻辑卷文件。例如,如果一个卷组名为myvg,其中一个名为mylv的逻辑卷,那么其逻辑卷设备文件的完整路径名为/dev/myvg/mylv。
上面提到的逻辑设备的命名形式实际上是建立与实际设备文件的符号链接,以此来访问该文件,其名称在每次启动时可能会有所不同。还有一种逻辑设备的命名形式,那就是与常用的/dev/mapper中的文件建立链接,也是一种实际设备文件的符号链接。
- 检查文件系统
若要对本地和远程文件系统设备及可用空间大小有个简略了解,可以运行df命令。不带参数允许df时,它会报告所有已挂载的普通文件系统的总磁盘空间、已用磁盘空间、可用磁盘空间,以及已用磁盘空间占总磁盘空间的百分比。它会同时报告本地和远程文件系统。
实操演示
- 命令:
df语法:df 选项 参数
h:人性化显示
##显示当前磁盘挂载情况与使用情况
[root@sinfotek ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 178M 1.7G 10% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root 50G 8.3G 42G 17% /
/dev/mapper/centos-home 2.0T 778M 2.0T 1% /home
/dev/sda1 1014M 185M 830M 19% /boot
tmpfs 379M 52K 379M 1% /run/user/0
- 命令:
df
-s:查看文件夹的大小
[root@sinfotek ~]# du -h -s /home
745M /home