IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> linux 进阶篇 —— 存储结构 -> 正文阅读

[系统运维]linux 进阶篇 —— 存储结构

🌳 存储结构


🌲系统常见的目录

目录名称应放置的文件内容
/boot开机所需的文件 —— 内核、开机菜单以及所需的文件等
/dev以文件的形式存放任何设备与接口
/etc配置文件
/home用户主目录
/bin存放单用户模式下开可以操作的命令
/lib开机时用到的函数库,以及 /bin/sbin 下面的命令要调用的函数
/sbin开机过程中需要的命令
/media用于挂载设备文件的目录
/opt放置第三方的软件
/root系统管理员的家目录
/srv一些网络服务的数据文件目录
/tmp任何人可以使用的 共享 临时目录
/proc虚拟文件系统,例如系统内核和进程,外部设备以及网络状态等
/usr/local用户自行安装软件
/usr/sbinLinux 系统开机时不会使用到的软件/命令/脚本
/usr/share帮助和说明文件,也可以放置文件
/var主要存放经常变化的文件,如日志
/lost+found当文件系统发生错误时,将丢失文件片段存放在这里

🌲 物理设备的命名规则

常见的硬件设备以及文件名称

硬件设备文件名称
IDE 设备/dev/hd[a-d]
SCSI/SATA/U/dev/sd[a-z]
Virtio 设备/dev/vd[a-z]
软驱/dev/fd[0-1]
打印机/dev/lp[0-15]
光驱/dev/cdrom
鼠标/dev/mouse
磁带机/dev/st0 或 /dev/ht0

由于现在 IDE 设备已经很少见了,所以一般硬盘的设备都是以 /dev/sd 开头。而一台主机上可以有多块硬盘,因此系统采用 a~z 来代表 26 块不同的硬盘(默认是从 a 开始分配),而且硬盘的分区编号也很讲究:

  • 主分区或扩展分区的编号从 1 开始,到 4 结束。
  • 逻辑分区从编号 5 开始。

如果购买了云主机,会发现类似于 /dev/vda 或者 /dev/vdb 这样的设备。这种以 vd 开头的设备叫做 Virtio 设备。简单的来说就是虚拟化设备。

拿到一块新的硬盘存储设备后,先进行分区,然后格式化文件系统,最后才能正常的挂载使用。硬盘的分区取决于您的需求和硬盘的大小;也可以选择不进行分区,但必须对硬盘进行格式化处理。

在这里插入图片描述

🌲 挂载硬件设备

mount 命令: 该命令用于挂载文件系统,格式为: mount 文件系统 挂载目录。 挂载是使用引荐设备前所执行的最后一步操作。只需要使用 mount 命令把硬盘设备或分区与一个目录文件进行关联,然后就能在这个目录中看到硬件设备中的数据了。


参数及其作用

参数作用
-a挂载所有在 /etc/fstab 中定义的文件系统
-t指定文件系统的类型

在工作中,挂载一块网络存储设备,该设备的名字可能变来变去的。这是推荐使用UUIDUniversally Unique Identifier,通用唯一识别码) ,进行挂载,该标识是每块独立硬盘的字符串,具有唯一性以及稳定性,特别适合挂载网络设备。

blkid 命令: 用于显示设备属性信息,全称为 block id,语法格式为: block [设备]

在这里插入图片描述


