当前位置: 首页 > news >正文

第四章 存储结构与管理硬盘

第四章 存储结构与管理硬盘

一、一切从“/”开始
1、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当文件系统发生错误时,将一些丢失的文件片段存放在这里
二、物理设备的命名规则
1、常见的硬件设备及其文件名称
硬件设备文件名称
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
三、文件系统与数据资料
1、常见的文件系统
Ext2:最早可追溯到1993年,使Linux系统第一个商业级文件系统,基本沿袭的是Unix文件系统的设计标准。但由于不包含读写日志功能,数据丢失可能性很大,能不用就不要用,或者顶多建议用于SD存储卡或者U盘。
Ext3:是一款日志文件系统,他会把整个硬盘的每个写入动作的细节都与先记录下来,然后在实际操作,以便在发生异常宕机后能回溯追踪到被中断的部分。Ext3能够在系统异常宕机时避免文件系统资料丢失,并能自动修复数据的不一致与错误。然而当硬盘容量较大时,所需的修复时间也会很长,而且也不能百分之百的保证资料不会丢失。
Ext4:Ext3的改进版本,作为RHEL6系统中的默认文件管理系统,它支持的存储容量高达1EB,且能够无限多的子目录。另外能够批量分配Block块,从而极大地提高了读写效率。
XFS:是一种高性能的日志文件系统,而且是RHEL7/8中默认的文件管理系统,它的优势在发生意外宕机后尤其明显,即可以快速地回复可能被破坏的文件,而且强大的日志功能只用花费极低的计算和存储性能。并且它最大可支持的存储容量为18EB。
四、挂在硬件设备
1、mount命令

mount命令用于挂载文件系统。把硬盘设备或分区与一个目录文件进行关联,然后就能在这个目录中看到硬件设备中的数据了,对于比较新的Linux系统来讲,一般不需要使用-t参数来指定文件系统的类型,Linux系统会自动进行判断。而mount中的-a参数会在执行后自动检查/etc/fstab文件中有无疏漏被挂载的设备文件,如果有,则进行自动挂载操作。

语法格式:mount 文件系统 挂载目录
2、mount命令中的参数以及作用
参数作用
-a挂载所有在/etc/fstab中定义的文件系统
-t指定文件系统的类型
3、将设备/dev/nvme0n2挂载到/backup目录下
//创建backup目录
[root@centos /]# mkdir backup
//格式化nvme0n2
[root@centos /]# mkfs.ext4 /dev/nvme0n2
mke2fs 1.45.6 (20-Mar-2020)
创建含有 5242880 个块(每块 4k)和 1310720 个inode的文件系统
文件系统UUID:61a91aa6-2547-4ec1-8377-6ead16a655b1
超级块的备份存储于下列块: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000正在分配组表: 完成                            
正在写入inode表: 完成                            
创建日志(32768 个块)完成
写入超级块和文件系统账户统计信息: 已完成 
//挂载nvme0n2至backup目录下
[root@centos /]# mount /dev/nvme0n2 /backup/
4、blkid命令

blkid命令用于显示设备的属性信息,英文全称为:“block id”。

语法格式:blkid [设备名]
5、将设备/dev/nvme0n2挂载到/backup目录下
//显示设备信息
[root@centos /]# blkid
/dev/nvme0n1: PTUUID="09f3c2d9" PTTYPE="dos"
/dev/nvme0n1p1: UUID="d5ca23c4-63e8-403e-9ccc-106cfb54e858" BLOCK_SIZE="512" TYPE="xfs" PARTUUID="09f3c2d9-01"
/dev/nvme0n1p2: UUID="acplZU-2UUO-L5a7-x5eh-CXch-Kfqr-aei7QO" TYPE="LVM2_member" PARTUUID="09f3c2d9-02"
/dev/nvme0n2: UUID="61a91aa6-2547-4ec1-8377-6ead16a655b1" BLOCK_SIZE="4096" TYPE="ext4"
/dev/sr0: BLOCK_SIZE="2048" UUID="2021-11-13-01-04-26-00" LABEL="CentOS-8-5-2111-x86_64-dvd" TYPE="iso9660" PTUUID="5fb10f71" PTTYPE="dos"
/dev/mapper/cl-root: UUID="59937829-491c-45c8-b76a-bc6378439129" BLOCK_SIZE="512" TYPE="xfs"
/dev/mapper/cl-swap: UUID="d4f50cb9-4511-482a-bf5d-5ed19116e664" TYPE="swap"
//挂载nvme0n2至backup目录下
[root@centos /]# mount UUID=61a91aa6-2547-4ec1-8377-6ead16a655b1 /backup/
mount: /backup: /dev/nvme0n2 already mounted on /backup.
6、fstab文件中挂载信息的填写格式
设备文件	挂载目录	格式类型	权限选项	是否备份	是否自检
7、用于挂载信息的指定填写格式中各字段所表示的意义
字段意义
设备文件一般为设备的路径+设备名称,也可以写唯一识别码
挂载目录指定要挂载到的目录,需要挂在前创建好
格式类型指定文件系统的格式
权限选项若设置为defaults,则默认权限为:rw、suid、dev、exec、auto、nouser、async
是否备份若为1则开机后使用dump进行磁盘备份,为0则不备份
是否自检若为1则开机后自动进行磁盘自检,为0则不自检
8、umount命令

