第三周作业

一、图文并茂说明raid0,raid1, raid10, raid01, raid5等原理
 
RAID:独立硬盘冗余阵列(RAID, Redundant Array of Independent Disks),旧称廉价磁盘冗余阵列(Redundant Array of Inexpensive Disks),简称磁盘阵列。
利用虚拟化存储技术把多个硬盘组合起来,成为一个或多个硬盘阵列组,目的为提升性能或数据冗余,或是两者同时提升。RAID 层级不同,数据会以多种模式分散于各个硬盘,RAID 层级的命名会以 RAID 开头并带数字,
例如:RAID 0、RAID 1、RAID 5、RAID 6、RAID 7、RAID 01、RAID 10、RAID 50、RAID 60。每种等级都有其理论上的优缺点,不同的等级在两个目标间获取平衡,分别是增加数据可靠性以及增加存储器(群)读写性能。
 
简单来说,RAID把多个硬盘组合成为一个逻辑硬盘,因此,操作系统只会把它当作一个实体硬盘。
RAID常被用在服务器电脑上,并且常使用完全相同的硬盘作为组合。由于硬盘价格的不断下降与RAID功能更加有效地与主板集成,它也成为普通用户的一个选择,特别是需要大容量存储空间的工作,如:视频与音频制作。
 

RAID 0

RAID 0可用于两个或更多硬盘或SSD。目标是提高读的性能。

数据以特定大小(通常为64KB)的块写入,并在可用驱动器中平均分配。下图显示了带有三个硬盘的RAID 0阵列的示意图。RAID控制器将第一个数据块写入硬盘1,第二个数据块写入硬盘2,第三个数据块写入硬盘3,第四个数据块再次写入硬盘1,以此类推,RAID 0中的三个1TB硬盘提供3TB的存储空间。

 

 

由于数据分布均匀,所以在访问的时候会从硬盘1~硬盘3提取数据,然后拼接在一起就是一个完整的数据。理论上从3个硬盘的RAID 0阵列读取数据比从一个硬盘读取要快3倍,换言之,使用RAID 0读数据的能力跟磁盘数量成正比。

RAID 0也有缺点:如果其中一个磁盘出现故障,从其他磁盘上的数据拼起来就不再是一个完整的数据了。另外,磁盘越多,则发生磁盘故障的可能性也越高。所以如果磁盘阵列里包含着对您来说很重要的数据,则最好创建频繁的备份。

 

RAID 1

RAID 1用于创建数据的自动副本。RAID 1会将同一份数据写入两个单独的磁盘,如果A盘出现故障,仍然可以在B磁盘上读取所有数据,当然这是比较壕的,毕竟做一件事用了两块盘。这里要注意!镜像和备份可不是一样!!!如果你不小心从一个磁盘A上删除了一个文件,或者某个文件被病毒侵蚀了,那它再另一个磁盘B上也是一样的待遇。只有真正的备份才能使所有文件保持其保存状态。因此,如果想不让宝贵数据陷入灾难,创建频繁的备份是必须的。

RAID 1中的读性能通常与单独的硬盘差不多—-从A和B里一起读数据,谁出数据快就采用谁的,写的话就是要同时写到两个盘里去。因此,使用RAID 1来获得额外更多的读写性能是不太可能的。以下是RAID 1的工作原理图,如果HDD1坏了,那么HDD2直接上任,若HDD1里的东西被删除了,那么HDD2也会被删除,即使它上任了也是坏的。

 

 

RAID 5

这是目前用的最多的一种方式。
因为 RAID5 是一种将存储性能、数据安全、存储成本 兼顾的一种方案。
RAID5模式中,不再需要用单独的磁盘写校验码了。它把校验码信息分布到各个磁盘上。例如,总共有N块磁盘,那么会将要写入的数据分成N份,并发的写入到N块磁盘中,同时还将数据的校验码信息也写入到这N块磁盘中(数据与对应的校验码信息必须得分开存储在不同的磁盘上)。一旦某一块磁盘损坏了,就可以用剩下的数据和对应的奇偶校验码信息去恢复损坏的数据。

 

 

RAID5校验位算法原理:P = D1 xor D2 xor D3 … xor Dn (D1,D2,D3 … Dn为数据块,P为校验,xor为异或运算)
RAID5的方式,最少需要三块磁盘来组建磁盘阵列,允许最多同时坏一块磁盘。如果有两块磁盘同时损坏了,那数据就无法恢复了。
 

RAID 10和RAID 01