用于挂载信息中,各字段的含义(/etc/fstab

字段意义
设备文件一般为设备的路径+设备名称,也可以是通用唯一识别码(UUID)
挂载目录指定要挂载到的目录,需要在挂载之前创建好
格式类型指定文件系统的格式,比如 Ext3Ext4XFSSWAPiso9660
权限选项若设置为 defaults,则默认权限 rwsuiddevexecautonouserasync。也可以添加 _netdev 参数,加上之后系统会等联网之后再次尝试挂载网络存储设备。从而避免开机时间过长或者失败的情况。
是否备份若为 1 则开机后使用 dump 进行磁盘备份,为 0 则不备份
是否自检若为 1 则开机后自动进行磁盘自检,为 0 则不自检

df 命令:

该命令用于查看已经挂载的磁盘空间使用情况,全称为 disk frww,语法格式为:df -h

在这里插入图片描述


umount 命令:

该命令用于卸载设备或文件系统,全称为:un mount,语法格式为 umount [设备文件/挂载目录]

🌰

umount /dev/vdb1

lsblk 命令:

若我们硬盘中的设备,分区特别多,我们 lsblk 命令以树状图的形式列举。该命令用于查看已挂载的空间的使用情况。全称为:list block id

在这里插入图片描述


fdisk 命令:

用于新建,修改,删除磁盘的分区表信息,英文全称为: format disk,语法格式为: fdisk 磁盘名称。在 linux 系统中,管理硬盘设备最常用的方法当属 fdisk 命令。它提供了添加,删除,转换分区等功能。

参数及其作用

参数作用
m查看全部可用的参数
n添加新的分区
d删除某个分区信息
l列出所有可用的分区类型
t改变某个分区的类型
p查看分区表信息
w保存并且退出
q不保存直接退出

linux 系统中用于格式化的操作命令是 mkfs

在这里插入图片描述


du 命令:

查看分区或目录所占用的磁盘容量大小,全称为:disk usage,语法格式为:du -sh 目录名称

在这里插入图片描述

在这里插入图片描述

🌲 磁盘容量配额

Linux系统的设计初衷就是让许多人一起使用并执行各自的任务,从而成为多用户、多任务的操作系统。但是,硬件资源是固定且有限的,如果某些用户不断地在Linux系统上创建文件或者存放电影,硬盘空间总有一天会被占满。针对这种情况,root管理员就需要使用磁盘容量配额服务来限制某位用户或某个用户组针对特定文件夹可以使用的最大硬盘空间或最大文件个数,一旦达到这个最大值就不再允许继续使用。

quota 技术进行磁盘容量配额管理,从而去限制用户的硬盘可用容量或者所能创建的最大文件个数。quota 技术还有软限制和硬限制。

  • 软限制: 当达到软限制的时候会提示用户,但是仍然允许在限定的额度内继续使用。

  • 硬限制: 当达到硬限制时会提示用户,且强制终止用户的操作。

RHEL 8 中,已经安装了 quota 磁盘配额服务程序包,但是存储设备默认是没有开启的。此时需要手动编辑配置文件并重启系统,让系统目录支持 quota 磁盘配额技术。

在这里插入图片描述

对于早期的 Linux 系统,或者 RHEL5/6 系统,早期想要磁盘支持 quota 磁盘容量配额服务,使用的是 usrquota 参数。重启系统,使用 mount 命令查看,既可以发现 /boot 目录已经支持 quota 技术了。

在这里插入图片描述



xfs_quota 命令:

用于设置磁盘容量配额,语法格式为:xfs_quota [参数]配额 文件系统

参数含义

参数含义
-c用于以参数的形式设置要执行的命令
-x专家模式,能对 quota 进行更复杂的配置

在这里插入图片描述

切换到 tom 用户,在创建 8m 的文件时候,受到了系统的限制。

在这里插入图片描述


edquota 命令:

用于管理系统的磁盘配额,全称为:edit quota,语法格式为:edquota [参数] 用户名

在为用户设置了 quota 磁盘容量配额限制后,可以使用 edquota 命令按需要修改限额的数值。

参数以及作用

参数作用
-u对某个用户进行设置
-g对某个用户组进行设置
-p复制原有的规则到新的用户/组
-t限制宽限期限

在这里插入图片描述

在这里插入图片描述

🌲 VDO (虚拟数据优化)

通过压缩或删除存储设备上的数据来优化存储空间的技术。


VDO 针对各种类型文件的压缩效果

在这里插入图片描述

RHEL/CentOS 8系统中默认已经启用了VDO技术。VDO技术现在是红帽公司自己的技术,兼容性自然没得说。如果您所用的系统没有安装VDO的话也不要着急,用dnf命令即可完成安装:

在这里插入图片描述

首先,创建一个全新的 VDO 卷。

新添加进来的物理设备就是使用 vdo 命令来管理的,其中 name 参数代表新的设备卷的名称;device 参数代表由哪块磁盘进行制作;vdoLogicalSize 参数代表制作后的设备大小。依据红帽公司推荐的原则,20GB 硬盘将翻成200GB 的逻辑存储:

在这里插入图片描述

在创建成功后,使用 status 参数查看新建卷的概述信息:

[root@linuxprobe ~]# vdo status --name=storage
VDO status:
  Date: '2022-06-01 05:59:08+08:00'
  Node: linuxprobe.com
Kernel module:
  Loaded: true
  Name: kvdo
  Version information:
    kvdo version: 6.2.0.293
Configuration:
  File: /etc/vdoconf.yml
  Last modified: '2022-06-01 05:57:55'
VDOs:
  storage:
    Acknowledgement threads: 1
    Activate: enabled
    Bio rotation interval: 64
    Bio submission threads: 4
    Block map cache size: 128M
    Block map period: 16380
    Block size: 4096
    CPU-work threads: 2
    Compression: enabled
    Configured write policy: auto
    Deduplication: enabled
    Device mapper status: 0 419430400 vdo /dev/sdb normal - online online 1051408 5242880
    Emulate 512 byte: disabled
    Hash zone threads: 1
    Index checkpoint frequency: 0
    Index memory setting: 0.25
    Index parallel factor: 0
    Index sparse: disabled
    Index status: online
    Logical size: 200G
    Logical threads: 1
    Max discard size: 4K
    Physical size: 20G
    Physical threads: 1
    Slab size: 2G
    Storage device: /dev/sdb

有上可见,在输出信息中包含了 VDO 卷创建的时间、主机名、版本、是否压缩(Compression)及是否删重(Deduplication)等关键信息。

新建的 VDO 卷设备会被乖乖地存放在 /dev/mapper 目录下,并以设备名称命名,对它操作就行。另外,挂载前可以用 udevadm settle 命令对设备进行一次刷新操作,避免刚才的配置没有生效。

打开 /etc/fstab 文件,把对应的字段填写完整。建议再加上 _netdev 参数,表示等系统及网络都启动后再挂载 VDO 设备卷,以保证万无一失。

在这里插入图片描述

🌲 软硬方式链接

Linux 系统中存在软链接和硬链接两种不同的类型。

  • 软链接(soft link): 也叫符号链接( symbolic link ),仅仅包含所链接文件的名称和路径,很像一个记录地址的标签。当原始文件被删除或移动后,新的链接文件也会随之失效,不能被访问。可以针对文件、目录设置软链接,跨文件系统进行链接也不是问题。从这一点来看,它与Windows系统的“快捷方式”具有一样的性质。

  • 硬链接(hard link): 可以将它理解为一个“指向原始文件 block 的指针”,系统会创建出一个与原来一模一样的 inode 信息块。所以,硬链接文件与原始文件其实是一模一样的,只是名字不同。每添加一个硬链接,该文件的 inode 个数就会增加 1 ;而且只有当该文件的 inode 个数为 0 时,才算彻底将它删除。换言之,由于硬链接实际上是指向原文件 block 的指针,因此即便原始文件被删除,依然可以通过硬链接文件来访问。需要注意的是,由于技术的局限性,不能跨分区对目录文件进行硬链接。


参数和作用

参数作用
-s创建“符号链接”(如果不带-s参数,则默认创建硬链接)
-f强制创建文件或目录的链接
-i覆盖前先询问
-v显示创建链接的过程

🌰

# 软连接
ln -s old.txt new.txt

# 硬链接
 ln old.txt new.txt
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-06-08 19:16:18  更:2022-06-08 19:18:51 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 14:34:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码