umount命令用于卸载设备或文件系统,英文全称:“un mount”。

语法格式:umount 挂载目录 设备文件
五、添加硬盘设备配置 分区
1、fdisk命令

fdisk命令用于新建、修改及删除磁盘的分区表信息,英文全称:“format disk”。

语法格式:fdisk 磁盘名称
2、fdisk命令中的参数以及作用
参数作用
m查看全部可用的参数
n添加新的分区
d删除某个分区信息
l列出所有可用的分区类型
t改变某个分区的类型
p查看分区表信息
w保存并退出
q不保存直接退出
3、配置主分区
//使用fdisk命令管理/dev/sdb硬盘设备
[root@centos ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.32.1)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
设备不包含可识别的分区表。
创建了一个磁盘标识符为 0x593e29eb 的新 DOS 磁盘标签。
命令(输入 m 获取帮助)//输入p查看硬盘设备内已有的分区信息
命令(输入 m 获取帮助):p
Disk /dev/sdb:20 GiB,21474836480 字节,41943040 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理)512 字节 / 512 字节
I/O 大小(最小/最佳)512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x593e29eb
//输入n设置分区,创建主分区,编号为1,硬盘分区容量2GB
命令(输入 m 获取帮助):n
分区类型p   主分区 (0个主分区,0个扩展分区,4空闲)e   扩展分区 (逻辑分区容器)
选择 (默认 p):p
分区号 (1-4, 默认  1): 1
第一个扇区 (2048-41943039, 默认 2048):
上个扇区,+sectors 或 +size{K,M,G,T,P} (2048-41943039, 默认 41943039): +2G
创建了一个新分区 1,类型为“Linux”,大小为 2 GiB。
//输入p查看硬盘设备内的分区信息
命令(输入 m 获取帮助):p
Disk /dev/sdb:20 GiB,21474836480 字节,41943040 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理)512 字节 / 512 字节
I/O 大小(最小/最佳)512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x593e29eb
设备       启动  起点    末尾    扇区 大小 Id 类型
/dev/sdb1        2048 4196351 4194304   2G 83 Linux
//输入w保存
命令(输入 m 获取帮助):w
分区表已调整。
将调用 ioctl() 来重新读分区表。
正在同步磁盘。
4、格式化磁盘
//格式化分区为XFS的文件系统
[root@centos ~]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=131072 blks=                       sectsz=512   attr=2, projid32bit=1=                       crc=1        finobt=1, sparse=1, rmapbt=0=                       reflink=1
data     =                       bsize=4096   blocks=524288, imaxpct=25=                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2=                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
5、挂载设备
//创建挂载点
[root@centos ~]# mkdir /newFS    
//挂载设备至挂载点
[root@centos ~]# mount /dev/sdb1 /newFS/
//查看挂载状态和硬盘使用量
[root@centos ~]# df -h
文件系统             容量  已用  可用 已用% 挂载点
devtmpfs             1.8G     0  1.8G    0% /dev
tmpfs                1.9G     0  1.9G    0% /dev/shm
tmpfs                1.9G  9.8M  1.9G    1% /run
tmpfs                1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/mapper/cl-root   17G  5.2G   12G   31% /
/dev/sda1           1014M  259M  756M   26% /boot
tmpfs                371M   28K  371M    1% /run/user/0
/dev/sr0              11G   11G     0  100% /run/media/root/CentOS-8-5-2111-x86_64-dvd
/dev/sdb1            2.0G   47M  2.0G    3% /newFS
//永久挂载
[root@centos ~]# vim /etc/fstab
#
# /etc/fstab
# Created by anaconda on Fri Apr 21 10:57:38 2023
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
/dev/mapper/cl-root     /                       xfs     defaults        0 0
UUID=39430c5c-73ac-49e1-9a51-41a5502dda26 /boot                   xfs     defaults        0 0
/dev/mapper/cl-swap     none                    swap    defaults        0 0
/dev/sdb1               /newFS                  xfs     defaults        0 0
6、配置交换分区
//使用fdisk命令管理/dev/sdb硬盘设备
[root@centos ~]# fdisk /dev/sdb                                                                       欢迎使用 fdisk (util-linux 2.32.1)。                                                                  更改将停留在内存中,直到您决定将更改写入磁盘。                                                        
使用写入命令前请三思。                                                                                   
命令(输入 m 获取帮助)//设置主分区
命令(输入 m 获取帮助):n
分区类型p   主分区 (1个主分区,0个扩展分区,3空闲)e   扩展分区 (逻辑分区容器)
选择 (默认 p):p
分区号 (2-4, 默认  2): 2
第一个扇区 (4196352-41943039, 默认 4196352):
上个扇区,+sectors 或 +size{K,M,G,T,P} (4196352-41943039, 默认 41943039): +5G
创建了一个新分区 2,类型为“Linux”,大小为 5 GiB。
//更改硬盘的标识码
命令(输入 m 获取帮助):t
分区号 (1,2, 默认  2): 2
Hex 代码(输入 L 列出所有代码)82
已将分区“Linux”的类型更改为“Linux swap / Solaris”。
//输入p查看硬盘设备内已有的分区信息
命令(输入 m 获取帮助):p
Disk /dev/sdb:20 GiB,21474836480 字节,41943040 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理)512 字节 / 512 字节
I/O 大小(最小/最佳)512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x593e29eb
设备       启动    起点     末尾     扇区 大小 Id 类型
/dev/sdb1          2048  4196351  4194304   2G 83 Linux
/dev/sdb2       4196352 14682111 10485760   5G 82 Linux swap / Solaris
//保存
命令(输入 m 获取帮助):w
分区表已调整。
正在同步磁盘。
//对新设备做交换分区格式化
[root@centos ~]# mkswap /dev/sdb2
正在设置交换空间版本 1,大小 = 5 GiB (5368705024  个字节)
无标签,UUID=47d81536-ae16-45b0-ab48-53dd7ef44e18
//激活交换分区sheb
[root@centos ~]# swapon /dev/sdb2
//永久挂载
[root@centos ~]# vim /etc/fstab
#
# /etc/fstab
# Created by anaconda on Fri Apr 21 10:57:38 2023
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
/dev/mapper/cl-root     /                       xfs     defaults        0 0
UUID=39430c5c-73ac-49e1-9a51-41a5502dda26 /boot                   xfs     defaults        0 0
/dev/mapper/cl-swap     none                    swap    defaults        0 0
/dev/sdb1               /newFS                  xfs     defaults        0 0
/dev/sdb2               swap                    swap    defaults        0 0
7、mkswap命令