所谓RAID 10,其实就是磁盘阵列先RAID 1,后RAID 0,同理,RAID 01也是先RAID 0,后RAID 1。无论是1+0还是0+1,都至少需要4个硬盘。

这里先看一下RAID 10和RAID 01的效果图:
paradin

就像图里说的“在六个硬盘列里,RAID 10比RAID 01更安全”。的确,RAID 10也凭借很棒的容错能力和恢复能力当选了大多数的RAID配置,为什么不要RAID 01呢?那就是如果在RAID 0那一步磁盘就坏了,那RAID 1那步就没有意义了,因为生成的镜像全是坏镜像。

总结:

 

1. n代表硬盘总数
2. JBOD(Just a Bunch Of Disks)指将数个物理硬盘,在操作系统中合并成一个逻辑硬盘,以直接增加容量
3.依不同 RAID 厂商实现算法对于性能表现会有不同,性能公式仅供参考
4.RAID 10、50、60 依实现 Parity 不同公式也不同

 

二、创建一个至少有两个PV组成的大小为20G的名为testvg的VG,要求PE大小为16M,而后在卷组中创建大小为5G的逻辑卷testlv;挂载至/users目录

 

1、虚拟机添加2块20G硬盘:

 

 

2、查看块设备信息:

 

 

3、创建物理卷:

[root@rocky8-1 ~]#pvcreate /dev/sdb /dev/sdc    创建物理卷
  Physical volume "/dev/sdb" successfully created.
  Physical volume "/dev/sdc" successfully created.
[root@rocky8-1 ~]#pvs           显示pv简要信息
  PV         VG Fmt  Attr PSize    PFree 
  /dev/sda2  rl lvm2 a--  <199.00g     0 
  /dev/sdb      lvm2 ---    20.00g 20.00g
  /dev/sdc      lvm2 ---    20.00g 20.00g

 

4、创建卷组:

[root@rocky8-1 ~]#vgcreate -s 16M testvg /dev/sdb /dev/sdc
  Volume group "testvg" successfully created
[root@rocky8-1 ~]#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               <39.97 GiB
  PE Size               16.00 MiB
  Total PE              2558
  Alloc PE / Size       0 / 0   
  Free  PE / Size       2558 / <39.97 GiB
  VG UUID               1RkCfS-3eah-M3bM-s1py-goKt-eEZl-61VagI
   

 

5、创建逻辑卷:

 [root@rocky8-1 ~]#lvcreate -n testlv -L 5G testvg
  Logical volume "testlv" created.
[root@rocky8-1 ~]#lvs
  LV     VG     Attr       LSize    Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  home   rl     -wi-ao---- <126.97g                                                    
  root   rl     -wi-ao----   70.00g                                                    
  swap   rl     -wi-ao----   <2.03g                                                    
  testlv testvg -wi-a-----    5.00g                                                    
[root@rocky8-1 ~]#lvdisplay
  --- Logical volume ---
  LV Path                /dev/testvg/testlv
  LV Name                testlv
  VG Name                testvg
  LV UUID                XsBigX-tgne-2kCk-AEk6-c8ng-aIlu-NECbcy
  LV Write Access        read/write
  LV Creation host, time rocky8-1.sun.com, 2022-12-01 20:04:03 +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
   

6、创建文件系统

[root@rocky8-1 ~]#mkfs.ext4 /dev/testvg/testlv
mke2fs 1.45.6 (20-Mar-2020)
Creating filesystem with 1310720 4k blocks and 327680 inodes
Filesystem UUID: 5c3414c7-93ce-4f2d-aa9a-9c0f4a1c8335
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 

7、挂载:

[root@rocky8-1 ~]#mkdir /users
[root@rocky8-1 ~]#ls /
bin   data  etc   lib    media  mnt  opt   root  sbin  sys  users  var
boot  dev   home  lib64  misc   net  proc  run   srv   tmp  usr
[root@rocky8-1 ~]#mount /dev/testvg/testlv /users        挂载到/users目录下
[root@rocky8-1 ~]#df
Filesystem                1K-blocks    Used Available Use% Mounted on
devtmpfs                     883732       0    883732   0% /dev
tmpfs                        914116       0    914116   0% /dev/shm
tmpfs                        914116    9512    904604   2% /run
tmpfs                        914116       0    914116   0% /sys/fs/cgroup
/dev/mapper/rl-root        73364480 6517304  66847176   9% /
/dev/mapper/rl-home       133071376  962416 132108960   1% /home
/dev/sda1                   1038336  260360    777976  26% /boot
tmpfs                        182820      12    182808   1% /run/user/42
tmpfs                        182820       0    182820   0% /run/user/0
/dev/mapper/testvg-testlv   5095040   20472   4796040   1% /users

 

