raid
多个磁盘合成一个“阵列”来提供更好的性能、冗余,或者两者都提供
提高IO能力
磁盘并行读写
提高耐用性
磁盘冗余来实现
级别:多块磁盘组织在一起的工作方式有所不同
RAID实现的方式
外接式磁盘阵列:通过扩展卡提供适配能力
内接式RAID:主板集成RAID控制器,安装OS前在BIOS里配置
软件RAID:通过OS实现
RAID级别
RAID-0:
- 读、写性能提升
- 可用空间:N*min(S1,S2,...)
- 无容错能力
- 最少磁盘数:2, 2+
RAID-1:
- 读性能提升、写性能略有下降
- 可用空间:N/2*min(S1,S2,...) 利用率50%
- 有冗余能力
- 最少磁盘数:2, 2N
RAID-5:
- 读、写性能提升
- 可用空间:(N-1)*min(S1,S2,...) 利用率 N-1/N
- 有容错能力:允许最多1块磁盘损坏
- 最少磁盘数:3, 3+
RAID-6:
- 读、写性能提升
- 可用空间:(N-2)*min(S1,S2,...) 利用率 N-2/N
- 有容错能力:允许最多2块磁盘损坏
- 最少磁盘数:4, 4+
RAID-10:
- 读、写性能提升
- 可用空间:N*min(S1,S2,...)/2 利用率50%
- 有容错能力:每组镜像最多只能坏一块
- 最少磁盘数:4, 4+
RAID-50 多块磁盘先实现RAID5,再组合成RAID0,利用率 RAID中 N-1/N
逻辑卷(LVM)
底层块设备,硬盘,分区都可以,将底层的块设备,创建成pv物理卷,再创建卷组,再把pv物理卷加入到卷组
分区的话 需要修改块设备的ID 为LVM的,硬盘不用改
pv物理卷
显示pv信息
pvs:简要pv信息显示
pvdisplay
创建pv pvcreate /dev/DEVICE(可以跟很多设备)
删除pv pvremove /dev/DEVICE
vg 卷组
显示卷组
vgs vgdisplay
创建卷组
vgcreate [-s #[kKmMgGtTpPeE]] VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]
vgcreate vg组名 哪些pv
显示逻辑卷
lvs Lvdisplay
lvcreate -n mysql(逻辑卷名字) -L 8G(逻辑卷容量) vg0(从哪个卷组取容量)
创建出逻辑卷后,就相当于我们有了逻辑卷这个设备了,逻辑卷产生的设备 叫这个名字 /dev/mapper/卷组名-逻辑卷名字 等同于 /dev/卷组名/逻辑卷名
挂载 然后把 这个设备挂载到 挂载点
扩展逻辑卷的空间
lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME
lvextend -l +100%free /dev/vg0/mysql 把剩下空间的100% 分给mysql逻辑卷
添加完成之后,你df会发现,硬盘的大小没变?因为你是增加了空间,但是这些新增加的空间没有文件系统啊,所有就不能使用
xfs_growfs 逻辑卷的挂载点 //把新增加的空间与已经存在的空间的文件系统做同步,这是针对于xfs文件系统的
resize2fs 设备名 //这是针对于 ext4文件系统的
当然还有一种方法 在加空间的时候,-r选项 可以直接同步好 lvextend -r -l +100%free /dev/vg0/mysql 直接扩展并且同步了文件系统,
把剩下的空间都加完了还不够?那就扩展 vg的空间
vgextend vg0 /dev/sdc //把pv加到vg里面
缩减ext逻辑卷
- umount /mnt/binlog
- e2fsck -f /dev/vg0/binlog
- resize2fs /dev/vg0/binlog 10G
- lvreduce -L 10G /dev/vg0/binlog
- mount /dev/vg0/binlog /mnt/binlog/
只能缩减ext的文件系统,不能缩减xfs文件系统