mkswap命令用于对新设备做交换分区格式化,英文全称:“make swap”。

语法格式:mkswap 设备名称
8、swapon命令

swapon命令用于激活新的交换分区设备,英文全称:“swap on”。

语法格式:swapon 设备名称
六、硬盘容量配额
1、xfs_quota命令

xfs_quota命令用于管理设备的磁盘容量配额。

语法格式:xfs_quota [参数] 配额 文件系统
2、edquota命令

edquota命令用于管理系统的磁盘配额,英文全称:“edit quota”。

语法格式:edquota [参数] 用户名
3、edquota命令中可用的参数以及作用
参数作用
-u多某个用户进行设置
-g对某个用户组进行设置
-p复制原有的规则到新的用户/组
-t限制宽限期限
4、手动配置quota磁盘配额
//编辑/etc/fstab
[root@centos ~]# cat /etc/fstab #
# /etc/fstab
# Created by anaconda on Fri Apr 21 10:57:38 2023
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
/dev/mapper/cl-root     /                       xfs     defaults        0 0
UUID=39430c5c-73ac-49e1-9a51-41a5502dda26 /boot                   xfs     defaults,uquota        1 2
/dev/mapper/cl-swap     none                    swap    defaults        0 0
/dev/sdb1		/newFS			xfs	defaults	0 0
/dev/sdb2		swap			swap	defaults	0 0
5、查看是否支持quota磁盘配额技术
//查看是否挂载
[root@centos ~]# mount | grep boot
/dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,usrquota)
6、添加用户给权限
//添加用户
[root@centos ~]# useradd tom
//给权限
[root@centos ~]# chmod -R o+w /boot/
7、设置磁盘容量配额
//设置用户tom对/boot目录的quota磁盘容量配额
//具体限额控制包括:硬盘使用量的软限制和硬限制分别为3MB和6MB;创建文件数量的软限制和应限制分别为3个和6个
[root@centos ~]# xfs_quota -x -c 'limit bsoft=3M bhard=6M isoft=3 ihard=6 tom' /boot/
//查看配置结果
[root@centos ~]# xfs_quota -x -c report /boot
User quota on /boot (/dev/sda1)Blocks                     
User ID          Used       Soft       Hard    Warn/Grace     
---------- -------------------------------------------------- 
root           314404          0          0     00 [--------]
tom                 0       3072       6144     00 [--------]
8、查看效果
//创建一个体积为8MB文件,查看效果
[tom@centos boot]$ dd if=/dev/zero of=/boot/tom bs=5M count=1
记录了1+0 的读入
记录了1+0 的写出
5242880 bytes (5.2 MB, 5.0 MiB) copied, 0.0120878 s, 434 MB/s
//创建一个体积为8MB文件,查看效果
[tom@centos boot]$ dd if=/dev/zero of=/boot/tom bs=8M count=1
dd: 写入'/boot/tom' 出错: 超出磁盘限额
记录了1+0 的读入
记录了0+0 的写出
4194304 bytes (4.2 MB, 4.0 MiB) copied, 0.0109162 s, 384 MB/s
七、VDO虚拟数据优化

