磁盘管理之磁盘阵列

mount命令的深度使用

-l  显示挂载情况
-a  读取/etc/fstab所有的挂载设置



-o   添加挂载选项
      ro  只读
      rw  读写
      exec  允许执行磁盘中的二进制程序
      noexec  允许执行磁盘中的二进制程序


mount  -o  exec  /dev/sdb   /mnt 
挂载/dev/sdb磁盘,允许执行磁盘中的二进制程序

退出光盘命令

Eject弹出设备命令
eject # 弹出光驱

eject -r /dev/sr0 # 指定设备弹出

[yuchao-linux-242 root ~]#eject

inode号

文件的身份证,记录了文件的属性信息与存放文件数据block的位置信息,是唯一的,可以是一样的,一样的inode号文件数据也一样


使用ls命令查看文件inode号
[root@localhost chen]# ls -hli  yu.txt 
34345709 -rw-r--r--. 1 root root 26 Apr  7 12:07 yu.txt
[root@localhost chen]# 

使用stat查看文件的inode号
[root@localhost chen]# stat yu.txt 
  File: ‘yu.txt’
  Size: 26        	Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d	Inode: 34345709    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:usr_t:s0
Access: 2022-04-07 11:59:23.067743025 +0800
Modify: 2022-04-07 12:07:19.438990328 +0800
Change: 2022-04-07 12:07:19.438990328 +0800
 Birth: -
[root@localhost chen]# 



inode储存的内容

* 文件的字节数

* 文件拥有者的User ID

* 文件的Group ID

* 文件的读、写、执行权限

* 文件的时间戳,共有三个:ctime指inode上一次变动的时间,mtime指文件内容上一次变动的时间,atime指文件上一次打开的时间。

* 链接数,即有多少文件名指向这个inode

* 文件数据block的位置

block

实际存放文件数据的地方

linux读取文件内容

 文件名 > inode编号 > block 的顺序来读取
 通过区分inode号来区分

文件与文件夹的关系

文件夹也是一个特殊文件,文件夹存放着文件名,通过文件名找找文件的inode号,再找到文件数据block的位置,进行文件数据的读写

软连接

软连接文件存储的是源文件的路径

ln  -s  源文件路径  软连接路径

访问软连接就是访问源文件路径,源文件名,再通过文件名找到inode号,再找到文件数据block,访问数据

特点
1.软连接文件的inode号和源文件不同,作用是存储源文件的路径
2.命令ln -s创建
3.删除普通软连接,不影响源文件
4.删除源文件,软连接找不到目标,报错提示

硬链接

就是一个数据(block)被多个`相同inode号`的文件指向

特点
1.可以对已存在的文件做硬链接,该文件的硬链接数,至少是1,为0就表示文件不存在
2.硬链接的文件,inode相同,属性一致
3.只能在同一个磁盘分区下,同一个文件系统下创建硬链接
4.不能对文件夹创建硬链接,只有文件可以
5.删除一个硬链接,不影响其他相同inode号的文件
6.文件夹的硬链接,默认是2个,以及是2+(第一层子目录总数)=文件夹的硬链接数量
7.可以用任意一个硬链接作为入口,操作文件(修改的其实是block中的数据)



文件夹的硬链接默认是2
一个是当前目录本身
一个是上级目录

修改文件的硬链接数,要在它,第一层文件夹中,创建子文件夹,即可增加硬链接数量

查看分区inode与block数量

xfs_info命令 只能查看xfs文件系统的磁盘

[root@localhost ~]# xfs_info  /dev/sda1
meta-data=/dev/sda1              isize=512    agcount=4, agsize=12800 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=51200, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=855, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

dumpe2fs 查看ext4的文件系统

df -h 查看分区,有多少block可用

[root@localhost ~]# df   -h  /dev/sda1
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       197M  115M   82M  59% /boot

df -i 查看分区,有多少inode可用

[root@localhost ~]# df   -i  /dev/sda1
Filesystem     Inodes IUsed  IFree IUse% Mounted on
/dev/sda1      102400   327 102073    1% /boot
[root@localhost ~]# 

raid 磁盘阵列

raid0
将两个或两个以上相同型号、容量的硬盘组合,磁盘阵列的总容量便是多个硬盘的总和
raid0数据依次写入到各个物理硬盘中,数据是分开放的,因此损坏任意一个硬盘,都会对完整的数据破坏

特点
至少需要两块磁盘
数据==条带化==分布到磁盘,==高的读写性能==,100%==高存储空间利用率==
数据==没有冗余策略==,一块磁盘故障,数据将无法恢复
应用场景:
对性能要求高但对数据安全性和可靠性要求不高的场景,比如音频、视频等的存储。
raid1
是将两块以上硬盘绑定,数据写入时,同时写入多个硬盘,因此即使有硬盘故障,也有数据备份。
特点
至少需要2块磁盘
数据==镜像备份==写到磁盘上(工作盘和镜像盘),==可靠性高==,磁盘利用率为50%
读性能可以,但写性能不佳,写入数据要同步,因此速度很慢。
一块磁盘故障,不会影响数据的读写,因为是镜像盘,冗余性好,只要有一块是好的,数据还是玩转的。
RAID 1应用场景:
对数据安全可靠要求较高的场景,比如邮件系统、交易系统等
raid5
至少需要3块磁盘
数据==条带化==存储在磁盘,==读写性能好==,磁盘利用率为(n-1)/n
一块磁盘故障,可根据其他数据块和对应的校验数据重构损坏数据
只能允许坏掉一块盘
是目前综合==性能最佳==的==数据保护==解决方案
兼顾了存储性能、数据安全和存储成本等各方面因素(==性价比高==)
适用于大部分的应用场景
raid 6
比起raid5提供的数据校验,又多了一层校验,双层校验

