第09章 存储管理2

作者: fe8478c7ba2a | 来源:发表于2018-04-17 20:25 被阅读8次
    存储管理高级课程
        文件系统详解
            EXT3/4文件系统
                详解
                    类型
                        索引index文件系统
                    系统限制
                        Ext3: 文件系统最大16TB,单个文件最大2TB
                        Ext4: 文件系统最大16TB,单个文件最大16TB
    
                    存储结构
                        磁盘>分区>文件系统>块组>索引目录>数据块
    
                                
                    名词解释
                        
                        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: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决定了文件存储的空间。
         问题:当分区空间大小消耗完毕,还能否新增文件?
            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
    
    :修改卷标
                    更改ext4文件系统的卷标信息(设置标签)
                        [root@tianyun ~]# tune2fs -L music /dev/vg1/lv1
    
    XFS文件系统
                注意:与EXT4修复同理,不可以挂载使用文件系统时修复。
            FAT文件系统
    
    文件链接
            一、符号链接 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
    
        总结:软连接是一个新文件,像快捷方式,可以对文件和目录做软连接。
                软连接记录的只是源文件的绝对路径。
                软连接失去源文件不可用。
            二、硬链接
                二、硬链接,新的文件入口
                    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 /etc/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(了解)

            简介
                RAID:廉价磁盘冗余阵列(Redundant Array of Independent Disks)
                作 用:容错、提升读写速率
            类型
                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 读写速率快,容错
    
                    
                    
                    
                    
    一、不同场景RAID的使用
                RAID 实现方式
                硬RAID: 需要RAID卡,有自己的CPU,处理速度快,有电池和无电池。
                软RAID: 通过操作系统实现,比如Windows、Linux
    二、RAID5 (3块硬盘) + 热备(1块硬盘)
                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
                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
                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. 查看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
    
    1. 模拟一块硬盘损坏,并移除
      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
      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
    参考
    重建过程
    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
    

    相关文章

      网友评论

        本文标题:第09章 存储管理2

        本文链接:https://www.haomeiwen.com/subject/vugpkftx.html