Virtual Data Optimize是一种通过压缩或删除存储设备上的数据来优化存储空间的技术,简称VDO,中文名叫虚拟数据优化。是由红帽公司收购了Permabit公司后获取的新技术。VDO技术的关键就是对硬盘内原有的数据进行删重操作,理论上只用原来的一半空间就够了。

VDO可以作为本地文件系统、iSCSI或Ceph存储下的附加存储层使用,支持本地和远程存储。建议做虚拟机或容器时,采用逻辑与物理10:1的比率进行配置,即使用1TB物理存储对应10TB的逻辑存储,而做对象存储时则采用3:1的比率进行配置,即使用1TB物理存储对应3TB的逻辑存储。有两种特殊情况如下:

一、如果服务器上已有DM crypt之类的技术是可以与VDO兼容,但记得要先做加密卷在使用VDO。因为加密会是重复的数据变得有所不同,因此删重操作无法实现,始终记得要把加密层放到VDO之下。
二、VDO技术不可叠加,1TB物理存储提升成10TB逻辑存储没问题,再用10TB翻成100TB就不行了。
1、各种类型文件压缩效果汇总表
文件名描述类型原始大小(KB)实际占用空间(KB)
dickens狄更斯文集英文原文99539948
mozillaMozilla的1.0可执行文件执行程序5002033228
mr医用resonanse图像图片97369272
nci结构化的化学数据库数据库3276710168
oofficeOpen Office.org 1.01 DLL可执行程序60085640
osdb基准测试用的MySQL格式示例数据库数据库98499824
reymont瓦迪斯瓦夫.雷蒙特的书PDF64716312
sambasamba源代码src源代码2110011768
sao星空数据天文格式的bin文件70817036
webster辞海HTML4048740144
xmlXML文件HTML52202180
x-ray透视医学图片医院数据82758260
2、挂在新硬盘
//查看是否挂在成功
[root@centos ~]# ls -l /dev/sdc
brw-rw----. 1 root disk 8, 32 425 20:14 /dev/sdc
3、创建全新的VDO卷
//name参数代表新的设备卷的名称,device参数代表由那块磁盘进行制作,vdoLogicalSize参数代表制作后的逻辑卷大小
[root@centos ~]# vdo create --name=storage --device=/dev/sdc --vdoLogicalSize 200G
Creating VDO storageThe VDO volume can address 16 GB in 8 data slabs, each 2 GB.It can grow to address at most 16 TB of physical storage in 8192 slabs.If a larger maximum size might be needed, use bigger slabs.
Starting VDO storage
Starting compression on VDO storage
VDO instance 0 volume is ready at /dev/mapper/storage
4、查看新建卷的概述信息
[root@centos ~]# vdo status --name storage 
VDO status:Date: '2023-04-26 12:12:02+08:00'Node: centos
Kernel module:Loaded: trueName: kvdoVersion information:kvdo version: 6.2.5.72
Configuration:File: /etc/vdoconf.ymlLast modified: '2023-04-26 11:59:12'
VDOs:storage:Acknowledgement threads: 1Activate: enabledBio rotation interval: 64Bio submission threads: 4Block map cache size: 128MBlock map period: 16380Block size: 4096CPU-work threads: 2Compression: enabledConfigured write policy: autoDeduplication: enabledDevice mapper status: 0 419430400 vdo /dev/sdc normal - online online 1051408 5242880Emulate 512 byte: disabledHash zone threads: 1Index checkpoint frequency: 0Index memory setting: 0.25Index parallel factor: 0Index sparse: disabledIndex status: onlineLogical size: 200GLogical threads: 1Max discard size: 4KPhysical size: 20GPhysical threads: 1Slab size: 2GStorage device: /dev/sdcUUID: VDO-bd9c7a8d-985b-446f-b9a9-99f8e4375067VDO statistics:/dev/mapper/storage:1K-blocks: 209715201K-blocks available: 167658881K-blocks used: 4205632512 byte emulation: falseKVDO module bytes used: 412689448KVDO module peak bytes used: 412689448bios acknowledged discard: 0bios acknowledged flush: 0bios acknowledged fua: 0bios acknowledged partial discard: 0bios acknowledged partial flush: 0bios acknowledged partial fua: 0bios acknowledged partial read: 0bios acknowledged partial write: 0bios acknowledged read: 261bios acknowledged write: 0bios in discard: 0bios in flush: 0bios in fua: 0bios in partial discard: 0bios in partial flush: 0bios in partial fua: 0bios in partial read: 0bios in partial write: 0bios in progress discard: 0bios in progress flush: 0bios in progress fua: 0bios in progress read: 0bios in progress write: 0bios in read: 261bios in write: 0bios journal completed discard: 0bios journal completed flush: 0bios journal completed fua: 0bios journal completed read: 0bios journal completed write: 0bios journal discard: 0bios journal flush: 0bios journal fua: 0bios journal read: 0bios journal write: 0bios meta completed discard: 0bios meta completed flush: 0bios meta completed fua: 0bios meta completed read: 4bios meta completed write: 65bios meta discard: 0bios meta flush: 1bios meta fua: 1bios meta read: 4bios meta write: 65bios out completed discard: 0bios out completed flush: 0bios out completed fua: 0bios out completed read: 0bios out completed write: 0bios out discard: 0bios out flush: 0bios out fua: 0bios out read: 0bios out write: 0bios page cache completed discard: 0bios page cache completed flush: 0bios page cache completed fua: 0bios page cache completed read: 0bios page cache completed write: 0bios page cache discard: 0bios page cache flush: 0bios page cache fua: 0bios page cache read: 0bios page cache write: 0block map cache pressure: 0block map cache size: 134217728block map clean pages: 0block map dirty pages: 0block map discard required: 0block map failed pages: 0block map failed reads: 0block map failed writes: 0block map fetch required: 0block map flush count: 0block map found in cache: 0block map free pages: 32768block map incoming pages: 0block map outgoing pages: 0block map pages loaded: 0block map pages saved: 0block map read count: 0block map read outgoing: 0block map reclaimed: 0block map wait for page: 0block map write count: 0block size: 4096completed recovery count: 0compressed blocks written: 0compressed fragments in packer: 0compressed fragments written: 0concurrent data matches: 0concurrent hash collisions: 0current VDO IO requests in progress: 0current dedupe queries: 0data blocks used: 0dedupe advice stale: 0dedupe advice timeouts: 0dedupe advice valid: 0entries indexed: 0flush out: 0instance: 0invalid advice PBN count: 0journal blocks batching: 0journal blocks committed: 0journal blocks started: 0journal blocks writing: 0journal blocks written: 0journal commits requested count: 0journal disk full count: 0journal entries batching: 0journal entries committed: 0journal entries started: 0journal entries writing: 0journal entries written: 0logical blocks: 52428800logical blocks used: 0maximum VDO IO requests in progress: 57maximum dedupe queries: 0no space error count: 0operating mode: normaloverhead blocks used: 1051408physical blocks: 5242880posts found: 0posts not found: 0queries found: 0queries not found: 0read only error count: 0read-only recovery count: 0recovery progress (%): N/Areference blocks written: 0release version: 133524saving percent: N/Aslab count: 8slab journal blocked count: 0slab journal blocks written: 0slab journal disk full count: 0slab journal flush count: 0slab journal tail busy count: 0slab summary blocks written: 0slabs opened: 0slabs reopened: 0updates found: 0updates not found: 0used percent: 20version: 31write amplification ratio: 0.0write policy: sync
5、格式化并挂载
//格式化
[root@centos ~]# mkfs.xfs /dev/mapper/storage 
meta-data=/dev/mapper/storage    isize=512    agcount=4, agsize=13107200 blks=                       sectsz=4096  attr=2, projid32bit=1=                       crc=1        finobt=1, sparse=1, rmapbt=0=                       reflink=1
data     =                       bsize=4096   blocks=52428800, imaxpct=25=                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=25600, version=2=                       sectsz=4096  sunit=1 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
Discarding blocks...
Done.
//刷新设备
[root@centos ~]# udevadm settle 
//创建挂载目录
[root@centos ~]# mkdir /storage
//挂载
[root@centos ~]# mount /dev/mapper/storage /storage/
6、查看设备的使用情况
//实际使用情况
[root@centos ~]# vdostats --human-readable 
Device                    Size      Used Available Use% Space saving%
/dev/mapper/storage      20.0G      4.0G     16.0G  20%           99%
//逻辑存储空间
[root@centos ~]# df -h
文件系统             容量  已用  可用 已用% 挂载点
devtmpfs             1.8G     0  1.8G    0% /dev
tmpfs                1.9G     0  1.9G    0% /dev/shm
tmpfs                1.9G  9.8M  1.9G    1% /run
tmpfs                1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/mapper/cl-root   17G  5.3G   12G   32% /
/dev/sdb1            2.0G   47M  2.0G    3% /newFS
/dev/sda1           1014M  351M  664M   35% /boot
tmpfs                371M   28K  371M    1% /run/user/0
/dev/sr0              11G   11G     0  100% /run/media/root/CentOS-8-5-2111-x86_64-dvd
/dev/mapper/storage  200G  1.5G  199G    1% /storage
6、查看占用多少空间以及空间节省率
//查看文件大小
[root@centos ~]# ls -alh /root/Linux就该这么学.pdf 
-rwxrw-rw-. 1 root root 95M 413 15:59 /root/Linux就该这么学.pdf
//复制文件到目录
[root@centos ~]# cp /root/Linux就该这么学.pdf /storage/
//查看文件大小
[root@centos ~]# ls -alh /storage/Linux就该这么学.pdf 
-rwxr--r--. 1 root root 95M 426 12:28 /storage/Linux就该这么学.pdf
//查看实际使用情况
[root@centos ~]# vdostats --human-readable 
Device                    Size      Used Available Use% Space saving%
/dev/mapper/storage      20.0G      4.1G     15.9G  20%           52%
//复制文件并重命名到目录
[root@centos ~]# cp /root/Linux就该这么学.pdf /storage/Linux就该这么学2.pdf 
//查看实际使用情况
[root@centos ~]# vdostats --human-readable 
Device                    Size      Used Available Use% Space saving%
/dev/mapper/storage      20.0G      4.1G     15.9G  20%           52%
//复制文件并重命名到目录
[root@centos ~]# cp /root/Linux就该这么学.pdf /storage/Linux就该这么学3.pdf 
//查看实际使用情况
[root@centos ~]# vdostats --human-readable 
Device                    Size      Used Available Use% Space saving%
/dev/mapper/storage      20.0G      4.1G     15.9G  20%           62%
7、永久挂载
//查看UUID唯一标识符
[root@centos ~]# blkid /dev/mapper/storage 
/dev/mapper/storage: UUID="90ca723b-3596-4d7d-8215-8f26614d2357" BLOCK_SIZE="4096" TYPE="xfs"
//编辑/etc/fstab文件
[root@centos ~]# vim /etc/fstab #
# /etc/fstab
# Created by anaconda on Fri Apr 21 10:57:38 2023
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
/dev/mapper/cl-root     /                       xfs     defaults        0 0
UUID=39430c5c-73ac-49e1-9a51-41a5502dda26 /boot                   xfs     defaults,uquota        1 2
/dev/mapper/cl-swap     none                    swap    defaults        0 0
/dev/cdrom		/media/cdrom		iso9660 defaults	0 0
/dev/sdb1		/newFS			xfs	defaults	0 0
/dev/sdb2		swap			swap	defaults	0 0
UUID=90ca723b-3596-4d7d-8215-8f26614d2357 /storage 		  xfs     defaults,netdev	 0 0
八、软硬方式链接
1、不同类型

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

