文章目录
![Alt](https://i-blog.csdnimg.cn/blog_migrate/56a1c4d6feb4d98a1d0cd1f9da86d499.jpeg)
什么是RAID?
磁盘阵列(Redundant Arrays of Independent Drives,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意。
磁盘阵列是由很多块独立的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上。
磁盘阵列还能利用同位检查(Parity Check)的观念,在数组中任意一个硬盘故障时,仍可读出数据,在数据重构时,将数据经计算后重新置入新硬盘中。
RAID级别
RAID-0:条带卷,strip
RAID-1:镜像卷,mirror
RAID-2
...
RAID-5
RAID-6
RAID-10
RAID-01
RAID-0:
读、写性能提升
可用空间:N*min(S1,S2,...)
无容错能力
最少磁盘数:2, 2+
RAID-1:
读性能提升、写性能略有下降
可用空间:1*min(S1,S2,...)
有冗余能力
最少磁盘数:2, 2N
RAID-5:
读、写性能提升
可用空间:(N-1)*min(S1,S2,...)
有容错能力:允许最多1块磁盘损坏
最少磁盘数:3, 3+
RAID-6:
读、写性能提升
可用空间:(N-2)*min(S1,S2,...)
有容错能力:允许最多2块磁盘损坏
最少磁盘数:4, 4+
RAID-10:
读、写性能提升
可用空间:N*min(S1,S2,...)/2
有容错能力:每组镜像最多只能坏一块
最少磁盘数:4, 4+
RAID-01
多块磁盘先实现RAID0,再组合成RAID1
注意:RAID10 根RAID01的区别是容错率,当一块磁盘坏了后,RAID10的容错率是1/3,RAID01的容错率是2/3
逻辑卷管理器(LVM)
1.允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小
2.允许在多个物理设备间重新组织文件系统
将设备指定为物理卷
用一个或者多个物理卷来创建一个卷组
物理卷是用固定大小的物理区域(Physical Extent,PE)来定义的
在物理卷上创建的逻辑卷
是由物理区域(PE)组成
可以在逻辑卷上创建文件系统
LVM可以弹性的更改文件系统的容量
通过交换PE来进行资料的转换,将原来LV内的PE转移到其他的设备中以降低LV的容量,或将其他设备中的PE加到LV中以加大容量
逻辑管理器工具
PV管理工具
显示篇pv信息
pvs #简要pv信息显示
pvdisplay #pv详细信息
pvcreate /dev/DEVICE #创建pv
pvremove /dev/DEVICE #删除pv
VG管理工具
显示卷组
vgs #简要vg信息显示
vgdisplay #显示vg详细信息
创建卷组:
vgcreate [-s #[kKmMgGtTpPeE]] VolumeGroupName
PhysicalDevicePath [PhysicalDevicePath...]
管理卷组:
vgextend VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]
vgreduce VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]
删除卷组:
先做pvmove,再做vgremove
LV管理工具
显示逻辑卷
lvs #简要lv信息显示
Lvdisplay #显示lv详细信息
创建逻辑卷:
lvcreate -L #[mMgGtT] -n NAME VolumeGroup
lvcreate -l 60%VG -n mylv testvg
lvcreate -l 100%FREE -n yourlv testvg
删除逻辑卷:
lvremove /dev/VG_NAME/LV_NAME
重设文件系统大小
fsadm [options] resize device [new_size[BKMGTEP]]
resize2fs [-f] [-F] [-M] [-P] [-p] device [new_size]
xfs_growfs /mountpoint
扩展和缩减逻辑卷
扩展逻辑卷
lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME
resize2fs /dev/VG_NAME/LV_NAME
lvresize -r -l +100%FREE /dev/VG_NAME/LV_NAME
缩减逻辑卷
umount /dev/VG_NAME/LV_NAME
e2fsck -f /dev/VG_NAME/LV_NAME
resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT]
lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME
mount
相关实验
添加实验所需硬盘
找到新增加的硬盘
[root@localhost data]# echo "- - -" > /sys/class/scsi_host/host0/scan
[root@localhost data]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 100G 0 part /
├─sda3 8:3 0 50G 0 part /data
├─sda4 8:4 0 1K 0 part
└─sda5 8:5 0 3G 0 part [SWAP]
sdb 8:16 0 20G 0 disk
sdc 8:32 0 10G 0 disk
sr0 11:0 1 1024M 0 rom
创建物理卷
[root@localhost data]# pvcreate /dev/sdb /dev/sdc
Physical volume "/dev/sdb" successfully created.
Physical volume "/dev/sdc" successfully created.
[root@localhost data]# pvdisplay
"/dev/sdc" is a new physical volume of "10.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdc
VG Name
PV Size 10.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID LjfhjA-sNiS-HSRR-EKEu-Jx3B-qVbF-dYoRoU
"/dev/sdb" is a new physical volume of "20.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb
VG Name
PV Size 20.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 0VNpo0-ubkj-L7lU-BENE-84P3-ntnv-nCSpIv
创建卷组vg666
[root@localhost data]# vgcreate -s 20m vg666 /dev/sdb /dev/sdc
Volume group "vg666" successfully created
[root@localhost data]# vgdisplay
--- Volume group ---
VG Name vg666
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 29.96 GiB
PE Size 20.00 MiB
Total PE 1534
Alloc PE / Size 0 / 0
Free PE / Size 1534 / 29.96 GiB
VG UUID qXj04R-WCfR-PIwa-iEPB-IXM0-HJ3g-thcXBf
创建逻辑卷lv666
[root@localhost data]# lvcreate -L 15G -n lv666 vg666
Logical volume "lv666" created.
[root@localhost data]# lvdisplay
--- Logical volume ---
LV Path /dev/vg666/lv666
LV Name lv666
VG Name vg666
LV UUID VGtp2s-W3qC-gki8-mVAV-8XHH-R232-SN2DPw
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2019-10-17 22:11:56 +0800
LV Status available
# open 0
LV Size 15.00 GiB
Current LE 768
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
制作逻辑卷的文件系统
[root@localhost data]# mkfs.xfs /dev/vg666/lv666
meta-data=/dev/vg666/lv666 isize=512 agcount=4, agsize=983040 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=3932160, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@localhost data]# mount /dev/vg666/lv666 /data/666
挂载逻辑卷
[root@localhost data]# mount /dev/vg666/lv666 /data/666
[root@localhost data]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 100G 0 part /
├─sda3 8:3 0 50G 0 part /data
├─sda4 8:4 0 1K 0 part
└─sda5 8:5 0 3G 0 part [SWAP]
sdb 8:16 0 20G 0 disk
└─vg666-lv666 253:0 0 15G 0 lvm /data/666
sdc 8:32 0 10G 0 disk
sr0 11:0 1 1024M 0 rom
扩展逻辑卷
之前咱们创建了15G的逻辑卷,现在加了5G,可以看到逻辑卷变成了20G
[root@localhost ~]# lvextend -L +5G /dev/vg666/lv666
Size of logical volume vg666/lv666 changed from 15.00 GiB (768 extents) to 20.00 GiB (1024 extents).
Logical volume vg666/lv666 successfully resized.
[root@localhost ~]# lvdisplay
--- Logical volume ---
LV Path /dev/vg666/lv666
LV Name lv666
VG Name vg666
LV UUID VGtp2s-W3qC-gki8-mVAV-8XHH-R232-SN2DPw
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2019-10-17 22:11:56 +0800
LV Status available
# open 1
LV Size 20.00 GiB
Current LE 1024
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0