admin管理员组文章数量:1598613
硬盘: 机械硬盘 固态硬盘比磁盘快
个人主机:西部数据 希捷 东芝 三星(固态)
服务器:dell比较贵,浪潮便宜但质量不好, 华为
性能: 容量 磁头 速度 品牌 接口 亚马逊 aws
接口():
硬盘接口是硬盘与主机系统间的连接部件,作用是在硬盘缓存和主机内存之间传输数据。不同的硬盘接口决定着硬盘与计算机之间的连接速度,在整个系统中,硬盘接口的优劣直接影响着程序运行快慢和系统性能好坏。
分类:
IDE古老
SCSI SCSI(小型计算机设备接口),接SCSI硬盘,一般用于服务器上。虚拟机一般推荐选这个
SATA SATA接口, SATA3.0 600MB/S
SAS 串行SCSI(SAS:Serial Attached SCSI)是一种电脑集线的技术,其功能主要是做周边零件的数据传输 集成SATA + SCSI优点
光纤通道 光纤通道能支持的最高速率是8Gbit/s以上,1000MB/s左右 isp主流运营商
#传输速度:异地多活(数据完整性) 杭州萧山 北京亦庄 兆维 长沙麓谷
机械硬盘:硬盘的术语
l 磁头(head)数:每个盘片一般有上下两面,分别对应1个磁头,共2个磁头;
l 磁道(track)数:磁道是从盘片外圈往内圈编号0磁道,1磁道...,靠近主轴的同心圆用于停靠磁头,不存储数据;
l 柱面(cylinder)数:同磁道数量;
l 扇区(sector)数:每个磁道切分成很多扇形区域,每道扇区数量相同;磁盘管理最小单位
l 圆盘(platter)数:就是盘片的数量。
磁盘的基本参数
容量 转速 7200 5400 14000 rpm Revolutions per minute
缓存 传输速率 平均寻道时间
#固态硬盘
固态硬盘的原理是,SSD固态硬盘就是把磁存储改为集成电路存储。
磁存储需要扫描磁头的动作和旋转磁盘的配合。
电路存储即固态存储靠的是电路的扫描和开关作用将信息读出和写入,不存在机械动作。
固态硬盘内主体其实就是一块PCB板,而这块PCB板上最基本的配件就是控制芯片,缓存芯片和用于存储数据的闪存芯片
1、机械硬盘本质是电磁存储,固态硬盘则是半导体存储。
2、机械硬盘很怕摔,固态硬盘比较抗震。
3、固态硬盘读写速度比机械硬盘快。
在vmware上给虚拟机新加一个磁盘 重启后在xshell上cd /dev 可查看所有设备文件 然后fdisk -l (管理磁盘设备命令 看当前磁盘大概磁盘)看磁盘sda和sdb 即两个磁盘
SATA、mSATA 、PCIe和M.2——SSD硬盘的接口
https://blog.csdn/xuheng8600/article/details/98469562
分区:主分区(c盘,d盘) 1-4个主分区
扩展分区 主分区(p)之外都可以作为扩展分区(e) 会占用一个主分区 会重新划分成逻辑分区 能存储文件的是主和逻辑分区
/dev/sda -- 分区-- /dev/sda1 /dev/sda2 第一个磁盘的第二个分区 sd表示SCSI设备
新添加盘没识别到可用命令 或者 重启主机reboot
echo "scsi add-single-device 2 0 1 0">/proc/scsi/scsi
fdisk -l [设备名] #不接设备名 就查看所有设备的信息
[root@localhost boot]# fdisk -l /dev/sda
Disk /dev/sda:20 GiB,21474836480 字节,41943040 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sda1 * 2048 2099199 2097152 1G 83 Linux
/dev/sda2 2099200 41943039 39843840 19G 8e Linux LVM
fdisk命令建立分区(最大支持2T分区)
用途:在交互式的操作环境中管理磁盘分区
格式:fdisk [磁盘设备] 交互模式中的常用指令 根据提示操作就行
m:查看操作指令的帮助信息 p:列表查看分区信息 print
n:新建分区 new d:删除分区 delete
t:变更分区类型 q:放弃分区设置并退出
w:保存分区设置并退出 (更改将停留在内存中,直到您决定将更改写入磁盘。)
fdisk /dev/sdb 给磁盘分区 fdisk -l /dev/sdb 看分区结果
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at the next reboot.
Syncing disks. 写入的时候分区表没写进去
此时使用fdisk命令看不到新建的分区信息,可以使用partprobe命令解决这个问题而不用重启系统,因为partprobe可以使kernel重新读取分区信息,从而避免重启系统
parted分区命令:
https://blog.csdn/linuxnews/article/details/51093815
命令行:parted -s /dev/sdb mklabe gpt mkpart primary 0 100%在非交互式环境通过命令分为一个区
du看文件大小 df看磁盘情况
开机运行级别:systemctl get-default 一般都是3
运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆 忘记密码可以进入这个模式修改 忘记root用户密码
运行级别2:多用户状态(没有NFS)
运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
运行级别4:系统未使用,保留
运行级别5:X11控制台,登陆后进入图形GUI模式
运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
systemd 是7 和8 的1号进程 以前是init进程 centos6 是init进程
systemd除了干以前init的活,还集成了其他功能 比如说开机自启服务的管理
#MBR分区表 (存放分区信息)放在第一个扇区
Master Boot Record:主引导记录
硬盘的0柱面、0磁头、1扇区称为主引导扇区(ssd逻辑上的第一个扇区)
MBR大小512字节,分为三个部分
主引导程序:446字节 (grub)引导开机启动
硬盘分区表DPT:64字节 分区结束标记:2字节
DPT:磁盘分区表 DPT大小64字节
每个主分区要用16个字节描述 所以最多四个主分区
扩展分区也要占用16个字节的主分区空间
rom 只读存储器 ram 随机读写存储器
bios -- basic input output system 汇编
GPT分区:全称为Globally Unique Identifier Partition Table,也叫做GUID分区表,它是UEFI 规范的一部分。由于硬盘容量的急速增长,MBR的2.2T容量难以满足要求,而UEFI BIOS的推广也为GPT的实现打下了坚实的技术基础,GPT应运而生 也有引导程序
GPT VS MBR 磁盘标签类型
1、GPT 理论上来说可以对无限大的磁盘进行分区, MBR对2T以下磁盘进行分区
2、MBR最多支持4个分区 GPT 1-128
GPT不会受到硬盘容量大小、分区数量的限制,不过在Windows系统上由于系统的限制,支持最多128个GPT磁盘分区 g可以进行gpt分区
fdisk与parted的区别
fdisk在交互式的操作环境中管理磁盘分区
Parted 可以在交互式操作环境中管理磁盘,可以在命令行管理磁盘
fdisk默认使用dos磁盘标签,要想分2T以上的磁盘 必须指明使用gpt分区表
parted使用gpt磁盘标签
dos 标签: mbr gpt 标签: gpt
#linux内核 5大子系统
#进程调度 #内存管理 #文件系统 #网络接口 #进程通信
#文件系统 windows(NTFS) LINUX- ext2 ext3 ext4 xfs btrfs(趋势)
分区步骤
加盘 分区fdisk 格式化mkfs blkid(看是否格式化成功) 挂载mount 才可以运行 umount lsof /dev/sdb1看这个文件被哪个程序占用 df -Th 查看
mkfs.ext4 /dev/sdb1 挂载前先建 mount /dev/sdb1 /mnt1
物理磁盘挂上 -- 分区 -- 格式化文件系统mkfs -- 挂载 (mount) -- 写入fstab
[root@localhost ~]# mkfs.ext4 /dev/sdb1
mke2fs 1.44.6 (5-Mar-2019)
创建含有 5242619 个块(每块 4k)和 1310720 个inode的文件系统
文件系统UUID:ba953c04-86ab-413e-a35c-2512ff52b7f4
超级块的备份存储于下列块:32768, 98304, 163840, 229376, 294912, 819200, 884736,
写入超级块和文件系统账户统计信息:已完成
[root@localhost ~]# mkfs.xfs /dev/sdb1
mkfs.xfs: /dev/sdb1 appears to contain an existing filesystem (ext4).
mkfs.xfs: Use the -f option to force overwrite.
[root@localhost ~]# mkfs.xfs -f /dev/sdb1 强制格式化
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=1310655 blks
= sectsz=512 attr=2, projid32bit=1
[root@localhost ~]# vim /etc/fstab永久写入文件 下次开机还在 不然都是临时的
[root@localhost ~]# mount /dev/sdb1 /mount 挂载
[root@localhost ~]# df -Th
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/sda1 999320 138320 792188 15% /boot
/dev/sdb1 20960236 179264 20780972 1% /mount
作业#有一块20G的盘, 分为4个区
#2G -- 》 /mnt1 -- > ext4
#3G --> /mnt1/log --> xfs
#6G --> /mnt2 --> xfs
#9G --> /mnt2/text --> ext4
[root@localhost ~]# fdisk /dev/sdb
命令(输入 m 获取帮助):n
分区号 (2-128, 默认 2): 2
第一个扇区 (4196352-41943006, 默认 4196352):
上个扇区,+sectors 或 +size{K,M,G,T,P} (4196352-41943006, 默认 41943006): +3G
创建了一个新分区 2,类型为“Linux filesystem”,大小为 3 GiB。
命令(输入 m 获取帮助):p
Disk /dev/sdb:20 GiB,21474836480 字节,41943040 个扇区
磁盘标签类型:gpt
磁盘标识符:D01AC728-0EC3-B345-88D0-6DFEAFD8B17A
设备 起点 末尾 扇区 大小 类型
/dev/sdb1 2048 4196351 4194304 2G Linux 文件系统
/dev/sdb2 4196352 10487807 6291456 3G Linux 文件系统
[root@localhost ~]# fdisk -l
Disk /dev/sda:20 GiB,21474836480 字节,41943040 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x765378c0
设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sda1 * 2048 2099199 2097152 1G 83 Linux
/dev/sda2 2099200 41943039 39843840 19G 8e Linux LVM
[root@localhost ~]# mkfs.ext4 /dev/sdb1
[root@localhost ~]# mkfs.xfs /dev/sdb2
[root@localhost ~]# mkfs -t xfs /dev/sdb3
[root@localhost ~]# mkfs.ext4 /dev/sdb4
[root@localhost ~]# mkdir /mount1
[root@localhost ~]# mkdir /mount1/log
[root@localhost ~]# mount /dev/sdb1 /mount1
[root@localhost ~]# ls /mount1
lost+found(当磁盘出现问题 可以供后面的磁盘使用它 里面不能有数据)
[root@localhost ~]# umount /mount1
[root@localhost ~]# ls /mount1
log
[root@localhost ~]# mount /dev/sdb1 /mount1
[root@localhost ~]# mkdir /mount1/log
[root@localhost ~]# ls /mount1
log lost+found
[root@localhost mount1]# mount /dev/sdb2 /mount1/log
[root@localhost mount1]# df
文件系统 1K-块 已用 可用 已用% 挂载点
devtmpfs 907160 0 907160 0% /dev
tmpfs 924780 0 924780 0% /dev/shm
tmpfs 924780 8904 915876 1% /run
tmpfs 924780 0 924780 0% /sys/fs/cgroup
/dev/mapper/cl-root 17811456 3149720 14661736 18% /
/dev/sda1 999320 138320 792188 15% /boot
tmpfs 184956 0 184956 0% /run/user/0
/dev/sdb1 1998672 6148 1871284 1% /mount1
/dev/sdb2 3135488 54976 3080512 2% /mount1/log
#fstab文件 开机自动挂载
# vim /etc/fstab
# Created by anaconda on Sun Mar 14 19:21:04 2021
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
/dev/mapper/cl-root / xfs defaults 0 0
UUID=bc8b38c6-f63e-48f9-8af3-3482db543356 /boot ext4 defaults 1 2
/dev/mapper/cl-swap swap swap defaults 0 0
#设备文件或设备uuid 挂载点 文件系统类型 挂载选项 要不要被dump备份 要不要被fsck开机检查
只读,读写等
UUID=7c61824e-e5e6-4e6f-b8de-93c78ed23fbd /mount1/log xfs defaults 0 0
[root@localhost mount1]# blkid /dev/sdb2 #显示UUID
/dev/sdb2: UUID="7c61824e-e5e6-4e6f-b8de-93c78ed23fbd" TYPE="xfs" PARTUUID="fd484c33-9263-154f-9316-562bf28ae840"
[root@localhost mount1]# vim /etc/fstab
#磁盘在使用过程中不能取消挂载的
[root@localhost log]# cd /mount1/log
[root@localhost log]# umount /dev/sdb2 在文件里面挂载了 先把里面的取消挂载 在把外面的挂载 不然会显示忙
umount: /mount1/log: target is busy.
[root@localhost log]# pwd
/mount1/log
[root@localhost log]# cd ..
[root@localhost mount1]# umount /dev/sdb2
#lsof list open file
lsof /mount1 #查看某个文件 被哪些进程占用
lsof -i:80 #查看端口被哪些进程占用
lsof -p 913 #查看进程占用了哪些文件
lsof|grep del #查看哪些文件已经被人为的删除了,但是进程还在使用,导致空间无法释放 找出进程后重启服务就可以释放空间。
lost+found ext家族文件系统初始化都会有的一个文件夹, 它是当文件系统异常的时候,提供一些片段数据来恢复 文件系统异常这下面才会有数据 所以不能有数据
打开文件数限制修改:用户资源限制
[root@ansible proc]# ulimit -a
core file size (blocks, -c) unlimited
data seg size (kbytes, -d) unlimited
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
cpu time (seconds, -t) unlimited
max user processes (-u) 3021
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
[root@ansible proc]# ulimit -n 65535 #命令行修改都是临时的,写入文件才是永久的
[root@ansible proc]# ulimit -a
max memory size (kbytes, -m) unlimited
open files (-n) 65535
[root@ansible proc]# cd /etc/security/
[root@ansible security]# less limits.conf #修改这个文件可以永久生效了
#查看系统日志
#dmesg --硬件 内核
#/var/log/messages
#/var/log ---系统的日志文件 -- rsyslogd 进程管理
经典分区方案:
/boot linux启动文件
/swap 交换分区 当物理内存不足的时候,启动磁盘上的交换分区来做内存使用
#一般不建议开启,因为会导致程序速度变慢
#设置swap,什么时候触发swap分区的使用
# cat swappiness #当物理内存还剩30%的时候启动交换分区 30
[root@localhost vm]# pwd /proc/sys/vm
/proc 目录 存放进程或者系统运行时候的数据
/proc/cpuinfo 存放了cpu的信息
/proc/meminfo 存放内存信息
[root@localhost vm]# echo 0 > swappiness
[root@localhost vm]# cat swappiness 0#当物理内存用尽的时候启动交换分区
[root@ansible vm]# cat /etc/sysctl.conf
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
# Vendors settings live in /usr/lib/sysctl.d/.
系统调优
1内核参数 /proc/sys/下面内核参数临时修改 永久修改 /etc/sysctl.conf
2.用户资源限制 ulimit -a
永久修改 /etc/security/limits.conf
root soft nofile 65000
root hard nofile 65535
https://wwwblogs/huangjiabobk/p/18128336
iptables -nvl 看防火墙
vm.swappiness=10 系统内核参数调优
[root@ansible vm]# sysctl -p #生效参数 vm.swappiness = 10
[root@ansible vm]# cat swappiness 10
[root@ansible vm]# swapoff -a临时关闭
[root@ansible vm]# free -m 看swap已经永久关闭
total used free shared buff/cache available
Mem: 794 238 252 5 303 428
Swap: 0 0 0
[root@localhost vm]# swapon -a
永久关闭,可以修改/etc/fstab文件,注释掉swap的行
注释掉/dev/mapper/cl-swap none swap defaults
#VFS(虚拟文件系统)
#在文件系统挂载之后,将文件系统的一些元数据加载到内存中,虚拟文件系统只存在于内存中 开机启动后自动加载,用户和虚拟打交道 虚拟再和真实文件系统打交道
#VFS作用就是屏蔽给各类文件系统的差异, 给用户、应用程序一个统一的接口
VFS描述文件系统使用的是超级块和inode的方式
VFS主要定义了四种对象类型:
超级块对象 super block 虚拟和真实文件系统都有
记录文件系统的总体信息
inode数量、 block数量
使用了多少 还剩余多少
属于哪个文件系统 调用方式
索引节点 inode
里面包含文件的元信息
字节数 所属主和组 权限 修改、创建时间等
block的位置(存放数据的地方)
文件对象 file
目录项对象 dentry 文件夹本质是文件 里面存放的是目录项
filename文件夹名字 和 inode(文件的元信息)号 的映射关系
一个文件最少4k(bsize)
磁盘文件系统格式化之初,就会将磁盘大体分为两个部分, 一个存放inode索引的,一个存放数据的 inode是在文件系统初始化之初就已经存在的
ext4文件系统:256 看超级块信息
[root@ansible ~]# dumpe2fs /dev/sdb1|less
xfs文件系统 512
[root@ansible ~]# xfs_info /data
inode的数量比例和block数量比例不一致 一般inode的数量会少一点
如果你的系统里面小文件过多,会造成你的inode耗尽 你的block还有
明明磁盘还有空间 但是创建不了文件了
查看inode的信息
[root@localhost python-test]# stat class_test.py
文件:class_test.py
大小:412 块:8 IO 块:4096 普通文件
设备:fd00h/64768d Inode:1279533 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
最近访问:2021-08-21 11:45:16.069680954 +0800
最近更改:2021-08-21 11:45:13.008680784 +0800
创建时间:-
文件系统如何读到文件
1、根据文件名通过目录项知道它的inode号
2、通过inode号找到inode table里的inode
3、通过inode里的block指针,找到对应的数据块
#查看文件系统的元信息
[root@localhost python-test]# dumpe2fs /dev/sdb1
#查看文件系统用了多少inode 还剩多少inode
[root@localhost python-test]# df -i
文件系统 Inode 已用(I) 可用(I) 已用(I)% 挂载点
devtmpfs 226790 416 226374 1% /dev
tmpfs 231195 1 231194 1% /dev/shm
/dev/sdb2 1572864 5 1572859 1% /mount1/log
/dev/sdb3 3145728 4 3145724 1% /mount2
#查看文件的inode号
[root@localhost python-test]# ls
api_flask.py a.txt class_test.py lock_process.py manager-process.py os-fork.py pool_test.py
[root@localhost python-test]# ls -i a.txt
1272310 a.txt
删除文件 标注block和inode 为未使用 再删除目录项
移动 相同的文件系统inode不变只改目录项 跨文件系统inode会变
rm 删除目录项
i_nlink 目录项引用 记录文件的硬链接数
i_count j进程fd进程引用 记录程序打开这个文件的数量
这两个引用计数都为0 才会释放磁盘空间 删干净
文件描述符表 1024非负整数 第一次打开文件 拿到一个值 以后会存到表里 以后进程就不用路径查找了 文件指针会打开文件表(系统级别)放到这里就每个进程都可以去这里找 不然每个进程都进一个文件 都会放到各自的文件描述符表(各自隔离) 这样就可以只搞一次 文件描述符:进程打开后会返回一个非负整数 下次可以根据这个数找到文件位置
标准输入0 标准错误输出2 标准输出1
在计算机操作系统中,每个进程都有一个文件描述符表(File Descriptor Table),它是一个数组,用于跟踪进程打开的所有文件和其它I/O资源。文件描述符是操作系统分配给进程的一个非负整数,用来标识这个进程所打开的文件或设备。通常,文件描述符0、1和2分别预留给标准输入、标准输出和标准错误输出。
文件描述符表中的每一项(也称为槽位)包含指向文件表项(file table entry)的指针,而文件表项包含了文件的状态信息,如文件的当前位置、打开模式、文件的类型(如常规文件、目录、管道、套接字等)以及指向实际文件结构体的指针。
文件描述符的特点:
- 稀疏性:文件描述符表中的位置并不是连续使用的,而是按需分配,因此文件描述符表可能是稀疏的。
- 唯一性:在一个进程中,每个文件描述符都是唯一的,用于标识特定的打开文件。
- 可重用性:当一个文件描述符关闭后,其对应的槽位可被重用分配给新打开文件。
- 可复制性:通过fork()系统调用,子进程会继承父进程的文件描述符表,但每个文件描述符都指向各自独立的文件表项。
磁盘百分百用完了 怎么排查 lsof |grep delete 找到进程重启服务目录项删了 但程序仍然在使用 杀死进程 才会释放空间 (删除文件的时候某个进程还在使用它)
不能创建文件 磁盘满了 没有权限 或者block满了
less access.log清空日志文件 进程还在运行时 不能直接删除 重新加载服务
>access.log重定向覆盖清空 然后删除
reload重新加载master不变和restart重启区别:主进程会创建进程池 会维护子进程
- 定义:Restart(重启)通常是指完全停止服务,然后重新启动服务。这意味着服务会经历一个短暂的中断期,在这个期间服务是不可用的。
- 过程:首先会停止所有的worker进程,清理资源,然后重新启动服务,创建新的worker进程。
- 影响:在重启的过程中,所有正在进行的请求都会被中断,直到服务完全重新启动并准备好接收新请求为止。
- 定义:Reload(重新加载)是在不中断服务的情况下更新服务的配置或者状态。这意味着服务会持续运行,而不会对客户端产生明显的中断。
- 过程:在reload过程中,主进程会读取新的配置文件,然后逐步替换旧的worker进程。新worker进程在接收到新配置后开始工作,而旧worker进程则在处理完当前请求后优雅地退出。
- 影响:在reload期间,服务仍然接受和处理新的请求,只是旧worker进程在处理完最后的请求后才会退出,从而保证了服务的连续性。
- Restart适合需要彻底清理资源或者当服务因某种原因进入不稳定状态使用。
- Reload更适合于更新配置文件而不希望服务中断的情况,特别是在生产环境中,为了用户体验和高可用性,通常更倾向于使用reload。
软链接 vs 硬链接 创建命令 ln
#软链接 -- 最好使用绝对路径创建软链接 独立的Inode和block 全新的文件 保存路径
[root@web-1 opt]# ln -s ln_test soft_ln
[root@web-1 opt]# ls
soft_ln a.py html ln_test nginx-1.21.6.tar.gz
[root@web-1 opt]# ls -al soft_ln
lrwxrwxrwx 1 root root 7 9月 14 16:32 soft_ln -> ln_test
#硬链接 修改源文件或硬链接 两个都会变
[root@web-1 opt]# ln ln_test hard_ln
[root@web-1 opt]# ls
a.py hard_ln kafka_2.12-2.8.1 nginx soft_ln
#创建一个硬链接就是多创建一个目录项指向 防止不小心删了 即索引(目录项)备份
[root@web-1 opt]# ln ln_test hard_ln 删原文件也可以访问 但是对软链接有影响
[root@web-1 opt]# ls -al |grep ln
-rw-r--r-- 2 root root 15 9月 14 16:37 hard_ln
[root@web-1 opt]# ln ln_test hard_ln_2
[root@web-1 opt]# ls -al |grep ln
-rw-r--r-- 3 (i_nlink目录项指向inode的次数 )root root 15 9月 14 16:37 hard_ln
软链接删除原文件,不能访问 硬链接删除原文件,正常访问
硬链接不能跨文件系统,不能对目录进行链接 每个文件系统的inode独立的 不互通
[root@web-1 opt]# ln ln_test /mnt2/hard_ln
ln: 无法创建硬链接"/mnt2/hard_ln" => "ln_test": 无效的跨设备连接
[root@web-1 opt]# ln conf hard_conf
ln: "conf": 不允许将硬链接指向目录
底层会自动硬链接到上一级 .. 硬链接里面创建新文件 inlink会加一
Logical Volume Manager,逻辑卷管理 了解
屏蔽了底层磁盘布局,便于动态调整磁盘容量
相对传统分区方式的有下列优点:
空间利用率高 可以在线扩展容量
数据备份方便 可随意定义逻辑卷卷标
/boot分区用于存放引导文件,不能应用LVM机制
普通分区pe 一或多个PV组合 从卷组分割一块空间 用于建立文件按系统
功能 物理卷管理 卷组管理 逻辑卷管理
Scan 扫描 pvscan vgscan lvscan
Create 建立 pvcreate vgcreate lvcreate
Display 显示 pvdisplay vgdisplay lvdisplay
Remove 删除 pvremove vgremove lvremove
Extend 扩展 vgextend lvextend
Reduce 减少 vgreduce lvresize
建立命令的用法
pvcreate 设备名/dev/sdb1
vgcreate 卷组名(sc) 物理卷名1(/dev/sdb1) 物理卷名2
lvcreate -L 大小 -n 逻辑卷名 卷组名lvcreate -L 3G -n lvm-test sc
格式化 挂载 df -Th查看
pvcreate /dev/sdc1 pvcreate /dev/sdc2
vgcreate sc /dev/sdc1 /dev/sdc2
vgdisplay
lvcreate -L 2G -n cali sc
lvdisplay
mkfs.ext4 /dev/mapper/sc-cali
blkid /dev/mapper/sc-cali
mount /dev/mapper/sc-cali /mnt1
df -Th
dumpe2fs /dev/mapper/sc-cali
lvextend -L +2G /dev/mapper/sc-cali
echo "scsi add-single-device 2 0 1 0">/proc/scsi/#scsi
resize2fs /dev/mapper/sc-cali (ext4)
xfs_growfs /dev/mail_store/mail (xfs)
[root@web-3 ~]# lvextend -r -L +1G /dev/mapper/sc-sanchuang
ext 文件系统修复检测 -- fsck ---- 超级块查看 -- dumpe2fs
xfs -- xfs_repair xfs_info
RAID廉价冗余磁盘阵列 硬件RAID
速度快,性能好,支持热插拔
需专门的RAID磁盘阵列卡,价格昂贵,还需配合相应的驱动
条带 镜像 条带+分布校验 两分布校验 校验(在一台上)
级别 RAID0 RAID1 RAID5 RAID6 RAID4
磁盘数 >=2 2 >=3 >=4
容错功能 无 有 有 较强 有
读写速度 最快 写入慢 较快 较快
磁盘空间利用 100% 50% n-1/n n-2/n
备份 可坏一台 可坏两盘(空间利用率小于5)
xfs和ext4的区别:
区别一:单个文件的大小
EXT4可以是16GB到16TB,而XFS可以是16TB到16EB。
区别二:最大文件系统大小 EXT4可以是1EB,而XFS可以是8EB。
区别三:EXT4受限制于磁盘结构和兼容问题,可扩展性和scalability不如XFS。
说明:由于历史磁盘结构原因Ext4 的inode 个数限制(32位数)最多只能有大概40多亿文件。而且Ext4的单个文件大小最大只能支持到16T(4K block size) ,目前来说已经是瓶颈。XFS使用64位管理空间,文件系统规模可以达到EB级别。
本文标签: 文件系统
版权声明:本文标题:文件系统讲解 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1728311298a1153142.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论