软链接(symbolic link):也叫符号链接,仅仅包含所链接文件的名称和路径,像个记录地址的标签。当原始文件被删除或移动后,新的链接文件也会随之失效,不能被访问,可以对文件、目录做软连接,跨文件系统也不是问题,从这一点来看与Windows系统的“快捷方式”具有一样的性质。
硬链接(hard link):可以将它理解为一个“指向原始文件block的指针”,系统会创建出一个与原来一摸一样的inode信息块,所以硬链接文件与原始文件其实是一模一样的,只是名字不同。每添加一个硬链接,该文件的inode个数就会增加2,而且只有当该文件inode个数为0时,才算彻底将他删除。换言之,由于硬链接实际上是指向原始文件block的指针,因此即便原始文件被删除,依然可以通过硬链接文件来访问。需要注意的是,由于技术的局限性,不能跨分区对目录文件进行硬链接。
2、ln命令

ln命令用于创建软硬链接,英文全称:“link”。

语法格式:ln [参数] 目标
3、ln命令中可用的参数以及作用
参数作用
-s创建“符号链接”,如果不带-s参数,则默认创建硬链接
-f强制创建文件或目录的链接
-i覆盖前先询问
-v显示创建链接过程
4、创建软链接
//创建old.txt文本并编辑内容
[root@centos ~]# echo "Welcome to my home!" > old.txt
//创建软链接指向new.txt文本
[root@centos ~]# ln -s old.txt new.txt
//分别查看old.txt和new.txt文本内容
[root@centos ~]# cat old.txt 
Welcome to my home!
[root@centos ~]# cat new.txt 
Welcome to my home!
//删除old.txt
[root@centos ~]# rm -f old.txt 
//查看new.txt文本
[root@centos ~]# cat new.txt 
cat: new.txt: 没有那个文件或目录

