OpenStack(Pike)連接 Ceph RBD

0. 環(huán)境信息

請(qǐng)注意势告,本文檔假設(shè) Ceph 和 OpenStack 環(huán)境已經(jīng)可用,在此基礎(chǔ)上表鳍,配置 OpenStack 使用 Ceph RBD 作為鏡像和卷的后端存儲(chǔ)雄坪。

Ceph + OpenStack

軟件版本

  • OpenStack 版本: Pike release
  • Ceph 版本:12.2.7 luminous
  • 虛擬機(jī)系統(tǒng):Ubuntu 16.04

虛擬機(jī)信息:

  • 一共用到六臺(tái)虛擬機(jī)飘庄,三臺(tái)用作 OpenStack 的控制節(jié)點(diǎn)购撼,三臺(tái)用作 OpenStack 的計(jì)算節(jié)點(diǎn)跪削。
  • 六臺(tái)虛擬機(jī)信息:
    • hostname:controller-1,IP:10.0.0.1
    • hostname:controller-2迂求,IP:10.0.0.2
    • hostname:controller-3碾盐,IP:10.0.0.3
    • hostname:compute-1,IP:10.0.0.4
    • hostname:compute-2揩局,IP:10.0.0.5
    • hostname:compute-3毫玖,IP:10.0.0.6

1. 升級(jí)內(nèi)核

要升級(jí)內(nèi)核的原因是 Ubuntu 16.04 使用的內(nèi)核版本是 4.4,而 ceph RBD image 默認(rèn)打開的功能包括:layering, exclusive-lock, object-map, fast-diff, deep-flatten凌盯,除了 layering付枫,其他 linux kernel 4.4 均不支持,但也不是必須通過升級(jí)內(nèi)核來解決該問題十气,也可以修改 RBD 參數(shù) rbd_default_features励背,關(guān)閉不支持的特性來解決:sudo ceph daemon mon.<monitor-hostname> config set rbd_default_features 1 (該命令需要在 Ceph 的控制節(jié)點(diǎn)上執(zhí)行)

接下來講一下升級(jí) Linux kernel 的方法,Linux kernel 全部可用版本的下載地址為:
http://kernel.ubuntu.com/~kernel-ppa/mainline/

本文選用了 4.15 最新的分支:v4.15.18砸西,需要下載兩個(gè)文件:

$ wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.15.18/linux-headers-4.15.18-041518_4.15.18-041518.201804190330_all.deb
$ wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.15.18/linux-image-4.15.18-041518-generic_4.15.18-041518.201804190330_amd64.deb
$ sudo dpkg -i linux-headers-4.15.18-041518_4.15.18-041518.201804190330_all.deb
$ sudo dpkg -i linux-image-4.15.18-041518-generic_4.15.18-041518.201804190330_amd64.deb

安裝完成后需要重啟服務(wù)器才能生效

$ sudo reboot

重新啟動(dòng)后查詢 kernel 版本叶眉,新安裝的 kernel 已經(jīng)生效

$ sudo uname -r  
4.15.18-041518-generic

2. Ceph 的準(zhǔn)備工作

首先要為 glance 和 cinder 先創(chuàng)建好 pool,后面的數(shù)字是 pool 中包含的 pg 數(shù)量芹枷,pg 數(shù)量可以根據(jù)需求修改衅疙,大的原則是里面存儲(chǔ)的數(shù)據(jù)越多,pg 數(shù)量也要越大鸳慈。

$ ceph osd pool create volumes 128
$ ceph osd pool create images 128
$ ceph osd pool create backups 128
$ ceph osd pool create vms 128

然后初始化 pool饱溢,將其應(yīng)用類型設(shè)置為 RBD:

$ rbd pool init volumes
$ rbd pool init images
$ rbd pool init backups
$ rbd pool init vms

接下來為 glance 和 cinder 生成連接 ceph 所用的 密鑰:

$ ceph auth get-or-create client.glance mon 'profile rbd' osd 'profile rbd pool=images'
$ ceph auth get-or-create client.cinder mon 'profile rbd' osd 'profile rbd pool=volumes, profile rbd pool=vms, profile rbd-read-only pool=images'
$ ceph auth get-or-create client.cinder-backup mon 'profile rbd' osd 'profile rbd pool=backups'

