全部博文(1015)
分类:
2008-10-01 02:13:17
安全的动态磁盘策略
linux内核可以模拟RAID控制器,用来管理硬盘,但只支持级别0,1,4,5
RAID0 又称striping
把连续的数据访问分散到多个磁盘上来提高存储性能,速度最快,但最危险。
RAID1 又称Mirror或Mirroring
最大限度的保证用户数据的可用性和可修复性,用户数据100%自动复制到另外一个硬盘上,速度稍慢,因为要同时写多个硬盘。
RAID5 最少需三个硬盘
不对存储的数据时行备份,而把数据和对应的奇偶校验信息分别存储在不同的磁盘上,当一个磁盘数据发生损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。
RAID0+1 也称RAID10
结合RAID0和RAID1的优点,很多公司在应用
Linux中的软件RAID
1.默认内核已支持软件RAID控制器
2.需安装raidtools工具来创建管理RAID设备,raidtools包含有RAID创建管理工具和默认的示范性配置文件,安装完后编辑/etc/raidtab这配置文件,它可以从raidtools中的示范配置文件里(在/usr/share/doc/raid-~/目录下)复制。最后用以下命令创建RAID设备:
#mkraid /dev/md0
#mkraid -f /dev/md0
#mkraid -R /dev/md0
后两个命令是强制创建,覆盖以前建的超级块。
但Fedora Core5不使用这个,而用mdadm工具。
3.软件RAID设备文件名:/dev/mdN (N=0,1,2…)
4.软件RAID设备可以当分区看待,需格式化后挂载
#mkfs.ext3 /dev/md1
#mount /dev/md1 /opt
5.停止RAID设备
#umount /opt
#raidstop /dev/md0
要永久删除RAID设备,还需删除raidtab文件,否则重启后RAID仍起作用。
6.显示RAID设备信息
#lsraid -A -a /dev/md1
7.RAID1故障模拟
假设sdb1与sdc1两个磁盘做RAID1,sdb1磁盘坏了,加入新一块磁盘sdd1。
#raidsetfaulty /dev/md1 /dev/sdb1
#raidhotadd /dev/md1 /dev/sdd1
#more /proc/mdstat 查看磁盘修复过程
#raidhotremove /dev/sdb1
最后还要修改raidtab文件。
使用mdadm来创建和管理RAID
RAID0
添加硬盘
RAID设备的成员是硬盘分区,需先对硬盘分区,分区不能在同一物理硬盘上
#fdisk /dev/sdb
n创建主分区,t分区类型fd,w写保存
#fdisk /dev/sdc
#mdadm –Cv /dev/md0 –l0 –n2 /dev/sdb1 /dev/sdc1
-C,--create 创建一个新的阵列
-v,verbose 显示细节
/dev/md0 阵列设备的名称
-l,--level= 阵列级别,如0,1,4,5,6
-n,--raid-devices= 阵列活动数目
/dev/sd[bc]1 阵列包含的设备列表
#more /proc/mdstat 查看阵列状态
#mkfs.ext3 /dev/md0 创建文件系统
#mount /dev/md0 /mnt/raid
让系统自动挂载,修改/etc/fstab,添加
/dev/md0 /mnt/raid ext3 defaults 0 0
RAID5 故障模拟
前面已创建了一个RAID5设备md0
#mdadm –Cv /dev/md0 –l5 –n3 –x1 –c128 /dev/sd[b,c,d,e]1
1.将/dev/sdb1标记为已损坏的设备
#mdadm /dev/md0 –f /dev/sdb1
这时阵列开始重构和恢复数据
2.移除损坏的设备
#mdadm /dev/md0 –r /dev/sdb1
3.将新设备添加到阵列
注意,一:对硬盘正确分区,二:添加设备名要与被移除的一致,如sdb1
#mdadm /dev/md0 –a /dev/sdb1
生成配置文件/etc/mdadm.conf
格式如下:
DEVICE /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 ARRAY /dev/md10 level=raid10 num-devices=4 UUID=12334343dkfj
其中UUID信息通过#mdadm –D /dev/md10得到
#mdadm –Ds 扫描该文件信息
常用阵列维护命令
1.启用阵列
#mdadm –As /dev/md0
-A 启用已存在的阵列
-s 以/etc/mdadm.conf为依据
没有创建mdadm.conf文件,则采用如下方法启用
#mdadm –A /dev/md0 /dev/sd[bc]1
2.停止阵列
#mdadm –S /dev/md0
3.显示阵列详细信息
#mdadm –D /dev/md0