Linux系统的存储管理

文件系统

EXT4文件系统

1.简介
现代文件系统(例如Ext4和XFS等)具有多种附加特性,不仅扩展了文件系统的应用场景,而且使得文件系统的容错性(例如日志特性)和性能得到很大的提高,主要类型是索引(index)文件系统,
EXT4:是第四代扩展文件系统(Fourth extended filesystem)
XFS:一种高性能的日志文件系统

  • 文件系统限制
    Ext3: 文件系统最大16TB
    Ext4: 文件系统最大16TB
    XFS : 文件系统最大100TB.

在这里插入图片描述

  • inode :索引节点
    记录文件的属性(文件的元数据metadata),
    元数据:文件的属性,大小,权限,属主,属组,连接数,块数量,块的编号
    一个文件占用一个inode,同时记录此文件数据所在的block numbber。
    inode大小 为 128 bytes
  • block(块): 存储文件的实际数据,实际存储文件的内容,若文件较大,会占用多个block,block大小 为默认为4K.
  • superblock(超级块):block 与 inode 的总量;未使用与已使用的 inode / block 数量;
  • block group(块组) :Ext4文件系统将磁盘空间划分为若干组,以这一组为单位管理磁盘空间

2.示例

  • 示例1:inode(index node 索引节点)
[root@localhost disk1]# touch 1.txt
[root@localhost disk1]# ll -i
总用量 16
12 -rw-r--r--. 1 root root     0 8月   3 20:43 1.txt
11 drwx------. 2 root root 16384 8月   3 20:32 lost+found
[root@localhost disk1]# 
  • 示例2:block
[root@localhost disk1]# df  -i
文件系统                  Inode 已用(I) 可用(I) 已用(I)% 挂载点
devtmpfs                 120209     455  119754       1% /dev
tmpfs                    124468       1  124467       1% /dev/shm
tmpfs                    124468    1051  123417       1% /run
tmpfs                    124468      16  124452       1% /sys/fs/cgroup
/dev/mapper/centos-root 8910848  156496 8754352       2% /
/dev/sda1                524288     340  523948       1% /boot
tmpfs                    124468      20  124448       1% /run/user/0
/dev/sr0                      0       0       0        - /run/media/root/CentOS 7 x86_64     
/dev/sdb1                 65536      **12**   65524       1% /mnt/disk1
/dev/sdb2                 65536      11   65525       1% /mnt/disk2
/dev/sdb3                 65536      11   65525       1% /mnt/disk3
/dev/sdb5                 65536      11   65525       1% /mnt/disk5
/dev/sdb6                128016      11  128005       1% /mnt/disk6
/dev/sdb7                128016      11  128005       1% /mnt/disk7
[root@localhost disk1]# touch  2.txt
[root@localhost disk1]# df  -i
文件系统                  Inode 已用(I) 可用(I) 已用(I)% 挂载点
devtmpfs                 120209     455  119754       1% /dev
tmpfs                    124468       1  124467       1% /dev/shm
tmpfs                    124468    1051  123417       1% /run
tmpfs                    124468      16  124452       1% /sys/fs/cgroup
/dev/mapper/centos-root 8910848  156496 8754352       2% /
/dev/sda1                524288     340  523948       1% /boot
tmpfs                    124468      20  124448       1% /run/user/0
/dev/sr0                      0       0       0        - /run/media/root/CentOS 7 x86_64
/dev/sdb1                 65536      **13**   65523       1% /mnt/disk1
/dev/sdb2                 65536      11   65525       1% /mnt/disk2
/dev/sdb3                 65536      11   65525       1% /mnt/disk3
/dev/sdb5                 65536      11   65525       1% /mnt/disk5
/dev/sdb6                128016      11  128005       1% /mnt/disk6
/dev/sdb7                128016      11  128005       1% /mnt/disk7

重新建立了一个新文件 星号处inode节点数从12变成了13
inode决定了文件系统中文件的数量,block决定了文件存储的空间。

磁盘空间的限制根据inode和block两方面

文件链接

软连接(symbolic link)

  • 软连接像快捷方式,可以对文件和目录做软连接,软连接记录的只是源文件的绝对路径,软连接失去源文件不可用。

  • 示例
    创建文件 输入内容

[root@localhost ~]# echo 111 > /file1

创建软链接
ln -s

[root@localhost ~]# ln -s /file1 /home/file11

观察软连接

[root@localhost~]# ll /home/file11 
lrwxrwxrwx 1 root root 6 Dec 20 17:58 /home/file11 -> /file1

观察软链接文件

[root@localhost ~]# ll  /file1 /home/file11 
-rw-r--r-- 1 root root 4 Dec 20 17:57 /file1
lrwxrwxrwx 1 root root 6 Dec 20 17:58 /home/file11 -> /file1

查看文件内容

[root@localhost ~]# cat /file1 
111
[root@localhost~]# cat /home/file11 
111

