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
<target iqn.2016-03.rbdstore.example.com:iscsi>
    driver iscsi
    bs-type rbd
    backing-store testpool1/image1  # Format is <pool-name>/<image-name>
</target>


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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章