1. 进入命令提示符 (可以从菜单进入,也可以按“windows键”+ R后输入cmd
2. 在命令提示符窗口中,进入到你的联系人文件夹中(我们假设你的文件夹名称为contacts),那么命令就是cd contacts
3. 运行命令copy /B *.vcf all_in_one.vcf,这样contacts文件夹中的所有vcf文件都合并到了一个文件中. `
4. 再进入Gmail邮箱,导入联系人,选择all_in_one.vcf
5. 通过Android手机同步Gmail账户,同步联系人
6. 搞定~
分类: IT互联网
-
批量导入vcf联系人到Android和Gmail通讯录中~~
-
多种方法将诺基亚塞班S60V3/V5联系人同步到Android
一、利用“同步”工具同步
很多人应该知道,诺基亚S60V3/V5手机上自带的一个工具,叫做 “同步”(Sync,FP1和MR机型上叫做“同步处理”),也许真正用过这个工具的人并不多,但小编要告诉你——它很有用!我们可以通过它,将我们的联 系人(名片)同步到Google帐户上,然后再将这些联系人同步到GPhone上。下面小编以诺基亚5320XM为例为大家讲解具体的设置方法 (S60V3/V5不同版本的设置方法不尽相同,但大体一致)。
-
启商宽带
垃圾网络服务商《启商宽带》全纪录。
邻居对网络环境要求较高,所以我们选择了启商宽带-小个小的不起眼的N级网络承包商
首先是试用:所谓的“工程师”很快就来了,装好了线路,经过试用速度很理想,我选择的1.5M,下载速度能达到180K。(中间还有个小插曲,他们的“工程师”竟然连无线路由都不会设置,VCI和VPI都没听说过啊!)
于是决定安装,然后开始无语了。
真正安装之后下载速度能到130就谢天谢地了,而且频繁的掉线,Ping 的时候丢包也比较严重,沟通过无数次......
无果,得了,爷不找那个罪受......爷忍了......
昨天,因为3月份宽带就要到期了,竟然连续有4个客服人员打电话催我续费,我去!!!
尼玛解决问题不积极,收钱很积极!!!有木有啊!!有木有!!!!!!
尼玛曾经连续断线好几天,你也木有个说法!!!有木有啊!!有木有!!!!!!
尼玛现在你还一个劲的催我续费!!!有木有啊!!有木有!!!!!!
北京的童鞋,千万不要装《启商宽带》了。
-
wordpress3之自定义菜单详解
wordpress3以后的版本增加了在后台添加导航菜单的功能,需要用到wp_nav_menu函数,最近在制作一个新模板,整理了wp_nav_menu参数详解,备用。
首先,要确认你的模板支持wp_nav_menu函数,如果不支持可以在 functions.php 里添加以下代码:
if (function_exists('add_theme_support')) {
//开启导航菜单主题支持
add_theme_support('nav-menus');
//注册一个导航菜单
register_nav_menus( array( 'primary' => __( 'Primary Navigation', 'primary' ) ) );
}
//没有在后台设置导航菜单时调用的函数
function the_main_nav() {
?>
<div id="menu">
<ul id="nav">
<li><a <?php if (is_home()) echo " class="current""; ?> href="<? php bloginfo('url'); ?>/">Home</a></li>
<?php wp_list_cats('style=list'); ?>
</ul>
</div>
<?php } ?>
wp_nav_menu参数详解:
$menu_args = array(
//最外层容器的标签名,默认div 为空时无外层
'container' => 'div',
//最外层容器的class名
'container_class' => 'mainNavBlock',
//最外层容器的id名
'container_id' => 'menu',
//导航菜单ul标签的class名
'menu_class' => 'mainNav',
//导航菜单ul标签的id名
'menu_id' => "nav",
//是否打印,默认是true,如果想将导航的代码作为赋值使用,可设置为false
'echo' => true,
//备用的导航菜单函数,用于没有在后台设置导航时调用
'fallback_cb' => 'the_main_nav',
//显示在导航a标签之前
'before' => '<p>',
//显示在导航a标签之后
'after' => '</p>',
//显示在导航链接名之前
'link_before' => '<em>',
//显示在导航链接名之后
'link_after' => '</em>',
//显示的菜单层数,默认0,0是显示所有层
'depth' => 0,
//调用一个对象定义显示导航菜单
'walker' => new Walker_Nav_Menu(),
//指定显示的导航名,如果没有设置,则显示第一个
'theme_location' => 'primary',
);
//打印导航菜单
wp_nav_menu( $menu_args );
接下来,就可以在模板中使用添加导航菜单的功能了。
-
主题更新 v1.1(最终版本)
本站使用的Wordpress主题,现在修正为1.1 最终版 ,如果没有其他意外,大体框架是不会更新的了。要更新也只是更新部分功能选项。
主题功能总结:
- 采用Html5 + CSS3编写,代码极其精简。
- 嵌套评论+无刷新Ajax,基于jquery库实现。
- 后台支持自定义菜单功能。
- 功能上支持所有的文章类型,只是前台的CSS没有判断。需要的同学参考文章:wordpress3.1 功能解释之二-文章样式功能
- 自带分页导航功能,无需插件。
- 默认开启Gzip压缩功能(如果你的服务器支持)。
- 默认可防止机器人的垃圾评论,直接挡掉,后台不提示。
- 支持HTML5 缓存: cache manifest(使用本主题只需要修改 .htaccess增加 AddType text/cache-manifest manifest 就可以了。)
更新以及历史版本请查看:http://blog.king51.com/wordpress-theme-free-html5-css3-ajax-nested-comments/
-
CSS自动限制文章中的图片尺寸
经常更换wordpress主题,会有一个困扰,就是之前主题的内容区域宽度比较大,很多正文图片的尺寸可能是500px,而换了一个主题,内容区域的宽度比较小,假设是400px,这时原先的图片宽度都是500px,这样就会撑大整个容器,造成页面布局混乱,或者容器CSS加了overflow:hidden时,图片的右侧会被截去,显得很不协调,下面介绍的小常识是利用CSS等比例缩小图片,这样就可以完美的显示在你的新主题上了。
首先找到内容区域的样式,一般是.entry这个类,在style.css中增加以下代码就可以搞定了。
.entry img {max-width: 400px} .entry img { zoom:expression( function(elm) { if (elm.width>400) { var oldVW = elm.width; elm.width=400; elm.height = elm.height*(400 /oldVW); } elm.style.zoom = '1'; }(this)); }根据你的主题内容区域的实际尺寸来设定图片最大宽度,只要小于等于这个宽度即可。将所有出现400px的地方改成你的宽度就好了。
转自:http://www.wheatv.com -
wordpress隐藏升级提示
在functions.php里加上下面的代码:
add_filter( 'pre_site_transient_update_core', create_function( '$a', "return null;" ) ); -
WordPress 3.+ 的自定义分类功能
WordPress 3.+ 的CMS功能真是很完善了,上篇说到WordPress3+的自定义内容类型功能详解,创建自定义内容类型之后就可以在后台看到你的左侧菜单多出来了一组独立的选项,但是这组选项中却不包含分类选项,这么看来怎么都不像是CMS。现在就倒腾一下这个分类的功能怎么实现,具体效果见下图:

在这篇教程中,我们将讲解wordpress一个空前强大的功能:自定义分类法(taxonomy),wordpress自定义分类法可以让你强有力地将网站内容按自己需要的方式整理分类。虽然wordpress的分类法在2.3版本的时候就引入了,但是在3.0版本里,又被进一步改进了。
之前我们已经讲解过如何在wordpress内自定义文章类型,配合本教程的wordpress自定义分类法,就可以更好地用wordpress进行站点和主题开发。
1.什么是wordpress的分类法(Taxonomy)?
分类法是组织数据的一种简单形式,同样,wordpress的分类法也是组织网站内容的一种方式。可能你没有意识到这个概念,但其实你至少已经熟悉wordpress分类法中的一种,那就是标签(Tag)。标签就是wordpress分类法中的一种,文章可以通过标签联系起来,也可以通过标签查看和组织起来,另一个wordpress自带的分类法是分类目录(post categories)。
分类法让wordpress变得更强大,因为它可以让用户去帅选出他们需要的文章。自定义分类法,顾名思义就是让我们自己定义网站内容的组织形式,自定义分类法既可以运用在自定义的文章类型里,也可以运用在一般的文章和页面中。
下面举一些自定义分类法的例子:
- 用电影的放映年份来分类
- 用省份、邮政编码、等地名来分类
- 用优先级的高低来分类
从上面可以看到,你完全可以根据你的需要来对网站的内容进行自定义分类,如果你阅读过自定义文章类型,你会对之前的例子Event比较熟悉了。下面我们也将继续使用这个例子进行讲解。
我们将在Event这个自定义的文章类型里添加一个自定义的分类法:按事件地点(location)分类,这样我们就可以通过地点来查看事件文章了。这里为了统一代码,还是使用wordpress3.0的默认主题,并且假设你已经按照之前的例子制作出Event的文章类型了。
2.创建一个自定义分类法
和创建自定义文章类型一样,在wordpress创建自定义分类法也非常简单。下面是具体的代码:
[php]
add_action( 'init', 'create_locations' ); function create_locations() { $labels = array( 'name' => _x( 'Locations', 'taxonomy general name' ), 'singular_name' => _x( 'Location', 'taxonomy singular name' ), 'search_items' => __( 'Search Locations' ), 'all_items' => __( 'All Locations' ), 'parent_item' => __( 'Parent Location' ), 'parent_item_colon' => __( 'Parent Location:' ), 'edit_item' => __( 'Edit Location' ), 'update_item' => __( 'Update Location' ), 'add_new_item' => __( 'Add New Location' ), 'new_item_name' => __( 'New Location Name' ), ); register_taxonomy('location','event',array( 'hierarchical' => true, 'labels' => $labels )); }[/php]
把上面的代码粘贴到主题文件夹的functions.php中。register_taxonomy这个wordpress函数就是用来创建一个分类法,先解释一下传递给这个函数的参数。
location是这个分类法的内部名
event告诉wordpress哪个文章类型将使用这个分类法,在这个例子里,我们用的是之前创建的event的文章类型,你也可以将它替换成post或page,这样就可以将分类法用在一般的文章和页面上。也可以同时运用在多个文章类型上(通过数组)。
array(…)是传递给register_taxonomy的最后一个参数,它告诉wordpress分类法如何运行。具体来解释一下array里面的内容:
hierarchical是一个布尔值,用来确定分类法是否有等级,即是否有子分类。对于地点(location)分类这个例子而言,我们的父分类是楼号(Buliding),子分类是房间号(Room)。
labels是输出这个分类法的一些相关信息(由create_locations函数的$labels来定义)。
add_action( ‘init’, ‘create_locations’ )是指wordpress初始化时,会调用create_locations这个函数。
3.将自定义分类法添加到文章
地点(location)这个分类法已经创建完成了,现在登陆到wordpress的后台,在自定义的文章类型Event里创建一些地点。在Events的目录下,可以看到一个新的链接Locations,点击它就可以进入如下图的页面,你可以在此进行新增、编辑、删除地点等操作。

下面来创建一些地点:
1.Building1(父分类)
2.Conference Room A(子分类)
3.Conference Room B(子分类)
完成之后,你可以看到一张地点的表格,如下图:

这样,当你创建一个新的Event文章时,你会在创建页面的右边看到一个新的地点(location)选项(如下图),因为我们在创建wordpress自定义分类法location时,已经把它传递给了自定义文章类型Event。

选择一个地点,然后点击发布就可以了,整个界面操作和wordpress的选择分类目录很接近,如果是使用没有等级的分类法,那就和标签的方法有些类似。
我们已经创建完地点分类法,并且新建了一些地点,现在我们要在前台页面上显示这些地点,以便让用户看到。
4.在前台页面显示分类法信息
当打开一个单独的事件文章的页面时,我们要在这个页面上看到事件的地点。在之前的文章里,主题文件夹里创建过一个命名为single-event.php的文件,这是用来显示单独事件文章的页面模板。我们要把相关的地点信息加入到这个文件里。如果你要把地点信息加入到一般的文章和页面中,只需要编辑single.php或者page.php文件。
下图是还没有加入地点信息的前台页面样式:

我们可以用get_the_term_list这个wordpress函数来将地点信息加入到页面中,代码如下:
[php]
get_the_term_list( $id, $taxonomy, $before, $sep, $after )
[/php]下面是对这个函数的简单解释:- $id – 事件文章的ID号
- $taxonomy – 想要显示的分类法 (如’tag’, ‘location’等)
- $before –列表之前的html标签
- $sep – 列表项目间的分隔
- $after –列表之后的html标签
下面我们用get_the_term_list来显示事件文章的所有地点:
[php]
<?php echo get_the_term_list( get_the_ID(), 'location', "Location: " ) ?>
[/php]
这段代码中, get_the_ID()告诉wordpress使用当前页面的文章ID,使用location这个分类法,并在地点信息前加入文本“Location:”。默认的分隔符号是分号,你也可以用“-”或者“|”来代替默认分隔符。同样地点信息会有一个超链接,点击这个超链接可以进入所有和这个地点有关的事件文章。(随后我们会讲解如何自定义这个页面模板)。
single-events.php文件中的参考代码如下:
[php]<div class="entry-meta">
<?php twentyten_posted_on(); ?>
</div><!-- .entry-meta -->
<div class="entry-meta">
<?php echo get_the_term_list( get_the_ID(), 'location', "Location: " ) ?>
</div><!-- .entry-meta -->
[/php]
现在在浏览器中刷新页面,你会看到如下效果:
5.通过自定义分类法来查看文章
现在我们已经在每一个事件文章页面里显示了地点分类法的相关信息,下面我们要制作一个页面模板用来显示和特定地点相关的所有事件文章。例如点击Conference Room A,就会进入一个页面,这个页面显示出所有和Room A有关的事件文章。
在还没开始之前,点击这个链接,会弹出如下错误提示:

了解这个错误原因,你可能需要具备一些WordPress模板等级的知识,当wordpress载入页面时,它会查找你的主题文件夹并根据命名载入正确的模板页面,当载入一个分类法页面时,wordpress的查找顺序如下:
taxonomy-[your_taxonomy_term].php > taxonomy-taxonomy.php > taxonomy.php > archive.php > index.php
wordpress会从左到右开始查找这些文件,如果文件不存在就跳到下一个文件。在wordpress3.0的默认主题TwentyTen中,第一个符合的文件是archive.php,因为前面三个文件在这个主题文件夹中都是不存在的,所以我们就会看到上面的错误页面。
因此如果我们要正确显示分类法页面,就要建立一个新文件,把它命名为taxonomy-location.php。这样wordpress在载入分类法页面时,就会启用这个模板。因为我们的分类法页面和标签(Tags)页面外观比较像,为了方便起见,把tag.php中的内容复制到刚刚建立的文件中。
先将下面的代码复制到get_header()的下面。
[php]
<?php $term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) ); ?>[/php]
这样,和分类法有关的信息(ID,名称等)都存储在变量$term中,我们就可以将它输出到任何地方了。在这里,我们想把这些信息放置在页面的顶部,所以将tag.php文件的代码替换掉。
原代码:
[php]
<h1 class="page-title"><?php
printf( __( 'Tag Archives: %s', 'twentyten' ), '<span>' . single_tag_title( '', false ) . '</span>' );
?></h1>
[/php]
新代码:
[php]
<h1 class="page-title"><?phpprintf( __( 'Events in Location: %s', 'twentyten' ), '<span>' . $term->name . '</span>' ); ?></h1>[/php]
完成后,当我们再次点击Conference Room A这个链接时,就可以看到如下显示地点分类的页面:
但是这个页面还没有任何的事件文章,我们要通过修改WordPress loop代码来查找自定义文章类型Events的文章,而不是一般的文章。添加下面的代码,用来进行自定义的wordpress查询:
[php]
<?php query_posts(array( 'post_type'=>'event', 'location'=>$term->slug)); ?>[/php]
query_posts用来查询和当前locoation相关的所有事件文章。但是当前Wordpress有一个bug(不知截至发稿前是否修正),任何和这个location有关的文章类型的文章都会显示出来。现在刷新页面会发现和Conference Room A相关的事件文章都列在页面上了,如下图:
如果你想在页面显示和Conference Room A的相关描述(Description)的话也非常简单,只需要把下面的代码复制到h1的标签下面即可。
[php]
<strong>Description:</strong><?php echo term_description( '', get_query_var( 'taxonomy' ) ); ?>
[/php]
完成后页面如下:
6.总结
通过这个例子,你应该已经学会了如何在wordpress自定义分类法,我们再把流程总结一下:
- 创建一个自定义的分类法(地点分类法)
- 将自定义分类法加入到文章中
- 在文章中显示自定义分类的信息
- 通过自定义分类来查看和组织文章
- 为自定义分类法创建一个页面模板
通过结合自定义文章类型(Custom post type)和自定义分类法(Custom taxonomy),wordpress在内容管理方面已经非常强大了。
-
RAID磁盘阵列详解
基本上在机房里面混的同学对RAID都已经很熟悉了,当然也有一部分不熟悉但是也在机房混的。
RAID可分为级别0到级别6,通常称为:RAID0,RAID1,RAID2,RAID3,RAID4,RAID5,RAID6。我们在此只记录常见的几种RAID方式:RAID0,RAID1,RAID0+1/RAID1+0,RAID5
一、概念
RAID0:RAID0并不是真正的RAID结构,没有数据冗余,RAID0连续地分割数据并并行地读/写于多个磁盘上。因此具有很高的数据传输率,但RAID0在提高性能的同时,并没有提供数据可靠性,如果一个磁盘失效,将影响整个数据。因此RAID0不可应用于需要数据高可用性的关键应用。
RAID1:RAID1通过数据镜像实现数据冗余,在两对分离的磁盘上产生互为备份的数据。RAID1可以提高读的性能,当原始数据繁忙时,可直接从镜像中读取数据。RAID1是磁盘阵列中费用最高的,但提供了最高的数据可用率。当一个磁盘失效,系统可以自动地交换到镜像磁盘上,而不需要重组失效的数据。
RAID5:RAID5没有单独指定的奇偶盘,而是交叉地存取数据及奇偶校验信息于所有磁盘上。在RAID5上,读/写指针可同时对阵列设备进行操作,提供了更高的数据流量。RAID5更适合于小数据块,随机读写的数据。RAID3与RAID5相比,重要的区别在于RAID3每进行一次数据传输,需涉及到所有的阵列盘。而对于RAID5来说,大部分数据传输只对一块磁盘操作,可进行并行操作。在RAID5中有"写损失",即每一次写操作,将产生四个实际的读/写操作,其中两次读旧的数据及奇偶信息,两次写新的数据及奇偶信息。
RAID0+1/RAID1+0 其实就是RAID0和RAID1的不同组合
二、详细介绍
1、RAID0
RAID0是具有提速和扩容的目的
在RAID0模式中,数据被分割为一定数量的数据块(Chunk)交叉写在多个硬盘上,一般的来说在RAID0系统中数据被分割的数量同RAID阵列所使用的硬盘的数量是有关的,比如RAID0中采用了3块硬盘,那么数据将会被分为三份依次的写入三个硬盘,通俗的说这种模式其实就是利用RAID技术让系统认为三块硬盘组成一个容量更大的硬盘,因为这个过程没有数据校验所以这种RAID模式是读写速度最快的一种。
RAID0并没有从安全性角度考虑,实际上,如果RAID0当中的一块硬盘坏了,所有数据都会损坏,并且没有办法恢复。这使得RAID0的安全性能非常差,所以很多用户出于安全考虑没有使用RAID0模式。虽然如此,RAID0毕竟是所有RAID方式当中速度最快的一种模式,如果RAID0模式当中有两块硬盘的话,那么RAID0的存储读取数据的速度会是单个硬盘双倍。,如果使用6块硬盘的话,那么理论速率就是单个硬盘的6倍。如果在RAID0模式当中使用不同的硬盘会造成两方面的问题,首先,RAID0的有效硬盘容量会是最小的硬盘的容量乘上硬盘的个数,这是因为如果容量的最小的硬盘存满了之后,RAID0依然会将文件平均分配到各个硬盘当中,此时便不能完成存储任务了;其次,如果RAID0当中的硬盘速度不同,那么整体的速度会是速度最慢的硬盘的速度乘上硬盘的个数,这是因为RAID0模式是需要将上一部的存储任务完成之后才能进行下一步的进程,这样,其它的速度快的硬盘会停下来等待速度慢的硬盘完成存储或者读取任务,使得整体性能有所下降。所以,在这里建议使用RAID0模式的用户最好选择容量和速度相同的硬盘,最好是同一品牌的同种产品。
因此RAID0在严格意义上说不是"冗余独立磁盘阵列"。RAID0模式一般用于需要快速处理数据但是对于数据的安全性要求不高的场合。这种RAID模式的特点是简单,而且并不需要复杂和昂贵的控制器。采用RAID0模式至少需要2块硬盘,最终得到的存储容量也是这两块硬盘的和。
RAID0的随机读取性能:很好
RAID0的随机写入性能:很好
RAID0的持续读取性能:很好
RAID0的持续写入性能:很好
RAID0的优点:最快的读写性能,如果每块硬盘拥有独立的控制器性能将会更好。
RAID0的缺点:任何一块硬盘出现故障所有的数据都会丢失,大部分的控制器都是通过软件实现的,所以效能并不好。
2、RAID1
RAID1模式是让组成RAID1模式的硬盘互为镜像,当你向硬盘中写入数据的时候,两个硬盘同时存储相同的数据,这样即使其中一个硬盘出现了故障,系统利用另外一个硬盘一样可以正常运行。RAID1相对于单块硬盘来说它的数据读取性能会更好一些,因为当一块硬盘处于忙的状态时,RAID控制器可以去读取另一块硬盘中同样的数据,但是写入数据性能不但没有增长而且可能会有轻微下降。当其中一块硬盘出现故障之后,新的数据可以写入仍然能够正常工作的硬盘,当使用新的硬盘替换掉原来的硬盘之后,RAID控制器会自动的把数据复制到新的硬盘上。RAID1模式的最大特点就是冗余性高,但是由于大部分的功能是利用软件来实现的,所以它会增加处理器的负担。这种RAID模式非常适合对数据的安全性有极高要求的人。
在RAID1模式当中,所使用的硬盘最好是相同的,否则会出现浪费硬盘空间的情况。由于RAID1模式是将相同的信息写入到不同的硬盘当中,所以RAID1模式的有效硬盘容量是阵列当中容量最小的硬盘的容量。举例来说,如果RAID1模式中有一块容量为20GB的硬盘和一块容量为30GB的硬盘,那么总体的RAID1的有效容量是20GB,从此那块30GB硬盘上剩下的10GB容量就会被浪费。同时,如果两块硬盘的速度不同的话,那么速度较快的那块硬盘依然会停下来等待速度较慢的那块硬盘完成任务之后再进行下一步行动。
RAID1的随机读取性能:好
RAID1的随机写入性能:好
RAID1的持续读取性能:一般
RAID1的持续写入性能:好
RAID1的优点:数据高可靠性,易于实现,设计简单。
RAID1的缺点:比RAID0相比速度较慢,特别是写入速度,另外就是我们仅仅能使用一半的硬盘容量。
3、RAID0+1
这种RAID模式其实是RAID0和RAID1模式的组合,至少需要4块硬盘。其中任何两块组成一个RAID0磁盘阵列,然后两个RAID0磁盘阵列可以看成两个容量更大、速度更快的硬盘,它们再组成一个RAID1磁盘阵列。这样的系统保证了较高的磁盘性能和较高的数据安全性。当然缺点也是显而易见的就是成本较高,构造比较复杂。RAID0+1在容错性能方面仅次于RAID5,一般用于文件服务器等方面。
RAID0+1的随机读取性能:很好
RAID0+1的随机写入性能:好
RAID0+1的持续读取性能:很好
RAID0+1的持续写入性能:好
RAID0+1的优点:相对于单块硬盘具有更高的读写性能,而且大大提高了数据的安全性。
RAID0+1的缺点:成本较高,至少需要4块硬盘。
4、RAID5
RAID5使用至少三块硬盘来实现阵列,它既能实现RAID0的加速功能也能实现RAID1的备份数据功能,在阵列当中有三块硬盘的时候,它将会把所需要的存储的数据按照用户定义的分割大小分割成文件碎片存储到两块硬盘当中,此时,阵列当中的第三块硬盘不接收文件碎片,它接收到的是用来校验存储在另外两块硬盘当中数据的一部分数据,这部分校验数据是通过一定的算法产生的,可以通过这部分数据来恢复存储在另外两个硬盘上的数据。另外,这三块硬盘的任务并不是一成不变的,也就是说在这次存储当中可能是1号硬盘和2号硬盘用来存储分割后的文件碎片,那么在下次存储的时候可能就是2号硬盘和3号硬盘来完成这个任务了。可以说,在每次存储操作当中,每块硬盘的任务是随机分配的,不过,肯定是两块硬盘用来存储分割后的文件碎片另一块硬盘用来存储校验信息。
这个校验信息一般是通过RAID控制器运算得出的,通常这些信息是需要一个RAID控制器上有一个单独的芯片来运算并决定将此信息发送到哪块硬盘存储。RAID5同时会实现RAID0的高速存储读取并且也会实现RAID1的数据恢复功能,也就是说在上面所说的情况下,RAID5能够利用三块硬盘同时实现RAID0的速度加倍功能也会实现RAID1的数据备份功能,并且当RAID5当中的一块硬盘损坏之后,加入一块新的硬盘同样可以实现数据的还原。
RAID5是截止到目前我们所介绍的几款RAID模式中控制器设计最复杂的一种。RAID5可以应用在大部分的领域中,比如多用户和多任务环境中。目前的很多Web服务器和其它的Internet服务器都是采用这种形式的磁盘阵列,比如最近推出的Quantum Snap服务器就采用了外置式的RAID5磁盘阵列的设计。奇偶校验一般会占据大约33%的磁盘空间的容量,所以对于一个总容量为120GB的RAID5磁盘阵列而言,可用的空间将是80GB左右。不过这种磁盘阵列模式在一般的主板进程的RAID控制器中都不提供支持,比如Abit KR7A-RAID主板仅仅支持RAID0、RAID1、RAID0+1。当然只要采用校验码的方式,就会一定程度上影响写入性能,因此很多磁盘阵列厂商都在磁盘阵列中加入了写缓存来提高写入性能。
RAID5模式并不是一切都好,如果阵列当中某块硬盘上的信息发生了改变的话,那么就需要重新计算文件分割碎片,并且,校验信息也需要重新计算,这时,三个硬盘都需要重新调用。同样,如果要做RAID5阵列的话,最好使用相同容量相同速度的硬盘,RAID5模式的有效容量是阵列中容量最小的硬盘容量乘上阵列中硬盘的数目减去一后的数,这里硬盘数目要减去一是因为其中有一块硬盘用来存放校验信息。
RAID5的随机读取性能:非常好(当使用大数据块时)
RAID5的随机写入性能:一般,但是优于RAID3或都RAID4
RAID5的持续读取性能:好(当使用小数据块时)
RAID5的持续写入性能:一般
RAID5的优点:不需要专门的校验码磁盘,读取速度快,而且解决了写入速度相对较慢的问题。
RAID5的缺点:写入性能依然不尽如人意。
热交换和热冗余
在RAID系统中一般都具有热交换和热冗余能力。热交换允许在不关闭系统或电源的前提下更换故障硬盘,当然更换上的新硬盘也可以被系统动态的识别出来并且正确的配置和添加,而这些都不需要重新启动计算机。这样做的好处是勿庸置疑的,对于维护人员来说非常的简单,而对于很多应用场合,比如Web服务器等,用户并不希望服务器停机,这样造成的损失将是不可估量的。很多HP/DELL服务器产品和RAID磁盘阵列都具有热交换的能力。
热冗余一般用于不适于热交换的场合。这种设计一般是在故障出现之前就在计算机中配置了额外的硬盘,当有硬盘出现故障的时候,这块冗余的就可以自动替代故障的硬盘的位置,对于这样的系统在系统关闭之前是不能把损坏的硬盘拔下来的。热冗余虽然不如热交换方便,但是总比没有好一些。
小结
其实磁盘阵列的种类非常多,我们今天介绍的是部分基本的应用模式,在实际应用为了达到足够的性能和稳定,可以把各种RAID模式搭配使用,当然这样对于RAID控制器的要求会更高,磁盘阵列系统的成本也就更高。
服务器所采用的RAID一般是基于SCSI的,所以这样RAID系统的成本将会更加高昂。其实这个功能对于我们个人的应用还具有一定的距离,即使你拥有了一张整合了RAID控制器的主板,也需要至少2块硬盘(一般的要求这两块硬盘在容量、品牌、转速上都是一样的),对于个人用户来说这是一笔不小的开支。当然如果你有特殊的需要,比如需要假设一个工作站或者Web服务器,但是又不想花费太多的资金,那么IDE RAID还是一个不错的选择。这里需要提醒大家的是,一般的板载IDE RAID的处理器占用率较高,并且IDE RAID在部分应用中还不如SCSI硬盘。
-
IP地址,天气,邮编,外汇等常用查询Web Service接口
- 天气预报Web Service,数据来源于中国气象局
IP地址来源搜索Web Service(是目前最完整的IP地址数据)
随机英文、数字和中文简体字Web Service
中国邮政编码 <-> 地址信息双向查询/搜索Web Service
验证码图片Web Service 支持中文、字母、数字 图像和多媒体
Email 电子邮件地址验证Web Service
中文简体字 <->繁体字转换Web Service
中文 <-> 英文双向翻译Web Service
火车时刻表Web Service (第六次提速最新列车时刻表)
中国股票行情数据Web Service(支持深圳和上海股市的基金、债券和股票)
即时外汇汇率数据Web Service
腾讯QQ在线状态Web Service
中国电视节目预告(电视节目表)Web Service
外汇-人民币即时报价Web Service
中国股票行情分时走势预览缩略图Web Service
国内飞机航班时刻表 Web Service
中国开放式基金数据Web Service
股票行情数据 Web Service(支持香港、深圳、上海基金、债券和股票;支持多股票同时查询)
