第三周作业
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

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更安全”。的确,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 #编辑此文件
[root@ubuntu2004-1 ~]#vim /etc/netplan/01-netcfg.yaml
