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最能明显感受到性能的提升。
- 读、写性能提升
- 可用空间: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,反之亦然
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.png3.创建一个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
网友评论