LUN 同时访问所产生的误区

常常因为iscsi是基于ip访问的存储方式,以为和所有net构架的multi In/Out一样,文件的读写也能同步工作,其实完全是错误的概念。

iscsi 的target生成的Lun地址,共享给client的initiators,找到后识别为block结构的存储器,然后格式化为想用的分区格式,再才是文件存储。同时几个windows客户端通过iscsi发起程序访问同一个iqn.Lun,哪怕是ntfs分区,都能看到其中的文件,但使用起来却是完全不一样的,这是因为一个概念的混乱。

首先有了iscsi target的block存储器,才有了initiators 访问到target上的lun,再才是客户端文件系统,最后才是文件系统在这个block上建立的文件的读写。

本身iscsi是不对上面存储的任何东西做辨识的,所以一旦iscsi被部分损坏(如物理盘坏道),重建同一个iscsi是不能找回数据的,因为这种块结构存储一旦丢失,外部系统和设备是不能识别的,哪怕要读取其中一部分也不行。所以这些iscsi块存储上是不对文件做任何处理的。

而客户端对lun的读取却是基于文件系统的,文件读取就有自身的文件锁,有读写访问规则,多个client通过initiators对一个lun管理,其实自身有自己的文件锁以及权限,就算windows之间能看到这个文件,也是分区格式的功劳,而不是本身能同步,因为基于不同的块管理和不同的文件系统管理(文件读写锁,权限),也就无从谈起同步的问题。

要想多个客户机使用iscsi上的文件,并同步,就需要在其中加入一个文件管理系统,通过这个initiators访问lun,在由自身的文件系统共享管理,让多个客户机访问这些文件。

如果要避免这层共享所产生的协议性能磨损,常见的就是使用cluster file system,即在iscsi上建立一个cluster文件系统,对iscsi的资源进行调配,让多个客户机受限制的访问这个lun,这种技术是很私有的,价格非常贵,cluster和linux,windows系统是同一等级的,但却完全不同,专属于块存储同步访问这个领域

本文转载出自:http://geekpi.cn/blog/2012/07/1474

你可能感兴趣的:(LUN,同时访问所产生的误区)