内蒙古网站seo优化,包头网站网站建设,企业推广方式推荐隐迅推,百度seo优化网站11.RedHat认证-Linux文件系统(中)
Linux的文件系统
格式化分区(1道题)
#对于Linux分区来说#xff0c;只有格式化之后才能使用#xff0c;不格式化是无法使用的。
#Linux分区格式化之后就会变成文件系统#xff0c;格式化的过程相当于对分区做了一个文件系统。
#Linux常见…11.RedHat认证-Linux文件系统(中)
Linux的文件系统
格式化分区(1道题)
#对于Linux分区来说只有格式化之后才能使用不格式化是无法使用的。
#Linux分区格式化之后就会变成文件系统格式化的过程相当于对分区做了一个文件系统。
#Linux常见的文件系统有ext系列ext2ext3ext4。还有xfs还有btrfs。
#ext4的文件系统限制是单个文件的大小不能超过1T
#xfs的文件系统单个文件系统量最大支持8EB,单个文件可以支持16TB#从centos7和rhel7开始默认的安装文件系统就是xfs了也提供了xfs文件系统的支持。
#对于文件系统来说如果涉及到了文件系统性能的需求首先你要知道的就是你要存储的文件类型特征。
#小文件特别多或者文件特别大但是文件数量少。现在我将 sdb1 和 sdb2分别格式化成xfs 和 ext4文件系统#在Linux操作系统中格式化文件系统的原理是什么呢
#分区的最小单位是sector扇区一个扇区是512B
#假如分区可以直接使用那么存储一个20MB的文件需要多少个扇区呢
#答案是40960也就是说存储一个20MB的文件需要40960个扇区。
#那么读取这个20MB的文件就需要读40960次。效率太低了。
#上面只是我们不能直接使用分区的一个原因。还有其他原因请自行了解。#当我们的分区进行格式化之后会将磁盘的读和写的粒度放大。
#格式化的详细操作
1.会立刻分配一部分空间作为inode节点空间
2.刨除inode节点占用的空间剩下的空间用作划分blockblock包含了多个扇区
1个block等于2^n个扇区如果n等于0那么一个block就等于1个扇区的大小
如果n1那么block就等于2个扇区的大小如果n2那么block就等于4个扇区的大小。
单个block越大就意味着粒度越大。
# 划分block的目的是要将文件以block的数量来存放block越大对磁盘的读取效果就越好。block大了一次性读取的空间变多了这样你的读效率就会提升。
block并不是越大越好如果block太大但是你存放的文件特征是小文件那么会造成大量磁盘的浪费。
所以格式化文件系统的时候block的大小要选对。#inode节点
block是用来存放文件内容inode节点是用来存放文件元数据的。临时挂载Linux文件系统(因为分区是不能直接挂载--------mount)
Linux的mount命令就是挂载文件系统的
mount命令的格式
mount -t 文件系统类型 文件系统所在的分区路径 文件系统的挂载点路径
mount -t fstype 分区路径 挂载点路径
如果是原生的Linux文件系统那么Linux是可以识别出这个文件系统的所以如果是原生的Linux文
件系统那么可以不用加-t参数来指定文件系统的类型。ext系列xfs就属于Linux原生的文件系统挂载点你随便指定。取决于你因为你是管理员能力越大责任越大。
一般来说在LInux上的应用如果使用了某个path那么这个路径你就可以挂载一个文件系统
[rootserver ~]# mount /dev/sda5 /mount-point1
[rootserver ~]# mount /dev/sda6 /mount-point2df命令的-T参数表示显示文件系统的类型type
-h参数表示将文件系统的大小转换成human易懂的格式。
-H参数表示将文件系统的大小转换成human易懂的格式。
[rootserver ~]# df -ThFilesystem Type Size Used Avail Use% Mounted ondevtmpfs devtmpfs 3.9G 0 3.9G 0% /devtmpfs tmpfs 3.9G 0 3.9G 0% /dev/shmtmpfs tmpfs 3.9G 10M 3.9G 1% /runtmpfs tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroupmount命令能列出当前系统的所有文件系统挂载情况持续性挂载Linux文件系统
mount命令挂载只是临时挂载重启就没了
如果你想让你的文件系统永久的挂载那么就需要将挂载的信息写入/etc/fstab。
/etc/fstab这个文件非常重要一旦这个文件被误删了或者里面的某些行被错误的删除了甚至写法的错误都会导致系统无法正常启动# 经验编辑/etc/fstab之前记得将这个文件备份[rootserver ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Thu May 9 11:16:12 2024
#
# 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/cs-root / xfs defaults 0 0
UUID04d9fb55-39a4-452e-91bf-70a2afd97cae /boot xfs defaults 0 0
/dev/mapper/cs-swap none swap defaults 0 0#第一列是文件系统所在的分区路径
#第二列是文件系统的挂载点
#第三列是文件系统的类型
#第四列是挂载参数
#第五列和第六列分别写0只有在一些特殊的文件系统后两列才需要改成非0# 然后再文件里按照格式写入你需要永久挂在的文件系统。下面只做示例
/dev/sda5 /mount-point1 ext4 defaults 0 0
/dev/sda6 /mount-point2 xfs defaults 0 0--------------------------------------------------------------------------------
当fstab编辑完成之后使用mount -a命令mount -a命令会让我们的文件系统按照fstab里面自动挂载。
但是注意如果某个文件系统已经挂载了且还在fstab里面被记录
那么mount -a【并不会】将该文件系统卸载再重新挂载mount -a会自动忽略该文件系统逻辑卷(2道题)重要
生产环境使用率极高非常非常非常非常高
我们之前使用磁盘步骤是:
1.安装磁盘
2.分区
3.格式化
4.挂载
5.使用
如果对磁盘直接使用fdisk分区那么这种分区我们叫做Linux的标准分区Linux的标准分区如果
格式化成文件系统之后挂载使用那么一旦文件系统的空间满了是无法扩容的。如果一定要“扩
容”需要将数据备份出来在换一个更大的文件系统再将数据还原回去。这种方法效率特别低。上面的问题促使了逻辑卷的诞生。
逻辑卷是个抽象的概念我们要记很多新的专有名词
pv(physical volume)物理卷理论上可以无限大
vg(volume group)卷组
lv(logical volume)逻辑卷
pv的创建pv的删除向pv里面加入新的块设备就相当于扩容pv从pv里面删除块设备就相当于缩容pv
vg的创建vg的删除vg的扩容vg的缩容不包含
lv的创建lv的删除lv的扩容lv的缩容不包含 PV理论上可以无线扩容
PV下可以创建很多个卷组VG
一个VG下可以创建很多个LV
不同的VG下的LV可以重名同一个VG下的LV不可重名。
创建物理卷
先分区
# 分区
[rootcentos8 ~]# fdisk -l /dev/sdb
Disk /dev/sdb20 GiB21474836480 字节41943040 个扇区
单元扇区 / 1 * 512 512 字节
扇区大小(逻辑/物理)512 字节 / 512 字节
I/O 大小(最小/最佳)512 字节 / 512 字节
磁盘标签类型dos
磁盘标识符0x8d773471设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sdb1 2048 10487807 10485760 5G 83 Linux
/dev/sdb2 10487808 23070719 12582912 6G 83 Linux---------------------------------------------------------------------------
# PV的操作
#创建PV
[rootcentos8 ~]# pvcreate /dev/sdb1Physical volume /dev/sdb1 successfully created.
[rootcentos8 ~]# pvcreate /dev/sdb2Physical volume /dev/sdb2 successfully created.#不分区添加硬盘后直接创建pv
[rootcentos8 ~]# pvcreate /dev/sdcPhysical volume /dev/sdc successfully created.# 查看pv
[rootcentos8 ~]# pvsPV VG Fmt Attr PSize PFree/dev/sda2 cs lvm2 a-- 19.00g 0 /dev/sdb1 lvm2 --- 5.00g 5.00g/dev/sdb2 lvm2 --- 6.00g 6.00g# 删除pv 如果pv已经被某个vg使用那么无法删除
[rootcentos8 ~]# pvremove /dev/sdb1Labels on physical volume /dev/sdb1 successfully wiped.---------------------------------------------------------------------------#卷组的操作
# 创建卷组(VG)
[rootcentos8 ~]# vgcreate vg1 /dev/sdb1Volume group vg1 successfully created
[rootcentos8 ~]# vgsVG #PV #LV #SN Attr VSize VFree cs 1 2 0 wz--n- 19.00g 0 vg1 1 0 0 wz--n- 5.00g 5.00g[rootcentos8 ~]# pvsPV VG Fmt Attr PSize PFree /dev/sda2 cs lvm2 a-- 19.00g 0 /dev/sdb1 vg1 lvm2 a-- 5.00g 5.00g/dev/sdb2 lvm2 --- 6.00g 6.00g# 删除vg (如果在vg上有逻辑卷在使用那么vg无法删除)
[rootcentos8 ~]# vgremove vg1 Volume group vg1 successfully removed# VG扩容vg扩容是从pv里拿的空间是不能从现有的vg里拿的
[rootcentos8 ~]# vgsVG #PV #LV #SN Attr VSize VFree cs 1 2 0 wz--n- 19.00g 0 vg1 1 0 0 wz--n- 5.00g 5.00gvg2 1 0 0 wz--n- 6.00g 6.00g
[rootcentos8 ~]# vgextend vg1 /dev/sdb3Volume group vg1 successfully extended
[rootcentos8 ~]# vgsVG #PV #LV #SN Attr VSize VFree cs 1 2 0 wz--n- 19.00g 0 vg1 2 0 0 wz--n- 6.99g 6.99gvg2 1 0 0 wz--n- 6.00g 6.00g---------------------------------------------------------------------------#逻辑卷的操作-n参数表示逻辑卷的名字 #name
-L参数表示逻辑卷的大小 300M,2G #Large
vg2就表示使用卷组vg2创建该逻辑卷# 创建逻辑卷
[rootcentos8 ~]# lvcreate -n lv1 -L 300M vg1Logical volume lv1 created.
[rootcentos8 ~]# lvsLV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convertroot cs -wi-ao---- 17.00g swap cs -wi-ao---- 2.00g lv1 vg1 -wi-a----- 300.00m逻辑卷创建完成之后可以直接格式化成为文件系统使用。
如果卷组下面创建了一个新的逻辑卷那么该逻辑卷就会自动的在设备文件路径出现/dev/vgname/lvname
[rootcentos8 ~]# vgsVG #PV #LV #SN Attr VSize VFree cs 1 2 0 wz--n- 19.00g 0 vg1 2 1 0 wz--n- 6.99g 6.70gvg2 1 0 0 wz--n- 6.00g 6.00g
[rootcentos8 ~]# ls /dev/vg1
lv1
[rootcentos8 ~]# ls /dev/vg1 -l
总用量 0
lrwxrwxrwx. 1 root root 7 5月 29 21:26 lv1 - ../dm-2
dm设备就表示逻辑卷的本尊。dm全拼是device mapper
[rootcentos8 ~]# ls /dev/mapper/ -l
总用量 0
crw-------. 1 root root 10, 236 5月 29 20:04 control
lrwxrwxrwx. 1 root root 7 5月 29 20:04 cs-root - ../dm-0
lrwxrwxrwx. 1 root root 7 5月 29 20:04 cs-swap - ../dm-1
lrwxrwxrwx. 1 root root 7 5月 29 21:26 vg1-lv1 - ../dm-2# 格式化lv1 ,就可以使用了
[rootcentos8 ~]# mkfs.ext4 /dev/mapper/vg1-lv1
mke2fs 1.45.6 (20-Mar-2020)
创建含有 307200 个块每块 1k和 76912 个inode的文件系统
文件系统UUID933a382a-fe30-4636-9ee3-ac8c0a499bec
超级块的备份存储于下列块 8193, 24577, 40961, 57345, 73729, 204801, 221185正在分配组表 完成
正在写入inode表 完成
创建日志8192 个块完成
写入超级块和文件系统账户统计信息 已完成#逻辑卷的删除请注意删除的路径是在哪个卷组下创建的逻辑卷
# 比如说你在vg1卷组下创建了一个逻辑卷lv1 ,那么你删除的时候就应该是在/dev/vg1/lv1 删除这个lv1逻辑卷。
[rootcentos8 ~]# lvremove /dev/vg1/lv1
Do you really want to remove active logical volume vg1/lv1? [y/n]: yLogical volume lv1 successfully removed.# 逻辑卷的格式化
[rootserver ~]# lvcreate -n lv1-ext4 vg2 -L 200M
[rootserver ~]# lvcreate -n lv1-xfs vg2 -L 500M
[rootserver ~]# lvs
[rootserver ~]# mkfs.ext4 /dev/vg2/lv1-ext4
[rootserver ~]# mkfs.xfs /dev/vg2/lv1-xfs
[rootserver ~]# mkdir /ext4-test /xfs-test
[rootserver ~]# mount -t ext4 /dev/vg2/lv1-ext4 /ext4-test/
[rootserver ~]# mount /dev/vg2/lv1-xfs /xfs-test/
[rootserver ~]# df -Th /xfs-test/ /ext4-test/
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/vg2-lv1--xfs xfs 499M 29M 470M 6% /xfs-test
/dev/mapper/vg2-lv1--ext4 ext4 190M 1.6M 175M 1% /ext4-test#逻辑卷的扩容
#在线扩容在线扩容指的是文件系统不能卸载
将lv1-ext4扩容到300M
讲lv1-xfs扩容到700M
[rootcentos8 ~]# lvextend /dev/vg2/lv1-ext4 -L 300MSize of logical volume vg2/lv1-ext4 changed from 200.00 MiB (50 extents) to 300.00 MiB (75 extents).Logical volume vg2/lv1-ext4 successfully resized.
[rootcentos8 ~]# lvsLV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convertroot cs -wi-ao---- 17.00g swap cs -wi-ao---- 2.00g lv1-ext4 vg2 -wi-ao---- 300.00m lv1-xfs vg2 -wi-ao---- 500.00m
[rootcentos8 ~]# lvextend /dev/vg2/lv1-xfs -L 700MSize of logical volume vg2/lv1-xfs changed from 500.00 MiB (125 extents) to 700.00 MiB (175 extents).Logical volume vg2/lv1-xfs successfully resized.
[rootcentos8 ~]# lvsLV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convertroot cs -wi-ao---- 17.00g swap cs -wi-ao---- 2.00g lv1-ext4 vg2 -wi-ao---- 300.00m lv1-xfs vg2 -wi-ao---- 700.00m [rootserver ~]# df -Th[rootcentos8 ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/vg2-lv1--ext4 ext4 189M 14K 175M 1% /etx4-test
/dev/mapper/vg2-lv1--xfs xfs 495M 29M 466M 6% /xfs-test
# 因为扩容的部分没有格式化所以在文件系统上检测不到。
# 将ext4和xfs扩容的空间加入到文件系统操作
[rootserver ~]# resize2fs /dev/vg2/lv1-ext4
[rootcentos8 ~]# xfs_growfs /xfs-test/ #xfs的操作是要操作挂载点。
[rootcentos8 ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/vg2-lv1--ext4 ext4 285M 14K 267M 1% /etx4-test
/dev/mapper/vg2-lv1--xfs xfs 695M 31M 665M 5% /xfs-test
find命令、dd 命令 、ln命令
find命令是Linux中功能非常强大的查找命令windows没有类似的功能
find命令能搜索任何你想搜索的文件
格式
find 查找范围 查找参数
1.根据名称查找文件名称支持正则表达式和通配符
[rootserver ~]# find / -name default
2. 根据文件拥有者查找
[rootserver ~]# find / -user apache 2/dev/null | xargs ls -ld
3.根据文件大小查找
[rootserver ~]# find / -size 100M 2/dev/null | xargs ls -lh根据文件大小范围查找
[rootcentos8 ~]# find / -size 100M -size -300M 2/dev/null | xargs ls -ld例题找到拥有人为admin的文件将其拷贝到/opt/admin-test目录(这个目录要提前创建)
mkdir -p /opt/admin-test
[rootcentos8 ~]# find / -user admin 2/dev/null -exec cp -a {} /opt/admin-test \;dd命令
1.用dd命令测磁盘的写速度
[rootcentos8 ~]# dd if/dev/zero of/dev/null
^C记录了19544310 的读入
记录了19544300 的写出
1000668160 bytes (1.0 GB, 954 MiB) copied, 3.4651 s, 289 MB/s[rootserver ~]# dd if/dev/zero of/root/file count1000 bs1M # count是块数量bs是块大小。ln-link
ln命令可以创建软连接软连接就相当于快捷方式#软链接用的多工作中用的多
ln -s /opt/admin-test /root/test-link