磁盘阵列RAID
说到这里,也是很尴尬前段时间测试,就提到RAID,不懂这个原理。。。。
多个磁盘合成一个“阵列”来提供更好的性能、冗余,或者两者都提供
RAID的好处:
1、提高IO能力,可以实现磁盘并行读写
2、提高耐用性,通过磁盘冗余来实现
3、级别:多块磁盘组织在一起的工作方式有所不同
RAID实现的方式
外接式磁盘阵列:通过扩展卡提供适配能力
内接式RAID:主板集成RAID控制器,安装OS前在BIOS里配置
软件RAID:通过OS实现
通常情况下,是通过硬RAID来实现
RAID级别
RAID-0:条带卷,strip
RAID-1:镜像卷,mirror
RAID-2 ..
RAID-5
RAID-6
RAID-10
RAID-01
RAID-0:
特点:
1、可以同时进行读写,很明显读、写性能提升;无容错能力;
2、最少磁盘数:2, 2+
缺点:将一份数据均等放在不同硬盘上,如果有一块硬盘损坏,数据就会损坏不能用,目前基本不用;容错性太差。

RAID-1:
特点:
- 读性能提升、写性能略有下降
- 可用空间:1*min(S1,S2,...) 有冗余能力
- 最少磁盘数:2, 2N
缺点:
1、两块硬盘读写性能提升,自动同步,另一块相当于镜像;如果损坏的话,均损坏
2、磁盘利用率明显降低

RAID-4:
特点:
- 多块数据盘异或运算值存于专用校验盘
- 如果损坏的话,通过异或校验位来找回来
- 读写并行;具有容错性
缺点:
- 通过校验位占用了其中一块的空间,磁盘利用率为n-1/n (n>=3 )
- 校验盘磁盘压力,容易损坏
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+
- 兼顾了RAID0和RAID1,磁盘利用率50%

RAID-01
特点:
多块磁盘先实现RAID0,再组合成RAID1,磁盘利用率50%

相较于RAID10,RAID01相对较差
RAID-50
多块磁盘先实现RAID5,再组合成RAID0

JBOD:Just a Bunch Of Disks
特点:
- 将多块磁盘的空间合并一个大的连续空间使用
- 可用空间:sum(S1,S2,...)
- 不均等分配

RAID7
可以看作一个独立存储计算机,自身带有操作系统和管理工具,可以独立 运行,理论上性能最高的RAID模式
常用级别: RAID-0, RAID-1, RAID-5, RAID-10, RAID-50, JBOD
软RAID
- mdadm:为软RAID提供管理界面
- 为空余磁盘添加冗余
- 结合内核中的md(multi devices)
- RAID设备可命名为/dev/md0、/dev/md1、/dev/md2、/dev/md3等
逻辑卷管理器(LVM)
1、本质上是一个虚拟设备驱动,是在内核中块设备和物理设备之间添加的一个新的抽象层次,
2、将几块磁盘(物理卷,PhysicalVolume)组合形成一个存储池或者卷组(VolumeGroup)。LVM可以每次从卷组中划分出不同大小的逻辑卷(LogicalVolume)创建新的逻辑设备。
3、底层的原始的磁盘不再由内核直接控制,而由LVM层来控制。对于上层应用来说卷组替代了磁盘块成为数据存储的基本单元。
允许在多个物理设备间重新组织文件系统
• 将设备指定为物理卷
• 用一个或者多个物理卷来创建一个卷组
• 物理卷是用固定大小的物理区域(Physical Extent,PE)来定义的
• 在物理卷上创建的逻辑卷 是由物理区域(PE)组成
• 可以在逻辑卷上创建文件系统

优点:
1、解决系统分区分配不均匀问题,可以在线操作划分逻辑卷
2、在零停机前提下可以自如对文件系统的大小进行调整,可以方便实现文件系统跨越不同磁盘和分区。
3、LVM逻辑设备不受物理约束的限制,逻辑卷不必是连续的空间,它可以跨越许多物理卷,并且可以在任何时候任意的调整大小。相比物理磁盘来说,更易于磁盘空间的管理。
/boot 是启动分区,不能作为逻辑卷
pv管理工具
1、显示pv信息
pvs:简要pv信息显示
Pvdisplay
2、创建pv
pvcreate /dev/DEVICE
3、删除pv
pvremove /dev/DEVICE
vg管理工具
1、显示卷组
vgs
vgdisplay
2、vgcreate
3、管理卷组
4、删除卷组
先做lvremove,再做vgremove
lv管理工具
1、显示逻辑卷
lvs
lvdisplay
2、创建逻辑卷
lvcreate -L #[mMgGtT] -n NAME VolumeGroup
lvcreate -l 60%VG -n mylv testvg
lvcreate -l 100%FREE -n yourlv testvg
3、删除逻辑卷
lvremove /dev/VG_NAME/LV_NAME
4、重设文件系统大小
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
创建LVM逻辑卷:
- 硬盘分区
硬盘不需要加标签,分区要加标签
4G分区+20G硬盘
2、创建物理卷:

