Linux存储管理2

一,文件系统详解

1,EXT3/4文件系统

1.1 详解

1.1.1 类型

索引index文件系统

1.1.2 系统限制

Ext3: 文件系统最大16TB,单个文件最大2TB
Ext4: 文件系统最大16TB,单个文件最大16TB
            

1.1.3 出处

Red_Hat_Enterprise_Linux-7-7.0_Release_Notes-zh-CN
希望大家课下阅读该书籍

1.1.4 存储结构

磁盘>分区>文件系统>块组>索引目录>数据块
原版
                

中文

               

1.1.5 名词解释
         

superblock:记录此文件系统的整体信息。包括inode/block的总量,使用量,剩余量,以及文件系统的格式等等。
inode:记录文件的属性(文件的元数据metadata),一个文件占用一个inode,同时记录此文件数据所在的block numbber。inode大小 为 128 bytes
block:实际存储文件的内容,若文件较大,会占用多个block。block大小 为 1, 2, 4K

superblock

1 block 与 inode 的总量;
2未使用与已使用的 inode / block 数量;
3 block 与inode 的大小 (block 为 1, 2, 4K,inode 为 128 bytes);
4 filesystem 的挂载时间、最近一次写入数据的时间、最近一次检验磁盘 (fsck) 的时间等文件系统的相关信息;
5一个 valid bit 数值,若此文件系统已被挂载,则 valid bit 为 0 ,若未被挂载,则 valid bit 为 1
6 superblock的备份信息。
inode
包含文件的元信息,具体来说有以下内容:

* 文件的字节数
* 文件拥有者的User ID
* 文件的Group ID
* 文件的读、写、执行权限
* 文件的时间戳,共有三个:ctime指inode上一次变动的时间,mtime指文件内容上一次变动的时间,atime指文件上一次打开的时间。
* 链接数,即有多少文件名指向这个inode
* 文件数据block的位置
block
存储文件的实际数据。BLOCK 大小设置

1.2 示例部分  

示例1:inode

创造一个文件,观察inode信息。
ll   -i    文件名
示例2:block
问题1:分区中,文件的数量和什么有关系。
1 观察某个分区中的inode节点数
df    -i
2 创建一个文件
touch  文件名
3 再次观察inode节点数
df    -i
4 创造大量文件。观察inode使用情况
for    i     in     `seq 30000`     ;      do      touch     $i     ;     done
5 在另一个SHEEL,观察inode变化情况。
watch -n 2 'df -i'
6 请问最后,还能否创建新文件呢?
结论:inode决定了文件系统中文件的数量。
7.但是,能否向已存在的文件中写入内容呢?答案是?
结论:block决定了文件存储的空间。
问题2:当分区空间大小消耗完毕,还能否新增文件?
cp: 无法创建普通文件"": 设备上没有空间
1 向目标分区写入大量数据,填满
dd   if=/dev/zero     of=/disk1/5.txt    bs=1k    count=1000
2 查看目标分区容量,已满
df -hT
3 创造新文件
touch
4 得出结论,磁盘空间的限制根据inode和block两方面
请清理掉填满的分区。避免不必要的报错。
示例3:superblock
目的:通过查询文件系统,理解inode/block/group block的概念
ext4文件系统

