拟化基础架构之使用openfiler搭建iSCSI网络共享存储随着虚拟化架构的不断完善与扩充,后台集中的网络存储已开始成为虚拟化整体解决方案中的一部分(尤其是对VDI、高可用性群集等架构),实现网络存储的方法有以下几种:直接向EMC、NetApp等厂商购买存储设备:性能较好,价格高昂在Windows平台安装模拟器:配制简单,但性能一般,且由于商业软件的试用期限制较难以长期使用使用FreeNAS、Openfiler等Linux核心的iSCSITarget端程序:基于Linux内核的裸金属服务器端,性能较为理想,免费可自由下载,比较适合于系统测试或评估使用。这里将介绍使用Openfiler2.3来搭建基于iSCSI的网络共享存储首先来看下基本架构与一些基本概念,了解基本概念的请跳过。。。在整个架构中,所有的设备都通过以太网相连,两台需要连接存储的服务器分别为两个节点,称之为Initiator端(也可只有一个节点或多个节点),存储设备可以是专门的硬件存储设备,也可以由普通服务器充当,只需安装上述所说的模拟软件或者Openfiler等精简版Linux来充当,称之为Target端。所以整个iSCSI架构其实也是类似于C/S架构,Target段为存储服务器,Initiator端为客户端,通过iSCSI协议将存储设备上的逻辑卷作为自己的存储设备使用。下面切入正题,整个配置过程分为三大步骤:在存储服务器上安装Openfiler通过Web方式远程配置Openfiler存储设备配置客户端服务器连接Openfiler存储设备一、在存储服务器上安装Openfile(基本的只有下一步可按的页面就跳过了~)首先在中下载合适的版本,从光驱引导后是典型的Linux安装界面直接回车进入图形化安装界面在磁盘设置这里如果不熟悉Linux磁盘分区的话可以直接选择自动分区,但是为了增强对磁盘分区的可控性,这里选择手动分区。系统询问是否初始化磁盘并删除所有数据,选择YES,连续选择两次No的话则Restart。。。进入磁盘分区页面,在这个系统中我有两个磁盘,我的规划是较小的磁盘安装Openfiler,并且划分一个区作为群集的仲裁磁盘,较大的磁盘作为共享数据磁盘(当然这是后话了,并且Linux系统的安装并不局限于一块物理磁盘,这里只是根据惯有的思路做一个预先规划)安装Openfiler本身的推荐分区方法则根常规的Linux分区方法是一样的,需要一个引导分区,一个根分区,一个交换分区点击较小的磁盘的Free空间,选择新建,在挂载点中择/boot,文件类型为ext3,只选择较小的磁盘(还是那句话,根据惯有思维,实在不习惯将一个分区横跨两个无力磁盘),大小设为100M即可,确定下方为固定大小,勾选强制为主分区选项。用同样的方法建立根分区,挂载点位/,文件格式为ext3,挂载在较小的物理磁盘,大小为1GB-2GB即可,因为是精简版的Linux,且以后也不大会安装其它软件,所以1GB足矣(又是那句话,按照惯性思维,我设了2G,被微软惯性坏了。。。),下面则同样是固定大小,强制为主分区。最后建立一个交换分区,不需要选择挂载点,文件类型为swap,第一块无力磁盘,大小为内存的两倍即可,其余设置一样,这里发现少截张图。。。分区完成后最终的效果应该是这样的,其余的分区保持为Free状态,不然在Openfiler中可能无法分配。配置网络属性,建议设为固定IP,因为Openfiler安装完成之后没有图形界面,所有的配置都通过web方式完成,没有固定的IP会给以后的配置造成不必要的麻烦。接下来是选择时区,设置Root帐户密码,然后光盘中的文件拷贝至硬盘中开始正式安装,都比较简单,安装完成后取出光盘,按下Restart,整个安装过程就算完成了,其实跟安装普通的Linux没有任何区别。二、通过Web方式远程配置Openfiler存储设备启动Openfiler之后会显示他的Web管理的URL:通过远程客户端浏览器登录,用户名为openfiler,密码为password进入管理界面之后首先看到是一些常规设备信息,关系不大,在上方导航栏中选择system,拉到页面下方,在NetworkAccessConfiguration中添加Initiator客户端所在的网段地址,用以在之后选择是否授权这个网段的计算机能够连接本台存储,可以通过子网掩码进一步控制数量,类型保留为share,点击Update。在导航栏中选择Volumes,点击右侧的BlockDevices,可以查看到当前存储服务器所拥有的物理磁盘,选择某一个物理磁盘的view,可以查看这块物理磁盘上已有的分区。下面就开始正式划分我们所需要的共享仲裁磁盘和数据磁盘。单击第一块物理磁盘:/dev/sda拉到页面下方(如果要说Openfiler有什么很让人火大的地方就是这里了,很多页面都设计的很长,要拉到很下面才能进行设置),在这里划分一个物理分区出来,注意将PartitionType设置为物理卷,类型为主要,通过设置开始柱面和结束柱面,系统会计算出划分的区为多大,调整到满意的值后点击Creat接下来点击右侧的VolumeGroup,拉到页面下方,创建一个新的卷组,设置卷组名为Quorum,包含刚才创建的物理分区,点击AddVolumeGroup。点击右侧的AddVolume,选择刚才创建的卷组,在这个卷组所包含的空间上创建一个真正的会挂接到Initiator客户端服务器上的逻辑卷(Lun),什么?你在这个页面中没看到创建?看到右侧的滚动条了么?对了。。。往下拉。。。在创建逻辑Lun的时候可以选择所需要的大小,而不是选择整个卷组,Openfiler对磁盘的灵活性体现出来了,一个卷组可以划分多个逻辑Lun,卷组本身又可以来自多个物理磁盘,好了,被我说乱了?等下我来整理思路。这里定义完了卷名后在文件类型列表中选择iSCSI,点击Creat。用同样的方法在第二块磁盘上创建一个物理分区,包含在data这个卷组中。点击右侧的AddVolume,注意选择需要在哪个卷组上创建逻辑卷,选择data卷组后需要点击change,才能在data这个卷组中操作,和上面一样,拉到页面下方,创建一个用于data的逻辑卷。在导航栏中选择Service,将下方服务中的iSCSITargetServer修改为Enable状态。回到Volumes标签,点击右侧的iSCSITargets,点击Add添加iSCSITarget。单击导航栏下方的LunMapping,可以看到之前划出来可用于挂载的逻辑Lun,将两个逻辑卷全部Map至该Target。最后单击NetworkACL,可以看到先前设置的Initiator端所在的网段,在Access下选择Allow,单击Update,大功告成。三、配置客户端服务器连接Openfiler存储设备这个步骤比较简单,跟所有的连接iSCSI设备客户端所需的操作一样(硬件HBA卡除外),安装微软的iSCSIInitiator2.0(如果是Server08的话不需要安装,系统自带)在Discovery标签中,单击Add,填入Openfiler服务器的地址,端口默认,确认。在Targets标签,单击LogOn,勾选系统启动时自动恢复连接,确定,Target中的信息会由Inactive变为Connected。打开磁盘管理,系统发现新的可初始化的磁盘,网络存储配置完成,只需在第二台节点进行同样的操作即可(第一台节点最好关闭,但实际坐下来问题不大,反正最后是由群集控制)。在设备管理器中的磁盘驱动器下可以看到,有两个OpnFiler..SCSI的设备驱动器。回到web控制台,进入Status标签,单击右侧的iSCSITarget,可以看到连上来的Initiator,选择View可以看到IP信息。整个配置到这里算是全部完成了,最后简单整理下Openfiler创建逻辑卷的整个过程:1.首先在物理磁盘上创建物理分区,不能跨越物理磁盘2.创建卷组,在卷组中可以包含任意的未被分配的物理分区,可以跨越物理磁盘,可以理解为将多个物理上的空间整合为一个可用的空间3.在卷组中创建用于被连接的逻辑Lun,一个卷组可以创建一个逻辑Lun,也可以创建多个逻辑Lun,一个逻辑Lun被连接到客户端服务器后在磁盘管理器中最终看到的即是一个物理磁盘。在这里容易搞混得是卷组的名字是VolumeGroup,逻辑Lun的名字是Volume,在创建过程中是先创建VolumeGroup,最后才在相应的VolumeGroup中AddVolume的。