查看物理卷具体信息:
pvs
pvdisplay 查看内容更加详细

3、创建卷组 vg0为自定义卷组名
vgcreate vg0 /dev/sd{b1,d}
指定PE的大小 -s|--physicalextentsize Size[m|UNIT] ]

4、pvs 查看卷组名

5、创建逻辑卷lvcreate
lvcreate -n mysql -L 8G vg0


自定义名称并非真实路径,是一个软链接dm-0

查看物理卷具体使用情况,可以用pvdisplay

PE在逻辑卷里面的定义:LE

6、创建文件系统mkfs.xfs /dev/vg0/mysql
7、blkid 使用时不能使用逻辑卷的成员,必须用/dev/mapper/vg0-mysql

- 永久挂载

- 测试逻辑卷速度

扩展:
扩展逻辑卷——>扩展文件系统
xfs_growfs ext /mount/mysql (挂载点) xfs系列的文件系统更新到内存中

resize2fs /dev/vg0/binlog(设备名) ext 系列的文件系统更新到内存中
不写大小,默认将卷组中剩余空间全部扩展

使用上述两种命令,需要判断文件系统时xfs还是ext。
lvextend适用于ext、xfs 文件系统
lvextend -r -l +500 /dev/vg0/binlog

缩减
缩减文件系统——>缩减逻辑卷(必须离线状态)
以缩小如下图所示逻辑卷为例,步骤如下
- 取消挂载
umount /mount/binlog
- 缩减文件系统resize2fs /dev/vg0/binlog 10G
卷组名 缩小到10G

系统检查完整性会报错,按照提示再次执行系统提示命令就ok
- lvreduce -L 10G /dev/vg0/binlog

- 重新挂载
mount /dev/vg0/binlog /mnt/binlog/

xfs 文件系统只能扩大,不能缩减
ext4 系列可以缩减,但是用的比较少,且操作需要谨慎
跨主机迁移逻辑卷
迁移前的准备
创建物理卷 pvcreate /dev/sdb
创建卷组 vgcreate -s 16M vg0 /dev/sdb
创建逻辑卷lvcreate -n mysql -L 2G vg0
创建文件系统 mkfs.ext4 /dev/vg0/mysql
挂载mount /dev/vg0/mysql /mount/mysql
构造数据(测试环境)...
步骤:
1、取消挂载 umount /mount
2、修改卷组名称 vgrename vg0 vg1
3、卷组禁用vg0 vgchange -an vg1
4、变成导出状态 vgexport vg1
5、拆除硬盘.到新的机器上....
6、变成导入状态vgimport vg1
7、启用状态 vgchange -ay vg1
8、重新挂载 mount /dev/vg1/mysql /mount/vg1-mysql
删除逻辑卷,卷组,pv
- umount /mount/vg0-mysql
- lvremove /dev/vg0/mysql
- vgremove vg0
- pvremove /dev/sdc
LVM的快照管理
- lvcreate -s -n mysql_snapshot2 -L 1G /dev/vg0/mysql
-s 表示创建逻辑卷快照

2、查看逻辑卷

3、xfs文件系统的UUID相同的无法挂载

4、mount -o nouuid /dev/vg0/mysql_snapshot2 /mount/snap/

5、lvdisplay 可以看到/dev/vg0/mysql 为源;/dev/vg0/mysql_snapshot2为它的快照

对源挂载点目录下文件进行不同方式的操作 touch f5

5、此时查看快照里面的内容,其实是磁盘里面的状态,并非已经做好快照

7、将源挂载与快照均取消挂载
umount /mount/snap/
umount /mount/mysql/

8、将快照恢复到源挂载状态,系统会自动找到快照的本身逻辑卷
lvconvert --merge /dev/vg0/mysql_snapshot2

9、再次挂载:
mount /dev/vg0/mysql /mount/mysql

切换到原来的挂载点,可以看到保留的是修改前状态的文件:f2、f3、f4 ,而f5会丢失

10、查看逻辑卷的状态,可以看到快照已经没有,只能用一次,可以类比与虚拟机的快照一样。

11、对于ext4系列文件系统2处稍微有些区别,其他步骤一样

5700

被折叠的 条评论
为什么被折叠?



