今天就跟大家聊聊有關(guān)如何通過Ceph-RBD和ISCSI-target實現(xiàn)硬盤共享,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比臨淄網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式臨淄網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務覆蓋臨淄地區(qū)。費用合理售后完善,10余年實體公司更值得信賴。
1 問題提出
現(xiàn)在要求把機房的設(shè)備存儲都利用起來,建立一個存儲池,能滿足用多少創(chuàng)建多少而且能夠跨平臺掛載創(chuàng)建的硬盤。目前,驗室的機房目前已經(jīng)建立起來了CEPH的集群,存儲池達到了257TB,于是設(shè)想創(chuàng)建一個RBD(RADOS block device),然后通過ISCSI-target把創(chuàng)建的RBD導出來用于客戶端的掛載。
2 可行性分析
上述的問題的實現(xiàn)主要是兩部分,一部分是創(chuàng)建RBD,另一部分是通過安裝ISCSI-target把RBD導出,用于Ceph集群外主機掛載。目前的實驗環(huán)境已經(jīng)可以成功的創(chuàng)建RBD用于Ceph集群內(nèi)的裝有RBD客戶端的主機掛載,剩下的就是第二部分的實現(xiàn)。由于Ceph已經(jīng)支持通過iscsi協(xié)議來使用rbd,所以在理論上是可行的。
3 實現(xiàn)過程
3.1 環(huán)境說明
實驗平臺:ubuntu14.04 server,內(nèi)核:3.13.0-32-generic
Ceph版本:version 0.94.2
服務端 ISCSI-target采用Linux SCSI target framework (tgt)(http://stgt.sourceforge.net/)
服務端IP:172.25.1.55
3.2 創(chuàng)建RBD
在ceph-admin節(jié)點執(zhí)行下面命令:
rbd create --size {megabytes} {pool-name}/{image-name}
比如創(chuàng)建大小為1GB,名為ceph-rbd1的RBD:
rbd create --size 1024 ceph-rbd1
未指定pool-name則默認創(chuàng)建到rbd池里面
查看RBD:rbd ls {poolname} 不加poolname默認查看rbd池下的RBD
查看RBD詳細信息:
rbd info {pool-name}/{image-name}
比如查看ceph-rbd1:rbd info ceph-rbd1 不加pool-name默認rbd池
3.3 映射RBD
創(chuàng)建好的RBD需要映射到客戶機才能使用,客戶機需要內(nèi)核支持Ceph塊設(shè)備和文件系統(tǒng),推薦內(nèi)核2.6.34或更高版本。
檢查Linux版本和對RBD的支持:
modprobe rbd
Linux哲學,不返回消息就是最好的消息。所以modprobe rbd沒有返回消息說明內(nèi)核對rbd支持。
在ceph-osd節(jié)點執(zhí)行下面命令:
rbd map rbd/ceph-rbd1
格式是rbd map {pool-name}/{image-name} 不加{pool-name}默認rbd
查看映射后的RBD在操作系統(tǒng)中的設(shè)備名:
rbd showmapped
可以看到創(chuàng)建的RBD在操作系統(tǒng)的設(shè)備名是/dev/rbd1
fdisk –l /dev/rbd1#參看分區(qū)情況
如果用于本機掛載執(zhí)行接下來步驟:
mkfs.xfs /dev/rbd1 #格式化RBD mkdir /mnt/ceph-vol1 #創(chuàng)建掛載點 mount /dev/rbd1 /mnt/ceph-vol1 #掛載RBD,可以寫入數(shù)據(jù)測試一下掛載后的RBD
不過我們的目的是Ceph集群外主機掛載RBD,所以上面的步驟了解一下即可,集群外主機掛載RBD需要用到ISCSI-target。
3.4 配置rbdmap
根據(jù)網(wǎng)絡(luò)文檔了解到,創(chuàng)建rbd塊設(shè)備并rbd map后,如果不及時rbd unmap,關(guān)機的時候系統(tǒng)會停留在umount此rbd設(shè)備上。所以要配置rbdmap。官方文檔無rbdmap的介紹,而且這個腳本也不是官方發(fā)布的,為避免遇到這種問題先下載并設(shè)置開機啟動rbdmap,將來再嘗試不加入這個腳本會不會出現(xiàn)問題。
sudo wget https://raw.github.com/ceph/ceph/a4ddf704868832e119d7949e96fe35ab1920f06a/src/init-rbdmap -O /etc/init.d/rbdmap #獲得腳本文件 sudo chmod +x /etc/init.d/rbdmap #增加執(zhí)行權(quán)限 sudo update-rc.d rbdmap defaults #添加開機啟動
修改rbdmap的配置文件/etc/ceph/rbdmap將映射好的rbd添加進去,注意/etc/ceph/rbdmap路徑是wget時的當前路徑 ,我wget時是在/etc/ceph路徑下的。
vi /etc/ceph/rbdmap # RbdDevice Parameters #poolname/imagename id=client,keyring=/etc/ceph/ceph.client.keyring rbd/ceph-rbd1 id=client,keyring=/etc/ceph/ceph.client.keyring
如果使用了cephx那么,keyring=/etc/ceph/ceph.client.keyring就要加上了
3.5 配置ISCSI-target
Linux SCSI target framework (tgt)用來將 Linux 系統(tǒng)仿真成為 iSCSI target 的功能;安裝tgt,并檢查是否支持rbd:
apt-get install tgt tgtadm --lld iscsi --op show --mode system | grep rbd
rbd (bsoflags sync:direct)#返回這個信息表明支持rbd
文件的了解:
/etc/tgt/targets.conf:主要配置文件,設(shè)定要分享的磁盤格式與哪幾顆;
/usr/sbin/tgt-admin:在線查詢、刪除 target 等功能的設(shè)定工具;
/usr/sbin/tgt-setup-lun:建立 target 以及設(shè)定分享的磁盤與可使用的客戶端等工具軟件。
/usr/sbin/tgtadm:手動直接管理的管理員工具 (可使用配置文件取代);
/usr/sbin/tgtd:主要提供 iSCSI target 服務的主程序;
/usr/sbin/tgtimg:建置預計分享的映像文件裝置的工具 (以映像文件仿真磁盤);
SCSI 有一套自己分享 target 檔名的定義,基本上,藉由 iSCSI 分享出來的 target 檔名都是以 iqn 為開頭,意思是:『iSCSI Qualified Name (iSCSI 合格名稱)』的意思。那么在 iqn 后面要接啥檔名呢?通常是這樣的:
iqn.yyyy-mm.<reversed domain name>:identifier
單位網(wǎng)域名的反轉(zhuǎn)寫法 :這個分享的target名稱
比如:target iqn.2015-9.localhost:iscsi 在接下看的配置中會用到
我們主要是修改 /etc/tgt/targets.conf,把創(chuàng)建好的RBD信息添加進去。
vim /etc/tgt/targets.conf
# 此檔案的語法如下:
<target iqn.相關(guān)裝置的target名稱> backing-store 存儲設(shè)備名 -1 backing-store 存儲設(shè)備名 -2 </target> <target iqn.2015-9.localhost:iscsi> driver iscsi #驅(qū)動 bs-type rbd # 后端存儲類型 – 默認 rdwr, 可選 aio, 等...在這里選rbd backing-store rbd/ceph-rbd1 # <==LUN 1 (LUN 的編號通常照順序)Format is <iscsi-pool>/<iscsi-rbd-image> </target>
backing-store (虛擬的裝置), direct-store (實際的裝置): 設(shè)定裝置時,如果你的整個磁盤是全部被拿來當 iSCSI 分享之用,那么才能夠使用 direct-store 。不過,根據(jù)網(wǎng)絡(luò)上的其他文件, 似乎說明這個設(shè)定值有點危險的樣子。所以,基本上還是建議單純使用模擬的 backing-store 較佳。
當然,配置文件中還有其他的一些參數(shù)可以參考:/usr/share/doc/tgt/examples/targets.conf.example里面的內(nèi)容。
然后重啟tgt:/etc/init.d/tgt restart
參看端口是否開啟:netstat -tlunp | grep tgt 默認3260端口
觀察一下target 相關(guān)信息,以及提供的 LUN 數(shù)據(jù)內(nèi)容:
tgt-admin –show Target 1: iqn.2015-9.localhost:iscsi <==就是我們的 target System information: Driver: iscsi State: ready I_T nexus information: LUN information: LUN: 0 Type: controller <==這是個控制器,并非可以用的 LUN 喔! ……省略中間…….. LUN: 1 Type: disk <==第一個 LUN (Logical Unit Number) SCSI ID: IET 00010001 SCSI SN: beaf11 Size: 10995116 MB, Block size: 512 <==容量 Online: Yes Removable media: No Prevent removal: No Readonly: No SWP: No Thin-provisioning: No Backing store type: rbd Backing store path: rbd/ceph-rbd1 <==磁盤所在的實際文件名 Backing store flags: Account information: ACL information: ALL
至此ISCSI-target就已經(jīng)配置好了。
3.6 windows客戶端掛載
iSCSI initiator:就是能夠使用 target 的客戶端,通常是服務器。 也就是說,想要連接到 iSCSI target 的服務器,也必須要安裝 iSCSI initiator 的相關(guān)功能后才能夠使用 iSCSI target 提供的磁盤。
上面配置都成功的話就可以進行正常掛載,我是在windows7上面進行的掛載。windows7自帶有iSCSI initiator。
打開控制面板—》系統(tǒng)與安全—》管理工具 iSCSI 發(fā)起程序
點發(fā)現(xiàn)門戶然后填入你的服務端IP或DNS
可以看到當前的狀態(tài)是不活動的,可以點擊連接:
連接成功后相當于掛載了一個硬盤,這時我們可以在磁盤管理中進行分區(qū)和格式化等一些操作,格式化成功后可以看到磁盤已經(jīng)在系統(tǒng)中了。
3.7 linux客戶端掛載
本次主要針對的windows客戶端掛載,成功的掛載說明服務器端是沒有問題的,如果要在linux上進行掛載,只需要安裝iSCSI initiator然后進行簡單的配置。具體的配置方法下面的參考文獻中的鳥哥文章有詳細介紹,這里只是說明其是具有可行性的,不進行實例驗證了。
注意,linux客戶端和windows客戶端都是ceph集群外的主機,集群內(nèi)的不需要用到iscsi就可以進行創(chuàng)建掛載。
看完上述內(nèi)容,你們對如何通過Ceph-RBD和ISCSI-target實現(xiàn)硬盤共享有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。
本文名稱:如何通過Ceph-RBD和ISCSI-target實現(xiàn)硬盤共享
URL地址:http://muchs.cn/article36/jeppsg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、微信小程序、動態(tài)網(wǎng)站、Google、搜索引擎優(yōu)化、虛擬主機
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)