一,raid基础知识
raid是英文redundant arrays of independent drivers的缩写,中文全称为独立的冗余磁盘队列。
1,分类
(1)外接式磁盘阵列柜
(2)内接式磁盘阵列卡
(3)软件来仿真实现raid
2,常见raid卡型号
华为:SR130(不做缓存),SR430C(做缓存)
戴尔:H330(不做缓存),H730P(做缓存)
3,作用
解决了数据的读写速率
解决磁盘冗余,保护数据以免丢失
4,类型
(1)raid0:至少两块盘,只有按条带存储数据(不含校验与冗余的条带存储)
特点:提高数据的存储速度,但是没有备份,不能容灾;可用容量100%;
应用场景:对数据要求不高的场景下。
(2)raid1:至少两块盘,只有镜像(不含校验的镜像存储)
特点:不能解决数据存取速度问题,但是可容灾,可用容量50%
应用场景:对数据要求很高的条件下;
(3)raid5:至少三块盘,(数据块级别的分布式校验条带存储)
特点:存储的有存储数据和一份校验数据,可以提高存取速率,也可以容灾(只允许一个盘坏,可用容量(n-1/n)。
应用场景:折中raid0和raid1的优缺点,可适用于大多数应用场景。
(4)raid6:至少4个盘,可以提高存取速率
特点:存储的有存储数据,两份校验数据,可以容灾(容许两个盘坏),可用容量是(n-2/n)。
(5)raid01和raid10:(raid01的容错能力好于raid10)
raid01=raid0+raid1
特点:至少4个盘,既能提高数据读写,也能实现数据容灾,可用容量50%。
raid10=raid1+raid0
特点:至少4个盘,既能提高数据读写,也能实现数据容灾,可用容量50%。
二,测试raid性能
1,创建三个磁盘,每个磁盘分为两个区
(1)以/dev/sdb磁盘为例
(2)创建一个主分区,序号为1
(3)分区的类型输入fd表示为raid类型
(4)查看两个分区
2,组raid
(1)选取两块磁盘sdb,sdc中的第一个分区将其组为raid0
注:-C:创建raid,-l:raid阵列的等级,-n:磁盘的数量
(2)选取三块磁盘,将其组为raid5
3,格式化
(1)将raid0格式化
(2)将raid5格式化
4,创建挂载点
5,挂载
6,查看挂载情况
7,查看可用大小
(1)查看raid0的可用大小
(2)查看raid5的可用大小
8,查看数据的读取速率
(1)raid0的读取速率
(2)raid5的读取速率
(3)不加raid的读取速率
注:raid0>raid5>没有raid
9,容灾
(1)将raid5中的sdb磁盘人为弄坏,查看阵列中的sdb磁盘是失败的状态,但该磁盘阵列仍然可以正常使用,
注:-f:模拟磁盘损坏
注:raid0的阵列没有容灾能力,不能人为毁坏;
[root@demo1 ~]# mdadm /dev/md0 -f /dev/sdb1
mdadm: set device faulty failed for /dev/sdb1: Device or resource busy
三,LVM介绍
LVM是基于内核的逻辑卷管理器,主要建立在硬盘和分区之上,文件系统之下的一个逻辑层,它的主要作用是动态的扩容文件空间。
1,PV
物理卷,是LVM的逻辑存储块,与磁盘分区是逻辑的对应关系;
2,VG
卷组,是LVM逻辑概念上的磁盘设备;
3,PE
物理长度,是物理卷组合为卷组后,所划分的最小存储单元,默认为4MB;
4,LV
逻辑卷,物理意义上的分区;
5,LE
在同一个卷组中,LE的大小和PE是相同的,并且一一对应。
四,LVM相关命令
1,物理卷:
(1)pvcreate —创建物理卷
[root@demo3 ~]# pvcreate /dev/sdc[1-3]
Physical volume "/dev/sdc1" successfully created
Physical volume "/dev/sdc2" successfully created
Physical volume "/dev/sdc3" successfully created
注:以将一个磁盘分为三个分区为例。
(2)pvdisplay,pvs—查看
[root@demo3 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdc1 lvm2 ---- 1.01g 1.01g
/dev/sdc2 lvm2 ---- 1.01g 1.01g
/dev/sdc3 lvm2 ---- 1.01g 1.01g
[root@demo3 ~]# pvdisplay
PV Name /dev/sdc1
VG Name
PV Size 1.01 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID J48Vfv-cNXr-J94n-ZSRK-KZj3-z0lf-kH46Wp
(3)pvscan—列出系统中的物理卷
[root@demo3 ~]# pvscan
PV /dev/sdc1 lvm2 [1.01 GiB]
PV /dev/sdc2 lvm2 [1.01 GiB]
PV /dev/sdc3 lvm2 [1.01 GiB]
(4)pvremove—移除物理卷
[root@demo3 ~]# pvremove /dev/sdc3
Labels on physical volume "/dev/sdc3" successfully wiped
Labels on physical volume "/dev/sdc3" successfully wiped
[root@demo3 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdc1 lvm2 ---- 1.01g 1.01g
/dev/sdc2 lvm2 ---- 1.01g 1.01g
(5)pvmove—将物理卷上的数据移到别的地方
[root@demo3 ~]# pvmove /dev/sdc2
2,卷组
(1)vgcreate—创建卷组
[root@demo3 ~]# vgcreate -s 8M myvg1 /dev/sdc1 /dev/sdc2
Volume group "myvg1" successfully created
注:-s:指定PE的大小
(2)vgextend—将物理卷添加到卷组
[root@demo3 ~]# vgextend myvg1 /dev/sdc3
Volume group "myvg1" successfully extended
(3)vgreduce—删除卷组中的物理卷,缩减
[root@demo3 ~]# vgreduce myvg1 /dev/sdc3
Removed "/dev/sdc3" from volume group "myvg1"
(4)vgremove—删除卷组
[root@demo3 ~]# vgremove vg
Volume group "vg" successfully removed
(5)vgrename—更改卷组名称
[root@demo3 ~]# vgrename myvg1 vg
Volume group "myvg1" successfully renamed to "vg"
(6)vgdisplay,vgs—查看
[root@demo3 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg 2 0 0 wz--n- 2.02g 2.02g
[root@demo3 ~]# vgdisplay
--- Volume group ---
VG Name vg
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 4
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 2.02 GiB
PE Size 8.00 MiB
Total PE 258
Alloc PE / Size 0 / 0
Free PE / Size 258 / 2.02 GiB
VG UUID D5tfA2-xqM2-hJHq-L04n-OdF1-iynV-QSGS6h
(7)vgchange—改变卷组工作状态
[root@demo3 ~]# vgchange -a y vg
0 logical volume(s) in volume group "vg" now active
3,逻辑卷
(1)lvcreate—创建逻辑卷
-n | 指定逻辑卷名称 |
---|---|
-L | 制定逻辑卷大小,以空间大小指定 |
-l | 制定逻辑卷大小,以PE为单位 |
-s | 指定创建逻辑卷快照 |
-p | 设置属性;r为只读属性 |
创建逻辑卷步骤:
a,创建物理卷,再将其创建为卷组;
b,将卷组创建为逻辑卷
c,将逻辑卷格式化
d,创建挂载点
e,挂载,查看
[root@demo3 ~]# lvcreate -L 500M -n mylv vg
Logical volume "mylv" created.
[root@demo3 ~]# mkfs.ext4 /dev/vg/lv
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
[root@demo3 mnt]# mkdir mylv
[root@demo3 ~]# mount /dev/vg/lv /mnt/mylv
[root@demo3 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 9.8G 2.2G 7.1G 24% /
tmpfs 491M 0 491M 0% /dev/shm
/dev/sda1 190M 30M 150M 17% /boot
/dev/sr0 3.7G 3.7G 0 100% /media
/dev/mapper/vg-lv 500M 2.3M 1.4G 1% /mnt/mylv
[root@demo3 ~]# lvcreate -l 8 -n mylv1 vg
Logical volume "mylv1" created.
创建快照:
[root@demo3 ~]# lvcreate -L 20M -s -n lvphoto /dev/vg/lv
Logical volume "lvphoto" created.
(2)lvextend—扩展逻辑卷
[root@demo3 ~]# lvextend -L +1G /dev/vg/mylv
Size of logical volume vg/mylv changed from 500.00 MiB (125 extents) to 1.49 GiB (381 extents).
Logical volume mylv successfully resized.
(3)lvdisplay,lvs—查看
[root@demo3 ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
mylv vg -wi-a----- 500.00m
mylv1 vg -wi-a----- 32.00m
[root@demo3 ~]# lvdisplay
--- Logical volume ---
LV Path /dev/vg/mylv
LV Name mylv
VG Name vg
LV UUID 7aVNGo-CTUW-e6lm-r5i7-beWX-nIDa-vkXepS
LV Write Access read/write
LV Creation host, time demo3, 2019-08-12 21:59:49 +0800
LV Status available
# open 0
LV Size 500.00 MiB
Current LE 125
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
(4)lvrename—修改逻辑卷名称
[root@demo3 ~]# lvrename /dev/vg/mylv lv
Renamed "mylv" to "lv" in volume group "vg"
(5)lvremove—删除逻辑卷
[root@demo3 ~]# lvremove /dev/vg/lv
Logical volume vg/lv contains a filesystem in use.
(6)lvconvert—恢复快照
[root@demo3 ~]# lvconvert --merge /dev/vg/lvphoto
Merging of volume lvphoto started.
lv: Merged: 100.0%
Merge of snapshot into logical volume lv has finished.
Logical volume "lvphoto" successfully removed
(7)lvmreduce—缩减逻辑卷
步骤:
1,卸载逻辑卷
2,检测逻辑卷上的空间 e2fsck -f
3,使用resize2fs缩减文件系统大小
4,使用lvreduce缩减逻辑卷大小
[root@demo3 ~]# umount /dev/vg/lv
[root@demo3 ~]# e2fsck -f /dev/vg/lv
e2fsck 1.41.12 (17-May-2010)
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/vg/lv: 11/97536 files (9.1% non-contiguous), 14900/390144 blocks
[root@demo3 ~]# resize2fs /dev/vg/lv 1G
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/vg/lv to 262144 (4k) blocks.
The filesystem on /dev/vg/lv is now 262144 blocks long.
[root@demo3 ~]# lvreduce -L 1G /dev/vg
vg/ vga_arbiter
[root@demo3 ~]# lvreduce -L 1G /dev/vg/lv
WARNING: Reducing active logical volume to 1.00 GiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vg/lv? [y/n]: y
Size of logical volume vg/lv changed from 1.49 GiB (381 extents) to 1.00 GiB (256 extents).
Logical volume lv successfully resized.
[root@demo3 ~]# mount /dev/vg/lv /mnt/mylv/
[root@demo3 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 9.8G 2.2G 7.1G 24% /
tmpfs 491M 0 491M 0% /dev/shm
/dev/sda1 190M 30M 150M 17% /boot
/dev/sr0 3.7G 3.7G 0 100% /media
/dev/mapper/vg-lv 977M 1.9M 923M 1% /mnt/mylv