最近遇见两个客户的服务器和存储分别出现raid5同时坏两块硬盘的情况,所以记录如下。
很多人遇到过服务器RAID5挂掉,往往掉一个盘后,第二个盘也立刻挂掉。 大家都知道RAID5 一次允许一个盘缺失, RAID 5也是以数据的校验位来保证数据的安全,但它不是以单独硬盘来存放数据的校验位,而是将数据段的校验位交互存放于各个硬盘上。这样,任何一个硬盘损坏,都可以根据其它硬盘上的校验位来重建损坏的数据。硬盘的利用率为n-1。 如果挂掉两个盘,数据就玩完了。 理论上两个硬盘同时失效的概率是很低的,但为什么会这样呢?
从数学角度说,每个磁盘的平均无故障时间 (MTBF) 大约为 50 万至 150 万小时(也就是每 50~150 年发生一次硬盘损坏)。实际往往不能达到这种理想的情况,在大多数散热和机械条件下,都会造成硬盘正常工作的时间大幅减少。考虑到每个磁盘的寿命不同,阵列中的任何磁盘都可能出现问题,从统计学角度说,阵列中 N 个磁盘发生故障的机率比单个磁盘发生故障的机率要大 N 倍。结合上述因素,如果阵列中的磁盘数量合理,且这些磁盘的平均无故障时间 (MTBF) 较短,那么在磁盘阵列的预期使用寿命过程中,就很有可能发生磁盘故障(比方说每几个月或每隔几年就会发生一次故障)。 继续阅读
分类目录归档:存储系列
双网卡绑定模式
服务器为了提供网络高可靠性,可以通过双网卡绑定来实现,linux下支持7中模式的双网卡绑定:
第一种:bond0:round robin(交换机端需要配置聚合)
特点:(1)所有链路处于负载均衡状态,轮询方式往每条链路发送报文,基于per packet方式发送。服务上ping 一个相同地址:1.1.1.1 双网卡的两个网卡都有流量发出。负载到两条链路上,说明是基于per packet方式 ,进行轮询发送。(2)这模式的特点增加了带宽,同时支持容错能力,当有链路出问题,会把流量切换到正常的链路上。 继续阅读
多网卡绑定技术
SMART属性的一些参数意义
我们一客户的存储上的S.M.A.R.T属性
S.M.A.R.T Attributes Status: S.M.A.R.T OK. ID Name Threshold Value Worst Status ------------------------------------------------------------------------------- 1 Raw Read Error Rate 51 194 194 OK 3 Spin Up Time 21 233 226 OK 4 Start Stop Count 0 100 100 OK 5 Reallocated Sector Ct 140 192 192 OK 7 Seek Error Rate 0 200 200 OK 9 Power On Hours 0 87 87 OK A Spin Retry Count 0 100 253 OK B Calibration Retry Count 0 100 253 OK C Power Cycle Count 0 100 100 OK C0 Power-Off Retract Count 0 200 200 OK C1 Emergency Retract Cycle Ct 0 171 171 OK C2 Temperature Celsius 0 119 101 OK C4 Reallocated Event Count 0 146 146 OK C5 Current Pending Sector 0 198 198 OK C6 Offline Uncorrectable 0 200 199 OK C7 UDMA CRC Error Count 0 200 200 OK C8 Multi Zone Error Rate 0 1 1 OK
这些参数是什么意思呢,下面就是我们整理的一些常见参数意义。
Raw Read Error Rate
这个属性的值取决于读取错误次数,磁盘表面状态和当从磁盘表面读取数据硬件发生读取错误时的比例。
简而言之:底层硬件读取故障率,值高暗示盘体、磁头有问题 继续阅读
给火箭2340阵列追加热备磁盘
将1/1的盘加入阵列2里面,作为spare disk
HighPoint CLI>create spare disks=1/1 name=2
查看设备状态
HighPoint CLI>query devices
ID Capacity MaxFree Flag Status ModelNumber
——————————————————————————-
1/1 2000.31 2000.31 SINGLE SPARE WDC WD2003FYYS-02W0B0
1/3 1000.12 0 RAID NORMAL WDC WD1003FBYX-01Y7B1
1/4 1000.12 0 RAID NORMAL WDC WD1003FBYX-01Y7B1
1/5 1000.12 0 RAID NORMAL WDC WD1003FBYX-01Y7B1
1/6 1000.12 0 RAID NORMAL WDC WD1003FBYX-01Y7B1
1/9 2000.31 0 RAID NORMAL WDC WD2002FYPS-02W3B0
1/10 2000.31 0 RAID NORMAL WDC WD2003FYYS-02W0B0
1/11 2000.31 0 RAID NORMAL WDC WD2003FYYS-02W0B1
1/12 2000.31 0 RAID NORMAL WDC WD2003FYYS-02W0B0
已经为spare状态,成功!下面是create的一些语法
HighPoint CLI>help create
Create Command
This command allows you to create a new RAID array or add a spare disk.
Syntax:
create {RAID0|RAID1|RAID3|RAID5|RAID6|RAID10|RAID50|JBOD|spare} [create-options]
create-option:
disks=1/2,1/3… or disks=*
Specify the disks used to create array.
name=array name
Specify the name of the array which will be created.
src=source array ID
If src argument is specified, OCE/ORLM will be started.
cp=WB, WT or NONE
Cache Policy option (WB: write back, WT: write through).
init={foreground|background|keepdata|quickinit}
Specifies array initialization option.
foreground:
Zero out all data on the array. The array is not
accessible by the operating system until initialization is completed.
background:
Allow instant access to the array. Parity blocks
will be generated in background.
keepdata:
Setup array information blocks on the drives only.
Use this option for array recovery.
quickinit:
Setup array information blocks and zero out MBR data on the array.
capacity=array capacity
Specify the capacity (xxM,xxG) of the target array.
matrix=n*m
When create RAID50 to specify the matrix options.
n : number of subarray’s disk, m: number of subarray.
For example: When create a RAID50 the option matrix
can be matrix=3*2. That means 2 RAID5s each with 3 disks to form a RAID50
bs=size
Specify the block size (16k,32k,64k,128k,256k,512k,1024k)
sector=size
Specify the sector size (512B,1k,2k,4k)
下列检测磁盘状态脚本
hptraidconf -u RAID -p hpt query devices 1/1
hptraidconf -u RAID -p hpt query devices 1/3
hptraidconf -u RAID -p hpt query devices 1/4
hptraidconf -u RAID -p hpt query devices 1/5
hptraidconf -u RAID -p hpt query devices 1/6
hptraidconf -u RAID -p hpt query devices 1/9
hptraidconf -u RAID -p hpt query devices 1/10
hptraidconf -u RAID -p hpt query devices 1/11
hptraidconf -u RAID -p hpt query devices 1/12
定义定期发送邮件检测!
iozone进行IO测试
iozone概况
iozone是一个文件系统的benchmark工具,可以测试不同的操作系统中文件系统的读写性能。
可以测试 Read, write, re-read,re-write, read backwards, read strided, fread, fwrite, random read, pread, mmap, aio_read, aio_write 等等不同的模式下的硬盘的性能。
测试的时候请注意,设置的测试文件的大小一定要大过你的内存(最佳为内存的两倍大小),不然linux会给你的读写的内容进行缓存。会使数值非常不真实。 继续阅读
软RAID 5建立过程
ext3 vs ext4
Linux kernel 自 2.6.28 开始正式支持新的文件系统 Ext4。 Ext4 是 Ext3 的改进版,修改了 Ext3 中部分重要的数据结构,而不仅仅像 Ext3 对 Ext2 那样,只是增加了一个日志功能而已。Ext4 可以提供更佳的性能和可靠性,还有更为丰富的功能: 继续阅读
一次linux服务器性能优化过程
温故而知新-raid级别
RAID是Redundant Array of Inexpensive Disk的缩写,意为廉价冗余磁盘阵列,是磁盘阵列在技术上实现的理论标准,其目的在于减少错误、提高存储系统的性能与可靠度。常用的等级有0、1、3、5级等。
1.什么是RAID Level 0?
RAID Level 0是Data Striping(数据分割)技术的实现,它将所有硬盘构成一个磁盘阵列,可以同时对多个硬盘做读写动作,但是不具备备份及容错能力,它价格便宜,硬盘使 用效率最佳,但是可靠度是最差的。以一个由两个硬盘组成的RAID Level 0磁盘阵列为例,它把数据的第1和2位写入第一个硬盘,第三和第四位写入第二个硬盘……以此类推,所以叫“数据分割”,因为各盘数据的写入动作是同时做 的,所以它的存储速度可以比单个硬盘快几倍。但是,这样一来,万一磁盘阵列上有一个硬盘坏了,由于它把数据拆开分别存到了不同的硬盘上,坏了一颗等于中断 了数据的完整性,如果没有整个磁盘阵列的备份磁带的话,所有的数据是无法挽回的。因此,尽管它的效率很高,但是很少有人冒着数据丢失的危险采用这项技术。
2.什么是RAID Level 1?
RAID Level 1使用的是Disk Mirror(磁盘映射)技术,就是把一个硬盘的内容同步备份复制到另一个硬盘里,所以具备了备份和容错能力,这样做的使用效率不高,但是可靠性高。
3.什么是RAID Level 3?
RAID Level 3采用Byte-interleaving(数据交错存储)技术,硬盘在SCSI控制卡下同时动作,并将用于奇偶校验的数据储存到特定硬盘机中,它具备了容错能力,硬盘的使用效率是安装几个就减掉一个,它的可靠度较佳。
4.什么是RAID Level 5?
RAID Level 5使用的是Disk Striping(硬盘分割)技术,与Level 3的不同之处在于它把奇偶校验数据存放到各个硬盘里,各个硬盘在SCSI控制卡的控制下平行动作,有容错能力,跟Level 3一样,它的使用效率也是安装几个再减掉一个。
5、什么是RAID 0+1﹝RAID 10﹞
RAID 0+1/RAID 10,综合了RAID 0 和 RAID 1的优点,适合用在速度 需求高,又要完全容错,当然经费也很多的应用。RAID 0和RAID 1的原理很简单,合起来之后还是很简单,我们不打算详细介绍,倒是要谈谈, RAID 0+1到底应该是RAID 0 over RAID 1,还是RAID 1 over RAID 0,也就是说,是把多个RAID 1 做成 RAID 0,还是把多个RAID 0 做成RAID 1?
RAID 0 over RAID 1
假设我们有四台磁盘驱动器,每两台磁盘驱动器先做成RAID 1,再把两个RAID 1做成RAID 0,这就是RAID 0 over RAID 1:
(RAID 1) A = Drive A1 + Drive A2 (Mirrored)
(RAID 1) B = Drive B1 + Drive B2 (Mirrored)
RAID 0 = (RAID 1) A + (RAID 1) B (Striped)
RAID 1 over RAID 0
假设我们有六台磁盘驱动器,每两台磁盘驱动器先做成RAID 0,再把两个RAID 0做成RAID 1,这就是RAID 0 over RAID 1:
(RAID 0) A = Drive A1 + Drive A2 (Striped)
(RAID 0) B = Drive B1 + Drive B2 (Striped)
RAID 1 = (RAID 1) A + (RAID 1) B (Mirrored)
在这种架构之下,如果 (RAID 0) A有一台磁盘驱动器故障,(RAID 0) A就算毁了,当然RAID 1仍然可以正常工作;如果这时 (RAID 0) B也有一台磁盘驱动器故障,(RAID 0) B也就算毁了,此时RAID 1的两磁盘驱动器都算故障,整个RAID 1资料就毁了。
因此,RAID 0 OVER RAID 1应该比RAID 1 OVER RAID 0具备比较高的可靠度。所以我们建议,当采用RAID 0+1/RAID 10架构时,要先作RAID 1,再把数个RAID 1做成RAID 0。
RAID级别的优点和缺点 :
RAID 0 存取速度最快 没有容错
RAID 1 完全容错 成本高
RAID 3 写入性能最好 没有多任务功能
RAID 4 具备多任务及容错功能 Parity 磁盘驱动器造成性能瓶颈
RAID 5 具备多任务及容错功能 写入时有overhead
RAID 0+1/RAID 10 速度快、完全容错 成本高