最后全部六臺(tái) OpenStack 服務(wù)器都需要 ceph 的配置文件,需要注意走芋,下面這條命令需要在 OpenStack 服務(wù)器上需要能夠無需密碼即可以 sudo 權(quán)限執(zhí)行命令绩郎,如果不滿足這個(gè)條件的話潘鲫,手動(dòng) ssh 登錄,再填內(nèi)容吧肋杖。

$ ssh {your-openstack-server} sudo tee /etc/ceph/ceph.conf </etc/ceph/ceph.conf

3. Glance

首先在安裝 glance-api 的 OpenStack 服務(wù)器上安裝 RBD python 客戶端:

$ sudo apt-get install python-rbd

Glance 要連接 Ceph 就需要 Ceph 的密鑰溉仑,所以 keyring 文件也必不可少,并且需要修改文件的 owner 改為 glance状植。

$ ceph auth get-or-create client.glance | ssh {your-glance-api-server} sudo tee /etc/ceph/ceph.client.glance.keyring
$ ssh {your-glance-api-server} sudo chown glance:glance /etc/ceph/ceph.client.glance.keyring

Ceph 相關(guān)的配置已經(jīng)準(zhǔn)備就緒了浊竟,接下來需要修改 glance 的配置文件。

$ sudo vim  /etc/glance/glance-api.conf
[DEFAULT]
show_image_direct_url = True

hw_scsi_model=virtio-scsi
hw_disk_bus=scsi
hw_qemu_guest_agent=yes
os_require_quiesce=yes

......

[glance_store]
stores = rbd
default_store = rbd
rbd_store_pool = images
rbd_store_user = glance
rbd_store_ceph_conf = /etc/ceph/ceph.conf
rbd_store_chunk_size = 8

[paste_deploy]
flavor = keystone

修改完成后津畸,重啟 glance-api 服務(wù)就完成了鏡像相關(guān)的配置振定。

$ sudo service openstack-glance-api restart

4. 計(jì)算節(jié)點(diǎn)

全部三臺(tái) compute 節(jié)點(diǎn),都需要安裝 ceph-common肉拓,另外要注意后频,ceph 要指定版本,下面命令里的頭兩句就是通過環(huán)境變量指定安裝 luminous 版本帝簇。

$ CEPH_DEPLOY_REPO_URL=http://mirrors.163.com/ceph/debian-luminous
$ CEPH_DEPLOY_GPG_URL=http://mirrors.163.com/ceph/keys/release.asc
$ sudo apt update
$ sudo apt-get install ceph-common

接下來因?yàn)?libvirt 需要連接 RBD 來掛載遠(yuǎn)程塊存儲(chǔ)徘郭,所以 libvirt 需要 RBD 的密鑰靠益,具體做法如下丧肴,

# 在 Ceph 節(jié)點(diǎn)上執(zhí)行,并將輸出結(jié)果寫入到計(jì)算節(jié)點(diǎn)的任意目錄下的 client.cinder.key 文件中胧后,作為暫存芋浮。
$ ceph auth get-key client.cinder | ssh {your-compute-node} tee client.cinder.key
# 產(chǎn)生 UUID
$ uuidgen
457eb676-33da-42ec-9a8c-9293d545c337
# 生成 libvert 注入文件
$ cat > secret.xml <<EOF
<secret ephemeral='no' private='no'>
  <uuid>457eb676-33da-42ec-9a8c-9293d545c337</uuid>
  <usage type='ceph'>
    <name>client.cinder secret</name>
  </usage>
</secret>
EOF
# 注入 secret.xml 文件
$ sudo virsh secret-define --file secret.xml
Secret 457eb676-33da-42ec-9a8c-9293d545c337 created
# 關(guān)聯(lián)注入的 secret 和 ceph 密鑰,并刪除暫存的 client.cinder.key 文件壳快。
$ sudo virsh secret-set-value --secret 457eb676-33da-42ec-9a8c-9293d545c337 --base64 $(cat client.cinder.key) && rm client.cinder.key secret.xml

修改 /etc/ceph/ceph.conf 文件:

$ vim  /etc/ceph/ceph.conf
...
[client]
    rbd cache = true
    rbd cache writethrough until flush = true
    admin socket = /var/run/ceph/guests/$cluster-$type.$id.$pid.$cctid.asok
    log file = /var/log/qemu/qemu-guest-$pid.log
    rbd concurrent management ops = 20

創(chuàng)建虛擬機(jī)掛載磁盤的日志輸出目錄纸巷,并修改權(quán)限。