三、新建用户archlinux,要求其家目录为/users/archlinux,而后su切换至archlinux用户,复制/etc/pam.d/目录至自己的家目录

[root@rocky8-1 ~]#useradd -m -d /users/archlinux archlinux
[root@rocky8-1 ~]#su - archlinux 
[archlinux@rocky8-1 ~]$pwd
/users/archlinux
[archlinux@rocky8-1 ~]$cp -a /etc/pam.d ~
[archlinux@rocky8-1 ~]$ls
pam.d
[archlinux@rocky8-1 ~]$

 

四、扩展testlv至7G,要求archlinux用户的文件不能丢失

[root@rocky8-1 ~]#umount /users       #卸载挂载点
[root@rocky8-1 ~]#e2fsck -f /dev/testvg/testlv  #检查硬盘完整性,确认文件是否损坏、丢失
e2fsck 1.45.6 (20-Mar-2020)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/testvg/testlv: 58/327680 files (0.0% non-contiguous), 42119/1310720 blocks
[root@rocky8-1 ~]#lvextend -L 7G /dev/testvg/testlv       #扩展逻辑卷
  Size of logical volume testvg/testlv changed from 5.00 GiB (320 extents) to 7.00 GiB (448 extents).
  Logical volume testvg/testlv successfully resized.
[root@rocky8-1 ~]#resize2fs /dev/testvg/testlv      #扩展文件系统
resize2fs 1.45.6 (20-Mar-2020)
Resizing the filesystem on /dev/testvg/testlv to 1835008 (4k) blocks.
The filesystem on /dev/testvg/testlv is now 1835008 (4k) blocks long.
[root@rocky8-1 ~]#mount /dev/testvg/testlv /users     #重新挂载
[root@rocky8-1 ~]#df
Filesystem                1K-blocks    Used Available Use% Mounted on
devtmpfs                     883732       0    883732   0% /dev
tmpfs                        914116       0    914116   0% /dev/shm
tmpfs                        914116    9512    904604   2% /run
tmpfs                        914116       0    914116   0% /sys/fs/cgroup
/dev/mapper/rl-root        73364480 6544724  66819756   9% /
/dev/mapper/rl-home       133071376  962592 132108784   1% /home
/dev/sda1                   1038336  260360    777976  26% /boot
tmpfs                        182820      12    182808   1% /run/user/42
tmpfs                        182820       0    182820   0% /run/user/0
/dev/mapper/testvg-testlv   7159288   23192   6752712   1% /users

[root@rocky8-1 ~]#ls /users/archlinux/pam.d         #查看文件是否丢失
atd fingerprint-auth login runuser su vmtoolsd
chfn gdm-autologin other runuser-l sudo xserver
chsh gdm-fingerprint passwd smartcard-auth sudo-i
cockpit gdm-launch-environment password-auth smtp su-l
config-util gdm-password polkit-1 smtp.postfix system-auth
crond gdm-pin postlogin sshd systemd-user
cups gdm-smartcard remote sssd-shadowutils vlock

五、 收缩testlv至3G,要求archlinux用户的文件不能丢失

[root@rocky8-1 ~]#umount /users     #卸载挂载点
[root@rocky8-1 ~]#lvreduce -L 3G -r /dev/testvg/testlv  #将逻辑卷的容量修改为3G
fsck from util-linux 2.32.1
/dev/mapper/testvg-testlv: 58/458752 files (0.0% non-contiguous), 50984/1835008 blocks
resize2fs 1.45.6 (20-Mar-2020)
Resizing the filesystem on /dev/mapper/testvg-testlv to 786432 (4k) blocks.
The filesystem on /dev/mapper/testvg-testlv is now 786432 (4k) blocks long.

  Size of logical volume testvg/testlv changed from 7.00 GiB (448 extents) to 3.00 GiB (192 extents).
  Logical volume testvg/testlv successfully resized.
