美文网首页
第七周:磁盘及文件系统管理

第七周:磁盘及文件系统管理

作者: 还没帮马里奥再闯一关 | 来源:发表于2021-01-09 23:02 被阅读0次

    1、破坏mbr表并修复

    #备份MBR分区表,skip表示从输入文件跳过前446个字节,即/dev/sda
    ⏱ 22:44:07-root:~#dd if=/dev/sda of=/data/dpt.img bs=1 count=64 skip=446    
    ⏱ 22:44:07-root:~#scp /data/dpt.img 10.0.0.8:
    #破坏MBR分区表,seek代表从输出跳过前446个字节,记不住就记单词意思,seek是寻找,skip是跳过,跳过一般都是从源跳过,寻找从目标寻找
    ⏱ 22:44:07-root:~#dd if=/dev/zero of=/dev/sda bs=1 count=64 seek=446    #seek代表从输出文件跳过前446个字节
    ⏱ 22:44:07-root:~#reboot
    
    #用光盘启动,选择救援模式进入rescue mode,选第3项skip to shell
    #配置网络
    #ifconfig ens160 10.0.0.8/24
    #scp 10.0.0.8:/root/dpt.img .   这里有个.别忘记,代表从远程主机下载dpt.img到当前目录
    #恢复MBR分区表
    #dd if=dpt.img of=/dev/sda bs=1 seek=446
    #exit
    

    2、总结RAID的各个级别及其组合方式和性能的不同。(这里只列举常用raid)

    raid 级别

    多个磁盘合成一个“阵列”来提供更好的性能、冗余,或者两者都提供

    外接式磁盘阵列:通过扩展卡提供适配能力
    内接式RAID:主板集成RAID控制器,安装OS前在BIOS里配置
    软件RAID:通过OS实现,比如:群晖的NAS
    

    级别:多块磁盘组织在一起的工作方式有所不同

    • RAID-0:条带卷,strip
    • RAID-1:镜像卷,mirror
    • RAID-2
    • ..
    • RAID-5
    • RAID-6
    • RAID-10
    • RAID-01
    • RAID级别
    raid 0

    将多个磁盘合并成一个大的磁盘,不具有冗余,并行I/O,速度最快。RAID 0亦称为带区集。它是将多个磁盘并列起来,成为一个大磁盘。在存放数据时,其将数据按磁盘的个数来进行分段,然后同时将这些数据写进这些盘中,所以在所有的级别中,RAID 0的速度是最快的。但是RAID 0没有冗余功能,如果一个磁盘(物理)损坏,则所有的数据都会丢失,危险程度与JBOD相当。
    理论上越多的磁盘性能就等于“单一磁盘性能”ד磁盘数”,但实际上受限于总线I/O瓶颈及其它因素的影响,RAID性能会随边际递减,也就是说,假设一个磁盘的性能是50MB每秒,两个磁盘的RAID 0性能约96MB每秒,三个磁盘的RAID 0也许是130MB每秒而不是150MB每秒,所以两个磁盘的RAID 0最能明显感受到性能的提升。

    image-20201219223224310.png
    • 读、写性能提升
    • 可用空间:N*min(S1,S2,...)
    • 无容错能力
    • 最少磁盘数:2, 2+
    raid 1

    两组硬盘互为镜像,数据会以镜像的方式写入到另一块硬盘,理论上读速度=硬盘数量的倍数,写入速度会有略微降低,冗余最高,一块硬盘损坏后不影响数据完整性,但无论多少块硬盘,最后都只算1块硬盘,是raid级别中磁盘利用率最低的一种,如果两块磁盘大小不一组建riad1,容量以最小的磁盘计算,多余的空间可划分另外一个分区使用,并不浪费。

    image-20201219223347331.png
    • 读性能提升、写性能略有下降
    • 可用空间:1*min(S1,S2,...)
    • 有冗余能力
    • 最少磁盘数:2, 2N
    raid 4
    • 多块数据盘异或运算值存于专用校验盘 磁盘利用率 (N-1)/N
    • 有冗余能力
    • 至少3块硬盘才可以实现
    raid 5

    RAID Level 5是一种储存性能、数据安全和存储成本兼顾的存储解决方案。它使用的是Disk Striping(硬盘分区)技术。RAID 5至少需要三颗硬盘,RAID 5不是对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当RAID5的一个磁盘数据发生损坏后,可以利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。RAID 5可以理解为是RAID 0和RAID 1的折衷方案。RAID 5可以为系统提供数据安全保障,但保障程度要比镜像低而磁盘空间利用率要比镜像高。RAID 5具有和RAID 0相近似的数据读取速度,只是因为多了一个奇偶校验信息,写入数据的速度相对单独写入一块硬盘的速度略慢,若使用“回写高速缓存”可以让性能改善不少。同时由于多个数据对应一个奇偶校验信息,RAID 5的磁盘空间利用率要比RAID 1高,存储成本相对较便宜


    image-20201219224613616.png
    • 读、写性能提升
    • 可用空间:(N-1)*min(S1,S2,...)
    • 有容错能力:允许最多1块磁盘损坏
    • 最少磁盘数:3, 3+
    raid 6
    image-20201219225049356.png
    • 读、写性能提升
    • 可用空间:(N-2)*min(S1,S2,...)
    • 有容错能力:允许最多2块磁盘损坏
    • 最少磁盘数:4, 4+
    raid 10 和 raid 01对比

    如何记忆RAID1+0和RAID0+1,哪个数字在前就先做哪个RAID,例如RAID10就是,先做RAID1,后做RAID0,反之亦然

    image-20201219224953055.png
    RAID0+1是先做两个RAID0,然后再做RAID1,因此RAID0+1允许坏多个盘,但只能在坏在同一个RAID0中,不允许两个RAID0都有坏盘。
    RAID1+0是先做RAID1,然后再做RAID0,因此RAID1+0允许坏多个盘,只要不是一对磁盘坏就可以啦。
    因此说RAID1+0比RAID0+1安全得多,因为在同一对磁盘中,两块磁盘都坏掉的概率很低。
    RAID 0和RAID 1分别用于增强存储性能(RAID 0 条带)和数据安全性(RAID 1 镜像),而RAID 0+1和RAID 10兼顾了RAID 0和RAID 1的优点,它在提供RAID 1一样的数据安全保证的同时,也提供了与RAID 0近似的存储性能。虽然RAID 0+1和RAID 10基本原理相近,都是RAID0和RAID1的结合,不过还是有些区别。在MySQL数据库中,通常我们选用RAID 10。
    综上,raid1+0是要比raid0+1更安全一些
    raid 50

    同理,先做RAID5,后做RAID0,即RAID50,实现磁盘冗余同时提升磁盘读写性能(同时满足数据安全和数据冗余功能)

    image-20201219230047578.png
    其它级别

    RAID7

    可以理解为一个独立存储计算机,自身带有操作系统和管理工具,可以独立运行,理论上性能最高的RAID模式

    常用级别: RAID-0, RAID-1, RAID-5, RAID-10, RAID-50, JBOD

    JBOD:just a bunch of disks

    功能:将多块磁盘的空间合并一个大的连续空间使用

    可用空间:sum(S1,S2,...)

    image-20201219230313971.png
    3.创建一个2G的文件系统,块大小为2048byte,预留1%可用空间,文件系统 ext4,卷标为TEST,要求此分区开机后自动挂载至/test目录,且默认有acl挂载选项
    ⏱ 22:31:13-root:~# mkfs.ext4 -m 1 -L TEST -b 2048 -O acl /dev/sdd1  
    mke2fs 1.45.6 (20-Mar-2020)
    /dev/sdd1 contains a ext4 file system labelled 'TEST'
        last mounted on Sat Jan  9 22:15:07 2021
    Proceed anyway? (y,N) y
    Invalid filesystem option set: acl
    
    ⏱ 22:17:34-root:~# lsblk -f
    NAME            FSTYPE      LABEL                      UUID                                   MOUNTPOINT
    sda                                                                                           
    ├─sda1          ext4                                   29090182-4327-42a5-8b5e-1593be1da80e   /boot
    ├─sda2          LVM2_member                            thR0RF-sibL-cgtk-v778-iPF5-uX39-2FHeRc 
    │ ├─cl-root     xfs                                    cdcfdf4c-2493-46c9-b1e4-8339eb8abf87   /
    │ ├─cl-swap     swap                                   31276342-47f9-4f0a-8b91-f1725e19a3c2   [SWAP]
    │ └─cl-date     xfs                                    6acc18fa-5d5c-467d-8b95-1311f26bcf71   /date
    └─sda3          ext4                                   c2783a60-a6fc-4f6d-a118-a1344aeeb7ec   
    sdb             LVM2_member                            WqSW6e-BTxW-xMV2-Bdw8-ox6t-PJHe-ykYCgP 
    sdc             LVM2_member                            OaDeVf-U11t-AZze-38t6-o8gv-xkWB-AYf1YW 
    └─testvg-testlv ext4                                   07db0c4d-9540-4d9c-a79c-455aa0d4e4f1   /testlv
    sdd                                                                                           
    └─sdd1          ext4        TEST                       661adda1-ba20-431b-9608-0122c700e769   
    sr0             iso9660     CentOS-8-2-2004-x86_64-dvd 2020-06-08-22-08-25-00
    
    ⏱ 22:32:28-root:~# tune2fs -l /dev/sdd1
    tune2fs 1.45.6 (20-Mar-2020)
    Filesystem volume name:   TEST
    Last mounted on:          <not available>
    Filesystem UUID:          661adda1-ba20-431b-9608-0122c700e769
    Filesystem magic number:  0xEF53
    Filesystem revision #:    1 (dynamic)
    Filesystem features:      has_journal ext_attr resize_inode dir_index filetype extent 64bit flex_bg sparse_super large_file huge_file dir_nlink extra_isize metadata_csum
    Filesystem flags:         signed_directory_hash 
    Default mount options:    user_xattr acl
    Filesystem state:         clean
    Errors behavior:          Continue
    Filesystem OS type:       Linux
    Inode count:              65536
    Block count:              262144
    Reserved block count:     2621
    Free blocks:              249189
    Free inodes:              65525
    First block:              0
    Block size:               4096
    Fragment size:            4096
    Group descriptor size:    64
    Reserved GDT blocks:      127
    Blocks per group:         32768
    Fragments per group:      32768
    Inodes per group:         8192
    Inode blocks per group:   512
    Flex block group size:    16
    Filesystem created:       Sat Jan  9 22:06:30 2021
    Last mount time:          Sat Jan  9 22:15:07 2021
    Last write time:          Sat Jan  9 22:17:05 2021
    Mount count:              1
    Maximum mount count:      -1
    Last checked:             Sat Jan  9 22:06:30 2021
    Check interval:           0 (<none>)
    Lifetime writes:          17 MB
    Reserved blocks uid:      0 (user root)
    Reserved blocks gid:      0 (group root)
    First inode:              11
    Inode size:           256
    Required extra isize:     32
    Desired extra isize:      32
    Journal inode:            8
    Default directory hash:   half_md4
    Directory Hash Seed:      ddab3b50-7803-4b13-83c3-9074c3d5a9d8
    Journal backup:           inode blocks
    Checksum type:            crc32c
    Checksum:                 0x322e1a54
    
    ⏱ 22:40:41-root:/etc# blkid /dev/sdd1   #查询sdd1的UUID
    /dev/sdd1: LABEL="TEST" UUID="661adda1-ba20-431b-9608-0122c700e769" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="5f1013a7-01"
    
    ⏱ 22:43:47-root:/etc# sed -rn 's/^[^#.*]//p' /etc/fstab     #在/etc/fstab文件中按格式填入sdd1的UUID,实现自动挂载
    dev/mapper/cl-root     /                       xfs     defaults        0 0
    UID=29090182-4327-42a5-8b5e-1593be1da80e /boot                   ext4    defaults        1 2
    dev/mapper/cl-date     /date                   xfs     defaults        0 0
    dev/mapper/cl-swap     swap                    swap    defaults        0 0
    UID="07db0c4d-9540-4d9c-a79c-455aa0d4e4f1 /testlv            ext4  defaults  0 0 
    UID=661adda1-ba20-431b-9608-0122c700e769 /test ext4   acl  0 0
    
    ⏱ 22:53:08-root:mount -a 
    ⏱ 22:53:08-root:/etc# lsblk
    NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
    sda               8:0    0   200G  0 disk 
    ├─sda1            8:1    0   1.9G  0 part /boot
    ├─sda2            8:2    0 143.4G  0 part 
    │ ├─cl-root     253:0    0  93.1G  0 lvm  /
    │ ├─cl-swap     253:1    0   3.7G  0 lvm  [SWAP]
    │ └─cl-date     253:2    0  46.6G  0 lvm  /date
    └─sda3            8:3    0  54.7G  0 part 
    sdb               8:16   0     2G  0 disk 
    sdc               8:32   0    18G  0 disk 
    └─testvg-testlv 253:3    0    15G  0 lvm  /mnt/testlv
    sdd               8:48   0     2G  0 disk 
    └─sdd1            8:49   0     1G  0 part /test
    sr0              11:0    1   7.7G  0 rom
    
    4、创建一个至少有两个PV组成的大小为20G的名为testvg的VG;要求PE大小 为16MB, 而后在卷组中创建大小为5G的逻辑卷testlv;挂载至/users目录
    ⏱ 18:50:04-root:~# lsblk    #查看新添加的两块硬盘sdb和sdc
    NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
    sda           8:0    0   200G  0 disk 
    ├─sda1        8:1    0   1.9G  0 part /boot
    └─sda2        8:2    0 143.4G  0 part 
      ├─cl-root 253:0    0  93.1G  0 lvm  /
      ├─cl-swap 253:1    0   3.7G  0 lvm  [SWAP]
      └─cl-date 253:2    0  46.6G  0 lvm  /date
    sdb           8:16   0     2G  0 disk 
    sdc           8:32   0    18G  0 disk 
    sr0          11:0    1   7.7G  0 rom  
    
    ⏱ 18:50:06-root:~# pvcreate /dev/sdb /dev/sdc   #第一步,将sdb和sdc创建成物理卷
      Physical volume "/dev/sdb" successfully created.
      Physical volume "/dev/sdc" successfully created.
      
    ⏱ 18:50:19-root:~# pvdisplay 
      --- Physical volume ---
      "/dev/sdb" is a new physical volume of "2.00 GiB"
      --- NEW Physical volume ---
      PV Name               /dev/sdb
      VG Name               
      PV Size               2.00 GiB
      Allocatable           NO
      PE Size               0   
      Total PE              0
      Free PE               0
      Allocated PE          0
      PV UUID               WqSW6e-BTxW-xMV2-Bdw8-ox6t-PJHe-ykYCgP
       
      "/dev/sdc" is a new physical volume of "18.00 GiB"
      --- NEW Physical volume ---
      PV Name               /dev/sdc
      VG Name               
      PV Size               18.00 GiB
      Allocatable           NO
      PE Size               0   
      Total PE              0
      Free PE               0
      Allocated PE          0
      PV UUID               OaDeVf-U11t-AZze-38t6-o8gv-xkWB-AYf1YW
    
    ⏱ 18:51:02-root:~# vgcreate -s 16m testvg /dev/sdb /dev/sdc #第二部,创建逻辑卷组,指定pe大小位16m,名称testvg
      Volume group "testvg" successfully created
    ⏱ 18:51:58-root:~# vgdisplay 
      --- Volume group ---
      VG Name               testvg
      System ID             
      Format                lvm2
      Metadata Areas        2
      Metadata Sequence No  1
      VG Access             read/write
      VG Status             resizable
      MAX LV                0
      Cur LV                0
      Open LV               0
      Max PV                0
      Cur PV                2
      Act PV                2
      VG Size               <19.97 GiB
      PE Size               16.00 MiB
      Total PE              1278
      Alloc PE / Size       0 / 0   
      Free  PE / Size       1278 / <19.97 GiB
      VG UUID               BPlN7k-kcH4-5EFg-xrwx-kWd2-QRTq-YRT4IT
      
    ⏱ 18:52:02-root:~# pvs
      PV         VG     Fmt  Attr PSize    PFree 
      /dev/sda2  cl     lvm2 a--  <143.43g  4.00m
      /dev/sdb   testvg lvm2 a--     1.98g  1.98g
      /dev/sdc   testvg lvm2 a--    17.98g 17.98g
    
    ⏱ 18:59:56-root:~# lvcreate -n testlv -L 5G testvg  #第三步,创建大小位5G的逻辑卷testlv
      Logical volume "testlv" created.
    ⏱ 19:01:39-root:~# lvdisplay 
      --- Logical volume ---
      LV Path                /dev/testvg/testlv
      LV Name                testlv
      VG Name                testvg
      LV UUID                dBIkjz-xUPP-2iiA-UL3g-KC6B-k366-VI8ItR
      LV Write Access        read/write
      LV Creation host, time Centos8.2-10.0.0.8, 2021-01-09 19:01:39 +0800
      LV Status              available
      # open                 0
      LV Size                5.00 GiB
      Current LE             320
      Segments               1
      Allocation             inherit
      Read ahead sectors     auto
      - currently set to     8192
      Block device           253:3
      
    ⏱ 19:11:38-root:~# mkfs.ext4 /dev/testvg/testlv     #第4步,为testlv创建ext4的文件系统
    mke2fs 1.45.6 (20-Mar-2020)
    Creating filesystem with 1310720 4k blocks and 327680 inodes
    Filesystem UUID: 07db0c4d-9540-4d9c-a79c-455aa0d4e4f1
    Superblock backups stored on blocks: 
            32768, 98304, 163840, 229376, 294912, 819200, 884736
    
    Allocating group tables: done                            
    Writing inode tables: done                            
    Creating journal (16384 blocks): done
    Writing superblocks and filesystem accounting information: done 
    
    ⏱ 19:19:05-root:~# mkdir /users #第5步,创建挂载点
    ⏱ 19:19:31-root:~# mount /dev/testvg/testlv /users  #第6步,挂载,持久挂载要将testlv的UUID填入到/etc/fstab文件中即可
    ⏱ 19:19:49-root:~# lsblk
    NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
    sda               8:0    0   200G  0 disk 
    ├─sda1            8:1    0   1.9G  0 part /boot
    └─sda2            8:2    0 143.4G  0 part 
      ├─cl-root     253:0    0  93.1G  0 lvm  /
      ├─cl-swap     253:1    0   3.7G  0 lvm  [SWAP]
      └─cl-date     253:2    0  46.6G  0 lvm  /date
    sdb               8:16   0     2G  0 disk 
    sdc               8:32   0    18G  0 disk 
    └─testvg-testlv 253:3    0     5G  0 lvm  /users
    sr0              11:0    1   7.7G  0 rom  
    

    相关文章

      网友评论

          本文标题:第七周:磁盘及文件系统管理

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