﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-大漠驼铃-随笔分类-手册</title><link>http://www.blogjava.net/nkjava/category/43382.html</link><description>置身浩瀚的沙漠，方向最为重要，希望此blog能向大漠驼铃一样，给我方向和指引。
EJB/JPA/JSF/Struts/Spring/Hibernate/Perl/Shell/C/Java
</description><language>zh-cn</language><lastBuildDate>Fri, 11 Oct 2013 08:45:16 GMT</lastBuildDate><pubDate>Fri, 11 Oct 2013 08:45:16 GMT</pubDate><ttl>60</ttl><item><title>Nginx配置整理(更新中)</title><link>http://www.blogjava.net/nkjava/archive/2013/10/11/404868.html</link><dc:creator>草原上的骆驼</dc:creator><author>草原上的骆驼</author><pubDate>Fri, 11 Oct 2013 06:29:00 GMT</pubDate><guid>http://www.blogjava.net/nkjava/archive/2013/10/11/404868.html</guid><wfw:comment>http://www.blogjava.net/nkjava/comments/404868.html</wfw:comment><comments>http://www.blogjava.net/nkjava/archive/2013/10/11/404868.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/nkjava/comments/commentRss/404868.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/nkjava/services/trackbacks/404868.html</trackback:ping><description><![CDATA[简单配置说明<br />常用配置<br />&nbsp; &nbsp; &nbsp; 1.代理配置<br />&nbsp; &nbsp; &nbsp; 2.Nginx+tomcat+ssl<br />&nbsp; &nbsp; &nbsp; 3.Nginx+php+ssl<br />正则表达式<br />配置总结<img src ="http://www.blogjava.net/nkjava/aggbug/404868.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nkjava/" target="_blank">草原上的骆驼</a> 2013-10-11 14:29 <a href="http://www.blogjava.net/nkjava/archive/2013/10/11/404868.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>RAID介绍</title><link>http://www.blogjava.net/nkjava/archive/2010/11/24/338972.html</link><dc:creator>草原上的骆驼</dc:creator><author>草原上的骆驼</author><pubDate>Wed, 24 Nov 2010 12:37:00 GMT</pubDate><guid>http://www.blogjava.net/nkjava/archive/2010/11/24/338972.html</guid><wfw:comment>http://www.blogjava.net/nkjava/comments/338972.html</wfw:comment><comments>http://www.blogjava.net/nkjava/archive/2010/11/24/338972.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/nkjava/comments/commentRss/338972.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/nkjava/services/trackbacks/338972.html</trackback:ping><description><![CDATA[之前对RAID没有概念，经常听说用的服务器做的Raid0\1\5什么的，今天有时间整理了一下，对Raid有了大概的了解。<br />
<br />
http://baike.baidu.com/view/591967.htm&nbsp;&nbsp; Raid0<br />
http://baike.baidu.com/view/591973.htm&nbsp;&nbsp; Raid1<br />
http://baike.baidu.com/view/120903.htm &nbsp; raid+1<br />
http://baike.baidu.com/view/645826.htm &nbsp; raid5 <br />
<br />
<br />
<br />
RAID 0提高存储性能的原理是把连续的数据分散到多个磁盘上存取，这样，系统有数据请求就可以被多个磁盘并行的执行，每个磁盘执行属于它自己的那部分数据请求。这种数据上的并行操作可以充分利用总线的带宽，显著提高磁盘整体存取性能。<br />
<br />
<img alt="" src="http://www.blogjava.net/images/blogjava_net/nkjava/ca5257545bcae714574e000e.jpg" height="154" width="199" /><br />
<br />
优点就是把一个任务被多个磁盘存取，速度快了。<br />
缺点：没有数据冗余。RAID 0 连续地分割数据并并行地读/写于多个磁盘上. 因此具有很高的数据传输率， 但RAID 0在提高性能的同时，并没有提供数据可靠性,如果一个磁盘失效，将影响整个数据。因此RAID 0 不可应用于需要数据高可用性的关键应用。
<br />
<br />
RAID 0具有的特点，使其特别适用于对性能要求较高，而对数据安全不太在乎的领域，如图形工作站等。对于个人用户，RAID 0也是提高硬盘存储性能的绝佳选择。<br />
<br />
Raid1 <br />
<br />
<img alt="" src="http://www.blogjava.net/images/blogjava_net/nkjava/d041a4a1dcf4edb546106400.jpg" height="200" width="193" /><br />
RAID 1磁盘阵列级，是一种镜像磁盘阵列，其原理就是将一块硬盘的数据以相同位置指向另一块硬盘的位置。RAID
1又称为Mirror或Mirroring，它的宗旨是最大限度的保证用户数据的可用性和可修复性。 <br />
RAID
1的操作方式是把用户写入硬盘的数据百分之百地自动复制到另外一个硬盘上。<br />
由于对存储的数据进行百分之百的备份，在所有RAID级别中，RAID
1提供最高的数据安全保障。<br />
同样，由于数据的百分之百备份，备份数据占了总存储空间的一半，因而，Mirror的磁盘空间利用率低，存储成本高。
<br />
Mirror虽不能提高存储性能，但由于其具有的高数据安全性，使其尤其适用于存放重要数据，如服务器和数据库存储等领域。
<br />
RAID 1磁盘阵列显然是最可靠的一种阵列，因为它总是保持一份完整的数据备份。它的性能自然没有RAID
0磁盘阵列那样好，但其数据读取确实较单一硬盘来的快，因为数据会从两块硬盘中较快的一块中读出。<br />
RAID
1磁盘阵列的写入速度通常较慢，因为数据得分别写入两块硬盘中并做比较。<br />
RAID
1磁盘阵列一般支持&#8220;热交换&#8221;，就是说阵列中硬盘的移除或替换可以在系统运行时进行，无须中断退出系统。<br />
RAID
1磁盘阵列是十分安全的，不过也是较贵一种RAID磁盘阵列解决方案，因为两块硬盘仅能提供一块硬盘的容量。<br />
RAID
1磁盘阵列主要用在数据安全性很高，而且要求能够快速恢复被破坏的数据的场合。<br />
<br />
<br />
<br />
<h1>RAID 0+1</h1>
<img alt="" src="http://www.blogjava.net/images/blogjava_net/nkjava/6648d73d14257dd49e3d625a.jpg" height="132" width="232" /><br />
<br />
正如其名字一样<a target="_blank" href="http://baike.baidu.com/view/591967.htm">RAID 0</a>+1是RAID 0和<a target="_blank" href="http://baike.baidu.com/view/591973.htm">RAID 1</a>的组合形式，也称为RAID 10。
<br />
以四个磁盘组成的RAID 0+1为例，其数据存储方式如图所示：RAID 0+1是存储性能和数据安全兼顾的方案。它在提供与RAID 1一样的数据安全保障的同时，也提供了与RAID 0近似的存储性能。
由于RAID 0+1也通过数据的100%备份功能提供数据安全保障，因此RAID 0+1的磁盘空间利用率与RAID 1相同，存储成本高。
<br />
RAID 0+1的特点使其特别适用于既有大量数据需要存取，同时又对数据安全性要求严格的领域，如银行、金融、商业超市、仓储库房、各种档案管理等。<br />
<br />
<h1>RAID 5</h1>
<br />
<br />
RAID 5 是一种存储性能、数据安全和存储成本兼顾的存储解决方案。 以四个硬盘组成的RAID
5为例，其数据存储方式如图4所示：图中，P0为D0，D1和D2的奇偶校验信息，其它以此类推。由图中可以看出，RAID
5不对存储的数据进行备份，而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上，并且奇偶校验信息和相对应的数据分别存储于不同的磁盘
上。当RAID5的一个磁盘数据发生损坏后，利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。 <br />
<br />
RAID 5可以理解为是<a target="_blank" href="http://baike.baidu.com/view/591967.htm">RAID 0</a>和<a target="_blank" href="http://baike.baidu.com/view/591973.htm">RAID 1</a>的
折中方案。RAID 5可以为系统提供数据安全保障，但保障程度要比Mirror低而磁盘空间利用率要比Mirror高。RAID 5具有和RAID
0相近似的数据读取速度，只是多了一个奇偶校验信息，写入数据的速度比对单个磁盘进行写入操作稍慢。同时由于多个数据对应一个奇偶校验信息，RAID
5的磁盘空间利用率要比RAID 1高，存储成本相对较低。
RAID5校验位算法原理
P=D1 xor D2 xor D3 &#8230; xor Dn （D1,D2,D3 &#8230; Dn为数据块，P为校验，xor为异或运算）
XOR(Exclusive OR)的校验原理如下表：
<table>
    <tbody>
        <tr>
            <td align="" width="189">A值</td>
            <td align="" width="189">B值</td>
            <td align="" width="189">Xor结果</td>
        </tr>
        <tr>
            <td align="" width="189">0</td>
            <td align="" width="189">0</td>
            <td align="" width="189">0</td>
        </tr>
        <tr>
            <td align="" width="189">1</td>
            <td align="" width="189">0</td>
            <td align="" width="189">1</td>
        </tr>
        <tr>
            <td align="" width="189">0</td>
            <td align="" width="189">1</td>
            <td align="" width="189">1</td>
        </tr>
        <tr>
            <td align="" width="189">1</td>
            <td align="" width="189">1</td>
            <td align="" width="189">0</td>
        </tr>
    </tbody>
