文档章节

说说IO(六)- Driver & IO Channel

abcijkxyz
 abcijkxyz
发布于 2016/07/08 16:30
字数 457
阅读 0
收藏 0

这部分值得一说的是多路径问题。IO部分的高可用性在整个应用系统中可以说是最关键的,应用层可以坏掉一两台机器没有问题,但是如果IO不通了,整个系统都没法使用。如图为一个典型的SAN网络,从主机到磁盘,所有路径上都提供了冗余,以备发生通路中断的情况。

 

 

  • OS配置了2块光纤卡,分别连不同交换机
  • SAN网络配置了2个交换机
  • 存储配置了2个Controller,分别连不同交换机

 


 

 

如上图结构,由于存在两条路径,对于存储划分的一个空间,在OS端会看到两个(两块磁盘或者两个lun)。可怕的是,OS并不知道这两个东西对应的其实是一块空间,如果路径再多,则OS会看到更多。还是那句经典的话,“计算机中碰到的问题,往往可以通过增加的一个中间层来解决”,于是有了多路径软件。他提供了以下特性:

 

  • 把多个映射到同一块空间的路径合并为一个提供给主机
  • 提供fail over的支持。当一条通路出现问题时,及时切换到其他通路
  • 提供load balance的支持。即同时使用多条路径进行数据传送,发挥多路径的资源优势,提高系统整体带宽。

Fail over的能力一般OS也可能支持,而load balance则需要与存储配合,所以需要根据存储不同配置安装不同的多通路软件。

 

多路径除了解决了高可用性,同时,多条路径也可以同时工作,提高系统性能。

本文转载自:http://blog.csdn.net/yuwenruli/article/details/6708099

共有 人打赏支持
abcijkxyz
粉丝 63
博文 6196
码字总数 1876
作品 0
深圳
项目经理
JAVA NIO(知识一)

java nio基本上常用的组件,selector,channel,buffer。这三个,其他的可以用到的时候再去参考就可以了。 看一本书的时候,基本看前三章或者四章基础知识,剩下的,实际生产中用到了再去看就...

豆芽菜橙
2017/08/12
0
0
scala远程调spark的端口和命令,应该怎么操作?

我试了试这个,但是发现过去不, spark-submit --supervise --class sparksecurity.Sockpuppet --name "testkdl1" --executor-memory 8192M --num-executors 8 --master yarn-client --drive......

Baclk5
2017/01/04
566
0
linux-2.6.14移植:NET: Registered protocol family 1卡住

linux-2.6.14移植:NET: Registered protocol family 1卡住 修改好内核源码,并增加了yaffs源码,开始make,出现如下错误: U-Boot 1.1.6 (Mar 21 2012 - 07:03:29) DRAM: 64 MB Flash: 2 M...

长平狐
2013/06/03
69
0
Netty 4.1.8 io.netty.util.ResourceLeakDetector - LEAK:

源代码及项目:https://github.com/zhouhailin555/NettyProtocol.git 希望各位大拿帮忙看看。 运行时报错如下: 1.ERROR io.netty.util.ResourceLeakDetector - LEAK: ByteBuf.release() was......

zhouhl
2017/02/19
563
0
netty 的handler相关的问题

我想把handler做成类似 filter 的功能。比如现在的需求是:用一个handler处理POST请求,一个处理GET请求,再来一个处理请求头里面包括XXX的请求等等(简单这样举个例子)。写三个handler。 现在...

coder4j
2016/06/04
701
2

没有更多内容

加载失败,请刷新页面

加载更多

[Python进阶] Python命令行参数

Python 获得命令行参数的方法 需要模块:sys 参数个数:len(sys.argv) 脚本名: sys.argv[0] 参数1: sys.argv[1] 参数2: sys.argv[2] 解析命令行参数 Python提供了一个getopt模块,可用于解...

Eappo_Geng
30分钟前
1
0
add docker api url to jenkins

add docker api url to jenkins add jenkins to dockergroup gpasswd -a $USER docker gpasswd -a jenkins docker DOCKER_OPTS="-H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock" in ......

kewei_zhang
34分钟前
1
0
Scala入门篇

1、定义变量 var 可变 val 不可变,相当于Java中的final Unit相当于Java中的void,以()表示 scala> val a = println("ddd") ddd a: Unit = () 2,声明数组 scala> val arr = Array(1,2,3,4,5) ......

算法之名
34分钟前
8
0
利用redis统计分布式集群中接口缓存命中情况

接口使用了缓存,想看看缓存命中率,到底提升了多少了?固想到做个统计方法,单机情况下使用 AtomicImteger,考虑到分布式集群中多台服务器调用,所以考虑使用redis进行统计 原来的想法很简单用分布...

计算机的小二青年
35分钟前
2
0
前端加密JS库--CryptoJS 使用指南

有时候项目涉及到的敏感数据比较多,为了信息安全,我们常常需要对一些数据进行接口加密处理,如编码、将明文转化为暗文、加密比对、AES + BASE64 算法加密等。 Base64 编码 为什么要编...

舒龙虎
37分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部