1. 方法一:dumpe2fs 查看文件系统
1  dumpe2fs 查看EXT4文件系统。
[root@localhost ~]#dumpe2fs  /dev/vg1/lv1
[root@localhost ~]# dumpe2fs /mnt/lv2 |less
Filesystem volume name:   <none>        //卷标
Last mounted on:          /mnt/lv2        //最后一次挂载
Filesystem UUID:          0b6c98a1-0ec4-4fc6-b594-38d729d3791e    //uuid
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)    //版本
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent 64bit flex_bg sparse_super huge_file uninit_bg dir_nlink extra_isize    //特性
Filesystem flags:         signed_directory_hash
Default mount options:    user_xattr acl    //默认挂载属性
Filesystem state:         clean        //干净,非修复状态
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              77824    //inode总数
Block count:              307200    //block总数
Reserved block count:     14335    //保留block
Free blocks:              264119    //空闲block
Free inodes:              75324    //空闲inode
First block:              1        //第一个block
Block size:               1024        //block大小
Fragment size:            1024        
Group descriptor size:    64
Reserved GDT blocks:      255
Blocks per group:         8192
Fragments per group:      8192
Inodes per group:         2048
Inode blocks per group:   256
Flex block group size:    16
Filesystem created:       Thu Oct 12 7:49:17 2016    //创建时间
Last mount time:          Thu Oct 12 8:11:01 2016        //上次挂载    
Last write time:          Thu Oct 12 8:11:01 2016    //文件系统写入时间
Mount count:              2        //挂载次数
Maximum mount count:      -1
Last checked:             Thu Oct 12 8:49:17 2017    //最后一次检测
Check interval:           0 (<none>)
Lifetime writes:          39 MB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11        //第一个inode
Inode size:               128    //inode大小,字节
Journal inode:            8
Default directory hash:   half_md4
Directory Hash Seed:      ae1105b5-c894-4e37-84e3-16ac564f60d4
Journal backup:           inode blocks
Journal features:         journal_incompat_revoke journal_64bit
日志大小:             4096k
Journal length:           4096            //日志类信息
Journal sequence:         0x00000008
Journal start:            1
Group 0: (Blocks 1-8192) [ITABLE_ZEROED]
Checksum 0xa19a, unused inodes 514
主 superblock at 1, Group descriptors at 2-4
保留的GDT块位于 5-259
Block bitmap at 260 (+259), Inode bitmap at 276 (+275)
Inode表位于 292-547 (+291)
3412 free blocks, 514 free inodes, 366 directories, 514个未使用的inodes
可用块数: 4781-8192
可用inode数: 1535-2048
Group 1: (Blocks 8193-16384) [INODE_UNINIT, ITABLE_ZEROED]
Checksum 0x4d50, unused inodes 2048
备份 superblock at 8193, Group descriptors at 8194-8196 //备份的超级块,用来恢复损坏块组的。
保留的GDT块位于 8197-8451
Block bitmap at 261 (bg #0 + 260), Inode bitmap at 277 (bg #0 + 276)
Inode表位于 548-803 (bg #0 + 547)
499 free blocks, 2048 free inodes, 0 directories, 2048个未使用的inodes
可用块数: 10253, 10255-10752
可用inode数: 2049-4096

2. 方法二:tune2fs查看文件系统(可修改卷标)
tune2fs 也可以查看文件系统。
[root@localhost ~]# tune2fs -l /dev/sda3
tune2fs 1.39 (29-May-2006)
Filesystem volume name: qianfeng
Last mounted on: <not available>
Filesystem UUID: 28459f88-87dc-4624-94a7-07b0f3eb2420
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super
Default mount options: (none)
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 48960
Block count: 195312
Reserved block count: 9765
Free blocks: 183410
Free inodes: 48946
First block: 1
Block size: 1024
First inode: 11
Inode size: 128
Journal inode: 8

修改卷标,可使用-L 参数
例如:tune2fs  -L qianfeng  /dev/vg1/lv1

扩展选项
                        
xfs文件系统
    xfs_growfs /dev/vg1/lv1
    xfs_info /dev/vg1/lv1

示例4:卷标
更改ext4文件系统的卷标信息(设置标签)
[root@tianyun ~]# tune2fs -L music /dev/vg1/lv1

2,XFS文件系统



注意:与EXT4修复同理,不可以挂载使用文件系统时修复。

3,FAT文件系统


二,文件链接

1,符号链接symbolic link /软链接

符号链接 symbolic link /软链接,绝对路径记录/快捷方式。
1 创建一个文件,并输入内容。
[root@tianyun ~]# echo 111 > /file1
2 创建一个软连接。
[root@tianyun ~]# ln -s /file1 /home/file11
3 观察软连接
[root@tianyun ~]# ll /home/file11
lrwxrwxrwx 1 root root 6 Dec 20 17:58 /home/file11 -> /file1
4 观察软连接文件的inode是新的。内容是6,就是源文件的绝对路径。
[root@tianyun ~]# ll -i /file1 /home/file11
4599081 -rw-r--r-- 1 root root 4 Dec 20 17:57 /file1
135 lrwxrwxrwx 1 root root 6 Dec 20 17:58 /home/file11 -> /file1
5 查看两个文件,内容一致。
[root@tianyun ~]# cat /file1
111
[root@tianyun ~]# cat /home/file11
111
6 删除源文件,软连接闪烁,不可用。
[root@tianyun ~]# rm -rf /file1
[root@tianyun ~]# ll /home/file11
lrwxrwxrwx 1 root root 6 Dec 20 17:58 /home/file11 -> /file1
总结:软连接是一个新文件,像快捷方式,可以对文件和目录做软连接。
软连接记录的只是源文件的绝对路径。
软连接失去源文件不可用。

2,硬链接

硬链接,新的文件入口
1 创建同分区硬链接成功,创建不同分区硬链接失败。
[root@tianyun ~]# echo 222 > /file2
[root@tianyun ~]# ln /file2 /file2-h1
[root@tianyun ~]# ln /file2 /home/file2-h2    
//将文件已硬链接方式,发送到其他分区。结果是?
ln: failed to create hard link ‘/home/file2-h2’ => ‘/file2’: Invalid cross-device link
[root@tianyun ~]# ln /file2 /etc/file2-h3

2 硬链接的inode号相同,但并不占用block。使用df -k观察硬链接数量无变化。
[root@tianyun ~]# ll -i /file2 /file2-h1 /home/file2-h3
4599081 -rw-r--r-- 3 root root 4 Dec 20 18:03 /etc/file2-h3
4599081 -rw-r--r-- 3 root root 4 Dec 20 18:03 /file2
4599081 -rw-r--r-- 3 root root 4 Dec 20 18:03 /file2-h1
把一些重要文件做多个链接

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

总结:硬链接只能针对文件做。不能对目录做。
硬链接只能在同分区做。
硬链接不占用block。
硬链接其实是复制了inode。

三,RAID(了解)

1,简介

PAID:廉价磁盘冗余阵列(Redundant Array of Independent Disks)

作用:容错、提升读写速度

2,类型

RAID类型 个数 利用率 优缺点
------------------------------------------------------
RAID0 条带集 2+ 100% 读写速率快,不容错
RAID1 镜像集 2 50% 读写速率一般,容错
RAID5 带奇偶校验条带集 3+ (n-1)/n 读写速率快,容错,允许坏一块
RAID6 带奇偶校验条带集双校验 4+ (n-2)/n 读写快,容错,允许坏两块
RAID10 RAID1的安全+RAID0的高速 4 50% 读写速率快,容错
RAID50 RAID5的安全+RAID0的高速 6 (n-2)/n 读写速率快,容错
RAID60 RAID6的安全+RAID0的高速 8 (n-4)/n 读写速率快,容错



3,不同场景RAID的使用

RAID 实现方式

硬RAID: 需要RAID卡,有自己的CPU,处理速度快,有电池和无电池。

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

4,RAID5(3块硬盘)+热备(1块硬盘)

制作磁盘阵列步骤(重点部分)

4.1 准备4块磁盘

[root@tianyun ~]# 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

4.2 创建RAID

[root@tianyun ~]# yum -y install mdadm //确保mdadm命令可用
[root@tianyun ~]# mdadm -C /dev/md0 -l5 -n3 -x1 /dev/sd{d,e,f,g}

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

4.3 格式化,挂载

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

4.4 查看RAID信息

[root@tianyun ~]# 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

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

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

4.6 设置RAID开机生效

[root@tianyun ~]# mdadm -D -s
ARRAY /dev/md0 metadata=1.2 name=sxl1.com:0 UUID=c6761621:8878498f:f5be209e
[root@tianyun ~]# mdadm -D -s > /etc/mdadm.conf

4.7 参考

重建过程

Update Time : Mon Aug 4 22:47:47 2016
State : clean, degraded, recovering
Active Devices : 2
Working Devices : 3
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 512K
Rebuild Status : 3% complete
Name : localhost.localdomain:0 (local to host localhost.localdomain)
UUID : 3df9624c:138a5b3e:2f557132:59a43d04
Events : 41
Number Major Minor RaidDevice State
0 252 16 0 active sync /dev/vdb
3 252 64 1 spare rebuilding /dev/vde    //正在重建
4 252 48 2 active sync /dev/vdd

命令选项汇总

mdadm选项汇总:
-s --scan
-S --stop
-D --detail
-C --create
-f --fail
-r --remove
-n --raid-devices=3
-x --spare-devices=1
-l --level=5





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值