iscsi协议使用ceph rbd

简介

    SCSI为小型计算机系统接口(英语:Small Computer System Interface; 简写:SCSI),一种用于计算机和智能设备之间(硬盘、软驱、光驱、打印机、扫描仪等)系统级接口的独立处理器标准。 SCSI是一种智能的通用接口标准。

    iSCSI技术是一种由IBM公司研究开发的,是一个供硬件设备使用的可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够在诸如高速千兆以太网上进行路由选择。iSCSI技术是一种新储存技术,该技术是将现有SCSI接口与以太网络(Ethernet)技术结合,使服务器可与使用IP网络的储存装置互相交换资料。


ISCSI使用rbd作为后端存储 :

本文举例基于ubuntu系统12.04.5 server


ISCSI角色分为target和initiator

target端即磁盘阵列或其他装有磁盘的主机,通过iscsi target工具将磁盘空间映射到网络上,initiator端就可以寻找发现并使用该磁盘。

initiator作为ISCSI的使用者,用于寻找发现网络上的target,并使用网络上的磁盘。

角色 IP
target 10.128.3.22
initiator 10.128.3.21


一、准备工作

创建好ceph集群,创建过程详细请查看本博另一篇部署ceph。

二、target结点的配置(10.128.3.22)

安装tgt软件包:

apt-get install tgt

ubuntu-12.04.5-server版本默认安装(version=1.0.17),如果target要支持后端为rbd存储,需要升级tgt >= 1.0.35

本例升级tgt到(version = 1.0.43)



1. 拷贝ceph集群的ceph.conf和keyring到target, 确保target能访问ceph cluster. 

并关闭rbd cache,主要由于如果在不同的主机启动多个target服务,并使用同一块RBD,打开rbd cache功能可能导致数据丢失或错乱。

在/etc/ceph/ceph.conf文件中添加如下几行:

[client]
rbd_cache = false


root@server2:~# ceph -s
    cluster cfd6bc98-dd50-44b8-ae8e-fbbd9420146b
     health HEALTH_WARN
            clock skew detected on mon.ceph4
            Monitor clock skew detected 
     monmap e8: 4 mons at {ceph1=10.128.3.11:6789/0,ceph2=10.128.3.12:6789/0,ceph3=10.128.3.13:6789/0,ceph4=10.128.3.14:6789/0}
            election epoch 28, quorum 0,1,2,3 ceph1,ceph2,ceph3,ceph4
     osdmap e99: 4 osds: 4 up, 4 in
      pgmap v5294: 960 pgs, 5 pools, 37812 kB data, 30 objects
            4331 MB used, 61164 MB / 65496 MB avail
                 960 active+clean



2. 确认TGT是否支持rbd
root@server2:~# tgtadm --lld iscsi --op show --mode system | grep rbd
    rbd (bsoflags sync:direct)


3. 创建一个RBD image1
root@server2:~# ceph osd pool create testpool1 128 128
pool 'testpool1' created
root@server2:~# rbd create testpool1/image1 -s 1024
root@server2:~# rbd ls testpool1
image1


4. 创建一个target配置文件
/etc/tgt/conf.d/iscsi_ceph.conf

    driver iscsi
    bs-type rbd
    backing-store testpool1/image1  # Format is /



5. 重启tgt服务
service tgt reload


6. 查看当前详细的target
tgtadm --lld iscsi --mode target --op show




三、initiator结点的配置(10.128.3.21)

1、安装open-scsi
root@server1:~# apt-get install open-iscsi


2. 启动open-scsi服务
root@server1:~# service open-iscsi restart


3. 发现ISCSI target设备
root@server1:~# iscsiadm -m discovery -t st -p 10.128.3.22
10.128.3.22:3260,1 iqn.2016-03.rbdstore.example.com:iscsi


4. 接入target设备
root@server1:~# iscsiadm -m node -p 10.128.3.22 --login
Logging in to [iface: default, target: iqn.2016-03.rbdstore.example.com:iscsi, portal: 10.128.3.22,3260]
Login to [iface: default, target: iqn.2016-03.rbdstore.example.com:iscsi, portal: 10.128.3.22,3260]: successful


5. 确认target设备已经接入(示例中sdc就是iscsi设备)
root@server1:~# cat /proc/partitions 
major minor  #blocks  name


  11        0     882472 sr0
   2        0          4 fd0
   8        0   16777216 sda
   8        1   15727616 sda1
   8        2          1 sda2
   8        5    1046528 sda5
   8       16   16777216 sdb
 252        0    1046528 dm-0
   8       32    1048576 sdc
root@server1:~# 
root@server1:~# 
root@server1:~# lsblk 
NAME                  MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
fd0                     2:0    1     4K  0 disk  
sda                     8:0    0    16G  0 disk  
├─sda1                  8:1    0    15G  0 part  /
├─sda2                  8:2    0     1K  0 part  
└─sda5                  8:5    0  1022M  0 part  
  └─cryptswap1 (dm-0) 252:0    0  1022M  0 crypt [SWAP]
sdb                     8:16   0    16G  0 disk  
sdc                     8:32   0     1G  0 disk  
sr0                    11:0    1 861.8M  0 rom  


6. 挂载接入的target设备使用
root@server1:~# mkfs.xfs /dev/sdc -f
meta-data=/dev/sdc               isize=256    agcount=8, agsize=32768 blks
         =                       sectsz=512   attr=2, projid32bit=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
root@server1:~# mount /dev/sdc /mnt/
root@server1:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        15G  1.6G   13G  12% /
udev            484M  4.0K  484M   1% /dev
tmpfs           100M  388K   99M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            497M     0  497M   0% /run/shm
/dev/sdc       1014M   33M  982M   4% /mnt


7. initiator断开target

root@server1:~# umount /mnt/

root@server1:~# iscsiadm -m node -p 10.128.3.22 --logout

你可能感兴趣的:(iscsi协议使用ceph rbd)