特点
至少需要4块磁盘
数据==条带化==存储在磁盘,读取性能好,容错能力强
采用==双重校验==方式保证数据的安全性
如果==2块磁盘同时故障==,可以通过两个校验数据来重建两个磁盘的数据
成本要比其他等级高,并且更复杂
一般用于对数据安全性要求==非常高==的场合
raid10
raid10是raid0与raid1的组合
特点
至少需要4块磁盘
两块硬盘为一组先做raid1,再将做好raid1的两组做raid0
兼顾==数据的冗余==(raid1镜像)和==读写性能==(raid0数据条带化)
磁盘利用率为50%,成本较高

只要坏的不是同一个组中,所有的硬盘,就算坏掉一半硬盘都不会丢数据。

因此raid10是最实用的方案
总结
类型 读写性能 可靠性 磁盘利用率 成本
RAID0 最好 最低 100% 较低
RAID1 读正常;写两份数据 50%
RAID5 读:近似RAID0 写:多了校验 RAID0<RAID5<RAID1 (n-1)/n RAID0<RAID5<RAID1
RAID6 读:近似RAID0 写:多了双重校验 RAID6>RAID5 RAID6<RAID5 RAID6>RAID1
RAID10 读:RAID10=RAID0 写:RAID10=RAID1 50% 最高

硬raid

通过用硬件来实现RAID功能的就是硬RAID,独立的RAID卡,主板集成的RAID芯片都是硬RAID

软raid

软RAID运行于==操作系统底层==,将SCSI或者IDE控制器提交上来的物理磁盘,虚拟成虚拟磁盘,再提交给管理程序来进行管理

特点
占用内存空间
占用CPU资源
如果程序或者操作系统故障就无法运行

硬raid与软raid的区别

软件RAID额外消耗CPU资源,性能弱
硬件RAID更加稳定,软件RAID可能造成磁盘发热过量,造成威胁
兼容性问题,软件RAID依赖于操作系统,硬件RAID胜出

设置raid10磁盘阵列组

1准备四块新磁盘
使用虚拟机添加,磁盘尽量使用新的,如果是旧的,要先将磁盘分区删除
2安装mdadm命令
yum  install  mdadm   -y

-C	用未使用的设备,创建raid
-a	yes or no,自动创建阵列设备
-A	激活磁盘阵列
-n	指定设备数量
-l	指定raid级别
-v	显示过程
-S	停止RAID阵列
-D	显示阵列详细信息
-f	移除设备
-x	指定阵列中备用盘的数量
-s	扫描配置文件或/proc/mdstat,得到阵列信息
3创建raid10
mdadm -Cv /dev/md0  -a yes -n 4 -l 10 /dev/sdb /dev/sdc /dev/sdd /dev/sde

-C 表示创建RAID阵列卡
-v 显示创建过程
/dev/md0 指定raid阵列的名字
-a  yes  自动创建阵列设备文件
-n 4 参数表示用4块盘部署阵列
-l 10 代表指定创建raid 10级别
最后跟着四块磁盘设备名

创建完成后,检查
fdisk -l  /dev/md
4格式化文件系统
mkfs.xfs /dev/md0
5挂载
mount  /dev/md0   /mnt

挂载之后就可以使用了
6查看raid10信息
mdadm -D /dev/md0

磁盘故障处理方法

将故障磁盘移除,添加新磁盘到阵列组中即可恢复,只要不是同组磁盘都故障,数据就不会丢失

移除磁盘,模拟磁盘故障
mdadm /dev/md0 -f /dev/sdd

移除后取消挂载,重启机器

向磁盘组中添加新磁盘
mdadm /dev/md0 -a /dev/sdd

添加完成可检查磁盘组信息,会有一个修复的过程
mdadm -D /dev/md0
[root@lamp-241 ~]# mdadm -D /dev/md0
/dev/md0:
           Version : 1.2
     Creation Time : Thu Mar  3 04:20:20 2022
        Raid Level : raid10
        Array Size : 41908224 (39.97 GiB 42.91 GB)
     Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
      Raid Devices : 4
     Total Devices : 4
       Persistence : Superblock is persistent

       Update Time : Thu Mar  3 04:47:07 2022
             State : clean, degraded, recovering
    Active Devices : 3
   Working Devices : 4
    Failed Devices : 0
     Spare Devices : 1

            Layout : near=2
        Chunk Size : 512K

Consistency Policy : resync

    Rebuild Status : 6% complete  # 默认会有一个修复的过程,这里是进度条

              Name : lamp-241:0  (local to host lamp-241)
              UUID : 8b05fda8:ea9f56df:d639157c:bf00d883
            Events : 38

    Number   Major   Minor   RaidDevice State
       0       8       16        0      active sync set-A   /dev/sdb
       1       8       32        1      active sync set-B   /dev/sdc
       4       8       48        2      spare rebuilding   /dev/sdd
       3       8       64        3      active sync set-B   /dev/sde


确认无问题

挂载磁盘组就可使用了


删除软件raid

1卸载磁盘(取消挂载)
umount /dev/md0

2停止raid服务
mdadm -S /dev/md0
3卸载raid中所有硬盘
mdadm   --misc --zero-superblock  /dev/sdb  #后面是磁盘名
mdadm --misc --zero-superblock /dev/sdc
mdadm --misc --zero-superblock /dev/sdd
mdadm --misc --zero-superblock /dev/sde
4删除raid配置文件
rm -f /etc/mdadm.conf
5删除开机挂载配置(如果没有设置就不用)
修改/etc/fstab配置文件中的挂载信息
posted @   linux技术大拿  阅读(305)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示