首页 > 代码库 > Linux存储管理(2)
Linux存储管理(2)
RAID磁盘阵列,简称独立磁盘冗余阵列。可以将多个硬盘按不同方式组合在一起形成一个硬盘组,从而产生比单个硬盘更高的存储行能和数据备份功能;使多个磁盘实现并行读写;拥有容错能力;用户可以对组成的硬盘组进行格式化,挂载等操作,与单个硬盘的操作一模一样,但其存储速度就要比单个硬盘的存储速度要高得多;
RAID磁盘阵列按等级划分,不同等级所具有的功能不同,级数越高,对硬盘组的功能也就越完善,在这里给大家介绍一下;
RAID0:
需要由至少两块磁盘才能组成的磁盘阵列,要求磁盘所有的内存都投入使用,没有存储空间浪费所以并没有冗余容错能力;
RAID1:
RAID1是通过磁盘数据镜像实现数据冗余,在成堆的独立磁盘上产生互为备份的数据,即先将数据存入主盘,再将数据存入从盘,当一个磁盘失效后,系统可以自动切换到镜像磁盘上读写;磁盘整体利用率较低,为50%;如果两块磁盘60G,则磁盘利用率为30G;有冗余容错能力;
RAID4:
RAID4磁盘阵列至少需要三块硬盘组成,其中固定一块硬盘作为校验盘,当作为数据载体的两块硬盘中的其中一块存在数据丢失,则可以通过校验快和另一块硬盘进行异或校验得出丢失数据硬盘的数据;但是如果固定一块硬盘作为校验盘,校验盘IO压力巨大,很容易形成性能瓶颈;
RAID5:
RAID5磁盘阵列也是一个需要至少三块硬盘来实现的磁盘阵列;他与RAID4不同在于,他不会固定一块硬盘做为校验盘,而是随机循环让硬盘做为校验盘;多块磁盘进行循环冗余校验,将校验值随机分配到不同磁盘的条带中;读写IO性能均明显提升,又不会出现性能瓶颈;
RAID6:
RAID6磁盘是一个至少需要四块磁盘来组成,可以多块磁盘进行两轮循环冗余校验,将校验值随机分配到两个不同磁盘的条带中;读写IO性能均明显提升,又不会出现性能瓶颈;其最多允许两块磁盘出现故障损坏,依然保证数据可用,代价就是增加了计算校验值的时间;
RAID2和RAID3因为在一线运维中并不经常使用所以在这里就不多加描述;
建立RAID磁盘阵列命令:
mdadm:模式化工具;
该命令分为三种模式进行工作,创建模式,装配模式以及管理模式;
创建模式:-C
常用选项:
-n #:使用多少块硬盘进行阵列创建,要结合所创建阵列的最小磁盘数进行搭配;
-l #:创建的RAID阵列级别;
-a(yes|no):允许系统或不允许系统自动创建md设备文件;
-c CHUNK——SIZE:指定CHUNK的大小;
-x #:指定在阵列中空闲磁盘的数量;
管理模式:
-f:为指定的磁盘或分区添加损坏标记;
-a:添加磁盘或分区到md设备中;
-r:从md设备中移除磁盘或分区;
-S:停止阵列;
-D --scan:
显示查看RAID设备的详细信息;
mdadm -D --scan > /etc/mdadm.conf
保存装配信息
装配模式:-A
通过读取/etc/mdadm.conf文件中的装配信息,对RAID磁盘阵列进行装配;
例
#mdadm -S /dev/md0 停止阵列
#mdadm -C /dev/md0 -n 4 -l 0 -a yes /dev/sd{b,c,d,e} 创建阵列,创建由四个磁盘构成的 RAID0阵列
#mke2fs -t ext4 /dev/md0 为RAID阵列创建文件系统
挂载到根下的目录中;
RAID磁盘阵列给我们提供不同模式的磁盘组合,而如何去有效管理这些由多个磁盘组合在一起的磁盘组,致使在有需要的情况下,可以对磁盘进行扩展,缩减操作;当遇到某个分区不够用时管理员可能甚至要备份整个系统、清除硬盘、重新对硬盘分区,然后恢复数据到新分区。这样的方式效率太低,甚至需要重启整个系统,这对运维工作人员来说很难实现,于是有了LVM逻辑盘卷管理的方式出现;
LVM是Linux系统管理磁盘分区的一种机制,是建立在硬盘和分区上的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局提供一个抽象的盘卷,在盘卷上创建文件系统;物理卷(physical volume)物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。一个或多个物理卷可以组成一个卷组;
注意:如果用来创建物理卷的设备是普通分区,一定要将分区的ID修改为8e;
LVM机制流程:
1.创建并表示物理卷
2.在物理卷的基础上创建卷组,在创建卷组时需要指定PE大小,默认为4MB,一旦确定就不可再修改;
3.在已经创建的卷组中,创建逻辑卷;
4.在逻辑卷中创建文件系统;(高级格式化)
5.挂载;
物理卷的管理操作:
pvcreate:创建物理卷,将希望添加到卷组的磁盘或分区添加到物理卷中;
pvdisplay:显示物理卷的详细信息;
pvs:显示物理卷的简单信息;
pvremove:删除物理卷;
pvmove:将某个物理卷中的所有PE移动到其他物理卷,保证物理卷上没有任何PE占据才能删除;否则会影响逻辑卷里的数据;
例
#pvcreate /dev/sd{b,c,d,e} 创建四个物理块
#pvremove /dev/sde 若物理块中没有数据可直接删除
#pvmove /dev/sdc 将sdc的物理卷移到其他物理卷
#pvremove /dev/sdc 才可以删除
卷组管理操作:
vgcreate:卷组创建命令,将几个物理块,组合成一个卷组;并且指定PE大小;
-s [Kk|Mm|Gg|:指定PE大小,如果省略该选项,默认PE为4MB,必须为2的n次方;
例
#vgcreate myvg /dev/sd{b,c,d,e}
vgremove:删除卷组;
例
vgremove /dev/myvg 删除卷组myvg
vgextend:扩展卷组容量,将新的物理卷往卷组中添加;
例
vgextend myvg /dev/sdf 将新的物理块sdf添加到卷组中
vgreduce:缩减卷组容量,将pv从卷组中移除,在做此操作前,应该先使用pvmove,将要移除的物理卷中的数据转移到其他物理卷中,避免数据流失;
例
pvmove /dev/sdb
vgreduce myvg /dev/sdb
逻辑卷管理操作:
lvcreate:创建逻辑卷,需要指定逻辑卷的大小,若逻辑卷容量不够,可以不超过卷组容量的情况下添加,若卷组容量不够,可通过添加物理块增加卷组容量;
-L LV_SIZE(#{kK|mM|gG}):指定逻辑卷大小,不能超过卷
组大小;
#lvcreate -L 20G -n mylv myvg
-l #%{FREE|VG|ORIGIN|PVS}:指定逻辑卷占用对应存储单元的百分比;
FREE:逻辑卷剩余空间的百分比;
VG:卷组剩余空间的百分比;
-n:指定逻辑卷的名称;
lvremove:移除逻辑卷;删除逻辑卷之前,如果已经挂载,则先将逻辑卷卸载,再移除;
例
#umount /dev/myvg/mylv
#lvremove /dev/myvg/mylv
lvdisplay:显示逻辑卷的详细信息;
lvs:显示逻辑卷的简短信息;
lvchange:修改LV的状态;
-ay:激活逻辑卷;
-an:停用逻辑卷;
lvextend:扩展逻辑卷空间;
在添加逻辑卷的空间时需要在物理情况下添加逻辑卷的空间,再在逻辑情况下添加逻辑卷的空间;
例
#lvextend -L -5G /dev/myvg/mylv 构建物理边界
#resize2fs -f /dev/myvg/mylv 构建逻辑边界
lvreduce:缩减逻辑卷空间;
先卸载挂载内容;
umount /dev/raid_vg/raid_lv
resize2fs -f /dev/raid_vg/raid_lv 15G
e2fsck /dev/raid_vg/raid_lv
lvreduce -L 15G /dev/raid_vg/raid_lv
mount /dev/raid_vg/raid_lv /userhome/
先将数据存入主盘,在将数据存入从盘据挂载
快照卷:快照卷也是逻辑卷的一种,只不过快照卷的属性与普通逻辑卷的属性不太一样;以此来获得文件系统状态的一致性备份;在为逻辑卷创建快照卷后,并不会发生数据的物理复制,只有在原始逻辑卷发生改变后,快照卷才会自动将修改前的逻辑卷的数据复制下来;
建立快照
-s:创建快照卷;
-n:快照卷名字;
lvcreate -s -p -L 15G -n mylv-snopshot /dev/myvg/mylv
创建大小为15G的快照卷,快照卷的大小,最好与被备份数据一致,备份目标的逻辑卷路径,快照卷名称为mylv-snopshot
创建完快照卷后再对其建立文件系统,挂载;备份完数据后再对其卸载,移除快照卷;
Linux存储管理(2)