5、创建硬链接

//创建old.txt文本并编辑内容
[root@centos ~]# echo "Welcome to my home!" > old.txt
//创建硬链接指向new.txt文本
[root@centos ~]# ln old.txt new.txt
//分别查看old.txt和new.txt文本内容
[root@centos ~]# cat old.txt 
Welcome to my home!
[root@centos ~]# cat new.txt 
Welcome to my home!
//删除old.txt
[root@centos ~]# rm -f old.txt 
//查看new.txt文本
[root@centos ~]# cat new.txt 
Welcome to my home!

相关文章:

第四章 存储结构与管理硬盘

第四章 存储结构与管理硬盘 一、一切从“/”开始 1、Linux系统中常见的目录名称以及相应内容 目录名称应放置文件的内容/boot开机所需文件——内核、开机菜单以及所需配置文件等/dev以文件形式存放任何设备与接口/etc配置文件/home用户主目录/bin存放单用户模式下还可以操作…...

【腾讯云-2】极简搭建边缘集群

1 创建 流程和https://blog.csdn.net/qq_47058489/article/details/130347795差不多,可参考 查看基本信息: 创建边缘集群的过程中会初始化master,说明包含一个托管master节点 但是没有其他节点 2 开启节点远程登录 通过 SSH 的方式远…...

在springboot中给mybatis加拦截器

拦截器的作用就是我们可以拦截某些方法的调用,在目标方法前后加上我们自己逻辑 Mybatis拦截器设计的一个初衷是为了供用户在某些时候可以实现自己的逻辑而不必去动Mybatis固有的逻辑。 mybatis 自定义拦截器 1、实现Interceptor 接口,并添加拦截注解 I…...

