存储结构与管理硬盘
一切从“/”开始
/boot:开机所需文件——内核、开机菜单以及所需配置文件等
/dev:以文件形式存放任何设备与接口
/etc:配置文件
/home:用户主目录
/var:主要存放经常变化的文件,比如日志
/bin:存放单用户模式下还可以操作的命令
/lib:开机时用到的函数库,以及/bin与/sbin下面的命令要调用的函数
/sbin:开机过程中需要的命令
/media:用于挂载设备文件的目录
/opt:放置第三方的软件
/root:系统管理员的家目录
/tmp:任何人均可使用的“共享”临时目录
/proc:虚拟文件系统,例如系统内核、进程、外部设备及网络状态等
/use/local:用户自行安装的软件
/usr/sbin:Linux系统开机时不会使用到的软件/命令/脚本
/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/sd开头。a-z代表26块不同的硬盘,默认从a开始分配
主分区或扩展分区的编号从1开始,到4结束
逻辑分区从编号5开始
这是系统中第一块被识别到的硬件设备中分区编号为5的逻辑分区的设备文件
文件系统与数据资料
Ext3:是一款日志文件系统,它会把整个硬盘的每个写入动作的细节都预先记录下来,然后再进行实际操作,以便发生异常宕机后能回溯追踪到被中断的部分,EXT3能够在系统异常宕机时避免文件系统资料丢失,并能自动修复数据的不一致与错误。
当硬盘容量较大时,所需的修复实际也会很长,而且不能100%地保证资料不会丢失
Ext4:Ext3的改进版本,能够批量分配block(块),从而大大的提高了读写速率,RHEL 6的默认你文件管理系统,最大支持1EB
XFS:是一种高性能的日志文件系统,在宕机后可以快速的恢复可能被破坏的文件,而且强大的日志功能只需花费极低的计算和存储性能,支持的最大存储容量位18EB
RHEL 7/8中的默认文件管理系统
VFS的架构示意图
用户进程
挂载硬件设备
挂载:用户需要使用硬盘设备或分区中的数据的时候,需要先将其与一个已存在的目录文件进行关联,这个关联的动作就是挂载
mount:用于挂载文件系统
语法格式:mount 文件系统 挂载目录
-a:挂载所有在/etc/fstab中定义的文件系统
-t:指定文件系统的类型
mount /dev/sdb2 /backup
挂载网络存储设备:建议使用UUID进行挂载
使用【block id】命令来查询UUID
需要开机自动挂载,则需要配置文件/etc/fstab
格式:设备文件、挂载目录、格式类型、权限选项、是否备份、是否自检
设备文件:一般为设备的路径+设备名称,也可以写UUID
挂载目录:指定要挂载到的目录,需在挂载前创建好
格式类型:指定文件系统的格式:比如Ext3、XFS、Ext4、SWAP、iso9660(此为光盘设备)等
权限选项:若设置为defaults,则默认权限为:rw、suid、dev、exec、auto、nouser、async
是否备份:若为1则开机后使用dump进行磁盘备份,为0则不备份
是否自检:若1则开机后自动进行磁盘自检
举例:/dev/cdrom /media/cdrom iso9660 defaults 0 0
如果挂载网络存储设备,建议添加_netdev参数,加上后系统会等联网成功后再尝试挂载这块网络存储设备,从而避免了开机时间过长或失败的情况
UUID=XXXXXXXXXXXX /backup ext4 defaults,_netdev 0 0
umount:卸载设备或文件系统
语法格式:umount [设备文件/挂载目录]
lsblk:查看已挂载的磁盘的使用情况
添加硬盘设备
fdisk:用于新建、修改及删除磁盘的分区表信息
语法格式:fdisk 磁盘名称
m:查看全部可用的参数
n:添加新的分区
d:删除某个分区信息
l:列出所有可用的分区类型
t:改变某个分区的类型
p:查看分区表信息
w:保存并退出
q:不报错直接退出
分区后执行partprobe命令手动将分区信息同步到内核,然后用file /dev/sdb1来查看该文件的属性,看是否是/dev/sdb1: block special
格式化分区:mkfs
[root@linuxprobe ~]# mkfs
mkfs mkfs.ext2 mkfs.ext4 mkfs.minix mkfs.vfat
mkfs.cramfs mkfs.ext3 mkfs.fat mkfs.msdos mkfs.xfs
添加硬盘设备的步骤:分区-格式化-挂载
du -sh 目录:查看目录内文件大小
[root@linuxprobe ~]# du -sh /newFS
39M /newFS/
添加交换分区
交换分区(SWAP):是一种通过在硬盘中预先划分一定的空间,然后把内存中暂时不常用的数据临时存放到硬盘中,以便腾出物理内存空间让更活跃的程序服务来使用的技术
目的是为了解决物理内存不足的问题,让硬盘帮内存分担压力,只有当真实的物理内存耗尽后才会调用交换分区的资源
生产环境中,交换分区的大小一般为真实物理内存的1.5~2倍
mksqap:对新设备进行交换分区格式化
语法格式:mkswap 设备名称
swapon:用于激活新的交换分区设备
语法格式:swapon 设备名称
将新的swap分区设置重启后依然生效
/dev/sdb2 swap swap defaults 0 0
磁盘容量配额(quota)
通过使用磁盘容量配额服务来限制某位用户或某个用户组针对特定文件夹可以使用的最大硬盘空间或最大文件个数,一旦达到这个最大值就不允许继续使用
软限制:当达到软限制时会提示用户,但仍允许用户在限定的额度内继续使用
硬限制:当达到硬限制时会提示用户,且强制终止用户的操作
存储设备默认没有开启对quota技术的支持,需要手动编辑/etc/fstsa 文件配置,需要重启系统
举例:UUID=812b1f7c-8b5b-43da-8c06-b9999e0fe48b /boot xfs defaults,uquota 1 2
xfs_quota [参数] 配额 文件系统
该命令针对XFS系统来管理quota磁盘容量配额服务而设计的命令
-c:以参数的形式设置要执行的命令
-x:专家模式,让运维人员能够对quota服务进行更多复杂的配置
举例:硬盘使用量的软限制和硬限制分别为3MB和6MB;创建文件数量的软限制和硬限制分别为3个和6个。
[root@linuxprobe ~]# xfs_quota -x -c 'limit bsoft=3m bhard=6m isoft=3 ihard=6 tom' /boot
[root@linuxprobe ~]# xfs_quota -x -c report /boot
edquota:用于管理系统的磁盘配额
语法格式:edquota [参数] 用户名
-u:对某个用户进行设置
-g:对某个用户组进行设置
-p:复制原有的规则到新的用户/组
-t:限制宽限期限
VDO虚拟数据优化
VDO(virtual data optimize 虚拟数据优化)是一种通过压缩或删除存储设备上的数据来优化存储空间的技术
删重、对日志和数据库进行自动压缩,支持本地存储和远程存储,可以座位本地文件系统,iSCSI或ceph存储下的附加存储层是有
部署虚拟机或容器:建议采用逻辑存储和物理存储为【10:1】的比例进行配置
部署对象存储(ceph):采用逻辑存储和物理存储为【3:1】的比例进行配置
特点:省空间
配置步骤:
1、先找一块新的硬盘,比如/dev/sdc
2、安装vdo,yum install vdo
3、创建一个权限的VDO卷
vdo create --name=storage --device=/dev/sdc --vdoLogicalSize=200G
4、使用status参数查看新建卷的概述信息
vdo status --name=storage
5、格式化新建的VDO卷
mkfs.xfs /dev/mapper/storage
6、对设备进行刷新
udevadm settle
7、创建挂载点
mkdir /storage
8、挂载
mount /dev/mapper/storage /storage
9、设置重启后自动挂载
blkid /dev/mapper/storage 查询uuid
UUID=cd4e9f12-e16a-415c-ae76-8de069076713 /storage xfs defaults,_netdev 0 0
vdostats --human-readable:查看设备的实际使用情况
软硬链接方式
软链接:也叫符号链接,仅仅包含所链接文件的名称和路径,当原始文件被删除或移动后,新的链接文件会失效,无法被访问,类似于windows的快捷方式
硬链接:可以理解为一个“指向原始文件block的指针”,系统会创建处一个与原来一模一样的indo信息块
ln:创建文件的软硬链接
语法格式:ln [参数] 原始文件名 链接文件名
-s:创建“符号链接”,不带-s默认创建硬链接
-f:强制创建文件或目录的链接