一.mount挂载补充
mount -l 显示挂载情况
mount -a 读取/etc/fstab所有的挂载设置
mount -o ro 用唯读模式挂上
参数 |
解释 |
-l |
显示系统以挂载的设备信息 |
-a |
加载文件/服务器托管网etc/fstab中设置的所有设备 |
-t |
t 指定设备的文件系统类型。如果不设置,mount自行选择挂载的文件类型 minix Linux最早使用的文件系统。 ext2 Linux目前的常用文件系统。 msdos MS-DOS 的 FAT。 vfat Win85/98 的 VFAT。 nfs 网络文件系统。 iso9660 CD-ROM光盘的标准文件系统。 ntfs Windows NT的文件系统。 hpfs OS/2文件系统。Windows NT 3.51之前版本的文件系统。 auto 自动检测文件系统。 |
-o |
添加挂载选项,是安全、性能优化重要参数 |
-r |
只读,等于-o ro |
-w |
读写,等-o rw |
参数 |
含义 |
async |
以异步方式处理文件系统I/O操作,数据不会同步写入磁盘,而是写到缓冲区,提高系统性能,但损失数据安全性 |
sync |
所有I/O操作同步处理,数据同步写入磁盘,性能较弱,数据安全性高 |
atime/noatime |
文件被访问时是否修改时间戳,不更改时间,可以提高磁盘I/O速度 |
auto/noauto |
通过-a参数可以自动被挂载/不自动挂载 |
defaults |
默认值包括rw、suid、dev、exec、auto、nouser、async,/etc/fstab大多默认值 |
exec/noexec |
是否允许执行二进制程序,取消提供安全性 |
suid/nosuid |
是否允许suid(特殊权限)生效 |
user/nouser |
是否允许普通用户挂载 |
remount |
重新挂载 |
ro |
只读 |
rw |
读写 |
只读模式
[root@localhost ~]# mkdir yiyuan
[root@localhost ~]# mount -o ro /dev/sdc ./yiyuan
[root@localhost ~]# mount -l |grep yiyuan
/dev/sdc on /root/yiyuan type xfs (ro,relatime,attr2,inode64,noquota)
不允许执行程序,noexec
[root@localhost ~]# mount -o noexec,rw /dev/sdc ./yiyuan
[root@localhost ~]# mount -l |grep yiyuan
/dev/sdc on /root/yiyuan type xfs (rw,noexec,relatime,attr2,inode64,noquota)
二.退出光盘的命令
作用和umount一样
Eject弹出设备命令
eject # 弹出光驱
eject -r /dev/sr0 # 指定设备弹出
[root@localhost ~]# eject
三.inode、block、硬链接
ll -h
ll -hi /opt 查看 /opt
元数据,也就是文件的属性信息,可以通过stat命令查看到
一个新的磁盘,格式化文件系统后,就有了2个存储空间,一个叫做
inode存储空间,存储设备上,所有文件名,对应的元数据信息(文件的属性信息)
一个叫做block存储空间(存储设备上,所有的文件的内容,数据都在这)
存储元数据信息的空间,被称之为Inode
存储文件数据的空间,被称之为block
linux读取文件内容,其实是 以 文件名 > inode编号 > block 的顺序来读取
在你创建文件前必须先要分区、格式化(创建文件系统)
创建文件系统后inode和block的数量就会固定下来。
mkfs.xfs /dev/sdc 格式化xfs文件系统后,inode和block的数量就固定下来了
可以通过xfs_info查看
每个inode都有一个号码,操作系统用inode号码来识别不同的文件。
[root@localhost test1]# ls -l -i /tmp/c*
16777294 -rw-r--r-- 1 root root 0 Apr 7 11:01 /tmp/c1
16777702 -rw-r--r-- 1 root root 0 Apr 7 11:01 /tmp/c2
通过ls -i参数,查看文件,文件夹的inode号码
/opt/t1.log
/opt/t2.log
这里值得重复一遍,Unix/Linux系统内部不使用文件名,而使用inode号码来识别文件。对于系统来说,文件名只是inode号码便于识别的别称或者绰号。
表面上,用户通过文件名,打开文件。实际上,系统内部这个过程分成三步:首先,系统找到这个文件名对应的inode号码;其次,通过inode号码,获取inode信息;最后,根据inode信息,找到文件数据所在的block,读出数据。
使用如下命令,查看文件的inode号
[root@localhost ~]# cd /opt/yiyuan
[root@localhost yiyuan]# touch 5G.txt
[root@localhost yiyuan]# ls -i 5G.txt
872181 5G.txt
为什么linux要设计inode
理解inode,要从文件储存说起。
文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。
操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小,最常见的是4KB,即连续八个 sector组成一个 block。
文件数据都储存在"块"中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为"索引节点"。
每一个文件都有对应的inode,里面包含了与该文件有关的一些信息。
inode存储的内容
* 文件的字节数
* 文件拥有者的User ID
* 文件的Group ID
* 文件的读、写、执行权限
* 文件的时间戳,共有三个:ctime指inode上一次变动的时间,mtime指文件内容上一次变动的时间,atime指文件上一次打开的时间。
* 链接数,即有多少文件名指向这个inode
* 文件数据block的位置
可以用stat命令,查看某个文件的具体inode信息
[root@localhost yiyuan]# stat /opt/yiyuan
File: ‘/opt/yiyuan’
Size: 20 Blocks: 0 IO Block: 4096 directory
Device: fd00h/64768d Inode: 872174 Links: 2
Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2023-11-24 21:01:11.160210027 +0800
Modify: 2023-11-24 21:00:56.299211112 +0800
Change: 2023-11-24 21:00:56.299211112 +0800
Birth: -
四.软、硬链接
1.软连接
软连接就是windows下的快捷方式
软连接文件存储的是源文件的路径
创建软连接 ln -s参数去创建软连接
↓
当你访问软连接文件,其实是
↓
访问到源文件的路径,源文件的文件名
↓
访问源文件的inode编号 ls -i filename
↓
inode找到block,访问到数据
软连接特点
1.软连接文件的inode号和源文件不同,作用是存储源文件的路径
2.命令ln -s创建
3.删除普通软连接,不影响源文件
4.删除源文件,软连接找不到目标,服务器托管网报错提示。
2.硬链接
硬链接就是一个数据(block)被多个相同inode号
的文件指向。
就好比超市有好多个大门,但是都能进入到这个超市。。。
注意硬链接不得跨分区设置(inode号,是基于分区来创建)
- 创建语法
- ln 源文件 目标文件
- 创建硬链接
[root@localhost opt]# touch ./yiyuan.log
[root@localhost opt]# ls -l yiyuan.log
-rw-r--r-- 1 root root 0 Nov 24 23:56 yiyuan.log
[root@localhost opt]# ln ./yiyuan.log /tmp/c1
[root@localhost opt]# ln ./yiyuan.log /tmp/c2
[root@localhost opt]# ls -l yiyuan.log
-rw-r--r-- 3 root root 0 Nov 24 23:56 yiyuan.log
检查多个硬链接的inode号,都是同一个,表示是指向同一个区域的数据
[root@localhost opt]# ls -i yiyuan.log
16777622 yiyuan.log
[root@localhost opt]# ls -i /tmp/c1
16777622 /tmp/c1
[root@localhost opt]# ls -i /tmp/c2
16777622 /tmp/c2
硬链接特点
1.可以对已存在的文件做硬链接,该文件的硬链接数,至少是1,为0就表示文件不存在
2.硬链接的文件,inode相同,属性一致
3.只能在同一个磁盘分区下,同一个文件系统下创建硬链接
4.不能对文件夹创建硬链接,只有文件可以
5.删除一个硬链接,不影响其他相同inode号的文件
6.文件夹的硬链接,默认是2个,以及是2+(第一层子目录总数)=文件夹的硬链接数量
7.可以用任意一个硬链接作为入口,操作文件(修改的其实是block中的数据)
8.当文件的硬链接数为0时,文件真的被删除
3.文件夹的硬连接
文件夹是一个特殊的文件,默认的连接数就是2
由于文件夹中存在两个特殊子目录,一个是
. 当前目录,表示其本身
.. 上级目录,也能通过它,找到当前目录
因此硬连接数是2
如果修改文件的硬链接数,要在它,第一层文件夹中,创建子文件夹,即可增加硬链接数量
五.inode和block
inode和block的数量,是在你mkfs创建文件系统的时候,就已经确定好了
ext4的文件系统,查看文件系统信息的命令,dumpe2fs
xfs文件系统,查看文件系统信息的命令,xfs_info
查看某分区,有多少block让你用,(查看这个磁盘,分区还有多少容量)
df -h # -h参数,是友好的显示容量单位,如kb ,mb,gb
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 12M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root 17G 2.4G 15G 14% /
/dev/sda1 1014M 151M 864M 15% /boot
tmpfs 378M 0 378M 0% /run/user/0
/dev/sdc 20G 33M 20G 1% /root/yiyuan
查看某分区,一共有多少inode容量编号给我们用
[root@localhost ~]# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
devtmpfs 479652 420 479232 1% /dev
tmpfs 482661 1 482660 1% /dev/shm
tmpfs 482661 1300 481361 1% /run
tmpfs 482661 16 482645 1% /sys/fs/cgroup
/dev/mapper/centos-root 8910848 33619 8877229 1% /
/dev/sda1 524288 327 523961 1% /boot
tmpfs 482661 1 482660 1% /run/user/0
/dev/sdc 10485760 3 10485757 1% /root/yiyuan
查看磁盘可用的block容量
[root@localhost ~]# df -h /dev/sdc
Filesystem Size Used Avail Use% Mounted on
/dev/sdc 20G 33M 20G 1% /root/yiyuan
查看磁盘可用的inode容量
[root@localhost ~]# df -ih /dev/sdc
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sdc 10M 3 10M 1% /root/yiyuan
inode的作用
df -h
查看磁盘block空间的使用情况,如果看到分区快满了,可以去删除大容量的文件
df -i
inode存储文件属性的
当你机器上有大量的无用的小文件,空文件,白白消耗inode数量
查看磁盘分区inode空间的使用情况,如果可用的不多的,删除大量的4kb小文件即可,因为它们真用了太多的无效inode编号,应该留给别人用。
明明 df -h看到磁盘还是有空间,但是写入数据,系统提示你
no space for disk,你虽然还有block空间可以存数据
但是你的inode数量肯定是没了
touch 创建新文件,想分配inode编号,发现不够用了
六.raid磁盘阵列
1.生产环境下的raid选择
raid 0
raid 1
raid 1 + raid 0 = raid 10
可能用,只会是硬件的磁盘阵列卡
可能不用,现在的存储技术,都发展到了分布式该年,比如主流的共有云服务器,都不用raid技术了,即使人家用了,基本你也完全管不着
只有当你需要拿到一堆服务器,进行服务器从零初始化
对磁盘,做raid技术,4块硬盘,将其采用raid技术搭建
只能是用硬件的raid卡
只能用linux软raid技术,查看它的效果
物理服务器、使用物理raid卡来实现
云服务器、完全不用关心raid搭建,云厂商会给你提供靠谱的高性能、高安全性的磁盘底层技术。
现在的磁盘,读写速度都很快,阿里的云盘,可以不考虑这些
1.本地高性能硬盘,nvme技术
如https://search.jd.com/Search?keyword=nvme&enc=utf-8
2.分布式存储技术,具体看阿里云文档
https://help.aliyun.com/document_detail/25383.html?source=5176.11533457&userCode=r3yteowb&type=copy
2.硬raid、软raid选择、
- 硬件购买硬件raid卡即可
- 软件raid,没人用,知道即可,可以用于感受raid方案的效果
3.体验raid10 的玩法
1.准备4块硬盘,新的四块硬盘,没有任何分区的,你可以用parted命令清除原有的分区
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
sdc 8:32 0 20G 0 disk
sdd 8:48 0 20G 0 disk
sde 8:64 0 20G 0 disk
sr0 11:0 1 4.4G 0 rom
2.安装raid命令,创建raid10
yum install mdadm -y
3.通过命令把这4个硬盘创建为raid 10 组即可 ,创建raid10这个硬盘组,这个硬盘组的名字 /dev/md0
mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/sdb /dev/sdc /dev/sdd /dev/sde
4.此时正确情况下,你的机器就生成了 md0硬盘设备
[root@localhost ~]# fdisk -l /dev/md0
Disk /dev/md0: 42.9 GB, 42914021376 bytes, 83816448 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 524288 bytes / 1048576 bytes
5.格式化文件系统可以用了
[root@localhost ~]# mkfs.xfs /dev/md0
刷新
[root@localhost ~]# partprobe
挂载
[root@localhost ~]# mkdir /md0_disk
[root@localhost ~]# mount /dev/md0 /md0_disk/
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 12M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root 17G 6.6G 11G 39% /
/dev/sda1 1014M 151M 864M 15% /boot
tmpfs 378M 0 378M 0% /run/user/0
/dev/md0 40G 33M 40G 1% /md0_disk
6.查看raid10 状态的命令
[root@localhost ~]# mdadm -D /dev/md0
7.移除一块硬盘,查看磁盘组是否还可用模拟的一块硬盘损坏了,你还得重新加入一个新的硬盘,继续恢复raid 10的状态 ,因此你得买硬盘,重启机器,重新修复raid10
mdadm /dev/md0 -f /dev/sdd
8.重启
reboot
9.添加硬盘到阵列组中
mdadm /dev/md0 -a /dev/sdd
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
Time-To-Live and Expiration — RabbitMQ 一、死信队列 Dead Letter Exchanges — RabbitMQ 死信队列: DLX 全称(Dead-Letter-Exchange),称之为死信交换器,当消息变成一个…