[oeasy]python0139_尝试捕获异常_ try_except_traceback

尝试捕获异常 回忆上次内容 变量相加 整型数字变量可以相加字符串变量也可以拼接 但是 字符串 和 整型数字整型数字 和 字符串不能相加 怎么办? 转格式int(“1”)str(2) 可是 如果输入的苹果数量是 字符串"abc" int(“abc”)会发生什么?&…...

树的刷题,嗝

今天忘记带本子了,就没有学习java了,于是一心刷题,好烦遇到了两个奇怪的题目,我没跟题解写的,但是我是没想到奇怪的样例. no.1 617. 合并二叉树 难度简单1221收藏分享切换为英文接收动态反馈 给你两棵二叉树: root1 和 root2 。 想象一下,当你将其中…...

举个栗子~Tableau 技巧(253):让筛选器只显示全部以及需要的类别

用户反馈了一个需求:我的业务数据有很多类别,但其实经常查看的只有几个,Tableau 筛选器能不能设置一下,只显示全部和经常查看的那几个类别? 这个是可以实现的!如下示例,数据类别有:…...

服务器温度过高告警

今天巡检一套rac环境,发现节点二上有Error字样,逐行看完细节是服务器温度过高导致的,半夜又没啥业务的,查看硬件也没任何告警,哎,某品牌的品控确实越来越烂,log一下 Mar 21 02:53:21 hydb1 ker…...

反垃圾邮件产品测试评价方法示意图

声明 本文是学习信息安全技术 反垃圾邮件产品技术要求和测试评价方法. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 反垃圾邮件产品测试评价方法 测试环境 反垃圾邮件产品的典型测试环境如图1所示。 图1 反垃圾邮件产品典型测试环境示意图 测试设…...

基于vfw的局域网语音聊天室系统源码论文

语音视频聊天 UDP套接字的运用 在实现语音视频聊天时,采用的是基于UDP套接字的点对点模式,而UDP面向的是无连接的数据服务,其套接字的使用如图10所示。 图10 UDP套接字的使用 视频的捕获 利用VFW接口,视频捕获可以分为以下几个步骤: 建立视频采集窗口…...

GoogleTest : 测试框架(单元测试)

GoogleTest googletest: GoogleTest - Google Testing and Mocking Framework googletest 是一个由 Google 的测试技术团队开发的测试框架,它考虑到了谷歌的特定需求和限制。无论你使用的是 Linux、Windows 还是 Mac,只要你编写 C 代码,goo…...

商业银行财富管理“智能原生”能力呈阶梯化,AI助力商业模式趋向多元化发展

易观:金融业的财富管理从经营角度来看,是“客户与渠道管理场景运营产品研发”三位一体共同构建以客户为中心,数据驱动的业务经营体系。其中,“客户与渠道管理”是将客户利益作为核心目标,通过升级用户体验、客户全生命…...

2022年中国云市场份额:阿里云腾讯云下降

我是卢松松,点点上面的头像,欢迎关注我哦! 4月23日,IDC发布《中国公有云服务市场(2022下半年)跟踪》,占据前四的分别为阿里云(40.6%)、华为云(11.0%)、腾讯云(11.0%)、中国电信(8.7%)。咱们说重点,如下图所…...

Redis入门学习笔记【二】Redis缓存

目录 一、Redis缓存 二、Redis使用缓存遇到的问题 2.1 数据一致性 2.2缓存雪崩 2.3 缓存穿透 2.4 缓存击穿 一、Redis缓存 数据缓存是Redis最重要的一个场景,为缓存而生,在springboot中,一般有两种使用方式: 直接通过RedisT…...

go1.20环境安装以及beego框架配置

打开网址下载安装包选择对应安装包来下载安装(个人是windows,下载的1.20.3版本) 默认情况下会安装在C盘,但是我安装在了D盘目录 根据安装提示一步步next,直至完成 go get 在1.18版本之后就弃掉了,换成了install 配置自己的work…...

vue---组件逻辑复用方法:Mixin/HOC/Renderless组件

目录 1、Mixin 2、HOC 3、Renderless组件 下文通过表单校验来分别讲解Mixin/HOC/Renderless组件这三种方式。 1、Mixin 通过mixin将一个公用的validate函数同步到每一个组件中去 mixin使用详细介绍见:vue---mixin混入_maidu_xbd的博客-CSDN博客一个混入对象可…...

阳光万里,祝你上岸——免统考在职研究生

什么是在职研究生 在职研究生,是国家计划内,以在职人员身份,部分时间在职工作,部分时间在校学习的研究生教育的一种类型。在职攻读硕士方式有三种: 1.双证非全日制研究生:为普通高等教育研究生学历&#x…...

大孔树脂型号,A-722,ADS500,ADS600,ADS750,ADS800