$ sudo mkdir -p /var/run/ceph/guests/ /var/log/qemu/
$ sudo chown libvirt-qemu:kvm /var/run/ceph/guests /var/log/qemu/

重啟 nova compute 服務(wù)眶痰。

$ sudo systemctl restart openstack-nova-compute

5. Cinder

最后完成塊存儲(chǔ)的配置瘤旨,首先也要和計(jì)算節(jié)點(diǎn)一樣,在所有運(yùn)行 cinder 的節(jié)點(diǎn)上安裝 ceph-common竖伯,在本文中就是全部三臺(tái) controller 節(jié)點(diǎn)存哲。

$ CEPH_DEPLOY_REPO_URL=http://mirrors.163.com/ceph/debian-luminous
$ CEPH_DEPLOY_GPG_URL=http://mirrors.163.com/ceph/keys/release.asc
$ sudo apt update
$ sudo apt-get install ceph-common

修改 cinder 配置文件:
rbd_user 要使用之前在 Ceph 上創(chuàng)建的賬戶,rbd_secret_uuid 要使用之前在 libvirt 中添加的 secret 的 UUID七婴。

$ vim /etc/cinder/cinder.conf 
[DEFAULT]
...
enabled_backends = ceph
glance_api_version = 2
...
[ceph]
volume_driver = cinder.volume.drivers.rbd.RBDDriver
volume_backend_name = ceph
rbd_pool = volumes
rbd_ceph_conf = /etc/ceph/ceph.conf
rbd_flatten_volume_from_snapshot = false
rbd_max_clone_depth = 5
rbd_store_chunk_size = 4
rados_connect_timeout = -1
rbd_user = cinder
rbd_secret_uuid = 457eb676-33da-42ec-9a8c-9293d545c337

全部搞好后祟偷,重啟 cinder 相關(guān)服務(wù)。

$ sudo service openstack-cinder-volume restart
$ sudo service openstack-cinder-backup restart

6. 參考文檔

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末打厘,一起剝皮案震驚了整個(gè)濱河市修肠,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌户盯,老刑警劉巖嵌施,帶你破解...
    沈念sama閱讀 206,378評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件饲化,死亡現(xiàn)場離奇詭異,居然都是意外死亡吗伤,警方通過查閱死者的電腦和手機(jī)滓侍,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來牲芋,“玉大人撩笆,你說我怎么就攤上這事「灼郑” “怎么了夕冲?”我有些...
    開封第一講書人閱讀 152,702評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長裂逐。 經(jīng)常有香客問我歹鱼,道長,這世上最難降的妖魔是什么卜高? 我笑而不...
    開封第一講書人閱讀 55,259評(píng)論 1 279
  • 正文 為了忘掉前任弥姻,我火速辦了婚禮,結(jié)果婚禮上掺涛,老公的妹妹穿的比我還像新娘庭敦。我一直安慰自己,他們只是感情好薪缆,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評(píng)論 5 371
  • 文/花漫 我一把揭開白布秧廉。 她就那樣靜靜地躺著,像睡著了一般拣帽。 火紅的嫁衣襯著肌膚如雪疼电。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,036評(píng)論 1 285
  • 那天减拭,我揣著相機(jī)與錄音蔽豺,去河邊找鬼。 笑死拧粪,一個(gè)胖子當(dāng)著我的面吹牛修陡,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播既们,決...
    沈念sama閱讀 38,349評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼濒析,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了啥纸?” 一聲冷哼從身側(cè)響起号杏,我...
    開封第一講書人閱讀 36,979評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后盾致,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體主经,經(jīng)...
    沈念sama閱讀 43,469評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評(píng)論 2 323
  • 正文 我和宋清朗相戀三年庭惜,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了罩驻。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,059評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡护赊,死狀恐怖惠遏,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情骏啰,我是刑警寧澤节吮,帶...
    沈念sama閱讀 33,703評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站判耕,受9級(jí)特大地震影響透绩,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜壁熄,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評(píng)論 3 307
  • 文/蒙蒙 一帚豪、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧草丧,春花似錦狸臣、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至仙蚜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間厂汗,已是汗流浹背委粉。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留娶桦,地道東北人贾节。 一個(gè)月前我還...
    沈念sama閱讀 45,501評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像衷畦,于是被迫代替她去往敵國和親栗涂。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評(píng)論 2 345