[root@rocky8-1 ~]#e2fsck -f /dev/testvg/testlv       #检查文件系统是否损坏,丢失
e2fsck 1.45.6 (20-Mar-2020)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/testvg/testlv: 58/196608 files (0.0% non-contiguous), 32613/786432 blocks
[root@rocky8-1 ~]#mount /dev/testvg/testlv /users        #重新挂载
[root@rocky8-1 ~]#df -h
Filesystem                 Size  Used Avail Use% Mounted on
devtmpfs                   864M     0  864M   0% /dev
tmpfs                      893M     0  893M   0% /dev/shm
tmpfs                      893M  9.3M  884M   2% /run
tmpfs                      893M     0  893M   0% /sys/fs/cgroup
/dev/mapper/rl-root         70G  6.3G   64G   9% /
/dev/mapper/rl-home        127G  941M  126G   1% /home
/dev/sda1                 1014M  255M  760M  26% /boot
tmpfs                      179M   12K  179M   1% /run/user/42
tmpfs                      179M     0  179M   0% /run/user/0
/dev/mapper/testvg-testlv  2.9G   16M  2.8G   1% /users
[root@rocky8-1 ~]#

 六、对testlv创建快照,并尝试基于快照备份数据,验正快照的功能

[root@rocky8-1 ~]#echo {a..f} > /users/test.txt         #创建个test.txt文件
[root@rocky8-1 ~]#lvcreate -L 3G -n testlv-snapshot -s -p r /dev/testvg/testlv     #创建大小为3G名称为testlv-snapshot的逻辑卷快照并只读
  Logical volume "testlv-snapshot" created.
[root@rocky8-1 ~]#lvdisplay 
  --- Logical volume ---
  LV Path                /dev/testvg/testlv
  LV Name                testlv
  VG Name                testvg
  LV UUID                XsBigX-tgne-2kCk-AEk6-c8ng-aIlu-NECbcy
  LV Write Access        read/write
  LV Creation host, time rocky8-1.sun.com, 2022-12-01 20:04:03 +0800
  LV snapshot status     source of
                         testlv-snapshot [active]
  LV Status              available
  # open                 1
  LV Size                3.00 GiB
  Current LE             192
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:3
   
  --- Logical volume ---
  LV Path                /dev/testvg/testlv-snapshot
  LV Name                testlv-snapshot
  VG Name                testvg
  LV UUID                tDk15m-qSML-6kEI-Z9mV-fTo3-1LeT-VaQzhD
  LV Write Access        read only
  LV Creation host, time rocky8-1.sun.com, 2022-12-02 13:18:31 +0800
  LV snapshot status     active destination for testlv
  LV Status              available
  # open                 0
  LV Size                3.00 GiB
  Current LE             192
  COW-table size         3.00 GiB
  COW-table LE           192
  Allocated to snapshot  0.01%
  Snapshot chunk size    4.00 KiB
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:6
   
[root@rocky8-1 ~]#mount /dev/testvg/testlv-snapshot /mnt        #将快照挂载到/mnt目录下
mount: /mnt: WARNING: device write-protected, mounted read-only.
[root@rocky8-1 ~]#ls /mnt       #可查看快照里有test.txt文件,此文件不是真的存在快照内,只是显示
archlinux  lost+found  test.txt
[root@rocky8-1 ~]#vim /users/test.txt 
[root@rocky8-1 ~]#cat /users/test.txt  #修改test.txt数据
a b c 
[root@rocky8-1 ~]#cat /mnt/test.txt    #查看快照内数据还是原来的
a b c d e f
[root@rocky8-1 ~]#
[root@rocky8-1 ~]#umount /mnt          #取消挂载
[root@rocky8-1 ~]#umount /users        #取消挂载
[root@rocky8-1 ~]#lvconvert --merge /dev/testvg/testlv-snapshot  #恢复快照
  Merging of volume testvg/testlv-snapshot started.
  testvg/testlv: Merged: 100.00%
[root@rocky8-1 ~]#mount /dev/testvg/testlv /users  #重新挂载
[root@rocky8-1 ~]#ll /users
total 24
drwx------ 5 archlinux archlinux  4096 Dec  1 21:32 archlinux
drwx------ 2 root      root      16384 Dec  1 20:17 lost+found
-rw-r--r-- 1 root      root         12 Dec  2 13:16 test.txt
[root@rocky8-1 ~]#cat /users/test.txt   #可查看数据已恢复
a b c d e f
[root@rocky8-1 ~]#

九. 静态配置网卡IP,centos/ubuntu实现

Centos:

[root@rocky8-1 ~]#vim /etc/sysconfig/network-scripts/ifcfg-eth0  #编辑此文件

#生效
CentOS6
service network restart
CentOS7
systemctl restart network
CentOS8和rocky
nmcli connnection reload
nmcli connnettion up eth0
 
Ubuntu:
[root@ubuntu2004-1 ~]#vim /etc/netplan/01-netcfg.yaml   

 

生效命令:
netplan apply
 
 

 

 
posted @ 2022-12-01 15:23  Steven_shl  阅读(61)  评论(0编辑  收藏  举报