一、产品介绍 基于吸附功能的聚苯乙烯特种树脂 Tulsimer ADS-600 是一款没有离子官能基的,由交联聚苯乙烯合成的功能强大的吸附型树脂。 Tulsimer ADS-600 主要应用于水溶液中吸附酚及其化合物,氯代烃等含氯物质,表面活性剂&#xff0…...

MATLAB在逐渐被Python淘汰吗?

Python和MATLAB都是常用的科学计算工具,但是它们有很多不同之处。 Python是一种通用编程语言,而MATLAB主要是用来做数值计算的。Python的基本数据类型和一般的编程语言一样普遍,但是离开了Numpy这个包,就不再有数组或者矩阵的数据…...

黑盒测试过程中【测试方法】讲解1-等价类,边界值,判定表

在黑盒测试过程中,有9种常用的方法:1.等价类划分 2.边界值分析 3.判定表法 4.正交实验法 5.流程图分析 6.因果图法 7.输入域覆盖法 8.输出域覆盖法 9.猜错法 我们一般用第1种和第2种方法最多。此处简单介绍一下这两种方法,详细介绍其…...

函数栈帧的创建和销毁

文章目录 main函数栈帧的创建为什么局部变量的值是随机值函数是怎么传参的?传参的顺序是什么?函数调用结束是怎么返回的 main函数栈帧的创建 先在栈帧里面为main函数开辟出一块空间,且这块空间由两个寄存器esp和ebp来进行维护,当在调用另一个函数时这两个寄存器就去维护为这…...

测试Ocr工具IronOCR(续:编写图片圈选程序)

上一篇文章学习了IronOCR的基本用法之后,计划做一个加载本地图片后,从图片中圈选某一位置的文字,然后调用IronOCR识别圈选区域文本的程序。本文实现从本地加载图片并完成圈选的功能。   主要的功能包括以下几点:   1&#xff…...

React之Redux的使用

文章目录 Redux 介绍概述Redux 是什么?为什么要使用 Redux?我什么时候应该使用 Redux?Redux 库和工具React-ReduxRedux ToolkitRedux DevTools 扩展 Redux 术语和概念State 管理不可变性 Immutability术语ActionAction CreatorReducerReducer…...

数据库系统概论--第五章课后习题

1.什么是数据库的完整性? 答:数据库的完整性是指数据的正确性和相容性。 2. 数据库的完整性概念与数据库的安全性概念有什么区别和联系? 答: 数据的完整性和安全性是两个不同的概念,但是有一定的联系。前者是为了防止数据库中存…...

小程序开发费用估算:如何控制项目成本?

在当今数字化的时代,小程序已经成为了很多企业和个人开展业务的重要手段。小程序的开发需要耗费时间和资源,因此在项目初期,了解预计的开发费用是非常重要的。本文将详细介绍如何估算小程序开发费用以及如何控制项目成本。 小程序开发费用 …...

【22】linux进阶——文本处理工具:cut、awk、sed

大家好,这里是天亮之前ict,本人网络工程大三在读小学生,拥有锐捷的ie和红帽的ce认证。每天更新一个linux进阶的小知识,希望能提高自己的技术的同时,也可以帮助到大家 另外其它专栏请关注: 锐捷数通实验&…...

Web3D包装生产线 HTML5+Threejs(webgl)开发

生产线三维可视化解决方案就是通过物联网、虚实联动和三维建模等先进技术,以一个3D立体模型展现出来,可以让我们很直观的看到生产线的运作以及对数据的监控。3D运用数据孪生技术可以让工业3D物联网管理系统的界面变得非常的简单易看,并且能够…...

Docker数据管理

目录 一、数据管理方式 1、数据卷 在宿主机上写入数据,传到容器 2、数据卷容器 二、容器互联 一、数据管理方式 用户在使用Docker的过程中,往往需要能查看容器内应用产生的数据,或者需要把容器内的数据进行备份,甚至多…...

在PowerBuilder中更改窗口继承

在PowerBuilder中更改窗口继承 PowerBuilder是Sybase公司的独资子公司PowerSoft推出的应用于客户机/服务器体系结构下的应用程序开发工具,也是一种面向对象的图形化交互式开发工具。PowerBuilder 以其简洁高效的集成开发环境、 强大的数据窗口技术、几乎无所不能的数据库访问…...

CS:APP 第7章链接分步编译(cpp/cc1/as/ld)遇到的问题

环境 WSL Ubuntu 22.04.2 LTS gcc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0 问题 问题一 cc1 命令找不到 cc1 命令在 /usr/lib/gcc/x86_64-linux-gnu/11/cc1 里,注意不同操作系统等可能 cc1 的位置不一样,可以使用 find 或者 locate 命令搜索。 通过下…...

Jsp+sql智能道路交通信息管理系统的设计与实现(论文+系统+开题报告+答辩PPT+外文翻译)

伴随着社会经济的发展,交通在人们经济和社会活动中扮演着越来越重要的角色。因而,交通管理的水平和质量就和我们的日产生活紧密相连,并且直接影响着投资的环境和城市的面貌。因此,每个城市都做了很多关于改善交通和发展智能交通系…...