存储结构与管理硬盘

koke
2022-08-29 / 0 评论 / 264 阅读 / 正在检测是否收录...

一切从“/”开始

​

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当文件系统发生错误时,将一些丢失的文件片段存放在这里
绝对路径
cd /etc/sysconfig/network-scripts/
相对路径
cd koke

物理设备的命名规则

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

硬件设备文件名称
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开始,到4结束;逻辑分区从编号5开始。

逻辑分区.png

文件存储方式

image-20220903162311082-16621933923733.png

文件系统与数据资料

Linux系统支持数十种文件系统,而最常见的文件系统如下所示。

Ext2:最早可追溯到1993年,是Linux系统的第一个商业级文件系统,它基本沿袭了UNIX文件系统的设计标准。但由于不包含日志读写功能,数据丢失的可能性很大,因此大家能不用就不用,或者顶多建议用于SD存储卡或U盘。

Ext3:是一款日志文件系统,它会把整个硬盘的每个写入动作的细节都预先记录下来,然后再进行实际操作,以便在发生异常宕机后能回溯追踪到被中断的部分。Ext3能够在系统异常宕机时避免文件系统资料丢失,并能自动修复数据的不一致与错误。然而,当硬盘容量较大时,所需的修复时间也会很长,而且也不能100%地保证资料不会丢失。

Ext4:Ext3的改进版本,作为RHEL 6系统中默认的文件管理系统,它支持的存储容量高达1EB(1EB=1,073,741,824GB),且能够有无限多的子目录。另外,Ext4文件系统能够批量分配block(块),从而极大地提高了读写效率。现在很多主流服务器也会使用Ext4文件系统。

XFS:是一种高性能的日志文件系统,而且是RHEL 7/8中默认的文件管理系统。它的优势在发生意外宕机后尤其明显,即可以快速地恢复可能被破坏的文件,而且强大的日志功能只需花费极低的计算和存储性能。它支持的最大存储容量为18EB,这几乎满足了所有需求。

RHEL 7/8系统中一个比较大的变化就是使用了XFS作为文件系统,这不同于RHEL 6使用的Ext4。从红帽公司官方发布的说明来看,这确实是一个不小的进步,但是刘遄老师在实测中发现并不完全属实。因为单纯就测试一款文件系统的“读取”性能来说,到底要读取多少个文件,每个文件的大小是多少,读取文件时的CPU、内存等系统资源的占用率如何,以及不同的硬件配置是否会有不同的影响,这些因素都是不确定的,因此实在不敢直接照抄红帽官方的介绍。我个人认为XFS虽然在性能方面比Ext4有所提升,但绝不是压倒性的,因此XFS文件系统最卓越的亮点应该当属可支持高达18EB的存储容量吧。

VFS的架构示意图-1.jpg

挂载硬件设备

#挂载
mount 设备 目录
mount /dev/sdd1 /mnt
#卸载
umount 设备 / 目录
umount /dev/sdd1
umount /mnt

永久生效挂载

vi /etc/fstab
# 格式
# 设备 目录 格式 权限 备份 自检
/dev/sdb2 /media/koke xfs defaults 0 0
#第一个0代表是否自动备份,第二个0代表是否自动自检

写入到/etc/fstab文件中的设备信息并不会立即生效,需要使用mount -a参数进行自动挂载:

mount -a
添加硬盘设备
fdisk /dev/sdb

fdisk命令参数

QQ截图20220903174050-16621985058256.png

image-20220903175432125-16621988739157.png

Blocks单位:Kb

#格式化
mkfs.ext4 /dev/sdb1
#挂载
mount/dev/sdb1 /media
#查看目录占用大小
du -sh /media
#查看已挂载的磁盘空间使用情况
df -h
lsblk
#查看分区格式
mount
df -Th
##查看分区格式和UUID
blkid

添加交换分区

fdisk /dev/sdb 
#创建扩展分区
#创建逻辑分区
#同步分区数据
partprobe
ls -l /dev/sd*
#新建交换分区(临时生效)
mkswap /dev/sdb5
swapon /dev/sdb5
#编辑fstab(永久生效)
/dev/sdb5 swap swap defaults 0 0

磁盘容量配额

image-20220904174248883-16622845702541.png

#更改fstab,添加uquota,如上图

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

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

image-20220904175208416-16622851296023.png

#磁盘配额命令
# x代表功能丰富 c代表非交互性配置 'limit'代表限制 'bsoft,isoft'代表软限制 'bhard,ihard'代表硬限制
xfs_quota -x -c 'limit bsoft=3m bhard=6m isoft=3 ihard=6 koke' /boot
#查看磁盘配额情况
xfs_quota -x -c report /boot
#取文件
dd if=/dev/zero of=koke count=1 bs=6M
#更改磁盘配额
yum -y install edit quota
edquoda -u koke

image-20220904181542735-16622865444184.png

软硬方式链接

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

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

软链接.jpg

硬链接.jpg

#创建软链接(快捷方式)
ln -s anaconda-ks.cfg  koke
#创建硬链接(删除源文件不影响,不是复制)
ln anaconda-ks.cfg  koke

补充 VDO虚拟数据优化

REHL 8支持

VDO技术支持本地存储和远程存储,可以作为本地文件系统、iSCSI或Ceph存储下的附加存储层使用。红帽公司在VDO介绍页面中提到,在部署虚拟机或容器时,建议采用逻辑存储与物理存储为10∶1的比例进行配置,即1TB物理存储对应10TB逻辑存储;而部署对象存储时 (例如使用Ceph)则采用逻辑存储与物理存储为3∶1的比例进行配置,即使用1TB物理存储对应3TB逻辑存储。

简而言之,VDO技术能省空间!

VDO.jpg

2

评论 (0)

取消