通过iscsi协议使用ceph rbd

http://www.cnblogs.com/chris-cp/p/6272722.html

转自:http://blog.csdn.net/wytdahu/article/details/46545235

ceph很早就已经支持通过iscsi协议来使用rbd,这篇博文对此做下演示,并且使用OSD Server作为iscsi target端。

 一、OSD Server side

1、安装支持rbd的TGT软件包

1 #echo "deb http://ceph.com/packages/ceph-extras/debian $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/ceph-extras.list  
2 #apt-get install tgt  

2、安装完成后确认tgt支持rbd

1 # tgtadm --lld iscsi --op show --mode system | grep rbd  
2     rbd (bsoflags sync:direct)  

 3、创建一个image(示例中pool名称叫做iscsipool,image叫做iamge1)

1 #rbd create iscsipool/image1 --size 10240 --image-format 2  

 4、在tgt服务中注册刚才创建好的image,只需要将下面的内容添加到/etc/tgt/targets.conf 或者 etc/tgt/conf.d/ceph.conf中即可。

复制代码

1 <target iqn.2014-04.rbdstore.example.com:iscsi>  
2     driver iscsi  
3     bs-type rbd  
4     backing-store iscsipool/image1  # Format is <iscsi-pool>/<iscsi-rbd-image>  
5     initiator-address 10.10.2.49    #client address allowed to map the address  
6 </target> 

复制代码

5、重启或者重载tgt服务

1 #service tgt reload  
2 or  
3 #service tgt restart  

6、关闭rbd cache,否则可能导致数据丢失或者损坏

1 vim /etc/ceph/ceph.conf  
2 [client]  
3 rbd_cache = false  

 二、Client side

1、安装open-scsi

1 #apt-get install open-iscsi  -y

2、启动open-scsi服务

复制代码

# service open-iscsi restart  
 * Unmounting iscsi-backed filesystems                                                                                                    [ OK ]   
 * Disconnecting iSCSI targets                                                                                                            [ OK ]   
 * Stopping iSCSI initiator service                                                                                                       [ OK ]   
 * Starting iSCSI initiator service iscsid                                                                                                [ OK ]   
 * Setting up iSCSI targets                                                                                                                        
iscsiadm: No records found  
                                                                                                                                          [ OK ]  
 * Mounting network filesystems   

复制代码

 3、发现目标设备

1 # iscsiadm -m discovery -t st -p 10.10.2.50  
2 10.10.2.50:3260,1 iqn.2014-04.rbdstore.example.com:iscsi  

 

4、挂载目标设备

1 #  iscsiadm -m node --login  
2 Logging in to [iface: default, target: iqn.2014-04.rbdstore.example.com:iscsi, portal: 10.10.2.50,3260] (multiple)  
3 Login to [iface: default, target: iqn.2014-04.rbdstore.example.com:iscsi, portal: 10.10.2.50,3260] successful.

5、确认设备已经挂载(示例中sda就是iscsdi设备)

复制代码

root@cetune1:~# lsblk   
NAME                  MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT  
sda                     8:0    0    10G  0 disk   
vda                   253:0    0    24G  0 disk   
?..vda1                253:1    0   190M  0 part /boot  
?..vda2                253:2    0     1K  0 part   
?..vda5                253:5    0  23.8G  0 part   
  ?..linux-swap (dm-0) 252:0    0   3.8G  0 lvm  [SWAP]  
  ?..linux-root (dm-1) 252:1    0    20G  0 lvm  /  

复制代码

 

### Ceph 块存储与 iSCSI 协议的集成 Ceph 的块设备服务 RBD (RADOS Block Device) 可以通过 iSCSI 接口提供给外部系统访问。这种集成方式允许传统服务器操作系统像使用常规磁盘一样来读写 Ceph 存储集群中的数据。 #### 安装和配置 TGT 或 LIO 作为 iSCSI Target 为了实现这一目标,通常会在运行有 Ceph Monitor 和 OSD 节点之外的一台或多台机器上部署 iSCSI target software, 如 TGT 或者更现代的选择 LIO[^2]。这些软件负责处理来自 initiator (客户端)的 SCSI 请求并将它们转换成对后端 RBD 映像的操作。 #### 创建并导出 RBD 映像 管理员可以在 Ceph 中创建一个新的 RBD 映像,并将其设置为只读或可读写的模式。接着利用 `rbd map` 命令将该映射到本地文件系统路径下以便于后续操作: ```bash # Create a new RBD image named 'iscsi-volume' rbd create iscsi-volume --size 10G pool=rbd # Map the RBD image to local system as block device sudo rbd map rbd/iscsi-volume ``` 完成上述步骤之后,就可以按照所选 iSCSI target solution 的文档说明来进行具体的配置工作了。对于 TGT 来说,这可能涉及到编辑 `/etc/tgt/targets.conf` 文件;而对于 LIO,则可能是修改 `/etc/lio.d/*` 下的相关配置文件。 #### 设置 iSCSI Initiator 访问权限 为了让特定的 iSCSI initiators 能够连接至由 Ceph 提供支持的目标资源,在 targets 上还需要定义相应的 ACL(Access Control List)。这部分同样依赖具体使用iSCSI target 解决方案而有所不同。例如,在 TGT 中可以通过如下命令添加一个新用户账户及其对应的 CHAP 密码认证机制: ```bash tgtadm --lld iscsi --op new --mode account \ --tid=1 -u username -p password ``` 最后一步就是确保所有的网络防火墙规则都已适当调整,使得 iSCSI traffic 可以顺利穿越各个节点之间的通信链路。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值