RAID:处理磁盘冗余
为什么学习?
1、解决了数据的读写速率
2、解决了磁盘冗余
RAID是什么?
Redundant Arrays of Independent Drivers
冗余 数组 独立的
独立磁盘构成的具有冗余能力的阵列
个别磁盘提供数据所产生加成效果提升整个磁盘系统效能
raid分为哪几类?
1、外接式磁盘阵列柜
2、内接式磁盘阵列卡
3、软件来仿真实现raid
常见的raid卡型号:
华为SR130 RAID卡 不做缓存
SR430c 做缓存
戴尔H730P 做缓存
H330 不做缓存
raid开卡需要驱动
raid类型:
raid0
(不含检验与冗余的条带存储):至少2块盘,只有按条带存储数据
特点:提高数据的存储速度,但是没有备份,不能容灾。可用容量100%
应用场景:对数据要求不高的场景下。
raid1
(不含校验的镜像存储):至少2块盘,只有镜像
特点:不能解决数据存取速度的问题,写的速度快了,读的速度慢了,但是可容灾。可用容量50%
应用场景:对数据的要求很高的场景下。
*raid5
(数据块级别的分布式校验条带存储):至少3块盘,可以提高存取速度
特点:存储的有存储数据和校验数据,可以容灾(允许一个盘坏),可用容量是(n-1/n)。
应用场景:折中了Raid0和Raid1的优缺点,可适用于大部分场景。
raid6
至少4块盘,可以提高存储速率
特点:存储的有存储数据和两份校验数据,可以容灾(容许两个盘坏),可用容量是(n-2/n)
Raid01 ==Raid0+Raid1
特点:至少4块盘,既能提高数据读写,也能实现数据容灾,可使用容量50%。
容灾能力稍强
Raid10 ==Raid1+Raid0
特点:至少4块盘,既能提高数据读写,也能实现数据容灾,可使用容量50%
测试raid性能
1、挂载3块盘
2、3个盘的分区格式化,分两个区
fd:—对分区raid
Command (m for help): t
Selected partition 2
Hex code (type L to list all codes): fd
3、组raid
raid0
[root@localhost ~]# mdadm -C /dev/md0 -l 0 -n 2 /dev/sdb1 /dev/sdc1
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
raid5
mdadm -C /dev/md1 -l 5 -n 3 /dev/sdb2/ /dev/sdc2 /dev/sdd2
4、格式化raid
mkfs.ext4 /dev/md0
mkfs.ext4 /dev/md1
5、创建挂载点
mkdir /raid0
mkdir /raid1
6、挂载
mount /dev/md1 /raid1
mount /dev/md0 /raid0
系统盘:raid5
数据盘:可不做
(插入系统盘,固态---->组raid---->装系统)
华为H2288
BMC:10.10.10.1
BMC:VNC
启动
CTRL+C
raid(组合raid)
保存退出
安装系统,选择系统盘
查看可用大小:
[root@localhost ~]# mdadm --detail /dev/md0
raid0 2.5G*2 ====(5G)4.88
[root@localhost ~]# mdadm --detail /dev/md1
raid5 2.5G*3 ====(5G)5.1
数据的读取速率:
在使用raid0的情况下:
time dd if=/dev/zero of=/raid0/txt bs=1M count=1000
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB) copied, 2.17618 s, 482 MB/s
real 0m2.199s
user 0m0.000s
sys 0m1.521s
在使用raid5的情况下:
time dd if=/dev/zero of=/raid1/txt bs=1M count=1000
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB) copied, 3.2501 s, 323MB/s
real 0m3.257s
user 0m0.000s
sys 0m1.369s
容灾:
mdadm /dev/md0 -f /dev/sdc1
mdadm --detail /dev/md0
练习:
[root@localhost ~]# mkfs.ext4 /dev/md0
mke2fs 1.42.9 (28-Dec-2013)
warning: 512 blocks unused.
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=128 blocks, Stripe width=256 blocks
320112 inodes, 1277952 blocks
63897 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=1308622848
39 block groups
32768 blocks per group, 32768 fragments per group
8208 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
[root@localhost ~]# mkdir /md0
[root@localhost ~]# mount /dev/md0 /raid0
[root@localhost ~]# mdadm --detail /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Tue Aug 6 17:45:31 2019
Raid Level : raid0
Array Size : 5113856 (4.88 GiB 5.24 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Tue Aug 6 17:45:31 2019
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Chunk Size : 512K
Consistency Policy : none
Name : localhost.localdomain:0 (local to host localhost.localdomain)
UUID : 1757db30:c05c563d:80abd419:b173c3ee
Events : 0
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 33 1 active sync /dev/sdc1
LVM:逻辑卷管理器
生成逻辑卷,动态扩展文件空间
PV:物理卷,LVM的逻辑存储块,与磁盘分区是逻辑对应关系
VG:卷组,逻辑上的磁盘设备。
PE:物理长度,是逻辑上的最小存储单元,EP4MB
LV:逻辑卷,物理意义上的分区
LE:逻辑长度,与PE相对应
pv相关:
创建物理卷
pvcreate /dev/sdb
pvcreate /dev/sdb /dev/sdc1
pvcreate /dev/sdb /dev/sdc{1,2,3}
pvs:查看pv
pvdisplay:查看pv
pvscan:列出系统中的物理卷
pvremove:移除物理卷
pvmove:
vg相关:
创建卷组:
vgcreate vgname /dev/sdb
-s:指定PE大小
vgcreate -s 8M vgname /dev/sdb
vgremove
vgextend:将物理卷添加到卷组中
vgreduce:删除卷组中的物理卷
vgs7
vgdisplay
vgrename:更改卷组名称
vgchange:改变卷组工作状态
lv相关:
创建逻辑卷:
lvcreate -L 2G -n test_lv1 test_vg1
l:指定逻辑卷大小,以PE为单位进行指定
L:逻辑卷的容量(小于卷组)
#:绝对容量
+#:增量
n:指定逻辑卷名称
-s:指定创建逻辑卷快照
lvcreate -s -n 快照名 -L 大小 逻辑卷 -p r(属性,只读)
lvconvert:恢复快照
lvconvert --merge 快照路径
-p:设置属性 r 只读属性
lvextend:扩展逻辑卷
lvreduce:缩减逻辑卷
lvs
lvdisplay:修改逻辑卷名称
lvremove:删除
lv扩容
[root@localhost mylv2]# lvextend -L +500M /dev/myvg2/mylv2
Size of logical volume myvg2/mylv2 changed from 500.00 MiB (50 extents) to 1000.00 MiB (100 extents).
Logical volume myvg2/mylv2 successfully resized.
[root@localhost mylv2]# resize2fs /dev/myvg2/mylv2
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/myvg2/mylv2 is mounted on /tmp/mylv2; on-line resizing required
old_desc_blocks = 4, new_desc_blocks = 8
The filesystem on /dev/myvg2/mylv2 is now 1024000 blocks long.
lvm缩减步骤
1、卸载逻辑卷
[root@localhost ~]# umount /dev/myvg2/mylv2
2、检测逻辑卷上的空间 e2fsck
[root@localhost ~]# e2fsck -f /dev/myvg2/mylv2
e2fsck 1.42.9 (28-Dec-2013)
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/myvg2/mylv2: 12/254000 files (0.0% non-contiguous), 524035/1024000 blocks
3、使用resize2fs将文件系统缩减
[root@localhost ~]# resize2fs /dev/myvg2/mylv2 100M(设置文件系统大小)
resize2fs 1.42.9 (28-Dec-2013)
resize2fs: New size smaller than minimum (513498)
4、使用lvreduce缩减逻辑卷大小
[root@localhost ~]# lvreduce -L 500M dev/myvg2/mylv2
WARNING: Reducing active logical volume to 500.00 MiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce myvg2/mylv2? [y/n]: y
Size of logical volume myvg2/mylv2 changed from 1000.00 MiB (100 extents) to 500.00 MiB (50 extents).
Logical volume myvg2/mylv2 successfully resized.
5、挂载
[root@localhost ~]# mount /dev/myvg2/mylv3 /tmp/mylv2
步骤:
1、分区
2、[root@localhost ~]# pvcreate myvg2 /dev/sdd1 /dev/sdd2
Device myvg not found.
WARNING: ext4 signature detected on /dev/sdd1 at offset 1080. Wipe it? [y/n]: y Wiping ext4 signature on /dev/sdd1.
Physical volume "/dev/sdd1" successfully created.
Physical volume "/dev/sdd2" successfully created.
3、
[root@localhost ~]# vgcreate -s 10M myvg2 /dev/sdd1 /dev/sdd2
Volume group "myvg2" successfully created
4、
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- 12.00g 4.00m
myvg 1 1 0 wz--n- 1020.00m 920.00m
myvg2 2 0 0 wz--n- 1.99g 1.99g
[root@localhost ~]# lvcreate -L 500M -n mylv2 myvg2
Logical volume "mylv2" created.
5、
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- 10.00g
swap centos -wi-ao---- 2.00g
mylv myvg -wi-ao---- 100.00m
mylv2 myvg2 -wi-a----- 500.00m
6、
[root@localhost ~]# mkfs.ext4 /dev/myvg2/mylv2
7、
[root@localhost ~]# mkdir -p /tmp/mylv2
8、
[root@localhost ~]# mount /dev/myvg2/mylv2 /tmp/mylv2
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 10G 3.9G 6.2G 39% /
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.8M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sr0 11G 11G 0 100% /media
/dev/sda1 197M 111M 87M 57% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/mapper/myvg-mylv 93M 1.6M 85M 2% /tmp/mylv
/dev/mapper/myvg2-mylv 477M 2.3M 445M 1% /tmp/mylv2
[root@localhost ~]# vgdisplay
--- Volume group ---
VG Name myvg2
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 2
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 2
Act PV 2
VG Size 1.99 GiB
PE Size 10.00 MiB
Total PE 204
Alloc PE / Size 50 / 500.00 MiB
Free PE / Size 154 / 1.50 GiB
VG UUID yR08Zs-PTj9-WVs5-cO15-Oxj0-EWe6-Fdy8Ph