Top23:RHEL学习札记-6-存储结构与磁盘划分
Linux 系统中一切都是文件
1.一切从“/”开始
FHS(Filesystem Hierarchy Standard)
/boot 开机所需文件—内核、开机菜单以及所需配置文件等
/dev 以文件形式存放任何设备与接口例:鼠标、键盘、光盘、光驱
/etc 存放系统,以及各个服务的配置文件
/home 普通用户的家目录,每一个用户都会新建一个文件夹
/bin 存放单用户模式下还可以操作的命令
/lib 开机时用到的函数库,以及/bin 与/sbin 下面的命令要调用的函数
/sbin 开机过程中需要的命令,第二种解释:存放所有管理员使用到的命令
/media 用于挂载设备文件的目录
/opt 放置第三方的软件
/root 系统管理员的家目录
/srv 一些网络服务的数据文件目录
/tmp 任何人均可使用的“共享”临时目录
/proc 虚拟文件系统,例如系统内核、进程、外部设备及网络状态等
/usr/local 用户自行安装的软件
/usr/sbin Linux 系统开机时不会使用到的软件/命令/脚本
/usr/share 帮助与说明文件,也可放置共享文件
/var 主要存放经常会发生变动的数据,如日志文件、数据库文件、网站文件
/lost+found 当文件系统发生错误时,将一些丢失的文件片段存放在这里
路径
绝对路径 从根目录开始写起的文件或目录名称
相对路径 相对于当前路径的写法,相对路径不具备普适性
2.物理设备的命名规则
系统内核中的udev 设备管理器会自动把硬件名称规范起来
目的是让用户通过设备文件的名字可以猜出设备大致的属性以及分区信息等
IDE设备 /dev/hd[a-d]
SCSI/SATA/U盘 /dev/sd[s-p]
软驱 /dev/fd[0-1]
打印机 /dev/lp[0-15]
光驱 /dev/cdrom
鼠标 /dev/mouse
磁带机 /dev/st0或/dev/ht0
硬盘的分区编号
主分区或扩展分区的编号从 1 开始,到4 结束
逻辑分区从编号 5 开始。
注:
1./dev/sda 表示主板上第一个插槽上的存储设备这个说法是错误的,
例:在使用iSCSI 网络存储设备时就会发现,明明主板上第二个插槽是空着的,但系统却能识别到/dev/sdb 这个设备
2.sda3 表示是设备上的第三个分区这个说法是错误的,分区的数字编码不一定是强制顺延下来的,
也有可能是手工指定的。因此sda3只能表示是编号为3 的分区,而不能判断sda 设备上已经存在了3 个分区。
例:解释/dev/sda5
首先,/dev/目录中保存的应当是硬件设备文件;
其次,sd 表示是存储设备;
然后,a 表示系统中同类接口中第一个被识别到的设备,
最后,5 表示这个设备是一个逻辑分区。
总结:一句话,这是系统中第一块被识别到的硬件设备中分区编号为5 的逻辑分区的设备文件。
计算机硬件
硬盘设备是由大量的扇区组成的,每个扇区的容量为512 字节。其中第一个扇区最重要,它里面保存着主引导记录与分区表信息。
就第一个扇区来讲,主引导记录需要占用446 字节,分区表为64 字节,结束符占用2 字节;其中分区表中每记录一个分区信息就
需要16 字节,这样一来最多只有4 个分区信息可以写到第一个扇区中,这4 个分区就是4 个主分区。
但是四个分区是不够的,为了解决这个问题,可以将第一个扇区的分区表中16 字节(原本要写入主分区信息)的空间(称之为扩展分区)
拿出来指向另外一个分区。也就是说,扩展分区其实并不是一个真正的分区,而更像是一个占用16 字节分区表空间的指针,一个指向另外
一个分区的指针。 这样一来,用户一般会选择使用3 个主分区加1 个扩展分区的方法,然后在扩展分区中创建出数个逻辑分区,从而来
满足多分区(大于4 个)的需求。
总结:所谓扩展分区,严格地讲它不是一个实际意义的分区,它仅仅是一个指向下一个分区的指针,这种指针结构将形成一个单向链表。
3.文件系统与数据资料
Ext3:日志文件系统
优点:能在系统异常宕机时避免文件系统资料丢失,并能自动修复数据的不一致与错误。
缺点:系统文件较大时修复时间很长,不能百分百保证资料不丢失。
修复方式:将整个磁盘的每个吸入动作细节预先记录,发生异常宕机后回溯追踪到被中断部分,尝试进行修复
Ext4:Ext3 的改进版本,RHEL6中默认文件管理系统。
特点:
1.支持存储容量高达1EB;
2.能够有无限多的子目录;
3.能够批量分配block块,极大提高读写效率
XFS:高性能日志文件系统,RHEL7,8中默认的文件管理系统
特点:
1.最大支持存储容量为18EB;
2.意外宕机后可花费极低的计算和存储性能 快速恢复到可能被破坏的文件
4.挂载硬件设备
挂载:用户需要使用硬盘设备或分区中的数据时,需要先将其与一个
已存在的目录文件进行关联,而这个关联动作就是“挂载”,
好比在Windows系统中插入了一个U盘。
mount 文件系统 挂载目录
作用:挂载设备
缺点:并没有永久自动关联,每次重启后挂载会失效
-a 挂载所有在/etc/fstab 中定义的文件系统
-t 指定文件系统的类型
例:mount /dev/sdb1 /media/sdb
使挂载永久生效:
/etc/fstab中写入挂载信息
写入格式:设备文件挂载目录 格式类型权限选项自检 优先级
设备文件 一般为设备的路径+设备名称,也可以写唯一识别码(UUID,Universally Unique Identifier)
挂载目录 指定要挂载到的目录,需在挂载前创建好
格式类型 指定文件系统的格式,比如 Ext3、Ext4、XFS、SWAP、iso9660(此为光盘设备)等
权限选项 若设置为 defaults,则默认权限为:rw, suid, dev, exec, auto, nouser, async
自检若为 1 则开机后进行磁盘自检,为0 则不自检
优先级 若“自检”字段为 1,则可对多块硬盘进行自检优先级设置
例:将文件系统为ext4 的硬件设备/dev/sdb2 在开机后自动挂载到/backup 目录上,并保持默认权限且无需开机自检
vim /etc/fstab
/dev/sdb2 /backup ext4 defaults 0 0
umount [挂载点/设备文件]
作用:撤销已经挂载的设备文件
例:手动卸载 /dev/sdb2 设备文件
umount /dev/sdb2
5.添加硬件设备
虚拟机关机状态-编辑虚拟机设置-添加-硬盘-选择SCSI或者SATA都可以-创建新虚拟磁盘-
磁盘容量根据实际使用添加,下一步-设置磁盘文件的文件名和保存位置,一般默认-完成
fdisk 磁盘名称
作用:管理磁盘分区
参数:
m 查看全部可用的参数
n 添加新的分区
d 删除某个分区信息
l 列出所有可用的分区类型
t 改变某个分区的类型
p 查看分区信息
w 保存并退出
q 不保存直接退出
例1:管理/dev/sdb硬盘设备--划分分区/dev/sdb1 大小为2G
fdisk /dev/sdb
p(这里是输入参数查看硬盘设备内已有的分区信息,包括容量大小、扇区个数)
n(添加新分区)
p(p为创建主分区,e创建扩展分区)
1(输入分区编号,范围是1~4)
回车(定义起始扇区位置,默认即可)
+2G(定义结束扇区位置,就是定义分区大小)
p(再次查看分区信息)
w(修改完一定要保存,不能直接关闭窗口)
例2:同步给内核
file /dev/sdb1(查看文件属性,会发现并没有自动同步给Linux内核)
partprobe(可以执行两次,再次查看后还没有同步,就可以重启了)
例3:格式化分区为XFS格式
mkfs.xfs /dev/sdb1
例4:挂载并使用
mkdir /newFS
mount /dev/sdb1 /newFS/
df -h(查看挂载状态和硬盘使用量信息)
例5:设置挂载永久有效
vim /etc/fstab(挂载的信息写入到配置文件)
/dev/sdb1 /newFS xfs defaults 0 0
整体流程:分区-格式化-挂载
du 选项 文件
作用:查看文件数据占用多大的硬盘空间
例:查看根目录下所有一级目录分别占用的空间大小
du -sh /*
6.添加交换分区
SWAP分区
是一种通过在硬盘中预先划分一定的空间,然后将把内存中暂时
不常用的数据临时存放到硬盘中,以便腾出物理内存空间让更活
跃的程序服务来使用的技术。
优点:可以解决真实屋里内存不足的问题
缺点:速度比物理内存慢,只有当真实物理内存耗尽后才会调用交换分区的资源
注:在生产环境中,交换分区的大小一般为真实物理内存的1.5~2 倍
例:创建一个大小为5GB 的主分区作为交换分区
fdisk /dev/sdb
n
p
回车
+5G
p
w
例:格式化交换分区
mkswap /dev/sdb2(SWAP 分区专用的格式化命令)
例:挂载交换分区
swapon /dev/sdb2
free -m(查看内存使用情况)
例:使挂载永久生效
vim /etc/fstab
/dev/sdb2 swap swap defaults 0 0
7.磁盘容量配额
前提条件:root账户
作用:限制某位用户或某个用户组针对特定文件夹可以使用的最大硬盘空间或最大文件个数
quota
磁盘容量配额管理,分为软限制和硬限制
软限制:当达到软限制时会提示用户,但仍允许用户在限定的额度内继续使用
硬限制:当达到硬限制时会提示用户,且强制终止用户的操作
例:使/boot 目录支持quota 磁盘配额技术
vim /etc/fstab
找到/boot,在defaults参数后边添加“,uquota”
reboot
mount | grep boot
例:创建一个用于检查quota 磁盘容量配额效果的用户tom,
并针对/boot 目录增加其他人的写权限
useradd tom
chmod -Rf o+w /boot
xfs_quota
xfs_quota 参数 配额文件系统
-c 以参数的形式设置要执行的命令
-x 专家模式,让运维人员能够对quota 服务进行更多复杂的配置
例:设置用户tom 对/boot 目录的quota 磁盘容量配额
包括:硬盘使用量的软限制和硬限制分别为3MB 和6MB;
创建文件数量的软限制和硬限制分别为3 个和6 个
xfs_quota -x -c 'limit bsoft=3m bhard=6m isoft=3 ihard=6 tom' /boot
xfs_quota -x -c report /boot
测试:分别创建一个体积为5MB 和8MB 的文件。
su - tom
dd if=/dev/zero of=/boot/tom bs=5M count=1
dd if=/dev/zero of=/boot/tom bs=8M count=1
结果:创建8M文件时受到限制
edquota
edquota 参数 用户
编辑用户的quota 配额限制
-u 要针对哪个用户进行设置
-g 要针对哪个用户组进行设置
例:把用户tom 的硬盘使用量的硬限额从5MB 提升到8MB
edquota -u tom
8.软硬方式链接
Windows下的快捷方式:就是指向原始文件的一个链接文件,
可以让用户从不同的位置来访问原始的文件;
原文件一旦被删除或剪切到其他地方后,会导致链接文件失效。
在 Linux 系统中存在硬链接和软连接两种文件
硬链接(hard link):
指向原始文件inode 的指针,系统不为它分配独立的inode 和文件
硬链接文件与原始文件其实是同一个文件,只是名字不同。
我们每添加一个硬链接,该文件的inode 连接数就会增加1;
而且只有当该文件的inode 连接数为0 时,才算彻底将它删除。
注:硬链接不能跨分区对目录文件进行链接
软链接(又叫符号链接[symbolic link]):
仅包含所链接文件的路径名,因此能链接目录文件,也可以跨越文件系统进行链接。
但是,当原始文件被删除后,链接文件也将失效。
从这一点上来说与Windows 系统中的“快捷方式”具有一样的性质。
ln
ln 选项 目标
参数:
-s 创建“符号链接”(如果不带-s 参数,则默认创建硬链接)
-f 强制创建文件或目录的链接
-i 覆盖前先询问
-v 显示创建链接的过程
例1:创建软链接并测试
echo "hello linux!" > readme.txt
ln -s readme.txt readit.txt
cat readme.txt
cat readit.txt
ls -l readme.txt
rm -f readme.txt
cat readit.txt
例2:创建硬链接并测试
echo "hello linux!" > readme.txt
ln readme.txt readit.txt
cat readme.txt
cat readit.txt
ls -l readme.txt
rm -f readme.txt
cat readit.txt