Linux的磁盘管理
RAID独立冗余磁盘阵列
raid (redundant arrays of independent)它是一种将多块磁盘组成一个存储整体,并通过磁盘之间的联结实现数据的冗余备份、存储设备的容量扩充和数据存储速度的提升。
raid分为“软raid”和“硬raid”两种:
软raid:也就是通过软件实现的raid。
硬raid:是通过适配器将多个硬盘组合在一起。
常见的几种raid级别:
level0:条带式stripe
将要存放的一段数据等分成若干块,分辨按次序轮流存储在若干个硬盘中。level0可以明显提高存取效率,但是其中一块硬盘发生故障就会使整个系统崩溃。
level1:镜像式mirror
同时向多个硬盘写入相同的数据,提供完全的冗余备份,但是对写入速度没有一点提升,对读取速度与level0相同。
level 1+0
同时将条带式的高读写和镜像式的数据冗余之优点集于一身,它的结构是先有硬盘组成若干个level1的单元,每个单元都具有mirror备份数据的功能,在由这样的单元通过level0的方式组成一个整体,读写速度时具有level0的高并发性。
level4
此种体系结构在存储数据的同时又系统本身提供校验机制。假设该种体系有块磁盘组成,数据轮流存放在系统的n-1个磁盘中,每个存储周期都向指定第n块磁盘写入校验码,倘若系统中有磁盘故障,可由其它盘上的数据与校验码一起进行数据修复。但此种体系校验码存储盘的性能会成为整个系统的瓶颈,而且高频率的写入会大大提高校验码存储盘的故障率。
level5
基于level4但对level4进行了一定得优化,它不再指定校验码有固定的存储盘,而是和数据块一起加入整个磁盘存储体系的循环。
软raid在linux中的实现:
命令:
mdadm 模式 raid设备 选项 磁盘设备
模式:
-A 装配模式
-C 创建模式
-F 监控模式
-M管理模式
-D 查看模式
选项
-a --add添加设备
-f --fail虚拟设备故障
-r --remove移除设备
-n 指定raid数组磁盘个数
-x 指定raid数组冗余设备个数
-l 指定raid level
-a {yes|no}是否自动创建设备文件
-c 指定chunk的大小默认为64k
[root@server28 ~]# mdadm -C /dev/md0 -a yes -l 1 -n
2 /dev/sda1 /dev/sda2
#将2块硬盘创建radi md0 等级level 1
从raid中增加/卸去磁盘
[root@server28 ~]# mdadm -a /dev/md0 /dev/sda7
向raid中添加一块自动成为备用。
[root@server28 ~]# mdadm -D /dev/md0
使用-D查看
/dev/md0:
Version : 0.90
Creation
Time : Tue Aug 2 05:11:36 2011
Raid
Level : raid1
Array
Size : 987840 (964.85 MiB 1011.55 MB)
Used Dev
Size : 987840 (964.85 MiB 1011.55 MB)
Raid
Devices : 2
Total
Devices : 3
Preferred Minor : 0
Persistence : Superblock is persistent
Update
Time : Tue Aug 2 05:11:50 2011
State : clean
Active
Devices : 2
Working Devices : 3
Failed
Devices : 0
Spare
Devices : 1
UUID : 032c7ad4:3dc68a67:613b10af:7922e25a
Events : 0.2
Number Major Minor
RaidDevice
State
0 8
5 0 active sync /dev/sda5
1 8
6 1 active sync /dev/sda6
2 8
7 - spare
/dev/sda7
要拆除硬盘时必须将硬盘设置成fail或者停止整个raid
[root@server28 ~]# mdadm -f /dev/md0 /dev/sda5
mdadm: set /dev/sda5 faulty in /dev/md0
再进行拆除remove
[root@server28 ~]# mdadm -r /dev/md0 /dev/sda5
mdadm: hot removed /dev/sda5
[root@server28 ~]# mdadm -S /dev/md0
停止整个md0设备
装配模式:
目的是将卸载的raid,在其它计算机或本机从新挂载。
首先,在本机备份raid信息
本机raid信息在/etc/mdadm.conf中存储
[root@server28 ~]# mdadm -D -scan >
/etc/mdadm.conf #此文件会在复位向后自动产生
停止设备
[root@server28 ~]# mdadm -S /dev/md0
mdadm: stopped /dev/md0
停止后可以对组成raid的磁盘进行拆卸、删除的操作。
LVM逻辑卷管理器
LVM是logic volume manger的缩写,这种体系的存储结构是将物理磁盘转换成物理卷pv(physical
volume),将pv的容量汇总成卷组vg(volume
group)后,再将卷组vg进行拆分,形成多个自定义大小且容量可实时调成的逻辑卷(logic
volume)。在将物理磁盘做成物理卷后将形成lvm的最小单位pe(physical
extend),pe的大小可以为4M、8M和16M,
类似于磁盘系统的中块block的概念。
pv相关的命令:pvcreat创建、pvmove存储内容移动、pvremove删除、pvscan扫描、pvdisplay显示信息
vg相关的指令:vgcreat创建、vgremove删除、vgscan扫描、vgdisplay显示信息、vgreduce容量缩小、vgextend容量扩大
lv相关的指令:;lvcreat创建、lvmove存储内容移动、lvremove删除、lvscan扫描、lvdisplay查看、lvreduce缩小物理容量、lvextend扩大物理容量、resize2fs调整逻辑容量
创建pv:pvcreate 物理磁盘分区1 物理磁盘分区2 物理磁盘分区3..
查看pv:pvdisplay #显示当前所有的pv
移除pv:先pvmove将当前pv上的内容同步在别的pv,然后再pvremove将磁盘卸除。
创建vg:vgcreate 选项 vg名称 pv1
pv2 pv3 …
增大vg的容量:vgextend vg名 pv名
vgextend
/dev/vg0 /dev/sdb5
缩小vg的容量:vgreduce vg名 pv名
Pvreduce
/dev/vg0 /dev/sdb5
创建lv:lvcreate –L 2G –n
lv0 vg0 #从vg0中创建一个2g的lv0
-n lv名称
-L 创建lv的大小
查看lv:lvdisplay #显示当前所有的lv
完成lv的创建,格式化文件系统。
逻辑卷的扩展、缩减和snapshot:
Lv的扩展:
先扩大lv的物理大小:
lvextend –L 2g /dev/vg0/lv1
在调整lv的逻辑大小:
resize2fs 选项 设备 大小
resize2fs /dev/vg0/lv1 #不跟数值就调整到分区大小
lv的缩减:
先缩小逻辑大小:
resize2fs /dev/vg0/lv0 512m #将lv0逻辑大小缩小到512m
再缩小物理lv的大小:
lvreduce –L 512m /dev/vg0/lv0 #将lv0物理大小缩小到512m
快照snapshot的创建:
lvcreate –s –L 512M –n snapshot0 –p r /dev/vg0/lv0
#再vg0上创建一个lv0的快照卷,-s 说明新加卷是快照 –p
r 说明权限是只读
/dev/vg0/lv0 说明是lv0的快照