如何通过Ceph-RBD和ISCSI-target实现硬盘共享


今天就跟大家聊聊有关如何通过Ceph-RBD和ISCSI-target实现硬盘共享,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1 问题提出
现在要求把机房的设备存储都利用起来,建立一个存储池,能满足用多少创建多少而且能够跨平台挂载创建的硬盘。目前,验室的机房目前已经建立起来了CEPH的集群,存储池达到了257TB,于是设想创建一个RBD(RADOS block device),然后通过ISCSI-target把创建的RBD导出来用于客户端的挂载。2 可行性分析 上述的问题的实现主要是两部分,一部分是创建RBD,另一部分是通过安装ISCSI-target把RBD导出,用于Ceph集群外主机挂载。目前的实验环境已经可以成功的创建RBD用于Ceph集群内的装有RBD客户端的主机挂载,剩开发云主机域名下的就是第二部分的实现。由于Ceph已经支持通过iscsi协议来使用rbd,所以在理论上是可行的。3 实现过程3.1 环境说明实验平台:ubuntu14.04 server,内核:3.13.0-32-genericCeph版本:version 0.94.2服务端 ISCSI-target采用Linux SCSI target framework (tgt)(http://stgt.sourceforge.net/)服务端IP:172.25.1.553.2 创建RBD在ceph-admin节点执行下面命令:比如创建大小为1GB,名为ceph-rbd1的RBD:未指定pool-name则默认创建到rbd池里面查看RBD:rbd ls {poolname} 不加poolname默认查看rbd池下的RBD查看RBD详细信息:比如查看ceph-rbd1:rbd info ceph-rbd1 不加pool-name默认rbd池3.3 映射RBD创建好的RBD需要映射到客户机才能使用,客户机需要内核支持Ceph块设备和文件系统,推荐内核2.6.34或更高版本。检查Linux版本和对RBD的支持:Linux哲学,不返回消息就是最好的消息。所以modprobe rbd没有返回消息说明内核对rbd支持。在ceph-osd节点执行下面命令:格式是rbd map {pool-name}/{image-name} 不加{pool-name}默认rbd查看映射后的RBD在操作系统中的设备名:可以看到创建的RBD在操作系统的设备名是/dev/rbd1fdisk –l /dev/rbd1#参看分区情况如果用于本机挂载执行接下来步骤:不过我们的目的是Ceph集群外主机挂载RBD,所以上面的步骤了解一下即可,集群外主机挂载RBD需要用到ISCSI-target。3.4 配置rbdmap根据网络文档了解到,创建rbd块设备并rbd map后,如果不及时rbd unmap,关机的时候系统会停留在umount此rbd设备上。所以要配置rbdmap。官方文档无rbdmap的介绍,而且这个脚本也不是官方发布的,为避免遇到这种问题先下载并设置开机启动rbdmap,将来再尝试不加入这个脚本会不会出现问题。修改rbdmap的配置文件/etc/ceph/rbdmap将映射好的rbd添加进去,注意/etc/ceph/rbdmap路径是wget时的当前路径 ,我wget时是在/etc/ceph路径下的。如果使用了cephx那么,keyring=/etc/ceph/ceph.client.keyring就要加上了3.5 配置ISCSI-targetLinux SCSI target framework (tgt)用来将 Linux 系统仿真成为 iSCSI target 的功能;安装tgt,并检查是否支持rbd:rbd (bsoflags sync:direct)#返回这个信息表明支持rbd文件的了解:
/etc/tgt/targets.conf:主要配置文件,设定要分享的磁盘格式与哪几颗;/usr/sbin/tgt-admin:在线查询、删除 target 等功能的设定工具;/usr/sbin/tgt-setup-lun:建立 target 以及设定分享的磁盘与可使用的客户端等工具软件。/usr/sbin/tgtadm:手动直接管理的管理员工具 (可使用配置文件取代);/usr/sbin/tgtd:主要提供 iSCSI target 服务的主程序;/usr/sbin/tgtimg:建置预计分享的映像文件装置的工具 (以映像文件仿真磁盘);SCSI 有一套自己分享 target 档名的定义,基本上,藉由 iSCSI 分享出来的 target 檔名都是以 iqn 为开头,意思是:『iSCSI Qualified Name (iSCSI 合格名称)』的意思。那么在 iqn 后面要接啥档名呢?通常是这样的:iqn.yyyy-mm.:identifier单位网域名的反转写法 :这个分享的target名称比如:target iqn.2015-9.localhost:iscsi 在接下看的配置中会用到我们主要是修改 /etc/tgt/targets.conf,把创建好的RBD信息添加进去。# 此档案的语法如下:backing-store (虚拟的装置), direct-store (实际的装置): 设定装置时,如果你的整个磁盘是全部被拿来当 iSCSI 分享之用,那么才能够使用 direct-store 。不过,根据网络上的其他文件, 似乎说明这个设定值有点危险的样子。所以,基本上还是建议单纯使用模拟的 backing-store 较佳。当然,配置文件中还有其他的一些参数可以参考:/usr/share/doc/tgt/examples/targets.conf.example里面的内容。然后重启tgt:/etc/init.d/tgt restart参看端口是否开启:netstat -tlunp | grep tgt 默认3260端口观察一下target 相关信息,以及提供的 LUN 数据内容:至此ISCSI-target就已经配置好了。3.6 windows客户端挂载iSCSI initiator:就是能够使用 target 的客户端,通常是服务器。 也就是说,想要连接到 iSCSI target 的服务器,也必须要安装 iSCSI initiator 的相关功能后才能够使用 iSCSI target 提供的磁盘。上面配置都成功的话就可以进行正常挂载,我是在windows7上面进行的挂载。windows7自带有iSCSI initiator。打开控制面板—》系统与安全—》管理工具 iSCSI 发起程序点发现门户然后填入你的服务端IP或DNS可以看到当前的状态是不活动的,可以点击连接:连接成功后相当于挂载了一个硬盘,这时我们可以在磁盘管理中进行分区和格式化等一些操作,格式化成功后可以看到磁盘已经在系统中了。3.7 linux客户端挂载本次主要针对的windows客户端挂载,成功的挂载说明服务器端是没有问题的,如果要在linux上进行挂载,只需要安装iSCSI initiator然后进行简单的配置。具体的配置方法下面的参考文献中的鸟哥文章有详细介绍,这里只是说明其是具有可行性的,不进行实例验证了。注意,linux客户端和windows客户端都是ceph集群外的主机,集群内的不需要用到iscsi就可以进行创建挂载。看完上述内容,你们对如何通过Ceph-RBD和ISCSI-target实现硬盘共享有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注开发云行业资讯频道,感谢大家的支持。

相关推荐: 虚拟主机空间哪个好

虚拟主机空间哪个好?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。既然是免费虚拟主机,就不要指望哪个好了,可以说免费的都没有很好的。举个例子,大家在网上买东西时,商家赠送的小物件有质…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 05/25 07:57
Next 05/25 07:57

相关推荐