文件内容一致

删除源文件

[root@localhost ~]# rm -rf /file1 
[root@localhost ~]# ll /home/file11 
lrwxrwxrwx 1 root root 6 Dec 20 17:58 /home/file11 -> /file1

会发现软链接一直闪烁 ,表示为不可用

硬链接

  • 硬链接相当于是为一个存在的文件创建一个指针
    不能为目录创建硬链接,只能为文件创建
    只有同一个文件系统中的文件之间才能创建硬链接,只能同分区操作

  • 示例
    创建硬链接

[root@qianfeng ~]# echo 222 > /file2
[root@qianfeng ~]# ln /file2 /file2-h1
[root@qianfeng ~]# ln /file2 /home/file2-h2	
ln: failed to create hard link ‘/home/file2-h2’ => ‘/file2’: Invalid cross-device link
//将文件已硬链接方式,发送到其他分区,显示结果是错误的

创建同分区硬链接成功,创建不同分区硬链接失败

[root@localhost ~]#rm -rf /file2
[root@localhost ~]#cat    /file2-h1
222

硬链接删除源文件,依然可以用

[root@localhost home]# ln /home/ /mnt
ln: “/home/”: 不允许将硬链接指向目录

不允许将硬链接指向目录

RAID

简介作用

  • RAID:廉价磁盘冗余阵列(Redundant Array of Independent Disks)
  • 作 用:容错、提升读写速率

RAID的类型

  • RAID0
    在这里插入图片描述
    RAID0 条带集 2块磁盘以上, 读写速率快 100%*N,但不容错
  • RAID1
    在这里插入图片描述
    RAID1 镜像集 2块磁盘, 容量50% ,读写速率一般,容错
  • RAID5
    在这里插入图片描述
    RAID5 带奇偶校验条带集 3块磁盘以上,
    利用率 (n-1)/n 读写速率快,容错
  • 不同场景RAID的使用
    硬RAID: 需要RAID卡,有自己的CPU,处理速度快,有电池和无电池。
    在这里插入图片描述

软RAID: 通过操作系统实现,比如Windows、Linux

  • 示例

准备四块硬盘

RAID5 :(3块数据盘) + (1块热备硬盘)
[root@localhost ~]# ll /dev/sd*
brw-rw---- 1 root disk 8, 48 Jan 13 16:07 /dev/sdd
brw-rw---- 1 root disk 8, 64 Jan 13 16:07 /dev/sde
brw-rw---- 1 root disk 8, 80 Jan 13 16:07 /dev/sdf
brw-rw---- 1 root disk 8, 80 Jan 13 16:07 /dev/sdg

创建RAID

[root@localhost ~]# mdadm -C /dev/md0 -l5 -n3 -x1 /dev/sd{d,e,f,g}

-C 创建RAID
/dev/md0 第一个RAID设备
-l5 RAID5
-n RAID成员的数量
-x 热备磁盘的数量
可用空间2G

[root@localhost ~]# yum -y install mdadm
//确保mdadm命令可用

格式化,挂载

[root@localhost ~]# mkfs.ext4 /dev/md0
[root@localhost ~]# mkdir /mnt/raid5
[root@localhost ~]# mount /dev/md0 /mnt/raid5
[root@localhost ~]# cp -rf /etc /mnt/raid5/etc1

查看RAID信息

[root@localhost ~]# mdadm -D /dev/md0 //-D 
查看详细信息
/dev/md0:
Version : 1.2
Creation Time : Mon Jan 13 16:28:47 2016
Raid Level : raid5		//raid类型
Array Size : 2095104 (2046.34 MiB 2145.39 MB)
Used Dev Size : 1047552 (1023.17 MiB 1072.69 MB)
Raid Devices : 3		//组中设备的数量
Total Devices : 4	//总设备数
Persistence : Superblock is persistent

Update Time : Mon Jan 13 16:34:51 2016
State : clean 	//状态,卫生的,哈哈
Active Devices : 3	//活跃3个
Working Devices : 4  //4个在工作
Failed Devices : 0		//坏了1就危险了,2个就完蛋了
Spare Devices : 1		//热备的1个。

Layout : left-symmetric
Chunk Size : 512K	//校验码大小
Number Major Minor RaidDevice State
0 8 48 0 active sync /dev/sdd		//同步
1 8 64 1 active sync /dev/sde		//同步
4 8 80 2 active sync /dev/sdf			//同步

3 8 96 - spare /dev/sdg



模拟一块硬盘损坏,并移除

终端一:
[root@qianfeng ~]# watch -n 0.5 'mdadm -D /dev/md0 | tail' //watch持续查看
终端二:
[root@qianfeng ~]# mdadm /dev/md0 -f /dev/sde -r /dev/sde 
//模拟坏了并移除
 -f --fail
 -r --remove

猜你喜欢

转载自blog.csdn.net/m0_48654420/article/details/107772435
今日推荐