</table>
这里的A与B值就代表了两个位，从中可以发现，A与B一样时，XOR结果为0，A与B不一样时，XOR结果就是1，而且知道XOR结果和A与B中的任何一
个数值，就可以反推出另一个数值。比如A为1，XOR结果为1，那么B肯定为0，如果XOR结果为0，那么B肯定为1。这就是XOR编码与校验的基本原
理。
<h3>RAID5读写过程</h3>
用简单的语言来表示，至少使用3块硬盘（也可以更多）组建RAID5磁盘阵
列，当有数据写入硬盘的时候，按照1块硬盘的方式就是直接写入这块硬盘的磁道，如果是RAID5的话这次数据写入会分根据算法分成3部分，然后写入这3块
硬盘，写入的同时还会在这3块硬盘上写入校验信息，当读取写入的数据的时候会分别从3块硬盘上读取数据内容，再通过检验信息进行校验。当其中有1块硬盘出
现损坏的时候,就从另外2块硬盘上存储的数据可以计算出第3块硬盘的数据内容。也就是说raid5这种存储方式只允许有一块硬盘出现故障，出现故障时需要
尽快更换。当更换故障硬盘后，在故障期间写入的数据会进行重新校验。 如果在未解决故障又坏1块，那就是灾难性的了。<br />
<img src ="http://www.blogjava.net/nkjava/aggbug/338972.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nkjava/" target="_blank">草原上的骆驼</a> 2010-11-24 20:37 <a href="http://www.blogjava.net/nkjava/archive/2010/11/24/338972.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>